The chromium-efl has been rebased with the latest code.
So, this updates corresponding chromium-efl headers
because the electron-efl has referred to them in its own source tree.
Note that this will be moved to chromium-efl devel package.
Change-Id: Ic23291b04a08c3189917a92decb46d516fe64c66
Signed-off-by: Youngsoo Choi <kenshin.choi@samsung.com>
extern const char kDisableLimitWebDiscardableMemory[];
#endif
+#if defined(ENABLE_STRING_COMPRESSION)
+extern const char kEnableStringCompression[];
+extern const char kDisableStringCompression[];
+#endif
+
#if defined(OS_POSIX)
extern const char kEnableCrashReporterForTesting[];
#endif
BASE_EXPORT bool SetNonBlocking(int fd);
#if defined(OS_POSIX)
-
-// Sets the given |fd| to blocking mode.
-// Returns true if it was able to set it in the blocking mode, otherwise
-// false.
-BASE_EXPORT bool SetBlocking(int fd);
-
// Creates a non-blocking, close-on-exec pipe.
// This creates a non-blocking pipe that is not intended to be shared with any
// child process. This will be done atomically if the operating system supports
return shared_memory_.ShareToProcess(process_handle, new_handle);
}
+ // Returns the locked page count for DiscardableSharedMemory object.
+ size_t locked_page_count() const { return locked_page_count_; }
+
private:
// Virtual for tests.
virtual Time Now() const;
namespace logging {
#if !defined(OS_NACL)
+void SetNaClLoggingEnabled(bool enabled);
void InitializeNaClLogging(NaClApp* nap);
#elif !defined(OS_NACL_NONSFI)
bool NaClLogMessageHandler(int severity, const std::string&);
// Disable internal cache.
static void DisableCache();
-#if defined(OS_TIZEN_TV_PRODUCT)
// Clear all cached paths.
static void Clear();
-#endif
private:
friend class ScopedPathOverride;
// midnight on that day.
Time LocalMidnight() const;
+#if defined(OS_TIZEN_TV_PRODUCT)
// Gets time offset
static double TimeOffset();
// Sets time offset
static void SetTimeOffset(double time_offset);
+#endif
private:
friend class time_internal::TimeBase<Time>;
class TraceCategoryTest;
class TraceLog;
-// Keeps track of the state of all tracing categories. The reason why this
-// is a fully static class with global state is to allow to statically define
-// known categories as global linker-initialized structs, without requiring
-// static initializers.
+// Allows fast and thread-safe acces to the state of all tracing categories.
+// All the methods in this class can be concurrently called on multiple threads,
+// unless otherwise noted (e.g., GetOrCreateCategoryLocked).
+// The reason why this is a fully static class with global state is to allow to
+// statically define known categories as global linker-initialized structs,
+// without requiring static initializers.
class BASE_EXPORT CategoryRegistry {
public:
// Allows for-each iterations over a slice of the categories array.
static const TraceCategory* GetCategoryByStatePtr(
const uint8_t* category_state);
+ // Returns a category from its name or nullptr if not found.
+ // The output |category| argument is an undefinitely lived pointer to the
+ // TraceCategory owned by the registry. TRACE_EVENTx macros will cache this
+ // pointer and use it for checks in their fast-paths.
+ static TraceCategory* GetCategoryByName(const char* category_name);
+
static bool IsBuiltinCategory(const TraceCategory*);
private:
friend class TraceCategoryTest;
friend class TraceLog;
+ using CategoryInitializerFn = void (*)(TraceCategory*);
// Only for debugging/testing purposes, is a no-op on release builds.
static void Initialize();
// Resets the state of all categories, to clear up the state between tests.
static void ResetForTesting();
- // The output |category| argument is an undefinitely lived pointer to the
- // TraceCategory owned by the registry. TRACE_EVENTx macros will cache this
- // pointer and use it for checks in their fast-paths.
- // Returns false if the category was already present, true if the category
- // has just been added and hence requires initialization.
- static bool GetOrCreateCategoryByName(const char* category_name,
- TraceCategory** category);
+ // Used to get/create a category in the slow-path. If the category exists
+ // already, this has the same effect of GetCategoryByName and returns false.
+ // If not, a new category is created and the CategoryInitializerFn is invoked
+ // before retuning true. The caller must guarantee serialization: either call
+ // this method from a single thread or hold a lock when calling this.
+ static bool GetOrCreateCategoryLocked(const char* category_name,
+ CategoryInitializerFn,
+ TraceCategory**);
// Allows to iterate over the valid categories in a for-each loop.
// This includes builtin categories such as __metadata.
TRACE_HEAP_PROFILER_API_SCOPED_TASK_EXECUTION INTERNAL_TRACE_EVENT_UID( \
task_event)((task).posted_from.file_name());
+#if !defined(ENABLE_TRACE_EVENT)
+#if defined(DISABLE_DEVTOOL_TIMELINE)
+// Remove all macro function to add a trace event. the devtool timeline is also
+// disabled.
+#undef INTERNAL_TRACE_EVENT_ADD
+#define INTERNAL_TRACE_EVENT_ADD(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP(...)
+#else
+// Remove only the no parameter macro functions to support the RWI timeline.
+#undef TRACE_EVENT0
+#define TRACE_EVENT0(...)
+#undef TRACE_EVENT_INSTANT0
+#define TRACE_EVENT_INSTANT0(...)
+#undef TRACE_EVENT_WITH_FLOW0
+#define TRACE_EVENT_WITH_FLOW0(...)
+#endif
+#endif
+
namespace trace_event_internal {
// Specify these values when the corresponding argument of AddTraceEvent is not
--- /dev/null
+
+
+/*-
+ * As noted in the source, some portions of this implementation are copied from
+ * FreeBSD libc. These are covered by the following copyright:
+ *
+ * Copyright (c) 2002-2004 Tim J. Robbins.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+size_t
+mbsnrtowcs_l(wchar_t * __restrict dst, const char ** __restrict src,
+ size_t nms, size_t len, mbstate_t * __restrict ps, locale_t loc)
+{
+ const char *s;
+ size_t nchr;
+ wchar_t wc;
+ size_t nb;
+ FIX_LOCALE(loc);
+
+ s = *src;
+ nchr = 0;
+
+ if (dst == NULL) {
+ for (;;) {
+ if ((nb = mbrtowc_l(&wc, s, nms, ps, loc)) == (size_t)-1)
+ /* Invalid sequence - mbrtowc() sets errno. */
+ return ((size_t)-1);
+ else if (nb == 0 || nb == (size_t)-2)
+ return (nchr);
+ s += nb;
+ nms -= nb;
+ nchr++;
+ }
+ /*NOTREACHED*/
+ }
+
+ while (len-- > 0) {
+ if ((nb = mbrtowc_l(dst, s, nms, ps, loc)) == (size_t)-1) {
+ *src = s;
+ return ((size_t)-1);
+ } else if (nb == (size_t)-2) {
+ *src = s + nms;
+ return (nchr);
+ } else if (nb == 0) {
+ *src = NULL;
+ return (nchr);
+ }
+ s += nb;
+ nms -= nb;
+ nchr++;
+ dst++;
+ }
+ *src = s;
+ return (nchr);
+}
--- /dev/null
+/*-
+ * Copyright (c) 2002-2004 Tim J. Robbins.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+size_t
+wcsnrtombs_l(char * __restrict dst, const wchar_t ** __restrict src,
+ size_t nwc, size_t len, mbstate_t * __restrict ps, locale_t loc)
+{
+ FIX_LOCALE(loc);
+ mbstate_t mbsbak;
+ char buf[MB_CUR_MAX_L(loc)];
+ const wchar_t *s;
+ size_t nbytes;
+ size_t nb;
+
+ s = *src;
+ nbytes = 0;
+
+ if (dst == NULL) {
+ while (nwc-- > 0) {
+ if ((nb = wcrtomb_l(buf, *s, ps, loc)) == (size_t)-1)
+ /* Invalid character - wcrtomb() sets errno. */
+ return ((size_t)-1);
+ else if (*s == L'\0')
+ return (nbytes + nb - 1);
+ s++;
+ nbytes += nb;
+ }
+ return (nbytes);
+ }
+
+ while (len > 0 && nwc-- > 0) {
+ if (len > (size_t)MB_CUR_MAX_L(loc)) {
+ /* Enough space to translate in-place. */
+ if ((nb = wcrtomb_l(dst, *s, ps, loc)) == (size_t)-1) {
+ *src = s;
+ return ((size_t)-1);
+ }
+ } else {
+ /*
+ * May not be enough space; use temp. buffer.
+ *
+ * We need to save a copy of the conversion state
+ * here so we can restore it if the multibyte
+ * character is too long for the buffer.
+ */
+ mbsbak = *ps;
+ if ((nb = wcrtomb_l(buf, *s, ps, loc)) == (size_t)-1) {
+ *src = s;
+ return ((size_t)-1);
+ }
+ if (nb > (int)len) {
+ /* MB sequence for character won't fit. */
+ *ps = mbsbak;
+ break;
+ }
+ memcpy(dst, buf, nb);
+ }
+ if (*s == L'\0') {
+ *src = NULL;
+ return (nbytes + nb - 1);
+ }
+ s++;
+ dst += nb;
+ len -= nb;
+ nbytes += nb;
+ }
+ *src = s;
+ return (nbytes);
+}
+
void setPremultipliedAlpha(bool premultiplied) override;
void setBlendBackgroundColor(bool blend) override;
void setNearestNeighbor(bool nearest_neighbor) override;
+#if defined(TIZEN_CANVAS_HOLE)
+ void setTextureHole(bool) override;
+#endif
private:
std::unique_ptr<WebLayerImpl> layer_;
return input->has_transparent_background;
}
+ static bool has_canvas_hole(const std::unique_ptr<cc::RenderPass>& input) {
+ return input->has_canvas_hole;
+ }
+
static const cc::QuadList& quad_list(
const std::unique_ptr<cc::RenderPass>& input) {
return input->quad_list;
// at draw time. Defaults to false.
void SetBlendBackgroundColor(bool blend);
+#if defined(TIZEN_CANVAS_HOLE)
+ void SetTextureHole(bool);
+ void NotifyTextureRectChangedOnImplThread(const gfx::Rect&);
+ void NotifyTextureRectChangedOnMainThread(const gfx::Rect&);
+#endif
+
// Code path for plugins which supply their own mailbox.
void SetTextureMailbox(
const TextureMailbox& mailbox,
float vertex_opacity_[4];
bool premultiplied_alpha_;
bool blend_background_color_;
+#if defined(TIZEN_CANVAS_HOLE)
+ bool texture_hole_;
+#endif
std::unique_ptr<TextureMailboxHolder::MainThreadReference> holder_ref_;
bool needs_set_mailbox_;
#include "cc/resources/single_release_callback.h"
+#if defined(TIZEN_CANVAS_HOLE)
+namespace gfx {
+class Rect;
+}
+#endif
+
namespace cc {
class ResourceUpdateQueue;
class TextureMailbox;
TextureMailbox* mailbox,
std::unique_ptr<SingleReleaseCallback>* release_callback) = 0;
+#if defined(TIZEN_CANVAS_HOLE)
+ virtual void NotifyTextureRectChanged(const gfx::Rect&) {}
+#endif
+
protected:
virtual ~TextureLayerClient() {}
};
LayerType GetLayerType() const override { return LAYER_TYPE_TEXTURE; }
#endif
+#if defined(TIZEN_CANVAS_HOLE)
+ void SetTextureHole(bool, const base::Callback<void(const gfx::Rect&)>&);
+#endif
+
private:
TextureLayerImpl(LayerTreeImpl* tree_impl, int id);
TextureMailbox texture_mailbox_;
std::unique_ptr<SingleReleaseCallbackImpl> release_callback_;
bool own_mailbox_;
+#if defined(TIZEN_CANVAS_HOLE)
+ bool texture_hole_;
+ gfx::Rect previous_texture_rect_;
+ base::Callback<void(const gfx::Rect&)> texture_rect_changed_cb_;
+#endif
bool valid_texture_copy_;
DISALLOW_COPY_AND_ASSIGN(TextureLayerImpl);
OverlayCandidateList overlay_list;
CALayerOverlayList ca_layer_overlay_list;
+#if defined(TIZEN_CANVAS_HOLE)
+ bool has_canvas_hole;
+ RenderPassId canvas_hole_render_pass;
+#endif
};
protected:
const gfx::Rect& output_rect,
const gfx::Rect& damage_rect,
const gfx::Transform& transform_to_root_target,
- bool has_transparent_background);
+ bool has_transparent_background,
+ bool has_canvas_hole = false);
void AsValueInto(base::trace_event::TracedValue* dict) const;
// If false, the pixels in the render pass' texture are all opaque.
bool has_transparent_background;
+ // If true, disable blend when draw render pass quad
+ bool has_canvas_hole;
+
// If non-empty, the renderer should produce a copy of the render pass'
// contents as a bitmap, and give a copy of the bitmap to each callback in
// this list. This property should not be serialized between compositors, as
virtual void ScheduledActionInvalidateCompositorFrameSink() = 0;
virtual void DidFinishImplFrame() = 0;
virtual void SendBeginMainFrameNotExpectedSoon() = 0;
+#if defined(OS_TIZEN)
+ virtual bool NeedsResetFrameSourceTimeOnFrameAck() { return false; }
+ virtual bool NeedsResetFrameSourceTimePerFrame() { return false; }
+#endif
protected:
virtual ~SchedulerClient() {}
#if defined(OS_TIZEN)
void ForceDeadlineModeAsImmediate(bool enable);
- bool force_deadline_mode_as_immediate() {
+ bool force_deadline_mode_as_immediate() const {
return state_machine_.force_deadline_mode_as_immediate();
}
void ResetFrameSourceTime();
+ bool defer_commits() const { return state_machine_.defer_commits(); }
+ bool has_pending_tree() const { return state_machine_.has_pending_tree(); }
#endif
protected:
#if defined(OS_TIZEN)
void ForceDeadlineModeAsImmediate(bool enable);
- bool force_deadline_mode_as_immediate() {
+ bool force_deadline_mode_as_immediate() const {
return force_deadline_mode_as_immediate_;
}
+ bool defer_commits() const { return defer_commits_; }
#endif
protected:
#if defined(OS_TIZEN)
virtual bool UseBackgroundRasterThread() { return false; }
+ virtual bool RequiresReadyToActivate() { return false; }
#endif
protected:
#if defined(OS_TIZEN)
void SetClearTilesOnHide(bool enable);
- void SetDisturbRasterizingTask(bool disturb) {
- disturb_rasterizing_task_ = disturb;
- }
+ void SetDisturbRasterizingTask(bool disturb);
bool RasterizingTaskDisturbed() const { return disturb_rasterizing_task_; }
+ void ForceScheduleRasterTaskIfNeeded();
#endif
void OnRasterTaskCompleted(std::unique_ptr<RasterBuffer> raster_buffer,
bool visibility_;
bool hide_enabled_;
bool disturb_rasterizing_task_;
+ size_t default_raster_task_limit_;
#endif
std::unordered_map<Tile::Id, std::vector<DrawImage>> scheduled_draw_images_;
virtual void ForceDeadlineModeAsImmediate(bool enable) {}
virtual bool IsDeadlineModeImmediate() { return false; }
virtual void ResetFrameSourceTime() {}
+ virtual bool RequiresReadyToActivate() { return false; }
#endif
protected:
gfx::ColorSpace GetTileColorSpace() const override;
#if defined(OS_TIZEN)
bool UseBackgroundRasterThread() override;
+ bool RequiresReadyToActivate() override;
#endif
// ScrollbarAnimationControllerClient implementation.
void SetNeedsRedraw();
#if defined(OS_TIZEN)
void SetClearTilesOnHide(bool enable);
+ bool NeedsResetFrameSourceTimeOnFrameAck();
+ bool NeedsResetFrameSourceTimePerFrame();
+ void ForceScheduleRasterTaskIfNeeded() {
+ tile_manager_.ForceScheduleRasterTaskIfNeeded();
+ }
#endif
ManagedMemoryPolicy ActualManagedMemoryPolicy() const;
#if defined(OS_TIZEN)
void SetDisturbRasterizingTasks(bool disturb);
+ void ForceDeferCommit(bool defer_commits);
void StartDisturbRasterizingTaskIfNeeded(float timeout);
bool CheckDisturbRasterizingTaskTimeout();
bool CanSkipFlush() const;
#if defined(OS_TIZEN)
bool enable_begin_main_frame_throttle = false;
bool enable_disturb_rasterizing_tasks = false;
+ bool enable_defer_commit_during_gesture = false;
bool enable_use_background_rasterizing_thread = false;
+
+ int default_tile_round_up = 64;
#endif
LayerTreeDebugState initial_debug_state;
void ForceDeadlineModeAsImmediate(bool enable) override;
bool IsDeadlineModeImmediate() override;
void ResetFrameSourceTime() override;
+ bool RequiresReadyToActivate() override;
#endif
// SchedulerClient implementation
void ScheduledActionPrepareTiles() override;
void ScheduledActionInvalidateCompositorFrameSink() override;
void SendBeginMainFrameNotExpectedSoon() override;
+#if defined(OS_TIZEN)
+ bool NeedsResetFrameSourceTimeOnFrameAck() override;
+ bool NeedsResetFrameSourceTimePerFrame() override;
+#endif
DrawResult DrawInternal(bool forced_draw);
class AutofillWebDataService;
class CardUnmaskDelegate;
class CreditCard;
-class FormFieldData;
class FormStructure;
class PersonalDataManager;
+struct FormFieldData;
struct FormData;
struct Suggestion;
#include "base/strings/string16.h"
#include "components/autofill/core/browser/autofill_profile.h"
-#include "grit/components_scaled_resources.h"
+#include "components/grit/components_scaled_resources.h"
namespace autofill {
namespace data_util {
// Removes the profile or credit card represented by |guid|.
virtual void RemoveByGUID(const std::string& guid);
- // Returns the profile with the specified |guid|, or NULL if there is no
+ // Returns the profile with the specified |guid|, or nullptr if there is no
// profile with the specified |guid|. Both web and auxiliary profiles may
// be returned.
AutofillProfile* GetProfileByGUID(const std::string& guid);
+ // Returns the profile with the specified |guid| from the given |profiles|, or
+ // nullptr if there is no profile with the specified |guid|.
+ static AutofillProfile* GetProfileFromProfilesByGUID(
+ const std::string& guid,
+ const std::vector<AutofillProfile*>& profiles);
+
// Adds |credit_card| to the web database.
void AddCreditCard(const CreditCard& credit_card);
// Sets a server credit card for test.
void AddServerCreditCardForTest(std::unique_ptr<CreditCard> credit_card);
- // Returns the credit card with the specified |guid|, or NULL if there is
+ // Returns the credit card with the specified |guid|, or nullptr if there is
// no credit card with the specified |guid|.
virtual CreditCard* GetCreditCardByGUID(const std::string& guid);
// Functionally equivalent to GetProfiles(), but also records metrics if
// |record_metrics| is true. Metrics should be recorded when the returned
// profiles will be used to populate the fields shown in an Autofill popup.
- const std::vector<AutofillProfile*>& GetProfiles(
+ virtual const std::vector<AutofillProfile*>& GetProfiles(
bool record_metrics) const;
// Returns credit card suggestions based on the |cards_to_suggest| and the
extern const char kShowAutofillTypePredictions[];
extern const char kWalletServiceUseSandbox[];
+// As of today TIZEN_AUTOFILL_SUPPORT is restricted to
+// tizen_src/ewk/efl_integration only. Move this switch under
+// TIZEN_AUTOFILL_SUPPORT when possible.
+#if defined(USE_EFL)
+extern const char kDisableAutofill[];
+#endif
+
#if defined(OS_ANDROID)
extern const char kDisableAccessorySuggestionView[];
extern const char kEnableAccessorySuggestionView[];
void MemoryUsageChanged(size_t new_bytes_allocated,
size_t new_bytes_free) const;
+ // Release expired unlocked discardable memory
+ void ReleaseExpiredMemory();
+ void ScheduleReleaseExpiredMemory();
+
mutable base::Lock lock_;
DiscardableSharedMemoryHeap heap_;
Delegate* const delegate_;
+ bool release_unlocked_memory_pending_;
+ const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+ base::WeakPtrFactory<ClientDiscardableSharedMemoryManager> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(ClientDiscardableSharedMemoryManager);
};
namespace base {
class DiscardableSharedMemory;
+class Time;
}
namespace discardable_memory {
// Release shared memory segments that have been purged.
void ReleasePurgedMemory();
+ // Release shared memory segments that have been expired.
+ bool ReleaseExpiredMemory(base::Time& expired_time);
+
// Returns total bytes of memory in heap.
size_t GetSize() const;
bool IsUsed() const;
bool IsResident() const;
+ bool IsExpired(const base::Time& expired_time, bool* is_unlocked) const;
+
bool ContainsSpan(Span* span) const;
base::trace_event::MemoryAllocatorDump* CreateMemoryAllocatorDump(
std::unique_ptr<PnaclCoordinator> pnacl_coordinator_;
- int exit_status_;
-
PP_NaClFileInfo nexe_file_info_;
pp::UMAPrivate uma_interface_;
--- /dev/null
+// Copyright 2017 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 COMPONENTS_PAYMENTS_AUTOFILL_PAYMENT_INSTRUMENT_H_
+#define COMPONENTS_PAYMENTS_AUTOFILL_PAYMENT_INSTRUMENT_H_
+
+#include <set>
+#include <string>
+#include <vector>
+
+#include "base/macros.h"
+#include "components/autofill/core/browser/credit_card.h"
+#include "components/payments/payment_instrument.h"
+
+namespace autofill {
+class AutofillProfile;
+}
+
+namespace payments {
+
+// Represents an Autofill/Payments credit card form of payment in Payment
+// Request.
+class AutofillPaymentInstrument : public PaymentInstrument {
+ public:
+ // |billing_profiles| is owned by the caller and should outlive this object.
+ AutofillPaymentInstrument(
+ const std::string& method_name,
+ const autofill::CreditCard& credit_card,
+ const std::vector<autofill::AutofillProfile*>& billing_profiles,
+ const std::string& app_locale);
+ ~AutofillPaymentInstrument() override;
+
+ // PaymentInstrument:
+ void InvokePaymentApp(PaymentInstrument::Delegate* delegate) override;
+
+ private:
+ const autofill::CreditCard credit_card_;
+ const std::vector<autofill::AutofillProfile*>& billing_profiles_;
+ const std::string app_locale_;
+
+ DISALLOW_COPY_AND_ASSIGN(AutofillPaymentInstrument);
+};
+
+} // namespace payments
+
+#endif // COMPONENTS_PAYMENTS_AUTOFILL_PAYMENT_INSTRUMENT_H_
--- /dev/null
+// Copyright 2017 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 COMPONENTS_PAYMENTS_BASIC_CARD_RESPONSE_H_
+#define COMPONENTS_PAYMENTS_BASIC_CARD_RESPONSE_H_
+
+#include <memory>
+
+#include "base/strings/string16.h"
+#include "components/payments/payment_address.h"
+
+namespace base {
+class DictionaryValue;
+}
+
+namespace payments {
+
+// Contains the response from the PaymentRequest API when a user accepts
+// payment with a Basic Payment Card payment method.
+struct BasicCardResponse {
+ public:
+ BasicCardResponse();
+ BasicCardResponse(const BasicCardResponse& other);
+ ~BasicCardResponse();
+
+ bool operator==(const BasicCardResponse& other) const;
+ bool operator!=(const BasicCardResponse& other) const;
+
+ // Populates |value| with the properties of this BasicCardResponse.
+ std::unique_ptr<base::DictionaryValue> ToDictionaryValue() const;
+
+ // The cardholder's name as it appears on the card.
+ base::string16 cardholder_name;
+
+ // The primary account number (PAN) for the payment card.
+ base::string16 card_number;
+
+ // A two-digit string for the expiry month of the card in the range 01 to 12.
+ base::string16 expiry_month;
+
+ // A two-digit string for the expiry year of the card in the range 00 to 99.
+ base::string16 expiry_year;
+
+ // A three or four digit string for the security code of the card (sometimes
+ // known as the CVV, CVC, CVN, CVE or CID).
+ base::string16 card_security_code;
+
+ // The billing address information associated with the payment card.
+ PaymentAddress billing_address;
+};
+
+} // namespace payments
+
+#endif // COMPONENTS_PAYMENTS_BASIC_CARD_RESPONSE_H_
--- /dev/null
+// Copyright 2017 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 COMPONENTS_PAYMENTS_PAYMENT_ADDRESS_H_
+#define COMPONENTS_PAYMENTS_PAYMENT_ADDRESS_H_
+
+#include <memory>
+#include <vector>
+
+#include "base/strings/string16.h"
+
+// C++ bindings for the PaymentRequest API PaymentAddress. Conforms to the
+// following spec:
+// https://w3c.github.io/browser-payment-api/#paymentaddress-interface
+
+namespace base {
+class DictionaryValue;
+}
+
+namespace payments {
+
+// A shipping or billing address.
+struct PaymentAddress {
+ public:
+ PaymentAddress();
+ PaymentAddress(const PaymentAddress& other);
+ ~PaymentAddress();
+
+ bool operator==(const PaymentAddress& other) const;
+ bool operator!=(const PaymentAddress& other) const;
+
+ // Populates |value| with the properties of this PaymentAddress.
+ std::unique_ptr<base::DictionaryValue> ToDictionaryValue() const;
+
+ // The CLDR (Common Locale Data Repository) region code. For example, US, GB,
+ // CN, or JP.
+ base::string16 country;
+
+ // The most specific part of the address. It can include, for example, a
+ // street name, a house number, apartment number, a rural delivery route,
+ // descriptive instructions, or a post office box number.
+ std::vector<base::string16> address_line;
+
+ // The top level administrative subdivision of the country. For example, this
+ // can be a state, a province, an oblast, or a prefecture.
+ base::string16 region;
+
+ // The city/town portion of the address.
+ base::string16 city;
+
+ // The dependent locality or sublocality within a city. For example, used for
+ // neighborhoods, boroughs, districts, or UK dependent localities.
+ base::string16 dependent_locality;
+
+ // The postal code or ZIP code, also known as PIN code in India.
+ base::string16 postal_code;
+
+ // The sorting code as used in, for example, France.
+ base::string16 sorting_code;
+
+ // The BCP-47 language code for the address. It's used to determine the field
+ // separators and the order of fields when formatting the address for display.
+ base::string16 language_code;
+
+ // The organization, firm, company, or institution at this address.
+ base::string16 organization;
+
+ // The name of the recipient or contact person.
+ base::string16 recipient;
+
+ // The phone number of the recipient or contact person.
+ base::string16 phone;
+};
+
+} // namespace payments
+
+#endif // COMPONENTS_PAYMENTS_PAYMENT_ADDRESS_H_
--- /dev/null
+// Copyright 2017 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 COMPONENTS_PAYMENTS_PAYMENT_INSTRUMENT_H_
+#define COMPONENTS_PAYMENTS_PAYMENT_INSTRUMENT_H_
+
+#include <set>
+#include <string>
+
+#include "base/macros.h"
+
+namespace payments {
+
+// Base class which represents a form of payment in Payment Request.
+class PaymentInstrument {
+ public:
+ class Delegate {
+ public:
+ virtual ~Delegate() {}
+
+ // Should be called with method name (e.g., "visa") and json-serialized
+ // stringified details.
+ virtual void OnInstrumentDetailsReady(
+ const std::string& method_name,
+ const std::string& stringified_details) = 0;
+
+ virtual void OnInstrumentDetailsError() = 0;
+ };
+
+ virtual ~PaymentInstrument() {}
+
+ // Will call into the |delegate| (can't be null) on success or error.
+ virtual void InvokePaymentApp(Delegate* delegate) = 0;
+
+ const std::string& method_name() { return method_name_; }
+
+ protected:
+ explicit PaymentInstrument(const std::string& method_name)
+ : method_name_(method_name) {}
+
+ private:
+ const std::string method_name_;
+
+ DISALLOW_COPY_AND_ASSIGN(PaymentInstrument);
+};
+
+} // namespace payments
+
+#endif // COMPONENTS_PAYMENTS_PAYMENT_INSTRUMENT_H_
#include "components/payments/currency_formatter.h"
#include "components/payments/payment_request.mojom.h"
#include "components/payments/payment_request_delegate.h"
+#include "components/payments/payment_request_spec.h"
+#include "components/payments/payment_request_state.h"
#include "mojo/public/cpp/bindings/binding.h"
namespace autofill {
class PaymentRequestWebContentsManager;
-class PaymentRequest : payments::mojom::PaymentRequest {
+// This class manages the interaction between the renderer (through the
+// PaymentRequestClient and Mojo stub implementation) and the UI (through the
+// PaymentRequestDelegate). The API user (merchant) specification (supported
+// payment methods, required information, order details) is stored in
+// PaymentRequestSpec, and the current user selection state (and related data)
+// is stored in PaymentRequestSpec.
+class PaymentRequest : public mojom::PaymentRequest,
+ public PaymentRequestSpec::Observer,
+ public PaymentRequestState::Delegate {
public:
PaymentRequest(
content::WebContents* web_contents,
void Show() override;
void UpdateWith(payments::mojom::PaymentDetailsPtr details) override {}
void Abort() override;
- void Complete(payments::mojom::PaymentComplete result) override {}
- void CanMakePayment() override {}
+ void Complete(payments::mojom::PaymentComplete result) override;
+ void CanMakePayment() override;
+
+ // PaymentRequestSpec::Observer:
+ void OnInvalidSpecProvided() override;
+
+ // PaymentRequestState::Delegate:
+ const std::string& GetApplicationLocale() override;
+ autofill::PersonalDataManager* GetPersonalDataManager() override;
+ void OnPaymentResponseAvailable(mojom::PaymentResponsePtr response) override;
// Called when the user explicitely cancelled the flow. Will send a message
// to the renderer which will indirectly destroy this object (through
// OnConnectionTerminated).
void UserCancelled();
+ // Called when the user clicks on the "Pay" button.
+ void Pay();
+
// As a result of a browser-side error or renderer-initiated mojo channel
// closure (e.g. there was an error on the renderer side, or payment was
// successful), this method is called. It is responsible for cleaning up,
const std::string& currency_system,
const std::string& locale_name);
- // Returns the appropriate Autofill Profiles for this user. On the first
- // invocation of either getter, the profiles are fetched from the
- // PersonalDataManager; on subsequent invocations, a cached version is
- // returned. The profiles returned are owned by the request object.
- const std::vector<autofill::AutofillProfile*>& shipping_profiles();
- const std::vector<autofill::AutofillProfile*>& contact_profiles();
-
- // Gets/sets the Autofill Profile representing the shipping address or contact
- // information currently selected for this PaymentRequest flow. Can return
- // null.
- autofill::AutofillProfile* selected_shipping_profile() const {
- return selected_shipping_profile_;
- }
- void set_selected_shipping_profile(autofill::AutofillProfile* profile) {
- selected_shipping_profile_ = profile;
- }
- autofill::AutofillProfile* selected_contact_profile() const {
- return selected_contact_profile_;
- }
- void set_selected_contact_profile(autofill::AutofillProfile* profile) {
- selected_contact_profile_ = profile;
- }
-
- const std::vector<autofill::CreditCard*>& credit_cards() {
- return credit_cards_;
- }
-
- // Returns the currently selected credit card for this PaymentRequest flow.
- // It's not guaranteed to be complete. Returns nullptr if there is no selected
- // card.
- autofill::CreditCard* selected_credit_card() { return selected_credit_card_; }
-
- autofill::PersonalDataManager* personal_data_manager() {
- return delegate_->GetPersonalDataManager();
- }
-
- payments::mojom::PaymentDetails* details() { return details_.get(); }
- const std::vector<std::string>& supported_card_networks() {
- return supported_card_networks_;
- }
- content::WebContents* web_contents() { return web_contents_; }
+ // Uses CurrencyFormatter to format |amount| with the currency symbol for this
+ // request's currency.
+ base::string16 GetFormattedCurrencyAmount(const std::string& amount);
- private:
- // Fetches the Autofill Profiles for this user from the PersonalDataManager,
- // and stores copies of them, owned by this Request, in profile_cache_.
- void PopulateProfileCache();
+ // Uses CurrencyFormatter to get the formatted currency code for this
+ // request's currency.
+ std::string GetFormattedCurrencyCode();
- // Sets the default values for the selected Shipping and Contact profiles, as
- // well as the selected Credit Card.
- void SetDefaultProfileSelections();
+ content::WebContents* web_contents() { return web_contents_; }
- // Validates the |method_data| and fills |supported_card_networks_|.
- void PopulateValidatedMethodData(
- const std::vector<payments::mojom::PaymentMethodDataPtr>& method_data);
+ PaymentRequestSpec* spec() { return spec_.get(); }
+ PaymentRequestState* state() { return state_.get(); }
+ private:
content::WebContents* web_contents_;
std::unique_ptr<PaymentRequestDelegate> delegate_;
// |manager_| owns this PaymentRequest.
PaymentRequestWebContentsManager* manager_;
mojo::Binding<payments::mojom::PaymentRequest> binding_;
payments::mojom::PaymentRequestClientPtr client_;
- payments::mojom::PaymentDetailsPtr details_;
std::unique_ptr<CurrencyFormatter> currency_formatter_;
- // A set of supported basic card networks.
- std::vector<std::string> supported_card_networks_;
-
- // Profiles may change due to (e.g.) sync events, so profiles are cached after
- // loading and owned here. They are populated once only, and ordered by
- // frecency.
- std::vector<std::unique_ptr<autofill::AutofillProfile>> profile_cache_;
- std::vector<autofill::AutofillProfile*> shipping_profiles_;
- std::vector<autofill::AutofillProfile*> contact_profiles_;
- autofill::AutofillProfile* selected_shipping_profile_;
- autofill::AutofillProfile* selected_contact_profile_;
- std::vector<std::unique_ptr<autofill::CreditCard>> card_cache_;
- std::vector<autofill::CreditCard*> credit_cards_;
- autofill::CreditCard* selected_credit_card_;
+
+ std::unique_ptr<PaymentRequestSpec> spec_;
+ std::unique_ptr<PaymentRequestState> state_;
DISALLOW_COPY_AND_ASSIGN(PaymentRequest);
};
--- /dev/null
+// Copyright 2017 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 COMPONENTS_PAYMENTS_PAYMENT_REQUEST_DATA_UTIL_H_
+#define COMPONENTS_PAYMENTS_PAYMENT_REQUEST_DATA_UTIL_H_
+
+#include <string>
+#include <vector>
+
+#include "base/strings/string16.h"
+
+namespace autofill {
+class AutofillProfile;
+class CreditCard;
+} // namespace autofill
+
+namespace payments {
+
+struct BasicCardResponse;
+struct PaymentAddress;
+
+namespace data_util {
+
+// Helper function to get an instance of web::PaymentAddress from an autofill
+// profile.
+PaymentAddress GetPaymentAddressFromAutofillProfile(
+ const autofill::AutofillProfile& profile,
+ const std::string& app_locale);
+
+// Helper function to get an instance of web::BasicCardResponse from an autofill
+// credit card.
+BasicCardResponse GetBasicCardResponseFromAutofillCreditCard(
+ const autofill::CreditCard& card,
+ const base::string16& cvc,
+ const std::vector<autofill::AutofillProfile*>& billing_profiles,
+ const std::string& app_locale);
+
+// Formats the given number |phone_number| to
+// i18n::phonenumbers::PhoneNumberUtil::PhoneNumberFormat::E164 format by using
+// i18n::phonenumbers::PhoneNumberUtil::Format, as defined in the Payment
+// Request spec
+// (https://w3c.github.io/browser-payment-api/#paymentrequest-updated-algorithm)
+std::string FormatPhoneForResponse(const std::string& phone_number,
+ const std::string& country_code);
+
+} // namespace data_util
+} // namespace payments
+
+#endif // COMPONENTS_PAYMENTS_PAYMENT_REQUEST_DATA_UTIL_H_
#ifndef COMPONENTS_PAYMENTS_PAYMENT_REQUEST_DELEGATE_H_
#define COMPONENTS_PAYMENTS_PAYMENT_REQUEST_DELEGATE_H_
+#include <string>
+
namespace autofill {
class PersonalDataManager;
}
// Gets the PersonalDataManager associated with this PaymentRequest flow.
// Cannot be null.
virtual autofill::PersonalDataManager* GetPersonalDataManager() = 0;
+
+ virtual const std::string& GetApplicationLocale() const = 0;
};
} // namespace payments
--- /dev/null
+// Copyright 2017 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 COMPONENTS_PAYMENTS_PAYMENT_REQUEST_SPEC_H_
+#define COMPONENTS_PAYMENTS_PAYMENT_REQUEST_SPEC_H_
+
+#include <string>
+#include <vector>
+
+#include "base/macros.h"
+#include "base/observer_list.h"
+#include "components/payments/payment_request.mojom.h"
+
+namespace payments {
+
+// The spec contains all the options that the merchant has specified about this
+// Payment Request. It's a (mostly) read-only view, which can be updated in
+// certain occasions by the merchant (see API).
+class PaymentRequestSpec {
+ public:
+ // Any class call add itself as Observer via AddObserver() and receive
+ // notification about spec events.
+ class Observer {
+ public:
+ // Called when the provided spec (details, options, method_data) is invalid.
+ virtual void OnInvalidSpecProvided() = 0;
+
+ protected:
+ virtual ~Observer() {}
+ };
+
+ PaymentRequestSpec(mojom::PaymentOptionsPtr options,
+ mojom::PaymentDetailsPtr details,
+ std::vector<mojom::PaymentMethodDataPtr> method_data,
+ PaymentRequestSpec::Observer* observer);
+ ~PaymentRequestSpec();
+
+ void AddObserver(Observer* observer);
+ void RemoveObserver(Observer* observer);
+
+ bool request_shipping() const { return options_->request_shipping; }
+ bool request_payer_name() const { return options_->request_payer_name; }
+ bool request_payer_phone() const { return options_->request_payer_phone; }
+ bool request_payer_email() const { return options_->request_payer_email; }
+
+ const std::vector<std::string>& supported_card_networks() {
+ return supported_card_networks_;
+ }
+
+ const mojom::PaymentDetails& details() const { return *details_.get(); }
+ const mojom::PaymentOptions& options() const { return *options_.get(); }
+
+ private:
+ // Validates the |method_data| and fills |supported_card_networks_|.
+ void PopulateValidatedMethodData(
+ const std::vector<mojom::PaymentMethodDataPtr>& method_data);
+
+ // Will notify all observers that the spec is invalid.
+ void NotifyOnInvalidSpecProvided();
+
+ mojom::PaymentOptionsPtr options_;
+ mojom::PaymentDetailsPtr details_;
+
+ // A list of supported basic card networks, in order that they were specified
+ // by the merchant.
+ std::vector<std::string> supported_card_networks_;
+
+ base::ObserverList<Observer> observers_;
+
+ DISALLOW_COPY_AND_ASSIGN(PaymentRequestSpec);
+};
+
+} // namespace payments
+
+#endif // COMPONENTS_PAYMENTS_PAYMENT_REQUEST_SPEC_H_
--- /dev/null
+// Copyright 2017 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 COMPONENTS_PAYMENTS_PAYMENT_REQUEST_STATE_H_
+#define COMPONENTS_PAYMENTS_PAYMENT_REQUEST_STATE_H_
+
+#include "base/macros.h"
+#include "base/observer_list.h"
+#include "components/autofill/core/browser/personal_data_manager.h"
+#include "components/payments/payment_request.mojom.h"
+#include "components/payments/payment_instrument.h"
+
+namespace autofill {
+class AutofillProfile;
+class CreditCard;
+} // namespace autofill
+
+namespace payments {
+
+class PaymentRequestSpec;
+
+// Keeps track of the information currently selected by the user and whether the
+// user is ready to pay. Uses information from the PaymentRequestSpec, which is
+// what the merchant has specified, as input into the "is ready to pay"
+// computation.
+class PaymentRequestState : public PaymentInstrument::Delegate {
+ public:
+ // Any class call add itself as Observer via AddObserver() and receive
+ // notification about the state changing.
+ class Observer {
+ public:
+ // Called when the information (payment method, address/contact info,
+ // shipping option) changes.
+ virtual void OnSelectedInformationChanged() = 0;
+
+ protected:
+ virtual ~Observer() {}
+ };
+
+ class Delegate {
+ public:
+ virtual const std::string& GetApplicationLocale() = 0;
+ // Used to get the user's data.
+ virtual autofill::PersonalDataManager* GetPersonalDataManager() = 0;
+ // Called when the PaymentResponse is available.
+ virtual void OnPaymentResponseAvailable(
+ mojom::PaymentResponsePtr response) = 0;
+
+ protected:
+ virtual ~Delegate() {}
+ };
+
+ PaymentRequestState(PaymentRequestSpec* spec, Delegate* delegate);
+ ~PaymentRequestState() override;
+
+ void AddObserver(Observer* observer);
+ void RemoveObserver(Observer* observer);
+
+ // PaymentInstrument::Delegate:
+ void OnInstrumentDetailsReady(
+ const std::string& method_name,
+ const std::string& stringified_details) override;
+ void OnInstrumentDetailsError() override {}
+
+ // Initiates the generation of the PaymentResponse. Callers should check
+ // |is_ready_to_pay|, which is inexpensive.
+ void GeneratePaymentResponse();
+
+ // Gets the Autofill Profile representing the shipping address or contact
+ // information currently selected for this PaymentRequest flow. Can return
+ // null.
+ autofill::AutofillProfile* selected_shipping_profile() const {
+ return selected_shipping_profile_;
+ }
+ autofill::AutofillProfile* selected_contact_profile() const {
+ return selected_contact_profile_;
+ }
+ // Returns the currently selected credit card for this PaymentRequest flow.
+ // It's not guaranteed to be complete. Returns nullptr if there is no selected
+ // card.
+ autofill::CreditCard* selected_credit_card() const {
+ return selected_credit_card_;
+ }
+ const std::string& selected_shipping_option() {
+ return selected_shipping_option_;
+ }
+
+ // Returns the appropriate Autofill Profiles for this user. The profiles
+ // returned are owned by the PaymentRequestState.
+ const std::vector<autofill::AutofillProfile*>& shipping_profiles() {
+ return shipping_profiles_;
+ }
+ const std::vector<autofill::AutofillProfile*>& contact_profiles() {
+ return contact_profiles_;
+ }
+ const std::vector<autofill::CreditCard*>& credit_cards() {
+ return credit_cards_;
+ }
+
+ // Setters to change the selected information. Will have the side effect of
+ // recomputing "is ready to pay" and notify observers.
+ void SetSelectedShippingProfile(autofill::AutofillProfile* profile);
+ void SetSelectedContactProfile(autofill::AutofillProfile* profile);
+ void SetSelectedCreditCard(autofill::CreditCard* card);
+ void SetSelectedShippingOption(const std::string& id);
+
+ bool is_ready_to_pay() { return is_ready_to_pay_; }
+
+ // Returns a new mojo PaymentAddress based on the specified
+ // |profile| and |app_locale|.
+ static mojom::PaymentAddressPtr GetMojomPaymentAddressFromAutofillProfile(
+ const autofill::AutofillProfile& profile,
+ const std::string& app_locale);
+
+ private:
+ // Fetches the Autofill Profiles for this user from the PersonalDataManager,
+ // and stores copies of them, owned by this PaymentRequestState, in
+ // profile_cache_.
+ void PopulateProfileCache();
+
+ // Sets the initial selections for credit card and profiles, and notifies
+ // observers.
+ void SetDefaultProfileSelections();
+
+ // Uses the user-selected information as well as the merchant spec to update
+ // |is_ready_to_pay_| with the current state, by validating that all the
+ // required information is available. Will notify observers.
+ void UpdateIsReadyToPayAndNotifyObservers();
+
+ // Notifies all observers that selected information has changed.
+ void NotifyOnSelectedInformationChanged();
+
+ // Returns whether the selected data satisfies the PaymentDetails requirements
+ // (payment methods).
+ bool ArePaymentDetailsSatisfied();
+ // Returns whether the selected data satisfies the PaymentOptions requirements
+ // (contact info, shipping address).
+ bool ArePaymentOptionsSatisfied();
+
+ // Updates the selected_shipping_option based on the data passed to this
+ // payment request by the website. This will set selected_shipping_option_ to
+ // the last option marked selected in the options array.
+ void UpdateSelectedShippingOption();
+
+ bool is_ready_to_pay_;
+ const std::string& app_locale_;
+
+ // Not owned. Never null. Both outlive this object.
+ PaymentRequestSpec* spec_;
+ Delegate* delegate_;
+
+ autofill::AutofillProfile* selected_shipping_profile_;
+ autofill::AutofillProfile* selected_contact_profile_;
+ autofill::CreditCard* selected_credit_card_;
+ // The shipping options (and thus this pointer) are owned by |spec_| which
+ // outlives this object.
+ std::string selected_shipping_option_;
+
+ std::unique_ptr<PaymentInstrument> selected_payment_instrument_;
+
+ // Profiles may change due to (e.g.) sync events, so profiles are cached after
+ // loading and owned here. They are populated once only, and ordered by
+ // frecency.
+ std::vector<std::unique_ptr<autofill::AutofillProfile>> profile_cache_;
+ std::vector<autofill::AutofillProfile*> shipping_profiles_;
+ std::vector<autofill::AutofillProfile*> contact_profiles_;
+ std::vector<std::unique_ptr<autofill::CreditCard>> card_cache_;
+ std::vector<autofill::CreditCard*> credit_cards_;
+
+ base::ObserverList<Observer> observers_;
+
+ DISALLOW_COPY_AND_ASSIGN(PaymentRequestState);
+};
+
+} // namespace payments
+
+#endif // COMPONENTS_PAYMENTS_PAYMENT_REQUEST_STATE_H_
static bool isValidScriptCodeFormat(const std::string& code,
std::string* optionalErrorMessage);
+ // Splits BCP-57 |tag| into |language_code| and |script_code|.
+ static void SplitLanguageTag(const std::string& tag,
+ std::string* language_code,
+ std::string* script_code);
+
// Returns true if the payment address is valid:
// - Has a valid region code
// - Has a valid language code, if any.
// loaded but idle. Doesn't work for blocked plugins, which is not loaded.
virtual v8::Local<v8::Object> GetV8ScriptableObject(v8::Isolate*) const = 0;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual bool PluginIsAvplayer() { return false; }
+#endif
+
// Called when the unobscured rect of the plugin is updated.
virtual void OnUnobscuredRectUpdate(const gfx::Rect& unobscured_rect) {}
};
#include "content/public/browser/devtools_agent_host.h"
#include "net/http/http_status_code.h"
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "net/url_request/view_cache_helper.h"
+#endif
+
namespace base {
class DictionaryValue;
class Thread;
namespace net {
class IPEndPoint;
class HttpServerRequestInfo;
+#if defined(OS_TIZEN_TV_PRODUCT)
+class ViewCacheHelper;
+class URLRequestContextGetter;
+#endif
}
namespace content {
#if defined(OS_TIZEN_TV_PRODUCT)
void ReleasePort();
+ void setContextGetter(net::URLRequestContextGetter* getter);
+ void SendCacheResponse( int connection_id_, std::string& data, int result);
#endif
private:
#if defined(OS_TIZEN_TV_PRODUCT)
void OnTerminateSocket(int connection_id);
+ void OnHttpCacheRequest(int connection_id,
+ const net::HttpServerRequestInfo& info);
+ std::unique_ptr<base::DictionaryValue> SerializeDescriptorHttpCache(
+ const std::string& host);
#endif
void OnJsonRequest(int connection_id,
std::map<std::string, scoped_refptr<DevToolsAgentHost>>;
DescriptorMap agent_host_map_;
base::WeakPtrFactory<DevToolsHttpHandler> weak_factory_;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ net::ViewCacheHelper cache_helper_;
+ net::URLRequestContextGetter* context_getter_;
+#endif
DISALLOW_COPY_AND_ASSIGN(DevToolsHttpHandler);
};
int32_t OnMsgRead(const ppapi::host::HostMessageContext* context,
int32_t bytes_to_read);
int32_t OnMsgWrite(const ppapi::host::HostMessageContext* context,
- const std::string& data);
+ const ppapi::DataView& data);
int32_t OnMsgListen(const ppapi::host::HostMessageContext* context,
int32_t backlog);
int32_t OnMsgAccept(const ppapi::host::HostMessageContext* context);
int32_t pp_result);
void SendReadReply(const ppapi::host::ReplyMessageContext& context,
int32_t pp_result,
- const std::string& data);
+ const ppapi::DataView& data);
void SendReadError(const ppapi::host::ReplyMessageContext& context,
int32_t pp_error);
void SendWriteReply(const ppapi::host::ReplyMessageContext& context,
namespace host {
struct ReplyMessageContext;
}
-
-#if defined(TIZEN_PEPPER_EXTENSIONS)
-namespace proxy {
-struct SerializedHandle;
-}
-#endif // defined(TIZEN_PEPPER_EXTENSIONS)
}
namespace content {
const PP_NetAddress_Private& addr);
int32_t OnMsgLeaveGroup(const ppapi::host::HostMessageContext* context,
const PP_NetAddress_Private& addr);
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ int32_t OnMsgGetOption(const ppapi::host::HostMessageContext* context,
+ const PP_UDPSocket_Option& name);
+#endif
void DoBind(const ppapi::host::ReplyMessageContext& context,
const PP_NetAddress_Private& addr);
void SendBindReply(const ppapi::host::ReplyMessageContext& context,
int32_t result,
-#if defined(TIZEN_PEPPER_EXTENSIONS)
- const ppapi::proxy::SerializedHandle& handle,
-#endif
const PP_NetAddress_Private& addr);
void SendRecvFromResult(int32_t result,
const std::string& data,
void SendSendToError(const ppapi::host::ReplyMessageContext& context,
int32_t result);
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ void SendGetOptionReply(const ppapi::host::ReplyMessageContext& context,
+ int32_t result,
+ const ppapi::SocketOptionData& value);
+#endif
+
int32_t CanUseMulticastAPI(const PP_NetAddress_Private& addr);
// Bitwise-or of SocketOption flags. This stores the state about whether
#include "ui/base/window_open_disposition.h"
class SkBitmap;
-#if defined(OS_TIZEN_TV_PRODUCT)
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(USE_WAYLAND)
struct ViewHostMsg_FocusedNodeChanged_Params;
#endif
const gfx::Rect& node_bounds_in_viewport,
bool is_select_node,
base::string16 node_id
-#if defined(OS_TIZEN_TV_PRODUCT)
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(USE_WAYLAND)
,
const ViewHostMsg_FocusedNodeChanged_Params& params
#endif
//SBROWSER_FORM_NAVIGATION
//FIXME: FORM Navigation Features to be re-implemented for m39
- //Bug: http://107.108.218.239/bugzilla/show_bug.cgi?id=324
+ //Bug: http://107.108.218.239/bugzilla/show_bug.cgi?id=324
//virtual void moveToPrevInput() override;
//virtual void moveToNextInput() override;
virtual gfx::AcceleratedWidget AccessibilityGetAcceleratedWidget();
virtual gfx::NativeViewAccessible AccessibilityGetNativeViewAccessible();
+#if defined(USE_EFL)
+ virtual bool IsFirstVisuallyNonEmptyPaint() const;
+#endif
+
// Informs that the focused DOM node has changed.
#if defined(OS_ANDROID)
virtual void FocusedNodeChanged(bool is_editable_node,
const gfx::Rect& node_bounds_in_screen,
bool is_select_node,
base::string16 node_id) {}
-#elif defined(OS_TIZEN_TV_PRODUCT)
- virtual void FocusedNodeChanged(bool is_editable_node,
- const gfx::Rect& node_bounds_in_screen,
- bool is_radio_or_checkbox) {}
#else
virtual void FocusedNodeChanged(bool is_editable_node,
- const gfx::Rect& node_bounds_in_screen) {}
+ const gfx::Rect& node_bounds_in_screen
+#if defined(OS_TIZEN_TV_PRODUCT)
+ , bool is_radio_or_checkbox
+#endif
+#if defined(USE_WAYLAND)
+ , bool is_content_editable
+#endif
+ ) {}
#endif
virtual void OnSwapCompositorFrame(uint32_t compositor_frame_sink_id,
int GetCrashedErrorCode() const override;
bool IsBeingDestroyed() const override;
void NotifyNavigationStateChanged(InvalidateTypes changed_flags) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void SetUserInputURLNeedNotify(bool is_url_need_notify) override;
+ bool GetUserInputURLNeedNotify() const override;
+#endif
void OnAudioStateChanged(bool is_audio_playing) override;
base::TimeTicks GetLastActiveTime() const override;
void SetLastActiveTime(base::TimeTicks last_active_time) override;
const std::vector<gfx::RectF>& rects,
const gfx::RectF& active_rect);
#endif
+ void OnNotifyUrlForPlayingVideo(const GURL& url);
+
+ bool did_first_visually_non_empty_paint() const {
+ return did_first_visually_non_empty_paint_;
+ }
private:
friend class WebContentsObserver;
// See ResumeLoadingCreatedWebContents.
bool is_resume_pending_;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool is_url_need_notify_;
+#endif
+
// Data for current page -----------------------------------------------------
// When a title cannot be taken from any entry, this title will be used.
IPC_STRUCT_TRAITS_MEMBER(video)
IPC_STRUCT_TRAITS_MEMBER(hotword_enabled)
IPC_STRUCT_TRAITS_MEMBER(disable_local_echo)
+ IPC_STRUCT_TRAITS_MEMBER(video_facing)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(content::StreamDeviceInfo)
// See crbug.com/564574 for discussion on possibly #ifdef'ing this out.
bool hotword_enabled; // kMediaStreamAudioHotword = "googHotword";
bool disable_local_echo;
+ // The facing mode for video capture device.
+ int video_facing;
};
// StreamDeviceInfo describes information about a device.
IPC_MESSAGE_ROUTED1(ViewHostMsg_ShowFullscreenWidget,
int /* route_id */)
+#if defined(OS_TIZEN_TV_PRODUCT)
+// Message to request canvas to be shown in full-screen.
+IPC_MESSAGE_ROUTED(ViewMsg_RequestCanvasFullscreen)
+#endif
+
// Sent by the renderer process to request that the browser close the view.
// This corresponds to the window.close() API, and the browser may ignore
// this message. Otherwise, the browser will generates a ViewMsg_Close
// webpage. The first parameter says whether the newly focused element needs
// keyboard input (true for textfields, text areas and content editable divs).
// The second parameter is the node bounds relative to RenderWidgetHostView.
-#if defined(OS_TIZEN_TV_PRODUCT)
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(USE_WAYLAND)
IPC_STRUCT_BEGIN(ViewHostMsg_FocusedNodeChanged_Params)
+#if defined(OS_TIZEN_TV_PRODUCT)
IPC_STRUCT_MEMBER(bool, is_radio_or_checkbox_input_node)
+#endif
+#if defined(USE_WAYLAND)
+ IPC_STRUCT_MEMBER(bool, is_content_editable)
+#endif
IPC_STRUCT_END()
IPC_MESSAGE_ROUTED5(ViewHostMsg_FocusedNodeChanged,
gfx::Rect /* node_bounds */,
bool /* is_select_node */,
base::string16 /* node_id */
-#if defined(OS_TIZEN_TV_PRODUCT)
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(USE_WAYLAND)
,
ViewHostMsg_FocusedNodeChanged_Params /* params */
#endif
int /* request_id */,
base::FilePath /* file_path */)
+IPC_MESSAGE_ROUTED1(ViewHostMsg_NotifyUrlForPlayingVideo, GURL /* url */)
+
// Tells the browser to move the focus to the next (previous if reverse is
// true) focusable element.
IPC_MESSAGE_ROUTED1(ViewHostMsg_TakeFocus,
bool suppress_callbacks,
bool reset_state) = 0;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual void OnDialogClosed(WebContents* web_contents) {}
+#endif
+
virtual ~JavaScriptDialogManager() {}
};
// change.
virtual void NotifyNavigationStateChanged(InvalidateTypes changed_flags) = 0;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual void SetUserInputURLNeedNotify(bool is_url_need_notify) = 0;
+ virtual bool GetUserInputURLNeedNotify() const = 0;
+#endif
+
// Notifies the WebContents that audio started or stopped being audible.
virtual void OnAudioStateChanged(bool is_audio_playing) = 0;
virtual void WillImePanelShow() {}
#endif
+ virtual void SetTooltipText(const base::string16& text) {}
+
#if defined(OS_ANDROID)
// Provides the rects of the current find-in-page matches.
// Sent as a reply to RequestFindMatchRects.
const int request_id) {}
virtual void OnRecognizeArticleResult(bool is_article,
const base::string16& page_url) {}
-
+ virtual void NotifyUrlForPlayingVideo(const GURL& url) {}
// Invoked when the preferred size of the contents has been changed.
virtual void UpdatePreferredSize(WebContents* web_contents,
const gfx::Size& pref_size) {}
// Requests the app banner. This method is called from the DevTools.
virtual void RequestAppBannerFromDevTools(content::WebContents* web_contents);
#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual void NotifySubtitleState(int state, double time_stamp = 0.0) {}
+ virtual void NotifySubtitlePlay(int active_track_id,
+ const std::string& url,
+ const std::string& lang) {}
+ virtual void NotifySubtitleData(int track_id,
+ double time_stamp,
+ const uint8_t* data,
+ unsigned size) {}
+ virtual void UpdateCurrentTime(double current_time) {}
virtual void NotifyPlaybackState(int state,
const std::string& url,
const std::string& mimeType,
bool* mediaResourceAcquired,
std::string* translatedURL,
std::string* drmInfo) {}
+ virtual bool GetMarlinEnable() { return false; }
+ virtual bool IsHighBitRate() { return false; }
#endif
protected:
virtual ~WebContentsDelegate();
IPC_STRUCT_TRAITS_MEMBER(use_scrollbar_thumb_focus_notifications)
IPC_STRUCT_TRAITS_MEMBER(use_arrow_scroll)
IPC_STRUCT_TRAITS_MEMBER(allow_file_access_from_external_urls)
+ IPC_STRUCT_TRAITS_MEMBER(media_subtitle_notification_enabled)
#endif
IPC_STRUCT_TRAITS_MEMBER(navigate_on_drag_drop)
IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled)
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
+CONTENT_EXPORT extern const char kEnableMediaSubtitleNotification[];
CONTENT_EXPORT extern const char kEnableMediaPlaybackNotification[];
+#if defined(TIZEN_TBM_SUPPORT)
+CONTENT_EXPORT extern const char kDisableOverlayByWebGL[];
+#endif // defined(TIZEN_TBM_SUPPORT)
#endif
#if defined(OS_TIZEN)
CONTENT_EXPORT extern const char kChromeUIServiceWorkerInternalsHost[];
CONTENT_EXPORT extern const char kChromeUITracingHost[];
CONTENT_EXPORT extern const char kChromeUIUberHost[];
+CONTENT_EXPORT extern const char kChromeUIVersionHost[];
CONTENT_EXPORT extern const char kChromeUIWebRTCInternalsHost[];
// Full about URLs (including schemes).
CONTENT_EXPORT extern const char kChromeUINetworkErrorURL[];
CONTENT_EXPORT extern const char kChromeUIPpapiFlashCrashURL[];
CONTENT_EXPORT extern const char kChromeUIPpapiFlashHangURL[];
+CONTENT_EXPORT extern const char kChromeUIVersion[];
// Special URL used to start a navigation to an error page.
CONTENT_EXPORT extern const char kUnreachableWebDataURL[];
} tizen_version;
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
+ bool media_subtitle_notification_enabled;
bool media_playback_notification_enabled;
// hosted app need to get local access privilege when they use tv device api
GURL* new_url,
bool& is_decrypted_file);
#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual void RenderViewDestroyed() { };
+
virtual bool GetFileDecryptedDataBuffer(const GURL& url,
std::vector<char>* data);
// Handle scale factor change notification.
virtual void DidChangePageScaleFactor() {}
+#if defined(OS_TIZEN)
+ virtual void PlayLinkEffect() {}
+#endif
+
// IPC::Listener implementation.
bool OnMessageReceived(const IPC::Message& message) override;
// Called when the stream is created.
void StreamCreated(base::SharedMemoryHandle shared_memory_handle,
size_t shared_memory_size,
+ uint32_t shared_memory_segment_count,
base::SyncSocket::Handle socket);
void StreamCreationFailed();
void OnOpenComplete(int32_t result,
base::SharedMemoryHandle shared_memory_handle,
size_t shared_memory_size,
+ uint32_t shared_memory_segment_count,
base::SyncSocket::Handle socket_handle);
int32_t GetRemoteHandles(
void Close();
- void SendOpenReply(int32_t result);
+ void SendOpenReply(int32_t result, uint32_t shared_memory_segment_count);
// Non-owning pointer.
RendererPpapiHostImpl* renderer_ppapi_host_;
#if defined(TIZEN_PEPPER_EXTENSIONS)
void UpdateHole();
// Compositor Callbacks:
- void OnDrawableContentRectChanged(gfx::Rect rect);
+ void OnDrawableContentRectChanged(gfx::Rect rect, bool);
void OnOpacityChanged(bool opaque);
RendererPpapiHost* renderer_ppapi_host_;
#include "base/memory/ref_counted.h"
#include "media/audio/audio_output_ipc.h"
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+#include "ppapi/c/samsung/ppb_audio_config_samsung.h"
+#endif
+
namespace media {
class AudioParameters;
}
public:
// Factory function, returns NULL on failure. StreamCreated() will be called
// when the stream is created.
- static PepperPlatformAudioOutput* Create(int sample_rate,
- int frames_per_buffer,
- int source_render_frame_id,
- AudioHelper* client);
+ static PepperPlatformAudioOutput* Create(
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ PP_AudioMode audio_mode,
+#endif
+ int sample_rate,
+ int frames_per_buffer,
+ int source_render_frame_id,
+ AudioHelper* client);
// The following three methods are all called on main thread.
PepperPlatformAudioOutput();
- bool Initialize(int sample_rate,
- int frames_per_buffer,
- int source_render_frame_id,
- AudioHelper* client);
+ bool Initialize(
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ PP_AudioMode audio_mode,
+#endif
+ int sample_rate,
+ int frames_per_buffer,
+ int source_render_frame_id,
+ AudioHelper* client);
// I/O thread backends to above functions.
void InitializeOnIOThread(const media::AudioParameters& params);
// Non-owning pointer.
RendererPpapiHost* renderer_ppapi_host_;
- media::VideoCodecProfile profile_;
+ media::VideoCodecProfile profile_ = media::VIDEO_CODEC_PROFILE_UNKNOWN;
std::unique_ptr<media::VideoDecodeAccelerator> decoder_;
// This is parallel to |shm_buffers_|.
std::vector<uint8_t> shm_buffer_busy_;
- uint32_t min_picture_count_;
+ uint32_t min_picture_count_ = 0;
typedef std::map<uint32_t, PictureBufferState> PictureBufferMap;
PictureBufferMap picture_buffer_map_;
blink::WebContentDecryptionModule* initial_cdm,
const blink::WebString& sink_id) override;
#if defined(ENABLE_TIZEN_MEDIA_RECORDER)
- blink::WebMediaRecorderHandler* createMediaCaptureHandler() override;
+ blink::WebMediaRecorderHandler* createMediaRecorderHandler() override;
#endif
blink::WebApplicationCacheHost* createApplicationCacheHost(
blink::WebApplicationCacheHostClient* client) override;
blink::InterfaceRegistry* interfaceRegistry() override;
blink::WebPageVisibilityState visibilityState() const override;
-#if defined(TIZEN_VIDEO_HOLE)
- void setPresetDisableVideoHole(bool disable) override;
-#endif
-
#if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
void requestRotateWebMediaPlayer(
blink::WebMediaPlayerRotate rotate) override;
#endif
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void checkHLSSupport(const blink::WebString&, bool&) override;
+#endif
// WebFrameSerializerClient implementation:
void didSerializeDataForFrame(
const blink::WebCString& data,
RendererMediaPlayerManager* GetMediaPlayerManager();
#endif
#if defined(ENABLE_TIZEN_MEDIA_RECORDER)
- RenderFrameObserver* GetMediaCaptureManager();
+ RenderFrameObserver* GetMediaRecorderManager();
#endif
bool AreSecureCodecsSupported();
#endif
#if defined(ENABLE_TIZEN_MEDIA_RECORDER)
- RenderFrameObserver* media_capture_manager_;
+ RenderFrameObserver* media_recorder_manager_;
#endif
// The CDM and decoder factory attached to this frame, lazily initialized.
void didChangePageScaleFactor() override;
+#if defined(OS_TIZEN)
+ void playLinkEffect() override;
+#endif
+
// RenderView implementation -------------------------------------------------
bool Send(IPC::Message* message) override;
void DidCompletePageScaleAnimation() override;
void OnDeviceScaleFactorChanged() override;
void ResizeWebWidget() override;
-
+ void notifyUrlForPlayingVideo(const blink::WebURL& url) override;
void OnCaptureRendererContentSnapShot(const gfx::Rect& src_subrect,
const float page_scale_factor,
const int request_id);
#endif
#if defined(USE_EFL)
- void OnRequestSelectionRect();
+ void OnRequestSelectionRect();
+#endif
+
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void OnRequestCanvasFullscreen();
#endif
void OnRecognizeArticle(int mode);
#if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
bool getSystemAutoRotationSetting() override;
#endif
+#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
+ bool IsKantm2() override { return is_kantm2_; }
+#endif
blink::WebDatabaseObserver* databaseObserver() override;
class SandboxSupport;
std::unique_ptr<SandboxSupport> sandbox_support_;
#endif
+#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
+ bool is_kantm2_;
+#endif
// This counter keeps track of the number of times sudden termination is
// enabled or disabled. It starts at 0 (enabled) and for every disable
mojom::URLLoaderFactoryAssociatedPtr url_loader_factory_;
+
DISALLOW_COPY_AND_ASSIGN(RendererBlinkPlatformImpl);
};
GAMEPAD_SOURCE_TEST,
GAMEPAD_SOURCE_WIN_XINPUT,
GAMEPAD_SOURCE_WIN_RAW,
+ GAMEPAD_SOURCE_TIZEN_TV,
};
enum GamepadActiveState {
#include "device/gamepad/game_controller_data_fetcher_mac.h"
#include "device/gamepad/gamepad_platform_data_fetcher_mac.h"
#include "device/gamepad/xbox_data_fetcher_mac.h"
+#elif defined(OS_TIZEN_TV_PRODUCT) && defined(USE_TIZEN_TV_ACCESSORY)
+#include "tizen_src/ewk/efl_integration/browser/gamepad/gamepad_platform_data_fetcher_tizen_tv.h"
#elif defined(OS_LINUX)
#include "device/gamepad/gamepad_platform_data_fetcher_linux.h"
#endif
manager->AddFactory(new GamepadPlatformDataFetcherMac::Factory());
manager->AddFactory(new XboxDataFetcher::Factory());
+#elif defined(OS_TIZEN_TV_PRODUCT) && defined(USE_TIZEN_TV_ACCESSORY)
+ manager->AddFactory(new GamepadPlatformDataFetcherTizenTV::Factory());
+
#elif defined(OS_LINUX) && defined(USE_UDEV)
manager->AddFactory(new GamepadPlatformDataFetcherLinux::Factory());
namespace blink {
-extern const char mediaControlsMobileCss[4220];
+extern const char mediaControlsMobileCss[6083];
+extern const char mediaControlsTVCss[6000];
extern const char mediaControlsWearableCss[1616];
extern const char themeChromiumTizenCss[598];
extern const char themeChromiumTizenMobileCss[122];
// Generated by //build/write_build_date_header.py
#ifndef BUILD_DATE
-#define BUILD_DATE "Oct 01 2017 05:00:00"
+#define BUILD_DATE "Jan 15 2018 05:00:00"
#endif // BUILD_DATE
--- /dev/null
+// Copyright 2014 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 has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8MediaSyncPara_h
+#define V8MediaSyncPara_h
+
+#include "bindings/core/v8/ScriptWrappable.h"
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "bindings/core/v8/V8DOMWrapper.h"
+#include "bindings/core/v8/WrapperTypeInfo.h"
+#include "core/CoreExport.h"
+#include "core/html/MediaSyncPara.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class V8MediaSyncPara {
+ STATIC_ONLY(V8MediaSyncPara);
+ public:
+ CORE_EXPORT static bool hasInstance(v8::Local<v8::Value>, v8::Isolate*);
+ static v8::Local<v8::Object> findInstanceInPrototypeChain(v8::Local<v8::Value>, v8::Isolate*);
+ CORE_EXPORT static v8::Local<v8::FunctionTemplate> domTemplate(v8::Isolate*, const DOMWrapperWorld&);
+ static MediaSyncPara* toImpl(v8::Local<v8::Object> object) {
+ return toScriptWrappable(object)->toImpl<MediaSyncPara>();
+ }
+ CORE_EXPORT static MediaSyncPara* toImplWithTypeCheck(v8::Isolate*, v8::Local<v8::Value>);
+ CORE_EXPORT static const WrapperTypeInfo wrapperTypeInfo;
+ template<typename VisitorDispatcher>
+ static void trace(VisitorDispatcher visitor, ScriptWrappable* scriptWrappable) {
+ visitor->trace(scriptWrappable->toImpl<MediaSyncPara>());
+ }
+ static void traceWrappers(WrapperVisitor* visitor, ScriptWrappable* scriptWrappable) {
+ visitor->traceWrappers(scriptWrappable->toImpl<MediaSyncPara>());
+ }
+ static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0;
+};
+
+template <>
+struct V8TypeOf<MediaSyncPara> {
+ typedef V8MediaSyncPara Type;
+};
+
+} // namespace blink
+
+#endif // V8MediaSyncPara_h
--- /dev/null
+// Copyright 2014 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 has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8RegisterTimelineEvent_h
+#define V8RegisterTimelineEvent_h
+
+#include "bindings/core/v8/ScriptWrappable.h"
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "bindings/core/v8/V8DOMWrapper.h"
+#include "bindings/core/v8/V8Event.h"
+#include "bindings/core/v8/WrapperTypeInfo.h"
+#include "core/CoreExport.h"
+#include "core/html/RegisterTimelineEvent.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class V8RegisterTimelineEvent {
+ STATIC_ONLY(V8RegisterTimelineEvent);
+ public:
+ CORE_EXPORT static bool hasInstance(v8::Local<v8::Value>, v8::Isolate*);
+ static v8::Local<v8::Object> findInstanceInPrototypeChain(v8::Local<v8::Value>, v8::Isolate*);
+ CORE_EXPORT static v8::Local<v8::FunctionTemplate> domTemplate(v8::Isolate*, const DOMWrapperWorld&);
+ static RegisterTimelineEvent* toImpl(v8::Local<v8::Object> object) {
+ return toScriptWrappable(object)->toImpl<RegisterTimelineEvent>();
+ }
+ CORE_EXPORT static RegisterTimelineEvent* toImplWithTypeCheck(v8::Isolate*, v8::Local<v8::Value>);
+ CORE_EXPORT static const WrapperTypeInfo wrapperTypeInfo;
+ template<typename VisitorDispatcher>
+ static void trace(VisitorDispatcher visitor, ScriptWrappable* scriptWrappable) {
+ visitor->trace(scriptWrappable->toImpl<RegisterTimelineEvent>());
+ }
+ static void traceWrappers(WrapperVisitor* visitor, ScriptWrappable* scriptWrappable) {
+ visitor->traceWrappers(scriptWrappable->toImpl<RegisterTimelineEvent>());
+ }
+ static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&);
+ static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0;
+};
+
+template <>
+struct V8TypeOf<RegisterTimelineEvent> {
+ typedef V8RegisterTimelineEvent Type;
+};
+
+} // namespace blink
+
+#endif // V8RegisterTimelineEvent_h
--- /dev/null
+// Copyright 2014 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 has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8RegisterTimelineEventInit_h
+#define V8RegisterTimelineEventInit_h
+
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "core/CoreExport.h"
+#include "core/html/RegisterTimelineEventInit.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class ExceptionState;
+
+class V8RegisterTimelineEventInit {
+ public:
+ CORE_EXPORT static void toImpl(v8::Isolate*, v8::Local<v8::Value>, RegisterTimelineEventInit&, ExceptionState&);
+};
+
+CORE_EXPORT bool toV8RegisterTimelineEventInit(const RegisterTimelineEventInit&, v8::Local<v8::Object> dictionary, v8::Local<v8::Object> creationContext, v8::Isolate*);
+
+template<class CallbackInfo>
+inline void v8SetReturnValue(const CallbackInfo& callbackInfo, RegisterTimelineEventInit& impl) {
+ v8SetReturnValue(callbackInfo, toV8(impl, callbackInfo.Holder(), callbackInfo.GetIsolate()));
+}
+
+template <>
+struct NativeValueTraits<RegisterTimelineEventInit> {
+ static RegisterTimelineEventInit nativeValue(v8::Isolate*, v8::Local<v8::Value>, ExceptionState&);
+};
+
+template <>
+struct V8TypeOf<RegisterTimelineEventInit> {
+ typedef V8RegisterTimelineEventInit Type;
+};
+
+} // namespace blink
+
+#endif // V8RegisterTimelineEventInit_h
--- /dev/null
+// Copyright 2014 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 has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8StringChangeEvent_h
+#define V8StringChangeEvent_h
+
+#include "bindings/core/v8/ScriptWrappable.h"
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "bindings/core/v8/V8DOMWrapper.h"
+#include "bindings/core/v8/V8Event.h"
+#include "bindings/core/v8/WrapperTypeInfo.h"
+#include "core/CoreExport.h"
+#include "core/html/StringChangeEvent.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class V8StringChangeEvent {
+ STATIC_ONLY(V8StringChangeEvent);
+ public:
+ CORE_EXPORT static bool hasInstance(v8::Local<v8::Value>, v8::Isolate*);
+ static v8::Local<v8::Object> findInstanceInPrototypeChain(v8::Local<v8::Value>, v8::Isolate*);
+ CORE_EXPORT static v8::Local<v8::FunctionTemplate> domTemplate(v8::Isolate*, const DOMWrapperWorld&);
+ static StringChangeEvent* toImpl(v8::Local<v8::Object> object) {
+ return toScriptWrappable(object)->toImpl<StringChangeEvent>();
+ }
+ CORE_EXPORT static StringChangeEvent* toImplWithTypeCheck(v8::Isolate*, v8::Local<v8::Value>);
+ CORE_EXPORT static const WrapperTypeInfo wrapperTypeInfo;
+ template<typename VisitorDispatcher>
+ static void trace(VisitorDispatcher visitor, ScriptWrappable* scriptWrappable) {
+ visitor->trace(scriptWrappable->toImpl<StringChangeEvent>());
+ }
+ static void traceWrappers(WrapperVisitor* visitor, ScriptWrappable* scriptWrappable) {
+ visitor->traceWrappers(scriptWrappable->toImpl<StringChangeEvent>());
+ }
+ static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&);
+ static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0;
+};
+
+template <>
+struct V8TypeOf<StringChangeEvent> {
+ typedef V8StringChangeEvent Type;
+};
+
+} // namespace blink
+
+#endif // V8StringChangeEvent_h
--- /dev/null
+// Copyright 2014 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 has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8StringChangeEventInit_h
+#define V8StringChangeEventInit_h
+
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "core/CoreExport.h"
+#include "core/html/StringChangeEventInit.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class ExceptionState;
+
+class V8StringChangeEventInit {
+ public:
+ CORE_EXPORT static void toImpl(v8::Isolate*, v8::Local<v8::Value>, StringChangeEventInit&, ExceptionState&);
+};
+
+CORE_EXPORT bool toV8StringChangeEventInit(const StringChangeEventInit&, v8::Local<v8::Object> dictionary, v8::Local<v8::Object> creationContext, v8::Isolate*);
+
+template<class CallbackInfo>
+inline void v8SetReturnValue(const CallbackInfo& callbackInfo, StringChangeEventInit& impl) {
+ v8SetReturnValue(callbackInfo, toV8(impl, callbackInfo.Holder(), callbackInfo.GetIsolate()));
+}
+
+template <>
+struct NativeValueTraits<StringChangeEventInit> {
+ static StringChangeEventInit nativeValue(v8::Isolate*, v8::Local<v8::Value>, ExceptionState&);
+};
+
+template <>
+struct V8TypeOf<StringChangeEventInit> {
+ typedef V8StringChangeEventInit Type;
+};
+
+} // namespace blink
+
+#endif // V8StringChangeEventInit_h
--- /dev/null
+// Copyright 2014 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 has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8SyncTimelineEvent_h
+#define V8SyncTimelineEvent_h
+
+#include "bindings/core/v8/ScriptWrappable.h"
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "bindings/core/v8/V8DOMWrapper.h"
+#include "bindings/core/v8/V8Event.h"
+#include "bindings/core/v8/WrapperTypeInfo.h"
+#include "core/CoreExport.h"
+#include "core/html/SyncTimelineEvent.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class V8SyncTimelineEvent {
+ STATIC_ONLY(V8SyncTimelineEvent);
+ public:
+ CORE_EXPORT static bool hasInstance(v8::Local<v8::Value>, v8::Isolate*);
+ static v8::Local<v8::Object> findInstanceInPrototypeChain(v8::Local<v8::Value>, v8::Isolate*);
+ CORE_EXPORT static v8::Local<v8::FunctionTemplate> domTemplate(v8::Isolate*, const DOMWrapperWorld&);
+ static SyncTimelineEvent* toImpl(v8::Local<v8::Object> object) {
+ return toScriptWrappable(object)->toImpl<SyncTimelineEvent>();
+ }
+ CORE_EXPORT static SyncTimelineEvent* toImplWithTypeCheck(v8::Isolate*, v8::Local<v8::Value>);
+ CORE_EXPORT static const WrapperTypeInfo wrapperTypeInfo;
+ template<typename VisitorDispatcher>
+ static void trace(VisitorDispatcher visitor, ScriptWrappable* scriptWrappable) {
+ visitor->trace(scriptWrappable->toImpl<SyncTimelineEvent>());
+ }
+ static void traceWrappers(WrapperVisitor* visitor, ScriptWrappable* scriptWrappable) {
+ visitor->traceWrappers(scriptWrappable->toImpl<SyncTimelineEvent>());
+ }
+ static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&);
+ static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0;
+};
+
+template <>
+struct V8TypeOf<SyncTimelineEvent> {
+ typedef V8SyncTimelineEvent Type;
+};
+
+} // namespace blink
+
+#endif // V8SyncTimelineEvent_h
--- /dev/null
+// Copyright 2014 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 has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8SyncTimelineEventInit_h
+#define V8SyncTimelineEventInit_h
+
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "core/CoreExport.h"
+#include "core/html/SyncTimelineEventInit.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class ExceptionState;
+
+class V8SyncTimelineEventInit {
+ public:
+ CORE_EXPORT static void toImpl(v8::Isolate*, v8::Local<v8::Value>, SyncTimelineEventInit&, ExceptionState&);
+};
+
+CORE_EXPORT bool toV8SyncTimelineEventInit(const SyncTimelineEventInit&, v8::Local<v8::Object> dictionary, v8::Local<v8::Object> creationContext, v8::Isolate*);
+
+template<class CallbackInfo>
+inline void v8SetReturnValue(const CallbackInfo& callbackInfo, SyncTimelineEventInit& impl) {
+ v8SetReturnValue(callbackInfo, toV8(impl, callbackInfo.Holder(), callbackInfo.GetIsolate()));
+}
+
+template <>
+struct NativeValueTraits<SyncTimelineEventInit> {
+ static SyncTimelineEventInit nativeValue(v8::Isolate*, v8::Local<v8::Value>, ExceptionState&);
+};
+
+template <>
+struct V8TypeOf<SyncTimelineEventInit> {
+ typedef V8SyncTimelineEventInit Type;
+};
+
+} // namespace blink
+
+#endif // V8SyncTimelineEventInit_h
CSSValueMediaExitFullscreenButton = 414,
CSSValueMediaFullscreenVolumeSlider = 415,
CSSValueMediaFullscreenVolumeSliderThumb = 416,
- CSSValueMediaMuteButton = 417,
- CSSValueMediaPlayButton = 418,
- CSSValueMediaSeekBackButton = 419,
- CSSValueMediaSeekForwardButton = 420,
- CSSValueMediaOverlayPlayButton = 421,
- CSSValueMediaRotateButton = 422,
- CSSValueMediaOverlaySpinner = 423,
- CSSValueMediaToggleClosedCaptionsButton = 424,
- CSSValueMediaSlider = 425,
- CSSValueMediaSliderthumb = 426,
- CSSValueMediaVolumeSliderContainer = 427,
- CSSValueMediaVolumeSlider = 428,
- CSSValueMediaVolumeSliderthumb = 429,
- CSSValueMediaControlsBackground = 430,
- CSSValueMediaControlsFullscreenBackground = 431,
- CSSValueMediaCurrentTimeDisplay = 432,
- CSSValueMediaTimeRemainingDisplay = 433,
- CSSValueInternalMediaCastOffButton = 434,
- CSSValueInternalMediaOverlayCastOffButton = 435,
- CSSValueInternalMediaTrackSelectionCheckmark = 436,
- CSSValueInternalMediaClosedCaptionsIcon = 437,
- CSSValueInternalMediaSubtitlesIcon = 438,
- CSSValueInternalMediaOverflowButton = 439,
- CSSValueInternalMediaDownloadButton = 440,
- CSSValueMenulist = 441,
- CSSValueMenulistButton = 442,
- CSSValueMenulistText = 443,
- CSSValueMenulistTextfield = 444,
- CSSValueMeter = 445,
- CSSValueProgressBar = 446,
- CSSValueProgressBarValue = 447,
- CSSValueSliderHorizontal = 448,
- CSSValueSliderVertical = 449,
- CSSValueSliderthumbHorizontal = 450,
- CSSValueSliderthumbVertical = 451,
- CSSValueCaret = 452,
- CSSValueSearchfield = 453,
- CSSValueSearchfieldCancelButton = 454,
- CSSValueTextfield = 455,
- CSSValueTextarea = 456,
- CSSValueCapsLockIndicator = 457,
- CSSValueRound = 458,
- CSSValueBorder = 459,
- CSSValueBorderBox = 460,
- CSSValueContent = 461,
- CSSValueContentBox = 462,
- CSSValuePadding = 463,
- CSSValuePaddingBox = 464,
- CSSValueCurrent = 465,
- CSSValueRoot = 466,
- CSSValueMarginBox = 467,
- CSSValueContain = 468,
- CSSValueCover = 469,
- CSSValueLogical = 470,
- CSSValueVisual = 471,
- CSSValueAlternate = 472,
- CSSValueAlternateReverse = 473,
- CSSValueForwards = 474,
- CSSValueBackwards = 475,
- CSSValueInfinite = 476,
- CSSValueRunning = 477,
- CSSValuePaused = 478,
- CSSValueFlat = 479,
- CSSValuePreserve3d = 480,
- CSSValueEase = 481,
- CSSValueLinear = 482,
- CSSValueEaseIn = 483,
- CSSValueEaseOut = 484,
- CSSValueEaseInOut = 485,
- CSSValueStepStart = 486,
- CSSValueStepMiddle = 487,
- CSSValueStepEnd = 488,
- CSSValueSteps = 489,
- CSSValueCubicBezier = 490,
- CSSValueDocument = 491,
- CSSValueReset = 492,
- CSSValueZoom = 493,
- CSSValueVisiblePainted = 494,
- CSSValueVisibleFill = 495,
- CSSValueVisibleStroke = 496,
- CSSValuePainted = 497,
- CSSValueFill = 498,
- CSSValueStroke = 499,
- CSSValueBoundingBox = 500,
- CSSValueSpellOut = 501,
- CSSValueDigits = 502,
- CSSValueLiteralPunctuation = 503,
- CSSValueNoPunctuation = 504,
- CSSValueAntialiased = 505,
- CSSValueSubpixelAntialiased = 506,
- CSSValueOptimizeSpeed = 507,
- CSSValueOptimizeLegibility = 508,
- CSSValueGeometricPrecision = 509,
- CSSValueEconomy = 510,
- CSSValueExact = 511,
- CSSValueLr = 512,
- CSSValueRl = 513,
- CSSValueTb = 514,
- CSSValueLrTb = 515,
- CSSValueRlTb = 516,
- CSSValueTbRl = 517,
- CSSValueHorizontalTb = 518,
- CSSValueVerticalRl = 519,
- CSSValueVerticalLr = 520,
- CSSValueAfter = 521,
- CSSValueBefore = 522,
- CSSValueOver = 523,
- CSSValueUnder = 524,
- CSSValueFilled = 525,
- CSSValueOpen = 526,
- CSSValueDot = 527,
- CSSValueDoubleCircle = 528,
- CSSValueTriangle = 529,
- CSSValueSesame = 530,
- CSSValueEllipse = 531,
- CSSValueClosestSide = 532,
- CSSValueClosestCorner = 533,
- CSSValueFarthestSide = 534,
- CSSValueFarthestCorner = 535,
- CSSValueMixed = 536,
- CSSValueSideways = 537,
- CSSValueSidewaysRight = 538,
- CSSValueUpright = 539,
- CSSValueVerticalRight = 540,
- CSSValueOn = 541,
- CSSValueOff = 542,
- CSSValueOptimizeQuality = 543,
- CSSValuePixelated = 544,
- CSSValueWebkitOptimizeContrast = 545,
- CSSValueNonzero = 546,
- CSSValueEvenodd = 547,
- CSSValueAt = 548,
- CSSValueAlphabetic = 549,
- CSSValueFullscreen = 550,
- CSSValueStandalone = 551,
- CSSValueMinimalUi = 552,
- CSSValueBrowser = 553,
- CSSValueSticky = 554,
- CSSValueCoarse = 555,
- CSSValueFine = 556,
- CSSValueOnDemand = 557,
- CSSValueHover = 558,
- CSSValueMultiply = 559,
- CSSValueScreen = 560,
- CSSValueDarken = 561,
- CSSValueLighten = 562,
- CSSValueColorDodge = 563,
- CSSValueColorBurn = 564,
- CSSValueHardLight = 565,
- CSSValueSoftLight = 566,
- CSSValueDifference = 567,
- CSSValueExclusion = 568,
- CSSValueHue = 569,
- CSSValueSaturation = 570,
- CSSValueColor = 571,
- CSSValueLuminosity = 572,
- CSSValueScaleDown = 573,
- CSSValueBalance = 574,
- CSSValueWebkitPagedX = 575,
- CSSValueWebkitPagedY = 576,
- CSSValueDrag = 577,
- CSSValueNoDrag = 578,
- CSSValueSpan = 579,
- CSSValueMinmax = 580,
- CSSValueEachLine = 581,
- CSSValueRectangle = 582,
- CSSValueProgressive = 583,
- CSSValueInterlace = 584,
- CSSValueWindowed = 585,
- CSSValueMarkers = 586,
- CSSValueInternalExtendToZoom = 587,
- CSSValuePanX = 588,
- CSSValuePanY = 589,
- CSSValuePanLeft = 590,
- CSSValuePanRight = 591,
- CSSValuePanUp = 592,
- CSSValuePanDown = 593,
- CSSValueManipulation = 594,
- CSSValuePinchZoom = 595,
- CSSValueLastBaseline = 596,
- CSSValueSelfStart = 597,
- CSSValueSelfEnd = 598,
- CSSValueLegacy = 599,
- CSSValueSmooth = 600,
- CSSValueScrollPosition = 601,
- CSSValueRevert = 602,
- CSSValueUnset = 603,
- CSSValueLinearGradient = 604,
- CSSValueRadialGradient = 605,
- CSSValueRepeatingLinearGradient = 606,
- CSSValueRepeatingRadialGradient = 607,
- CSSValuePaint = 608,
- CSSValueWebkitCrossFade = 609,
- CSSValueWebkitGradient = 610,
- CSSValueWebkitLinearGradient = 611,
- CSSValueWebkitRadialGradient = 612,
- CSSValueWebkitRepeatingLinearGradient = 613,
- CSSValueWebkitRepeatingRadialGradient = 614,
- CSSValueWebkitImageSet = 615,
- CSSValueFrom = 616,
- CSSValueTo = 617,
- CSSValueColorStop = 618,
- CSSValueRadial = 619,
- CSSValueAttr = 620,
- CSSValueCounter = 621,
- CSSValueCounters = 622,
- CSSValueRect = 623,
- CSSValuePolygon = 624,
- CSSValueFormat = 625,
- CSSValueInvert = 626,
- CSSValueGrayscale = 627,
- CSSValueSepia = 628,
- CSSValueSaturate = 629,
- CSSValueHueRotate = 630,
- CSSValueOpacity = 631,
- CSSValueBrightness = 632,
- CSSValueContrast = 633,
- CSSValueBlur = 634,
- CSSValueDropShadow = 635,
- CSSValueUrl = 636,
- CSSValueRgb = 637,
- CSSValueRgba = 638,
- CSSValueHsl = 639,
- CSSValueHsla = 640,
- CSSValueMatrix = 641,
- CSSValueMatrix3d = 642,
- CSSValuePerspective = 643,
- CSSValueRotate = 644,
- CSSValueRotateX = 645,
- CSSValueRotateY = 646,
- CSSValueRotateZ = 647,
- CSSValueRotate3d = 648,
- CSSValueScale = 649,
- CSSValueScaleX = 650,
- CSSValueScaleY = 651,
- CSSValueScaleZ = 652,
- CSSValueScale3d = 653,
- CSSValueSkew = 654,
- CSSValueSkewX = 655,
- CSSValueSkewY = 656,
- CSSValueTranslate = 657,
- CSSValueTranslateX = 658,
- CSSValueTranslateY = 659,
- CSSValueTranslateZ = 660,
- CSSValueTranslate3d = 661,
- CSSValuePath = 662,
- CSSValueCalc = 663,
- CSSValueWebkitCalc = 664,
- CSSValueMandatory = 665,
- CSSValueProximity = 666,
- CSSValueFromImage = 667,
- CSSValueStyle = 668,
- CSSValueLayout = 669,
- CSSValueSize = 670,
- CSSValueAutoFill = 671,
- CSSValueAutoFit = 672,
- CSSValueVar = 673,
- CSSValueInternalVariableValue = 674,
- CSSValueAvoidPage = 675,
- CSSValuePage = 676,
- CSSValueRecto = 677,
- CSSValueVerso = 678,
- CSSValueAvoidColumn = 679,
- CSSValueAliceblue = 680,
- CSSValueAntiquewhite = 681,
- CSSValueAquamarine = 682,
- CSSValueAzure = 683,
- CSSValueBeige = 684,
- CSSValueBisque = 685,
- CSSValueBlanchedalmond = 686,
- CSSValueBlueviolet = 687,
- CSSValueBrown = 688,
- CSSValueBurlywood = 689,
- CSSValueCadetblue = 690,
- CSSValueChartreuse = 691,
- CSSValueChocolate = 692,
- CSSValueCoral = 693,
- CSSValueCornflowerblue = 694,
- CSSValueCornsilk = 695,
- CSSValueCrimson = 696,
- CSSValueCyan = 697,
- CSSValueDarkblue = 698,
- CSSValueDarkcyan = 699,
- CSSValueDarkgoldenrod = 700,
- CSSValueDarkgray = 701,
- CSSValueDarkgreen = 702,
- CSSValueDarkgrey = 703,
- CSSValueDarkkhaki = 704,
- CSSValueDarkmagenta = 705,
- CSSValueDarkolivegreen = 706,
- CSSValueDarkorange = 707,
- CSSValueDarkorchid = 708,
- CSSValueDarkred = 709,
- CSSValueDarksalmon = 710,
- CSSValueDarkseagreen = 711,
- CSSValueDarkslateblue = 712,
- CSSValueDarkslategray = 713,
- CSSValueDarkslategrey = 714,
- CSSValueDarkturquoise = 715,
- CSSValueDarkviolet = 716,
- CSSValueDeeppink = 717,
- CSSValueDeepskyblue = 718,
- CSSValueDimgray = 719,
- CSSValueDimgrey = 720,
- CSSValueDodgerblue = 721,
- CSSValueFirebrick = 722,
- CSSValueFloralwhite = 723,
- CSSValueForestgreen = 724,
- CSSValueGainsboro = 725,
- CSSValueGhostwhite = 726,
- CSSValueGold = 727,
- CSSValueGoldenrod = 728,
- CSSValueGreenyellow = 729,
- CSSValueHoneydew = 730,
- CSSValueHotpink = 731,
- CSSValueIndianred = 732,
- CSSValueIndigo = 733,
- CSSValueIvory = 734,
- CSSValueKhaki = 735,
- CSSValueLavender = 736,
- CSSValueLavenderblush = 737,
- CSSValueLawngreen = 738,
- CSSValueLemonchiffon = 739,
- CSSValueLightblue = 740,
- CSSValueLightcoral = 741,
- CSSValueLightcyan = 742,
- CSSValueLightgoldenrodyellow = 743,
- CSSValueLightgray = 744,
- CSSValueLightgreen = 745,
- CSSValueLightgrey = 746,
- CSSValueLightpink = 747,
- CSSValueLightsalmon = 748,
- CSSValueLightseagreen = 749,
- CSSValueLightskyblue = 750,
- CSSValueLightslategray = 751,
- CSSValueLightslategrey = 752,
- CSSValueLightsteelblue = 753,
- CSSValueLightyellow = 754,
- CSSValueLimegreen = 755,
- CSSValueLinen = 756,
- CSSValueMagenta = 757,
- CSSValueMediumaquamarine = 758,
- CSSValueMediumblue = 759,
- CSSValueMediumorchid = 760,
- CSSValueMediumpurple = 761,
- CSSValueMediumseagreen = 762,
- CSSValueMediumslateblue = 763,
- CSSValueMediumspringgreen = 764,
- CSSValueMediumturquoise = 765,
- CSSValueMediumvioletred = 766,
- CSSValueMidnightblue = 767,
- CSSValueMintcream = 768,
- CSSValueMistyrose = 769,
- CSSValueMoccasin = 770,
- CSSValueNavajowhite = 771,
- CSSValueOldlace = 772,
- CSSValueOlivedrab = 773,
- CSSValueOrangered = 774,
- CSSValueOrchid = 775,
- CSSValuePalegoldenrod = 776,
- CSSValuePalegreen = 777,
- CSSValuePaleturquoise = 778,
- CSSValuePalevioletred = 779,
- CSSValuePapayawhip = 780,
- CSSValuePeachpuff = 781,
- CSSValuePeru = 782,
- CSSValuePink = 783,
- CSSValuePlum = 784,
- CSSValuePowderblue = 785,
- CSSValueRebeccapurple = 786,
- CSSValueRosybrown = 787,
- CSSValueRoyalblue = 788,
- CSSValueSaddlebrown = 789,
- CSSValueSalmon = 790,
- CSSValueSandybrown = 791,
- CSSValueSeagreen = 792,
- CSSValueSeashell = 793,
- CSSValueSienna = 794,
- CSSValueSkyblue = 795,
- CSSValueSlateblue = 796,
- CSSValueSlategray = 797,
- CSSValueSlategrey = 798,
- CSSValueSnow = 799,
- CSSValueSpringgreen = 800,
- CSSValueSteelblue = 801,
- CSSValueTan = 802,
- CSSValueThistle = 803,
- CSSValueTomato = 804,
- CSSValueTurquoise = 805,
- CSSValueViolet = 806,
- CSSValueWheat = 807,
- CSSValueWhitesmoke = 808,
- CSSValueYellowgreen = 809,
- CSSValueAlpha = 810,
- CSSValueLuminance = 811,
- CSSValueAccumulate = 812,
- CSSValueNew = 813,
- CSSValueSRGB = 814,
- CSSValueLinearRGB = 815,
- CSSValueCrispEdges = 816,
- CSSValueButt = 817,
- CSSValueMiter = 818,
- CSSValueBevel = 819,
- CSSValueBeforeEdge = 820,
- CSSValueAfterEdge = 821,
- CSSValueCentral = 822,
- CSSValueTextBeforeEdge = 823,
- CSSValueTextAfterEdge = 824,
- CSSValueIdeographic = 825,
- CSSValueHanging = 826,
- CSSValueMathematical = 827,
- CSSValueUseScript = 828,
- CSSValueNoChange = 829,
- CSSValueResetSize = 830,
- CSSValueDynamic = 831,
- CSSValueNonScalingStroke = 832,
+ CSSValueMediaBrightnessButton = 417,
+ CSSValueMediaMuteButton = 418,
+ CSSValueMediaPlayButton = 419,
+ CSSValueMediaSeekBackButton = 420,
+ CSSValueMediaSeekForwardButton = 421,
+ CSSValueMediaOverlayPlayButton = 422,
+ CSSValueMediaRotateButton = 423,
+ CSSValueMediaOverlaySpinner = 424,
+ CSSValueMediaToggleClosedCaptionsButton = 425,
+ CSSValueMediaSlider = 426,
+ CSSValueMediaSliderthumb = 427,
+ CSSValueMediaVolumeSliderContainer = 428,
+ CSSValueMediaVolumeSlider = 429,
+ CSSValueMediaVolumeSliderthumb = 430,
+ CSSValueMediaControlsBackground = 431,
+ CSSValueMediaControlsFullscreenBackground = 432,
+ CSSValueMediaCurrentTimeDisplay = 433,
+ CSSValueMediaTimeRemainingDisplay = 434,
+ CSSValueInternalMediaCastOffButton = 435,
+ CSSValueInternalMediaOverlayCastOffButton = 436,
+ CSSValueInternalMediaTrackSelectionCheckmark = 437,
+ CSSValueInternalMediaClosedCaptionsIcon = 438,
+ CSSValueInternalMediaSubtitlesIcon = 439,
+ CSSValueInternalMediaOverflowButton = 440,
+ CSSValueInternalMediaDownloadButton = 441,
+ CSSValueMenulist = 442,
+ CSSValueMenulistButton = 443,
+ CSSValueMenulistText = 444,
+ CSSValueMenulistTextfield = 445,
+ CSSValueMeter = 446,
+ CSSValueProgressBar = 447,
+ CSSValueProgressBarValue = 448,
+ CSSValueSliderHorizontal = 449,
+ CSSValueSliderVertical = 450,
+ CSSValueSliderthumbHorizontal = 451,
+ CSSValueSliderthumbVertical = 452,
+ CSSValueCaret = 453,
+ CSSValueSearchfield = 454,
+ CSSValueSearchfieldCancelButton = 455,
+ CSSValueTextfield = 456,
+ CSSValueTextarea = 457,
+ CSSValueCapsLockIndicator = 458,
+ CSSValueRound = 459,
+ CSSValueBorder = 460,
+ CSSValueBorderBox = 461,
+ CSSValueContent = 462,
+ CSSValueContentBox = 463,
+ CSSValuePadding = 464,
+ CSSValuePaddingBox = 465,
+ CSSValueCurrent = 466,
+ CSSValueRoot = 467,
+ CSSValueMarginBox = 468,
+ CSSValueContain = 469,
+ CSSValueCover = 470,
+ CSSValueLogical = 471,
+ CSSValueVisual = 472,
+ CSSValueAlternate = 473,
+ CSSValueAlternateReverse = 474,
+ CSSValueForwards = 475,
+ CSSValueBackwards = 476,
+ CSSValueInfinite = 477,
+ CSSValueRunning = 478,
+ CSSValuePaused = 479,
+ CSSValueFlat = 480,
+ CSSValuePreserve3d = 481,
+ CSSValueEase = 482,
+ CSSValueLinear = 483,
+ CSSValueEaseIn = 484,
+ CSSValueEaseOut = 485,
+ CSSValueEaseInOut = 486,
+ CSSValueStepStart = 487,
+ CSSValueStepMiddle = 488,
+ CSSValueStepEnd = 489,
+ CSSValueSteps = 490,
+ CSSValueCubicBezier = 491,
+ CSSValueDocument = 492,
+ CSSValueReset = 493,
+ CSSValueZoom = 494,
+ CSSValueVisiblePainted = 495,
+ CSSValueVisibleFill = 496,
+ CSSValueVisibleStroke = 497,
+ CSSValuePainted = 498,
+ CSSValueFill = 499,
+ CSSValueStroke = 500,
+ CSSValueBoundingBox = 501,
+ CSSValueSpellOut = 502,
+ CSSValueDigits = 503,
+ CSSValueLiteralPunctuation = 504,
+ CSSValueNoPunctuation = 505,
+ CSSValueAntialiased = 506,
+ CSSValueSubpixelAntialiased = 507,
+ CSSValueOptimizeSpeed = 508,
+ CSSValueOptimizeLegibility = 509,
+ CSSValueGeometricPrecision = 510,
+ CSSValueEconomy = 511,
+ CSSValueExact = 512,
+ CSSValueLr = 513,
+ CSSValueRl = 514,
+ CSSValueTb = 515,
+ CSSValueLrTb = 516,
+ CSSValueRlTb = 517,
+ CSSValueTbRl = 518,
+ CSSValueHorizontalTb = 519,
+ CSSValueVerticalRl = 520,
+ CSSValueVerticalLr = 521,
+ CSSValueAfter = 522,
+ CSSValueBefore = 523,
+ CSSValueOver = 524,
+ CSSValueUnder = 525,
+ CSSValueFilled = 526,
+ CSSValueOpen = 527,
+ CSSValueDot = 528,
+ CSSValueDoubleCircle = 529,
+ CSSValueTriangle = 530,
+ CSSValueSesame = 531,
+ CSSValueEllipse = 532,
+ CSSValueClosestSide = 533,
+ CSSValueClosestCorner = 534,
+ CSSValueFarthestSide = 535,
+ CSSValueFarthestCorner = 536,
+ CSSValueMixed = 537,
+ CSSValueSideways = 538,
+ CSSValueSidewaysRight = 539,
+ CSSValueUpright = 540,
+ CSSValueVerticalRight = 541,
+ CSSValueOn = 542,
+ CSSValueOff = 543,
+ CSSValueOptimizeQuality = 544,
+ CSSValuePixelated = 545,
+ CSSValueWebkitOptimizeContrast = 546,
+ CSSValueNonzero = 547,
+ CSSValueEvenodd = 548,
+ CSSValueAt = 549,
+ CSSValueAlphabetic = 550,
+ CSSValueFullscreen = 551,
+ CSSValueStandalone = 552,
+ CSSValueMinimalUi = 553,
+ CSSValueBrowser = 554,
+ CSSValueSticky = 555,
+ CSSValueCoarse = 556,
+ CSSValueFine = 557,
+ CSSValueOnDemand = 558,
+ CSSValueHover = 559,
+ CSSValueMultiply = 560,
+ CSSValueScreen = 561,
+ CSSValueDarken = 562,
+ CSSValueLighten = 563,
+ CSSValueColorDodge = 564,
+ CSSValueColorBurn = 565,
+ CSSValueHardLight = 566,
+ CSSValueSoftLight = 567,
+ CSSValueDifference = 568,
+ CSSValueExclusion = 569,
+ CSSValueHue = 570,
+ CSSValueSaturation = 571,
+ CSSValueColor = 572,
+ CSSValueLuminosity = 573,
+ CSSValueScaleDown = 574,
+ CSSValueBalance = 575,
+ CSSValueWebkitPagedX = 576,
+ CSSValueWebkitPagedY = 577,
+ CSSValueDrag = 578,
+ CSSValueNoDrag = 579,
+ CSSValueSpan = 580,
+ CSSValueMinmax = 581,
+ CSSValueEachLine = 582,
+ CSSValueRectangle = 583,
+ CSSValueProgressive = 584,
+ CSSValueInterlace = 585,
+ CSSValueWindowed = 586,
+ CSSValueMarkers = 587,
+ CSSValueInternalExtendToZoom = 588,
+ CSSValuePanX = 589,
+ CSSValuePanY = 590,
+ CSSValuePanLeft = 591,
+ CSSValuePanRight = 592,
+ CSSValuePanUp = 593,
+ CSSValuePanDown = 594,
+ CSSValueManipulation = 595,
+ CSSValuePinchZoom = 596,
+ CSSValueLastBaseline = 597,
+ CSSValueSelfStart = 598,
+ CSSValueSelfEnd = 599,
+ CSSValueLegacy = 600,
+ CSSValueSmooth = 601,
+ CSSValueScrollPosition = 602,
+ CSSValueRevert = 603,
+ CSSValueUnset = 604,
+ CSSValueLinearGradient = 605,
+ CSSValueRadialGradient = 606,
+ CSSValueRepeatingLinearGradient = 607,
+ CSSValueRepeatingRadialGradient = 608,
+ CSSValuePaint = 609,
+ CSSValueWebkitCrossFade = 610,
+ CSSValueWebkitGradient = 611,
+ CSSValueWebkitLinearGradient = 612,
+ CSSValueWebkitRadialGradient = 613,
+ CSSValueWebkitRepeatingLinearGradient = 614,
+ CSSValueWebkitRepeatingRadialGradient = 615,
+ CSSValueWebkitImageSet = 616,
+ CSSValueFrom = 617,
+ CSSValueTo = 618,
+ CSSValueColorStop = 619,
+ CSSValueRadial = 620,
+ CSSValueAttr = 621,
+ CSSValueCounter = 622,
+ CSSValueCounters = 623,
+ CSSValueRect = 624,
+ CSSValuePolygon = 625,
+ CSSValueFormat = 626,
+ CSSValueInvert = 627,
+ CSSValueGrayscale = 628,
+ CSSValueSepia = 629,
+ CSSValueSaturate = 630,
+ CSSValueHueRotate = 631,
+ CSSValueOpacity = 632,
+ CSSValueBrightness = 633,
+ CSSValueContrast = 634,
+ CSSValueBlur = 635,
+ CSSValueDropShadow = 636,
+ CSSValueUrl = 637,
+ CSSValueRgb = 638,
+ CSSValueRgba = 639,
+ CSSValueHsl = 640,
+ CSSValueHsla = 641,
+ CSSValueMatrix = 642,
+ CSSValueMatrix3d = 643,
+ CSSValuePerspective = 644,
+ CSSValueRotate = 645,
+ CSSValueRotateX = 646,
+ CSSValueRotateY = 647,
+ CSSValueRotateZ = 648,
+ CSSValueRotate3d = 649,
+ CSSValueScale = 650,
+ CSSValueScaleX = 651,
+ CSSValueScaleY = 652,
+ CSSValueScaleZ = 653,
+ CSSValueScale3d = 654,
+ CSSValueSkew = 655,
+ CSSValueSkewX = 656,
+ CSSValueSkewY = 657,
+ CSSValueTranslate = 658,
+ CSSValueTranslateX = 659,
+ CSSValueTranslateY = 660,
+ CSSValueTranslateZ = 661,
+ CSSValueTranslate3d = 662,
+ CSSValuePath = 663,
+ CSSValueCalc = 664,
+ CSSValueWebkitCalc = 665,
+ CSSValueMandatory = 666,
+ CSSValueProximity = 667,
+ CSSValueFromImage = 668,
+ CSSValueStyle = 669,
+ CSSValueLayout = 670,
+ CSSValueSize = 671,
+ CSSValueAutoFill = 672,
+ CSSValueAutoFit = 673,
+ CSSValueVar = 674,
+ CSSValueInternalVariableValue = 675,
+ CSSValueAvoidPage = 676,
+ CSSValuePage = 677,
+ CSSValueRecto = 678,
+ CSSValueVerso = 679,
+ CSSValueAvoidColumn = 680,
+ CSSValueAliceblue = 681,
+ CSSValueAntiquewhite = 682,
+ CSSValueAquamarine = 683,
+ CSSValueAzure = 684,
+ CSSValueBeige = 685,
+ CSSValueBisque = 686,
+ CSSValueBlanchedalmond = 687,
+ CSSValueBlueviolet = 688,
+ CSSValueBrown = 689,
+ CSSValueBurlywood = 690,
+ CSSValueCadetblue = 691,
+ CSSValueChartreuse = 692,
+ CSSValueChocolate = 693,
+ CSSValueCoral = 694,
+ CSSValueCornflowerblue = 695,
+ CSSValueCornsilk = 696,
+ CSSValueCrimson = 697,
+ CSSValueCyan = 698,
+ CSSValueDarkblue = 699,
+ CSSValueDarkcyan = 700,
+ CSSValueDarkgoldenrod = 701,
+ CSSValueDarkgray = 702,
+ CSSValueDarkgreen = 703,
+ CSSValueDarkgrey = 704,
+ CSSValueDarkkhaki = 705,
+ CSSValueDarkmagenta = 706,
+ CSSValueDarkolivegreen = 707,
+ CSSValueDarkorange = 708,
+ CSSValueDarkorchid = 709,
+ CSSValueDarkred = 710,
+ CSSValueDarksalmon = 711,
+ CSSValueDarkseagreen = 712,
+ CSSValueDarkslateblue = 713,
+ CSSValueDarkslategray = 714,
+ CSSValueDarkslategrey = 715,
+ CSSValueDarkturquoise = 716,
+ CSSValueDarkviolet = 717,
+ CSSValueDeeppink = 718,
+ CSSValueDeepskyblue = 719,
+ CSSValueDimgray = 720,
+ CSSValueDimgrey = 721,
+ CSSValueDodgerblue = 722,
+ CSSValueFirebrick = 723,
+ CSSValueFloralwhite = 724,
+ CSSValueForestgreen = 725,
+ CSSValueGainsboro = 726,
+ CSSValueGhostwhite = 727,
+ CSSValueGold = 728,
+ CSSValueGoldenrod = 729,
+ CSSValueGreenyellow = 730,
+ CSSValueHoneydew = 731,
+ CSSValueHotpink = 732,
+ CSSValueIndianred = 733,
+ CSSValueIndigo = 734,
+ CSSValueIvory = 735,
+ CSSValueKhaki = 736,
+ CSSValueLavender = 737,
+ CSSValueLavenderblush = 738,
+ CSSValueLawngreen = 739,
+ CSSValueLemonchiffon = 740,
+ CSSValueLightblue = 741,
+ CSSValueLightcoral = 742,
+ CSSValueLightcyan = 743,
+ CSSValueLightgoldenrodyellow = 744,
+ CSSValueLightgray = 745,
+ CSSValueLightgreen = 746,
+ CSSValueLightgrey = 747,
+ CSSValueLightpink = 748,
+ CSSValueLightsalmon = 749,
+ CSSValueLightseagreen = 750,
+ CSSValueLightskyblue = 751,
+ CSSValueLightslategray = 752,
+ CSSValueLightslategrey = 753,
+ CSSValueLightsteelblue = 754,
+ CSSValueLightyellow = 755,
+ CSSValueLimegreen = 756,
+ CSSValueLinen = 757,
+ CSSValueMagenta = 758,
+ CSSValueMediumaquamarine = 759,
+ CSSValueMediumblue = 760,
+ CSSValueMediumorchid = 761,
+ CSSValueMediumpurple = 762,
+ CSSValueMediumseagreen = 763,
+ CSSValueMediumslateblue = 764,
+ CSSValueMediumspringgreen = 765,
+ CSSValueMediumturquoise = 766,
+ CSSValueMediumvioletred = 767,
+ CSSValueMidnightblue = 768,
+ CSSValueMintcream = 769,
+ CSSValueMistyrose = 770,
+ CSSValueMoccasin = 771,
+ CSSValueNavajowhite = 772,
+ CSSValueOldlace = 773,
+ CSSValueOlivedrab = 774,
+ CSSValueOrangered = 775,
+ CSSValueOrchid = 776,
+ CSSValuePalegoldenrod = 777,
+ CSSValuePalegreen = 778,
+ CSSValuePaleturquoise = 779,
+ CSSValuePalevioletred = 780,
+ CSSValuePapayawhip = 781,
+ CSSValuePeachpuff = 782,
+ CSSValuePeru = 783,
+ CSSValuePink = 784,
+ CSSValuePlum = 785,
+ CSSValuePowderblue = 786,
+ CSSValueRebeccapurple = 787,
+ CSSValueRosybrown = 788,
+ CSSValueRoyalblue = 789,
+ CSSValueSaddlebrown = 790,
+ CSSValueSalmon = 791,
+ CSSValueSandybrown = 792,
+ CSSValueSeagreen = 793,
+ CSSValueSeashell = 794,
+ CSSValueSienna = 795,
+ CSSValueSkyblue = 796,
+ CSSValueSlateblue = 797,
+ CSSValueSlategray = 798,
+ CSSValueSlategrey = 799,
+ CSSValueSnow = 800,
+ CSSValueSpringgreen = 801,
+ CSSValueSteelblue = 802,
+ CSSValueTan = 803,
+ CSSValueThistle = 804,
+ CSSValueTomato = 805,
+ CSSValueTurquoise = 806,
+ CSSValueViolet = 807,
+ CSSValueWheat = 808,
+ CSSValueWhitesmoke = 809,
+ CSSValueYellowgreen = 810,
+ CSSValueAlpha = 811,
+ CSSValueLuminance = 812,
+ CSSValueAccumulate = 813,
+ CSSValueNew = 814,
+ CSSValueSRGB = 815,
+ CSSValueLinearRGB = 816,
+ CSSValueCrispEdges = 817,
+ CSSValueButt = 818,
+ CSSValueMiter = 819,
+ CSSValueBevel = 820,
+ CSSValueBeforeEdge = 821,
+ CSSValueAfterEdge = 822,
+ CSSValueCentral = 823,
+ CSSValueTextBeforeEdge = 824,
+ CSSValueTextAfterEdge = 825,
+ CSSValueIdeographic = 826,
+ CSSValueHanging = 827,
+ CSSValueMathematical = 828,
+ CSSValueUseScript = 829,
+ CSSValueNoChange = 830,
+ CSSValueResetSize = 831,
+ CSSValueDynamic = 832,
+ CSSValueNonScalingStroke = 833,
};
-const int numCSSValueKeywords = 833;
+const int numCSSValueKeywords = 834;
const size_t maxCSSValueKeywordLength = 42;
const char* getValueName(CSSValueID);
#include "bindings/core/v8/V8ApplicationCacheErrorEvent.h"
#include "core/events/UIEvent.h"
#include "bindings/core/v8/V8UIEvent.h"
+#include "core/html/StringChangeEvent.h"
+#include "bindings/core/v8/V8StringChangeEvent.h"
#include "core/events/ClipboardEvent.h"
#include "bindings/core/v8/V8ClipboardEvent.h"
#include "core/events/ProgressEvent.h"
#include "bindings/core/v8/V8DragEvent.h"
#include "core/events/PointerEvent.h"
#include "bindings/core/v8/V8PointerEvent.h"
+#include "core/html/RegisterTimelineEvent.h"
+#include "bindings/core/v8/V8RegisterTimelineEvent.h"
#include "core/events/InputEvent.h"
#include "bindings/core/v8/V8InputEvent.h"
#include "core/events/SecurityPolicyViolationEvent.h"
#include "bindings/core/v8/V8WheelEvent.h"
#include "core/events/AnimationPlaybackEvent.h"
#include "bindings/core/v8/V8AnimationPlaybackEvent.h"
+#include "core/html/SyncTimelineEvent.h"
+#include "bindings/core/v8/V8SyncTimelineEvent.h"
#include "core/events/BeforeUnloadEvent.h"
#include "bindings/core/v8/V8BeforeUnloadEvent.h"
#include "core/events/CompositionEvent.h"
CORE_EXPORT extern const WTF::AtomicString& TransitionEvent;
CORE_EXPORT extern const WTF::AtomicString& UIEvent;
CORE_EXPORT extern const WTF::AtomicString& WheelEvent;
+CORE_EXPORT extern const WTF::AtomicString& RegisterTimelineEvent;
+CORE_EXPORT extern const WTF::AtomicString& StringChangeEvent;
+CORE_EXPORT extern const WTF::AtomicString& SyncTimelineEvent;
CORE_EXPORT extern const WTF::AtomicString& TrackEvent;
CORE_EXPORT extern const WTF::AtomicString& RelatedEvent;
CORE_EXPORT extern const WTF::AtomicString& InputEvent;
CORE_EXPORT extern const WTF::AtomicString& PointerEvent;
CORE_EXPORT extern const WTF::AtomicString& AnimationPlaybackEvent;
-const unsigned EventNamesCount = 33;
+const unsigned EventNamesCount = 36;
CORE_EXPORT void init();
CORE_EXPORT extern const WTF::AtomicString& connect;
CORE_EXPORT extern const WTF::AtomicString& connecting;
CORE_EXPORT extern const WTF::AtomicString& connectionavailable;
+CORE_EXPORT extern const WTF::AtomicString& contentidchange;
CORE_EXPORT extern const WTF::AtomicString& contextlost;
CORE_EXPORT extern const WTF::AtomicString& contextmenu;
CORE_EXPORT extern const WTF::AtomicString& contextrestored;
CORE_EXPORT extern const WTF::AtomicString& mouseover;
CORE_EXPORT extern const WTF::AtomicString& mouseup;
CORE_EXPORT extern const WTF::AtomicString& mousewheel;
+CORE_EXPORT extern const WTF::AtomicString& mrsurlchange;
CORE_EXPORT extern const WTF::AtomicString& mute;
CORE_EXPORT extern const WTF::AtomicString& negotiationneeded;
CORE_EXPORT extern const WTF::AtomicString& nexttrack;
CORE_EXPORT extern const WTF::AtomicString& push;
CORE_EXPORT extern const WTF::AtomicString& ratechange;
CORE_EXPORT extern const WTF::AtomicString& readystatechange;
+CORE_EXPORT extern const WTF::AtomicString& registertimeline;
CORE_EXPORT extern const WTF::AtomicString& rejectionhandled;
CORE_EXPORT extern const WTF::AtomicString& removesourcebuffer;
CORE_EXPORT extern const WTF::AtomicString& removestream;
CORE_EXPORT extern const WTF::AtomicString& success;
CORE_EXPORT extern const WTF::AtomicString& suspend;
CORE_EXPORT extern const WTF::AtomicString& sync;
+CORE_EXPORT extern const WTF::AtomicString& synctimeline;
CORE_EXPORT extern const WTF::AtomicString& terminate;
CORE_EXPORT extern const WTF::AtomicString& textInput;
CORE_EXPORT extern const WTF::AtomicString& timeout;
CORE_EXPORT extern const WTF::AtomicString& writestart;
CORE_EXPORT extern const WTF::AtomicString& zoom;
-const unsigned EventTypeNamesCount = 283;
+const unsigned EventTypeNamesCount = 287;
CORE_EXPORT void init();
--- /dev/null
+// Copyright 2014 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 has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef RegisterTimelineEventInit_h
+#define RegisterTimelineEventInit_h
+
+#include "core/CoreExport.h"
+#include "core/events/EventInit.h"
+#include "platform/heap/Handle.h"
+#include "wtf/text/WTFString.h"
+
+namespace blink {
+
+class CORE_EXPORT RegisterTimelineEventInit : public EventInit {
+ DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
+ public:
+ RegisterTimelineEventInit();
+ virtual ~RegisterTimelineEventInit();
+ RegisterTimelineEventInit(const RegisterTimelineEventInit&);
+ RegisterTimelineEventInit& operator=(const RegisterTimelineEventInit&);
+
+ bool hasContentTime() const;
+ unsigned long long contentTime() const;
+ void setContentTime(unsigned long long);
+
+ bool hasTimelineSelector() const;
+ String timelineSelector() const;
+ void setTimelineSelector(String);
+
+ bool hasTimelineState() const;
+ unsigned timelineState() const;
+ void setTimelineState(unsigned);
+
+ bool hasUnitsPerSecond() const;
+ unsigned unitsPerSecond() const;
+ void setUnitsPerSecond(unsigned);
+
+ bool hasUnitsPerTick() const;
+ unsigned unitsPerTick() const;
+ void setUnitsPerTick(unsigned);
+
+ v8::Local<v8::Value> toV8Impl(v8::Local<v8::Object>, v8::Isolate*) const override;
+ DECLARE_VIRTUAL_TRACE();
+
+ private:
+ bool m_hasContentTime = false;
+ unsigned long long m_contentTime;
+ String m_timelineSelector;
+ bool m_hasTimelineState = false;
+ unsigned m_timelineState;
+ bool m_hasUnitsPerSecond = false;
+ unsigned m_unitsPerSecond;
+ bool m_hasUnitsPerTick = false;
+ unsigned m_unitsPerTick;
+
+ friend class V8RegisterTimelineEventInit;
+};
+
+} // namespace blink
+
+#endif // RegisterTimelineEventInit_h
--- /dev/null
+// Copyright 2014 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 has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef StringChangeEventInit_h
+#define StringChangeEventInit_h
+
+#include "core/CoreExport.h"
+#include "core/events/EventInit.h"
+#include "platform/heap/Handle.h"
+#include "wtf/text/WTFString.h"
+
+namespace blink {
+
+class CORE_EXPORT StringChangeEventInit : public EventInit {
+ DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
+ public:
+ StringChangeEventInit();
+ virtual ~StringChangeEventInit();
+ StringChangeEventInit(const StringChangeEventInit&);
+ StringChangeEventInit& operator=(const StringChangeEventInit&);
+
+ bool hasStr() const;
+ String str() const;
+ void setStr(String);
+
+ v8::Local<v8::Value> toV8Impl(v8::Local<v8::Object>, v8::Isolate*) const override;
+ DECLARE_VIRTUAL_TRACE();
+
+ private:
+ String m_str;
+
+ friend class V8StringChangeEventInit;
+};
+
+} // namespace blink
+
+#endif // StringChangeEventInit_h
--- /dev/null
+// Copyright 2014 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 has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef SyncTimelineEventInit_h
+#define SyncTimelineEventInit_h
+
+#include "core/CoreExport.h"
+#include "core/events/EventInit.h"
+#include "platform/heap/Handle.h"
+#include "wtf/text/WTFString.h"
+
+namespace blink {
+
+class CORE_EXPORT SyncTimelineEventInit : public EventInit {
+ DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
+ public:
+ SyncTimelineEventInit();
+ virtual ~SyncTimelineEventInit();
+ SyncTimelineEventInit(const SyncTimelineEventInit&);
+ SyncTimelineEventInit& operator=(const SyncTimelineEventInit&);
+
+ bool hasSync() const;
+ unsigned sync() const;
+ void setSync(unsigned);
+
+ bool hasTimelineSelector() const;
+ String timelineSelector() const;
+ void setTimelineSelector(String);
+
+ v8::Local<v8::Value> toV8Impl(v8::Local<v8::Object>, v8::Isolate*) const override;
+ DECLARE_VIRTUAL_TRACE();
+
+ private:
+ bool m_hasSync = false;
+ unsigned m_sync;
+ String m_timelineSelector;
+
+ friend class V8SyncTimelineEventInit;
+};
+
+} // namespace blink
+
+#endif // SyncTimelineEventInit_h
bool timerThrottlingForHiddenFramesEnabled() {
return RuntimeEnabledFeatures::timerThrottlingForHiddenFramesEnabled();
}
+ bool tizenCompatibilityModeEnabled() {
+ return RuntimeEnabledFeatures::tizenCompatibilityModeEnabled();
+ }
bool touchEnabled() {
return RuntimeEnabledFeatures::touchEnabled();
}
#include "modules/ModulesExport.h"
#include "modules/mediastream/MediaTrackConstraints.h"
#include "platform/heap/Handle.h"
+#include "wtf/text/WTFString.h"
namespace blink {
const BooleanOrMediaTrackConstraints& audio() const;
void setAudio(const BooleanOrMediaTrackConstraints&);
+ bool hasFacingMode() const;
+ String facingMode() const;
+ void setFacingMode(String);
+
bool hasVideo() const;
const BooleanOrMediaTrackConstraints& video() const;
void setVideo(const BooleanOrMediaTrackConstraints&);
private:
BooleanOrMediaTrackConstraints m_audio;
+ String m_facingMode;
BooleanOrMediaTrackConstraints m_video;
friend class V8MediaStreamConstraints;
bool m_suborigins;
bool m_timerThrottlingForBackgroundTabs;
bool m_timerThrottlingForHiddenFrames;
+ bool m_tizenCompatibilityMode;
bool m_touch;
bool m_traceWrappables;
bool m_trustedEventsDefaultAction;
static void setTimerThrottlingForHiddenFramesEnabled(bool isEnabled) { isTimerThrottlingForHiddenFramesEnabled = isEnabled; }
static bool timerThrottlingForHiddenFramesEnabled() { return isTimerThrottlingForHiddenFramesEnabled; }
+ static void setTizenCompatibilityModeEnabled(bool isEnabled) { isTizenCompatibilityModeEnabled = isEnabled; }
+ static bool tizenCompatibilityModeEnabled() { return isTizenCompatibilityModeEnabled; }
+
static void setTouchEnabled(bool isEnabled) { isTouchEnabled = isEnabled; }
static bool touchEnabled() { return isTouchEnabled; }
static bool isSuboriginsEnabled;
static bool isTimerThrottlingForBackgroundTabsEnabled;
static bool isTimerThrottlingForHiddenFramesEnabled;
+ static bool isTizenCompatibilityModeEnabled;
static bool isTouchEnabled;
static bool isTraceWrappablesEnabled;
static bool isTrustedEventsDefaultActionEnabled;
#define IDR_MEDIAPLAYER_PLAY_BUTTON 25302
#define IDR_MEDIAPLAYER_SOUND_NOT_MUTED_BUTTON 25303
#define IDR_MEDIAPLAYER_SOUND_MUTED_BUTTON 25304
-#define IDR_MEDIAPLAYER_OVERLAY_360_PLAY_BUTTON 25305
-#define IDR_MEDIAPLAYER_SLIDER_THUMB 25306
-#define IDR_MEDIAPLAYER_VOLUME_SLIDER_THUMB 25307
-#define IDR_MEDIAPLAYER_CLOSEDCAPTION_BUTTON 25308
-#define IDR_MEDIAPLAYER_CLOSEDCAPTION_BUTTON_DISABLED 25309
-#define IDR_MEDIAPLAYER_ENTER_FULLSCREEN_BUTTON 25310
-#define IDR_MEDIAPLAYER_EXIT_FULLSCREEN_BUTTON 25311
-#define IDR_MEDIAPLAYER_CAST_BUTTON_OFF 25312
-#define IDR_MEDIAPLAYER_CAST_BUTTON_ON 25313
-#define IDR_MEDIAPLAYER_OVERLAY_CAST_BUTTON_OFF 25314
-#define IDR_MEDIAPLAYER_OVERLAY_CAST_BUTTON_ON 25315
-#define IDR_MEDIAPLAYER_OVERLAY_PLAY_BUTTON 25316
-#define IDR_MEDIA_PLAYER_ROTATE 25317
-#define IDR_MEDIAPLAYER_TRACKSELECTION_CHECKMARK 25318
-#define IDR_MEDIAPLAYER_CLOSEDCAPTIONS_ICON 25319
-#define IDR_MEDIAPLAYER_OVERFLOW_MENU_ICON 25320
-#define IDR_MEDIAPLAYER_DOWNLOAD_ICON 25321
-#define IDR_MEDIAPLAYER_SUBTITLES_ICON 25322
-#define IDR_MEDIAPLAYER_SPINNER_1 25323
-#define IDR_MEDIAPLAYER_SPINNER_2 25324
-#define IDR_MEDIAPLAYER_SPINNER_3 25325
-#define IDR_MEDIAPLAYER_SPINNER_4 25326
-#define IDR_MEDIAPLAYER_SPINNER_5 25327
-#define IDR_MEDIAPLAYER_SPINNER_6 25328
-#define IDR_MEDIAPLAYER_SPINNER_7 25329
-#define IDR_MEDIAPLAYER_SPINNER_8 25330
-#define IDR_MEDIAPLAYER_SPINNER_9 25331
-#define IDR_MEDIAPLAYER_SPINNER_10 25332
-#define IDR_MEDIAPLAYER_SPINNER_11 25333
-#define IDR_MEDIAPLAYER_SPINNER_12 25334
-#define IDR_MEDIAPLAYER_SPINNER_13 25335
-#define IDR_MEDIAPLAYER_SPINNER_14 25336
-#define IDR_MEDIAPLAYER_SPINNER_15 25337
-#define IDR_MEDIAPLAYER_SPINNER_16 25338
-#define IDR_MEDIAPLAYER_SPINNER_17 25339
-#define IDR_MEDIAPLAYER_SPINNER_18 25340
-#define IDR_MEDIAPLAYER_SPINNER_19 25341
-#define IDR_MEDIAPLAYER_SPINNER_20 25342
-#define IDR_MEDIAPLAYER_SPINNER_21 25343
-#define IDR_MEDIAPLAYER_SPINNER_22 25344
-#define IDR_MEDIAPLAYER_SPINNER_23 25345
-#define IDR_MEDIAPLAYER_SPINNER_24 25346
-#define IDR_MEDIAPLAYER_SPINNER_25 25347
-#define IDR_MEDIAPLAYER_SPINNER_26 25348
-#define IDR_MEDIAPLAYER_SPINNER_27 25349
-#define IDR_MEDIAPLAYER_SPINNER_28 25350
-#define IDR_MEDIAPLAYER_SPINNER_29 25351
-#define IDR_MEDIAPLAYER_SPINNER_30 25352
-#define IDR_SEARCH_CANCEL 25353
-#define IDR_SEARCH_CANCEL_PRESSED 25354
-#define IDR_TEXTAREA_RESIZER 25355
-#define IDR_PASSWORD_GENERATION_ICON 25356
-#define IDR_PASSWORD_GENERATION_ICON_HOVER 25357
-#define IDR_MEDIAPLAYER_WEARABLE_PLAY_BUTTON 25358
-#define IDR_MEDIAPLAYER_WEARABLE_PAUSE_BUTTON 25359
-#define IDR_MEDIAPLAYER_WEARABLE_VOLUME_BUTTON 25360
-#define IDR_MEDIAPLAYER_WEARABLE_MUTE_BUTTON 25361
-#define IDR_MEDIAPLAYER_MOBILE_PLAY_BUTTON 25362
-#define IDR_MEDIAPLAYER_MOBILE_PLAY_BUTTON_DISABLED 25363
-#define IDR_MEDIAPLAYER_MOBILE_PAUSE_BUTTON 25364
-#define IDR_MEDIAPLAYER_MOBILE_SLIDER_THUMB 25365
-#define IDR_MEDIAPLAYER_MOBILE_SEEK_BACK_BUTTON 25366
-#define IDR_MEDIAPLAYER_MOBILE_SEEK_BACK_BUTTON_DISABLED 25367
-#define IDR_MEDIAPLAYER_MOBILE_SEEK_FORWARD_BUTTON 25368
-#define IDR_MEDIAPLAYER_MOBILE_SEEK_FORWARD_BUTTON_DISABLED 25369
+#define IDR_MEDIAPLAYER_SOUND_LEVEL0_BUTTON 25305
+#define IDR_MEDIAPLAYER_SOUND_LEVEL1_BUTTON 25306
+#define IDR_MEDIAPLAYER_SOUND_LEVEL2_BUTTON 25307
+#define IDR_MEDIAPLAYER_SOUND_LEVEL3_BUTTON 25308
+#define IDR_MEDIAPLAYER_OVERLAY_360_PLAY_BUTTON 25309
+#define IDR_MEDIAPLAYER_SLIDER_THUMB 25310
+#define IDR_MEDIAPLAYER_VOLUME_SLIDER_THUMB 25311
+#define IDR_MEDIAPLAYER_CLOSEDCAPTION_BUTTON 25312
+#define IDR_MEDIAPLAYER_CLOSEDCAPTION_BUTTON_DISABLED 25313
+#define IDR_MEDIAPLAYER_ENTER_FULLSCREEN_BUTTON 25314
+#define IDR_MEDIAPLAYER_EXIT_FULLSCREEN_BUTTON 25315
+#define IDR_MEDIAPLAYER_CAST_BUTTON_OFF 25316
+#define IDR_MEDIAPLAYER_CAST_BUTTON_ON 25317
+#define IDR_MEDIAPLAYER_OVERLAY_CAST_BUTTON_OFF 25318
+#define IDR_MEDIAPLAYER_OVERLAY_CAST_BUTTON_ON 25319
+#define IDR_MEDIAPLAYER_OVERLAY_PLAY_BUTTON 25320
+#define IDR_MEDIA_PLAYER_ROTATE 25321
+#define IDR_MEDIAPLAYER_TRACKSELECTION_CHECKMARK 25322
+#define IDR_MEDIAPLAYER_CLOSEDCAPTIONS_ICON 25323
+#define IDR_MEDIAPLAYER_OVERFLOW_MENU_ICON 25324
+#define IDR_MEDIAPLAYER_DOWNLOAD_ICON 25325
+#define IDR_MEDIAPLAYER_SUBTITLES_ICON 25326
+#define IDR_MEDIAPLAYER_SPINNER_1 25327
+#define IDR_MEDIAPLAYER_SPINNER_2 25328
+#define IDR_MEDIAPLAYER_SPINNER_3 25329
+#define IDR_MEDIAPLAYER_SPINNER_4 25330
+#define IDR_MEDIAPLAYER_SPINNER_5 25331
+#define IDR_MEDIAPLAYER_SPINNER_6 25332
+#define IDR_MEDIAPLAYER_SPINNER_7 25333
+#define IDR_MEDIAPLAYER_SPINNER_8 25334
+#define IDR_MEDIAPLAYER_SPINNER_9 25335
+#define IDR_MEDIAPLAYER_SPINNER_10 25336
+#define IDR_MEDIAPLAYER_SPINNER_11 25337
+#define IDR_MEDIAPLAYER_SPINNER_12 25338
+#define IDR_MEDIAPLAYER_SPINNER_13 25339
+#define IDR_MEDIAPLAYER_SPINNER_14 25340
+#define IDR_MEDIAPLAYER_SPINNER_15 25341
+#define IDR_MEDIAPLAYER_SPINNER_16 25342
+#define IDR_MEDIAPLAYER_SPINNER_17 25343
+#define IDR_MEDIAPLAYER_SPINNER_18 25344
+#define IDR_MEDIAPLAYER_SPINNER_19 25345
+#define IDR_MEDIAPLAYER_SPINNER_20 25346
+#define IDR_MEDIAPLAYER_SPINNER_21 25347
+#define IDR_MEDIAPLAYER_SPINNER_22 25348
+#define IDR_MEDIAPLAYER_SPINNER_23 25349
+#define IDR_MEDIAPLAYER_SPINNER_24 25350
+#define IDR_MEDIAPLAYER_SPINNER_25 25351
+#define IDR_MEDIAPLAYER_SPINNER_26 25352
+#define IDR_MEDIAPLAYER_SPINNER_27 25353
+#define IDR_MEDIAPLAYER_SPINNER_28 25354
+#define IDR_MEDIAPLAYER_SPINNER_29 25355
+#define IDR_MEDIAPLAYER_SPINNER_30 25356
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON0 25357
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON1 25358
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON2 25359
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON3 25360
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON4 25361
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON5 25362
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON6 25363
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON7 25364
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON8 25365
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON9 25366
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON10 25367
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON11 25368
+#define IDR_SEARCH_CANCEL 25369
+#define IDR_SEARCH_CANCEL_PRESSED 25370
+#define IDR_TEXTAREA_RESIZER 25371
+#define IDR_PASSWORD_GENERATION_ICON 25372
+#define IDR_PASSWORD_GENERATION_ICON_HOVER 25373
+#define IDR_MEDIAPLAYER_WEARABLE_PLAY_BUTTON 25374
+#define IDR_MEDIAPLAYER_WEARABLE_PAUSE_BUTTON 25375
+#define IDR_MEDIAPLAYER_WEARABLE_VOLUME_BUTTON 25376
+#define IDR_MEDIAPLAYER_WEARABLE_MUTE_BUTTON 25377
+#define IDR_MEDIAPLAYER_MOBILE_PLAY_BUTTON 25378
+#define IDR_MEDIAPLAYER_MOBILE_PLAY_BUTTON_DISABLED 25379
+#define IDR_MEDIAPLAYER_MOBILE_PAUSE_BUTTON 25380
+#define IDR_MEDIAPLAYER_MOBILE_SLIDER_THUMB 25381
+#define IDR_MEDIAPLAYER_MOBILE_SEEK_BACK_BUTTON 25382
+#define IDR_MEDIAPLAYER_MOBILE_SEEK_BACK_BUTTON_DISABLED 25383
+#define IDR_MEDIAPLAYER_MOBILE_SEEK_FORWARD_BUTTON 25384
+#define IDR_MEDIAPLAYER_MOBILE_SEEK_FORWARD_BUTTON_DISABLED 25385
#define IDR_UASTYLE_MATHML_CSS 25412
#define IDR_UASTYLE_MEDIA_CONTROLS_CSS 25413
#define IDR_UASTYLE_FULLSCREEN_CSS 25414
-#define IDR_UASTYLE_XHTMLMP_CSS 25415
-#define IDR_UASTYLE_VIEWPORT_ANDROID_CSS 25416
-#define IDR_UASTYLE_VIEWPORT_TELEVISION_CSS 25417
-#define IDR_INSPECTOR_OVERLAY_PAGE_HTML 25418
-#define IDR_PRIVATE_SCRIPT_DOCUMENTEXECCOMMAND_JS 25419
-#define IDR_PRIVATE_SCRIPT_DOCUMENTXMLTREEVIEWER_CSS 25420
-#define IDR_PRIVATE_SCRIPT_DOCUMENTXMLTREEVIEWER_JS 25421
-#define IDR_PRIVATE_SCRIPT_HTMLMARQUEEELEMENT_JS 25422
-#define IDR_PRIVATE_SCRIPT_PRIVATESCRIPTRUNNER_JS 25423
-#define IDR_PICKER_COMMON_JS 25424
-#define IDR_PICKER_COMMON_CSS 25425
-#define IDR_CALENDAR_PICKER_CSS 25426
-#define IDR_CALENDAR_PICKER_JS 25427
-#define IDR_PICKER_BUTTON_CSS 25428
-#define IDR_SUGGESTION_PICKER_CSS 25429
-#define IDR_SUGGESTION_PICKER_JS 25430
-#define IDR_COLOR_SUGGESTION_PICKER_CSS 25431
-#define IDR_COLOR_SUGGESTION_PICKER_JS 25432
-#define IDR_LIST_PICKER_CSS 25433
-#define IDR_LIST_PICKER_JS 25434
-#define IDR_AUDIO_SPATIALIZATION_COMPOSITE 25435
+#define IDR_UASTYLE_FULLSCREEN_CANVAS_CSS 25415
+#define IDR_UASTYLE_XHTMLMP_CSS 25416
+#define IDR_UASTYLE_VIEWPORT_ANDROID_CSS 25417
+#define IDR_UASTYLE_VIEWPORT_TELEVISION_CSS 25418
+#define IDR_INSPECTOR_OVERLAY_PAGE_HTML 25419
+#define IDR_PRIVATE_SCRIPT_DOCUMENTEXECCOMMAND_JS 25420
+#define IDR_PRIVATE_SCRIPT_DOCUMENTXMLTREEVIEWER_CSS 25421
+#define IDR_PRIVATE_SCRIPT_DOCUMENTXMLTREEVIEWER_JS 25422
+#define IDR_PRIVATE_SCRIPT_HTMLMARQUEEELEMENT_JS 25423
+#define IDR_PRIVATE_SCRIPT_PRIVATESCRIPTRUNNER_JS 25424
+#define IDR_PICKER_COMMON_JS 25425
+#define IDR_PICKER_COMMON_CSS 25426
+#define IDR_CALENDAR_PICKER_CSS 25427
+#define IDR_CALENDAR_PICKER_JS 25428
+#define IDR_PICKER_BUTTON_CSS 25429
+#define IDR_SUGGESTION_PICKER_CSS 25430
+#define IDR_SUGGESTION_PICKER_JS 25431
+#define IDR_COLOR_SUGGESTION_PICKER_CSS 25432
+#define IDR_COLOR_SUGGESTION_PICKER_JS 25433
+#define IDR_LIST_PICKER_CSS 25434
+#define IDR_LIST_PICKER_JS 25435
+#define IDR_AUDIO_SPATIALIZATION_COMPOSITE 25436
::gfx::mojom::blink::RectPtr damage_rect;
::gfx::mojom::blink::TransformPtr transform_to_root_target;
bool has_transparent_background;
+ bool has_canvas_hole;
WTF::Vector<::cc::mojom::blink::DrawQuadPtr> quad_list;
private:
DISALLOW_COPY_AND_ASSIGN(RenderPass);
rv->damage_rect = mojo::internal::Clone(damage_rect);
rv->transform_to_root_target = mojo::internal::Clone(transform_to_root_target);
rv->has_transparent_background = mojo::internal::Clone(has_transparent_background);
+ rv->has_canvas_hole = mojo::internal::Clone(has_canvas_hole);
rv->quad_list = mojo::internal::Clone(quad_list);
return rv;
}
return false;
if (!mojo::internal::Equals(this->has_transparent_background, other.has_transparent_background))
return false;
+ if (!mojo::internal::Equals(this->has_canvas_hole, other.has_canvas_hole))
+ return false;
if (!mojo::internal::Equals(this->quad_list, other.quad_list))
return false;
return true;
return input->has_transparent_background;
}
+ static decltype(::cc::mojom::blink::RenderPass::has_canvas_hole) has_canvas_hole(
+ const ::cc::mojom::blink::RenderPassPtr& input) {
+ return input->has_canvas_hole;
+ }
+
static const decltype(::cc::mojom::blink::RenderPass::quad_list)& quad_list(
const ::cc::mojom::blink::RenderPassPtr& input) {
return input->quad_list;
mojo::internal::Pointer<::gfx::mojom::internal::Rect_Data> damage_rect;
mojo::internal::Pointer<::gfx::mojom::internal::Transform_Data> transform_to_root_target;
uint8_t has_transparent_background : 1;
- uint8_t pad4_[7];
+ uint8_t has_canvas_hole : 1;
+ uint8_t pad5_[7];
mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::cc::mojom::internal::DrawQuad_Data>>> quad_list;
private:
bool has_transparent_background() const {
return data_->has_transparent_background;
}
+ bool has_canvas_hole() const {
+ return data_->has_canvas_hole;
+ }
inline void GetQuadListDataView(
mojo::ArrayDataView<::cc::mojom::DrawQuadDataView>* output);
mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
"null transform_to_root_target in RenderPass struct");
result->has_transparent_background = CallWithContext(Traits::has_transparent_background, input, custom_context);
+ result->has_canvas_hole = CallWithContext(Traits::has_canvas_hole, input, custom_context);
decltype(CallWithContext(Traits::quad_list, input, custom_context)) in_quad_list = CallWithContext(Traits::quad_list, input, custom_context);
typename decltype(result->quad_list)::BaseType* quad_list_ptr;
const mojo::internal::ContainerValidateParams quad_list_validate_params(
gfx::Rect damage_rect;
gfx::Transform transform_to_root_target;
bool has_transparent_background;
+ bool has_canvas_hole;
std::vector<::cc::mojom::DrawQuadPtr> quad_list;
private:
DISALLOW_COPY_AND_ASSIGN(RenderPass);
rv->damage_rect = mojo::internal::Clone(damage_rect);
rv->transform_to_root_target = mojo::internal::Clone(transform_to_root_target);
rv->has_transparent_background = mojo::internal::Clone(has_transparent_background);
+ rv->has_canvas_hole = mojo::internal::Clone(has_canvas_hole);
rv->quad_list = mojo::internal::Clone(quad_list);
return rv;
}
return false;
if (!mojo::internal::Equals(this->has_transparent_background, other.has_transparent_background))
return false;
+ if (!mojo::internal::Equals(this->has_canvas_hole, other.has_canvas_hole))
+ return false;
if (!mojo::internal::Equals(this->quad_list, other.quad_list))
return false;
return true;
return input->has_transparent_background;
}
+ static decltype(::cc::mojom::RenderPass::has_canvas_hole) has_canvas_hole(
+ const ::cc::mojom::RenderPassPtr& input) {
+ return input->has_canvas_hole;
+ }
+
static const decltype(::cc::mojom::RenderPass::quad_list)& quad_list(
const ::cc::mojom::RenderPassPtr& input) {
return input->quad_list;
#define IDS_BEFORERELOAD_MESSAGEBOX_OK_BUTTON_LABEL 15050
#define IDS_BEFORERELOAD_MESSAGEBOX_CANCEL_BUTTON_LABEL 15051
#define IDS_AUTOFILL_CLEAR_FORM_MENU_ITEM 15052
-#define IDS_AUTOFILL_CLEAR_LOCAL_COPY_BUTTON 15053
#define IDS_AUTOFILL_WARNING_FORM_DISABLED 15054
#define IDS_AUTOFILL_WARNING_INSECURE_CONNECTION 15055
#define IDS_AUTOFILL_CREDIT_CARD_HTTP_WARNING_MESSAGE 15056
#define IDS_AUTOFILL_SCAN_CREDIT_CARD 15092
#define IDS_AUTOFILL_PASSWORD_FIELD_SUGGESTIONS_TITLE 15093
#define IDS_AUTOFILL_PASSWORD_HTTP_WARNING_MESSAGE 15094
-#define IDS_AUTOFILL_SAVE_CARD_PROMPT_ACCEPT 15098
-#define IDS_AUTOFILL_SAVE_CARD_PROMPT_TITLE_LOCAL 15099
-#define IDS_AUTOFILL_SAVE_CARD_PROMPT_TITLE_TO_CLOUD 15100
-#define IDS_AUTOFILL_SAVE_CARD_PROMPT_UPLOAD_EXPLANATION 15101
#define IDS_AUTOFILL_CREDIT_CARD_EXPIRATION_DATE_ABBR 15102
#define IDS_AUTOFILL_CARD_UNMASK_PROMPT_ERROR_TRY_AGAIN 15103
#define IDS_AUTOFILL_CARD_UNMASK_PROMPT_ERROR_TRY_AGAIN_WITH_EXPIRATION 15104
#define IDS_AUTOFILL_CARD_UNMASK_PROMPT_TITLE 15107
#define IDS_AUTOFILL_CARD_UNMASK_PROMPT_UPDATE_TITLE 15108
#define IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS 15109
-#define IDS_AUTOFILL_CARD_UNMASK_PROMPT_STORAGE_CHECKBOX 15111
-#define IDS_AUTOFILL_CARD_UNMASK_PROMPT_STORAGE_TOOLTIP 15112
#define IDS_AUTOFILL_CARD_UNMASK_CONFIRM_BUTTON 15113
-#define IDS_AUTOFILL_CARD_UNMASK_VERIFICATION_IN_PROGRESS 15114
-#define IDS_AUTOFILL_CARD_UNMASK_VERIFICATION_SUCCESS 15115
-#define IDS_AUTOFILL_CARD_UNMASK_INVALID_EXPIRATION_DATE 15116
-#define IDS_AUTOFILL_CARD_UNMASK_EXPIRATION_DATE_SEPARATOR 15117
-#define IDS_AUTOFILL_CARD_UNMASK_NEW_CARD_LINK 15118
-#define IDS_AUTOFILL_DIALOG_PLACEHOLDER_CVC 15119
#define IDS_BOOKMARK_BAR_FOLDER_NAME 15120
#define IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME 15121
#define IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME 15122
#define IDS_BOOKMARK_BAR_MANAGED_FOLDER_DOMAIN_NAME 15123
#define IDS_BOOKMARK_BAR_MANAGED_FOLDER_DEFAULT_NAME 15124
#define IDS_BOOKMARK_BAR_SUPERVISED_FOLDER_DEFAULT_NAME 15125
-#define IDS_BOOKMARK_BUBBLE_REMOVE_BOOKMARK 15126
-#define IDS_BOOKMARK_EDITOR_NEW_FOLDER_NAME 15127
-#define IDS_BOOKMARK_EDITOR_TITLE 15128
-#define IDS_BOOKMARK_MANAGER_NAME_INPUT_PLACE_HOLDER 15129
-#define IDS_BOOKMARK_MANAGER_URL_INPUT_PLACE_HOLDER 15130
-#define IDS_TOOLTIP_STAR 15138
-#define IDS_SYNC_TIME_NEVER 15139
-#define IDS_SYNC_TIME_JUST_NOW 15140
-#define IDS_CLEAR_BROWSING_DATA_CALCULATING 15141
-#define IDS_CLEAR_BROWSING_DATA_UNKNOWN_SIZE 15142
-#define IDS_CLEAR_BROWSING_DATA_UNKNOWN_AMOUNT 15143
-#define IDS_DEL_BROWSING_HISTORY_COUNTER 15144
-#define IDS_DEL_BROWSING_HISTORY_COUNTER_SYNCED 15145
-#define IDS_DEL_CACHE_COUNTER_UPPER_ESTIMATE 15146
-#define IDS_DEL_CACHE_COUNTER_ALMOST_EMPTY 15147
-#define IDS_DEL_PASSWORDS_COUNTER 15148
-#define IDS_DEL_AUTOFILL_COUNTER_EMPTY 15149
-#define IDS_DEL_AUTOFILL_COUNTER_CREDIT_CARDS 15150
-#define IDS_DEL_AUTOFILL_COUNTER_ADDRESSES 15151
-#define IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS 15152
-#define IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS_LONG 15153
-#define IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS_SHORT 15154
-#define IDS_DEL_AUTOFILL_COUNTER_TWO_TYPES 15155
-#define IDS_DEL_AUTOFILL_COUNTER_THREE_TYPES 15156
-#define IDS_DEL_COOKIES_COUNTER 15157
-#define IDS_DEL_DOWNLOADS_COUNTER 15158
-#define IDS_DEL_HOSTED_APPS_COUNTER 15159
-#define IDS_DEL_HOSTED_APPS_COUNTER_AND_X_MORE 15160
-#define IDS_DEL_MEDIA_LICENSES_COUNTER_GENERAL_COMMENT 15161
-#define IDS_DEL_MEDIA_LICENSES_COUNTER_SITE_COMMENT 15162
-#define IDS_SETTINGS_TITLE 15163
-#define IDS_SETTINGS_HIDE_ADVANCED_SETTINGS 15164
-#define IDS_SETTINGS_SHOW_ADVANCED_SETTINGS 15165
-#define IDS_NETWORK_PREDICTION_ENABLED_DESCRIPTION 15166
-#define IDS_OPTIONS_PROXIES_CONFIGURE_BUTTON 15167
-#define IDS_CRASH_TITLE 15168
-#define IDS_CRASH_CRASH_COUNT_BANNER_FORMAT 15169
-#define IDS_CRASH_CRASH_HEADER_FORMAT 15170
-#define IDS_CRASH_CRASH_HEADER_FORMAT_LOCAL_ONLY 15171
-#define IDS_CRASH_CRASH_TIME_FORMAT 15172
-#define IDS_CRASH_CRASH_NOT_UPLOADED 15173
-#define IDS_CRASH_CRASH_PENDING 15174
-#define IDS_CRASH_CRASH_USER_REQUESTED 15175
-#define IDS_CRASH_BUG_LINK_LABEL 15176
-#define IDS_CRASH_NO_CRASHES_MESSAGE 15177
-#define IDS_CRASH_DISABLED_HEADER 15178
-#define IDS_CRASH_UPLOAD_MESSAGE 15179
-#define IDS_CRASH_UPLOAD_NOW_LINK_TEXT 15180
-#define IDS_CRASH_SIZE_MESSAGE 15181
-#define IDS_HTTP_POST_WARNING_TITLE 15182
-#define IDS_HTTP_POST_WARNING 15183
-#define IDS_HTTP_POST_WARNING_RESEND 15184
#define IDS_DOM_DISTILLER_JAVASCRIPT_DISABLED_CONTENT 15185
#define IDS_DOM_DISTILLER_WEBUI_ENTRY_URL 15186
#define IDS_DOM_DISTILLER_WEBUI_ENTRY_ADD 15187
#define IDS_DOM_DISTILLER_QUALITY_ANSWER_YES 15200
#define IDS_DOM_DISTILLER_QUALITY_ANSWER_NO 15201
#define IDS_DOM_DISTILLER_WEBUI_TITLE 15202
-#define IDS_ERRORPAGE_NET_BUTTON_DETAILS 15203
-#define IDS_ERRORPAGE_NET_BUTTON_HIDE_DETAILS 15204
-#define IDS_ERRORPAGES_BUTTON_MORE 15205
-#define IDS_ERRORPAGES_BUTTON_LESS 15206
-#define IDS_ERRORPAGES_BUTTON_RELOAD 15207
-#define IDS_ERRORPAGES_BUTTON_SHOW_SAVED_COPY 15208
-#define IDS_ERRORPAGES_BUTTON_SHOW_SAVED_COPY_HELP 15209
-#define IDS_ERRORPAGE_FUN_DISABLED 15210
#define IDS_ERRORPAGES_SUGGESTION_VISIT_GOOGLE_CACHE 15214
#define IDS_ERRORPAGES_SUGGESTION_CORRECTED_URL 15215
#define IDS_ERRORPAGES_SUGGESTION_ALTERNATE_URL 15216
-#define IDS_ERRORPAGES_SUGGESTION_RELOAD_REPOST_SUMMARY 15217
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_CONNECTION_HEADER 15218
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_CONNECTION_BODY 15219
-#define IDS_ERRORPAGES_SUGGESTION_DNS_CONFIG_HEADER 15220
-#define IDS_ERRORPAGES_SUGGESTION_DNS_CONFIG_BODY 15221
-#define IDS_ERRORPAGES_SUGGESTION_NETWORK_PREDICTION_HEADER 15222
-#define IDS_ERRORPAGES_SUGGESTION_FIREWALL_CONFIG_BODY 15223
-#define IDS_ERRORPAGES_SUGGESTION_PROXY_CONFIG_HEADER 15224
-#define IDS_ERRORPAGES_SUGGESTION_PROXY_CONFIG_BODY 15225
-#define IDS_ERRORPAGES_SUGGESTION_VIEW_POLICIES_HEADER 15227
-#define IDS_ERRORPAGES_SUGGESTION_VIEW_POLICIES_BODY 15228
-#define IDS_ERRORPAGES_SUGGESTION_UNSUPPORTED_CIPHER_HEADER 15229
-#define IDS_ERRORPAGES_SUGGESTION_UNSUPPORTED_CIPHER_BODY 15230
-#define IDS_ERRORPAGES_HEADING_NOT_AVAILABLE 15231
-#define IDS_ERRORPAGES_HEADING_NETWORK_ACCESS_DENIED 15232
-#define IDS_ERRORPAGES_HEADING_INTERNET_DISCONNECTED 15233
-#define IDS_ERRORPAGES_HEADING_CACHE_READ_FAILURE 15234
-#define IDS_ERRORPAGES_HEADING_CONNECTION_INTERRUPTED 15235
-#define IDS_ERRORPAGES_HEADING_NOT_FOUND 15236
-#define IDS_ERRORPAGES_HEADING_FILE_NOT_FOUND 15237
-#define IDS_ERRORPAGES_HEADING_TOO_MANY_REDIRECTS 15238
-#define IDS_ERRORPAGES_HEADING_EMPTY_RESPONSE 15239
-#define IDS_ERRORPAGES_HEADING_BLOCKED 15240
-#define IDS_ERRORPAGES_SUMMARY_NOT_AVAILABLE 15241
-#define IDS_ERRORPAGES_SUMMARY_TIMED_OUT 15242
-#define IDS_ERRORPAGES_SUMMARY_CONNECTION_RESET 15243
-#define IDS_ERRORPAGES_SUMMARY_CONNECTION_CLOSED 15244
-#define IDS_ERRORPAGES_SUMMARY_CONNECTION_FAILED 15245
-#define IDS_ERRORPAGES_SUMMARY_NETWORK_CHANGED 15246
-#define IDS_ERRORPAGES_SUMMARY_CONNECTION_REFUSED 15247
-#define IDS_ERRORPAGES_SUMMARY_NAME_NOT_RESOLVED 15248
-#define IDS_ERRORPAGES_SUMMARY_DNS_DEFINITION 15249
-#define IDS_ERRORPAGES_SUMMARY_ICANN_NAME_COLLISION 15250
-#define IDS_ERRORPAGES_SUMMARY_ADDRESS_UNREACHABLE 15251
-#define IDS_ERRORPAGES_SUMMARY_FILE_ACCESS_DENIED 15252
-#define IDS_ERRORPAGES_SUMMARY_NETWORK_ACCESS_DENIED 15253
-#define IDS_ERRORPAGES_SUMMARY_PROXY_CONNECTION_FAILED 15254
-#define IDS_ERRORPAGES_SUMMARY_CACHE_READ_FAILURE 15255
-#define IDS_ERRORPAGES_SUMMARY_NETWORK_IO_SUSPENDED 15256
-#define IDS_ERRORPAGES_SUMMARY_NOT_FOUND 15257
-#define IDS_ERRORPAGES_SUMMARY_FILE_NOT_FOUND 15258
-#define IDS_ERRORPAGES_SUMMARY_TOO_MANY_REDIRECTS 15259
-#define IDS_ERRORPAGES_SUMMARY_EMPTY_RESPONSE 15260
-#define IDS_ERRORPAGES_SUMMARY_INVALID_RESPONSE 15261
-#define IDS_ERRORPAGES_SUMMARY_DNS_PROBE_RUNNING 15262
-#define IDS_ERRORPAGES_HEADING_ACCESS_DENIED 15263
-#define IDS_ERRORPAGES_HEADING_FILE_ACCESS_DENIED 15264
-#define IDS_ERRORPAGES_SUMMARY_FORBIDDEN 15265
-#define IDS_ERRORPAGES_SUMMARY_GONE 15266
-#define IDS_ERRORPAGES_HEADING_PAGE_NOT_WORKING 15267
-#define IDS_ERRORPAGES_SUMMARY_WEBSITE_CANNOT_HANDLE_REQUEST 15268
-#define IDS_ERRORPAGES_SUMMARY_SERVICE_UNAVAILABLE 15269
-#define IDS_ERRORPAGES_SUMMARY_GATEWAY_TIMEOUT 15270
-#define IDS_ERRORPAGES_SUMMARY_SSL_SECURITY_ERROR 15271
-#define IDS_ERRORPAGES_SUMMARY_SSL_VERSION_OR_CIPHER_MISMATCH 15272
-#define IDS_ERRORPAGES_SUMMARY_PINNING_FAILURE_DETAILS 15273
-#define IDS_ERRORPAGES_HEADING_INSECURE_CONNECTION 15274
-#define IDS_ERRORPAGES_SUMMARY_BAD_SSL_CLIENT_AUTH_CERT 15275
-#define IDS_ERRORPAGES_SUMMARY_BLOCKED_BY_EXTENSION 15276
-#define IDS_ERRORPAGES_SUMMARY_BLOCKED_BY_ADMINISTRATOR 15277
-#define IDS_ERRORPAGES_HTTP_POST_WARNING 15278
-#define IDS_ERRORPAGES_SUGGESTION_LIST_HEADER 15279
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_CONNECTION_SUMMARY 15280
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_PROXY_FIREWALL_DNS_SUMMARY 15281
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_FIREWALL_ANTIVIRUS_SUMMARY 15282
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_PROXY_FIREWALL_SUMMARY 15283
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_PROXY_ADDRESS_SUMMARY 15284
-#define IDS_ERRORPAGES_SUGGESTION_CONTACT_ADMIN_SUMMARY 15285
-#define IDS_ERRORPAGES_SUGGESTION_CONTACT_ADMIN_SUMMARY_STANDALONE 15286
-#define IDS_ERRORPAGES_SUGGESTION_LEARNMORE_SUMMARY 15287
-#define IDS_ERRORPAGES_SUGGESTION_LEARNMORE_SUMMARY_STANDALONE 15288
-#define IDS_ERRORPAGES_SUGGESTION_CLEAR_COOKIES_SUMMARY 15289
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_HARDWARE_SUMMARY 15293
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_WIFI_SUMMARY 15294
-#define IDS_ERRORPAGES_SUGGESTION_DIAGNOSE_CONNECTION_SUMMARY 15295
-#define IDS_ERRORPAGES_SUGGESTION_COMPLETE_SETUP_SUMMARY 15296
-#define IDS_ERRORPAGES_SUGGESTION_DISABLE_EXTENSION_SUMMARY 15297
-#define IDS_ERRORPAGES_SUGGESTION_GOOGLE_SEARCH_SUMMARY 15298
-#define IDS_FIND_IN_PAGE_COUNT 15302
-#define IDS_FIND_IN_PAGE_PREVIOUS_TOOLTIP 15303
-#define IDS_FIND_IN_PAGE_NEXT_TOOLTIP 15304
-#define IDS_FIND_IN_PAGE_CLOSE_TOOLTIP 15305
#define IDS_FLAGS_UI_LONG_TITLE 15306
#define IDS_FLAGS_UI_TABLE_TITLE 15307
#define IDS_FLAGS_UI_WARNING_HEADER 15308
#define IDS_FLAGS_UI_NOT_AVAILABLE 15316
#define IDS_FLAGS_UI_ENABLE_NACL_NAME 15317
#define IDS_FLAGS_UI_RELAUNCH_BUTTON 15318
-#define IDS_GENERIC_EXPERIMENT_CHOICE_AUTOMATIC 15320
-#define IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT 15321
-#define IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED 15322
-#define IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED 15323
-#define IDS_HISTORY_ACTION_MENU_DESCRIPTION 15326
-#define IDS_HISTORY_BLOCKED_VISIT_TEXT 15327
-#define IDS_HISTORY_BROWSERESULTS 15328
-#define IDS_HISTORY_CANCEL_EDITING_BUTTON 15329
-#define IDS_HISTORY_CONTINUED 15330
-#define IDS_HISTORY_DATE_WITH_RELATIVE_TIME 15331
-#define IDS_HISTORY_DELETE_PRIOR_VISITS_CONFIRM_BUTTON 15332
-#define IDS_HISTORY_DELETE_PRIOR_VISITS_WARNING 15333
-#define IDS_HISTORY_DELETE_PRIOR_VISITS_WARNING_NO_INCOGNITO 15334
-#define IDS_HISTORY_DELETE_SELECTED_ENTRIES_BUTTON 15335
-#define IDS_HISTORY_ENTRY_ACCESSIBILITY_DELETE 15336
-#define IDS_HISTORY_ENTRY_ACCESSIBILITY_LABEL 15337
-#define IDS_HISTORY_ENTRY_BOOKMARKED 15338
-#define IDS_HISTORY_ENTRY_SUMMARY 15339
-#define IDS_HISTORY_FILTER_BLOCKED 15340
-#define IDS_HISTORY_FOUND_SEARCH_RESULTS 15341
-#define IDS_HISTORY_HAS_SYNCED_RESULTS 15342
-#define IDS_HISTORY_OTHER_FORMS_OF_HISTORY 15343
-#define IDS_HISTORY_INTERVAL 15344
-#define IDS_HISTORY_LOADING 15345
-#define IDS_HISTORY_MORE_FROM_SITE 15346
-#define IDS_HISTORY_NEWER 15347
-#define IDS_HISTORY_NEWEST 15348
-#define IDS_HISTORY_NO_RESULTS 15349
-#define IDS_HISTORY_NO_SEARCH_RESULTS 15350
-#define IDS_HISTORY_NO_SYNCED_RESULTS 15351
-#define IDS_HISTORY_NUMBER_VISITS 15352
-#define IDS_HISTORY_OLDER 15353
-#define IDS_HISTORY_OPEN_CLEAR_BROWSING_DATA_DIALOG 15354
-#define IDS_HISTORY_OTHER_DEVICES_X_MORE 15355
-#define IDS_HISTORY_OTHER_SESSIONS_COLLAPSE_SESSION 15356
-#define IDS_HISTORY_OTHER_SESSIONS_EXPAND_SESSION 15357
-#define IDS_HISTORY_OTHER_SESSIONS_HIDE_FOR_NOW 15358
-#define IDS_HISTORY_OTHER_SESSIONS_OPEN_ALL 15359
-#define IDS_HISTORY_RANGE_ALL_TIME 15360
-#define IDS_HISTORY_RANGE_LABEL 15361
-#define IDS_HISTORY_RANGE_MONTH 15362
-#define IDS_HISTORY_RANGE_NEXT 15363
-#define IDS_HISTORY_RANGE_PREVIOUS 15364
-#define IDS_HISTORY_RANGE_TODAY 15365
-#define IDS_HISTORY_RANGE_WEEK 15366
-#define IDS_HISTORY_REMOVE_BOOKMARK 15367
-#define IDS_HISTORY_REMOVE_PAGE 15368
-#define IDS_HISTORY_REMOVE_SELECTED_ITEMS 15369
-#define IDS_HISTORY_SEARCH_BUTTON 15370
-#define IDS_HISTORY_SEARCH_RESULT 15371
-#define IDS_HISTORY_SEARCH_RESULTS 15372
-#define IDS_HISTORY_SEARCHRESULTSFOR 15373
-#define IDS_HISTORY_SHOW_HISTORY 15374
-#define IDS_HISTORY_SHOWFULLHISTORY_LINK 15375
-#define IDS_HISTORY_START_EDITING_BUTTON 15376
-#define IDS_HISTORY_TITLE 15377
-#define IDS_HISTORY_UNKNOWN_DEVICE 15378
-#define IDS_LOGIN_DIALOG_TITLE 15379
-#define IDS_LOGIN_DIALOG_AUTHORITY 15380
-#define IDS_LOGIN_DIALOG_PROXY_AUTHORITY 15381
-#define IDS_LOGIN_DIALOG_USERNAME_FIELD 15382
-#define IDS_LOGIN_DIALOG_PASSWORD_FIELD 15383
-#define IDS_LOGIN_DIALOG_OK_BUTTON_LABEL 15384
-#define IDS_DEFAULT_TAB_TITLE 15385
-#define IDS_SAD_TAB_TITLE 15386
-#define IDS_SAD_TAB_MESSAGE 15387
-#define IDS_SAD_TAB_OOM_MESSAGE 15388
-#define IDS_SAD_TAB_HELP_MESSAGE 15389
-#define IDS_SAD_TAB_HELP_LINK 15390
-#define IDS_SAD_TAB_RELOAD_LABEL 15391
-#define IDS_NEW_TAB_TITLE 15392
-#define IDS_NEW_TAB_OTR_HEADING 15393
-#define IDS_NEW_TAB_OTR_DESCRIPTION 15394
-#define IDS_NEW_TAB_OTR_LEARN_MORE_LINK 15395
-#define IDS_NEW_TAB_OTR_MESSAGE_WARNING 15396
-#define IDS_NEW_TAB_UNDO_THUMBNAIL_REMOVE 15397
-#define IDS_NTP_ARTICLE_SUGGESTIONS_SECTION_HEADER 15401
-#define IDS_NTP_ARTICLE_SUGGESTIONS_SECTION_EMPTY 15402
-#define IDS_NTP_RECENT_TAB_SUGGESTIONS_SECTION_HEADER 15403
-#define IDS_NTP_BOOKMARK_SUGGESTIONS_SECTION_HEADER 15404
-#define IDS_NTP_BOOKMARK_SUGGESTIONS_SECTION_EMPTY 15405
-#define IDS_NTP_FOREIGN_SESSIONS_SUGGESTIONS_SECTION_HEADER 15406
-#define IDS_NTP_FOREIGN_SESSIONS_SUGGESTIONS_SECTION_EMPTY 15407
-#define IDS_NTP_SUGGESTIONS_SECTION_EMPTY 15408
#define IDS_AUTOCOMPLETE_SEARCH_DESCRIPTION 15409
#define IDS_EMPTY_KEYWORD_VALUE 15410
#define IDS_LINK_FROM_CLIPBOARD 15411
-#define IDS_SECURE_CONNECTION_EV 15412
-#define IDS_SECURE_VERBOSE_STATE 15413
-#define IDS_NOT_SECURE_VERBOSE_STATE 15414
-#define IDS_DANGEROUS_VERBOSE_STATE 15415
-#define IDS_PHYSICAL_WEB_OVERFLOW_DESCRIPTION 15417
-#define IDS_PHYSICAL_WEB_OVERFLOW 15418
-#define IDS_PHYSICAL_WEB_OVERFLOW_EMPTY_TITLE 15419
-#define IDS_PAGE_INFO_HELP_CENTER_LINK 15420
-#define IDS_PAGE_INFO_SECURITY_TAB_DEPRECATED_SIGNATURE_ALGORITHM_MINOR 15421
-#define IDS_PAGE_INFO_SECURITY_TAB_DEPRECATED_SIGNATURE_ALGORITHM_MAJOR 15422
-#define IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_CONNECTION_TEXT 15423
-#define IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_ERROR 15424
-#define IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_WARNING 15425
-#define IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_SENTENCE_LINK 15426
-#define IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTION_DETAILS 15427
-#define IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTION_DETAILS_AEAD 15428
-#define IDS_PAGE_INFO_SECURITY_TAB_INSECURE_IDENTITY 15429
-#define IDS_PAGE_INFO_SECURITY_TAB_NON_UNIQUE_NAME 15430
-#define IDS_PAGE_INFO_SECURITY_TAB_NOT_ENCRYPTED_CONNECTION_TEXT 15431
-#define IDS_PAGE_INFO_SECURITY_TAB_NO_REVOCATION_MECHANISM 15432
-#define IDS_PAGE_INFO_SECURITY_TAB_RENEGOTIATION_MESSAGE 15433
-#define IDS_PAGE_INFO_SECURITY_TAB_SSL_VERSION 15434
-#define IDS_PAGE_INFO_SECURITY_TAB_UNABLE_TO_CHECK_REVOCATION 15435
-#define IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY 15436
-#define IDS_PAGE_INFO_SECURITY_TAB_WEAK_ENCRYPTION_CONNECTION_TEXT 15437
-#define IDS_PAGE_INFO_EXTENSION_PAGE 15438
-#define IDS_PAGE_INFO_VIEW_SOURCE_PAGE 15439
-#define IDS_PAGEINFO_CERT_INFO_BUTTON 15440
#define IDS_PASSWORD_MANAGER_EMPTY_LOGIN 15441
-#define IDS_PASSWORD_MANAGER_EXCEPTIONS_TAB_TITLE 15442
-#define IDS_PASSWORD_MANAGER_SHOW_PASSWORDS_TAB_TITLE 15443
-#define IDS_PASSWORD_MANAGER_SMART_LOCK 15444
#define IDS_PAYMENTS_NAME_FIELD_IN_CONTACT_DETAILS 15445
#define IDS_PAYMENTS_SAVE_CARD_TO_DEVICE_CHECKBOX 15446
#define IDS_PAYMENTS_ACCEPTED_CARDS_LABEL 15447
#define IDS_PDF_TOOLTIP_ZOOM_OUT 15534
#define IDS_PDF_LABEL_PAGE_NUMBER 15535
#define IDS_PDF_PAGE_INDEX 15536
-#define IDS_PHYSICAL_WEB_UI_TITLE 15537
#define IDS_POLICY_DM_STATUS_SUCCESS 15538
#define IDS_POLICY_DM_STATUS_REQUEST_INVALID 15539
#define IDS_POLICY_DM_STATUS_REQUEST_FAILED 15540
#define IDS_POLICY_TITLE 15610
#define IDS_POLICY_FILTER_PLACEHOLDER 15611
#define IDS_POLICY_RELOAD_POLICIES 15612
-#define IDS_POLICY_CHROME_FOR_WORK 15613
#define IDS_POLICY_STATUS 15614
#define IDS_POLICY_STATUS_DEVICE 15615
#define IDS_POLICY_STATUS_USER 15616
#define IDS_POLICY_SOURCE_ENTERPRISE_DEFAULT 15643
#define IDS_POLICY_SOURCE_CLOUD 15644
#define IDS_POLICY_SOURCE_PLATFORM 15645
-#define IDS_POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE 15646
-#define IDS_POLICY_RISK_TAG_FULL_ADMIN_ACCESS 15647
-#define IDS_POLICY_RISK_TAG_SYSTEM_SECURITY 15648
-#define IDS_POLICY_RISK_TAG_WEBSITE_SHARING 15649
-#define IDS_POLICY_RISK_TAG_ADMIN_SHARING 15650
-#define IDS_POLICY_RISK_TAG_FILTERING 15651
-#define IDS_POLICY_RISK_TAG_LOCAL_DATA_ACCESS 15652
-#define IDS_POLICY_RISK_TAG_GOOGLE_SHARING 15653
#define IDS_SSL_OPEN_DETAILS_BUTTON 15654
#define IDS_SSL_CLOSE_DETAILS_BUTTON 15655
#define IDS_CLOCK_ERROR_TITLE 15656
#define IDS_CLOCK_ERROR_UPDATE_DATE_AND_TIME 15659
#define IDS_CLOCK_ERROR_PRIMARY_PARAGRAPH 15660
#define IDS_CLOCK_ERROR_EXPLANATION 15661
-#define IDS_SAFE_BROWSING_PRIVACY_POLICY_URL 15662
-#define IDS_SAFE_BROWSING_WHITEPAPER_URL 15663
-#define IDS_SSL_V2_TITLE 15664
-#define IDS_SSL_V2_HEADING 15665
-#define IDS_SSL_V2_PRIMARY_PARAGRAPH 15666
-#define IDS_SSL_OVERRIDABLE_SAFETY_BUTTON 15667
-#define IDS_SSL_OVERRIDABLE_PROCEED_PARAGRAPH 15668
-#define IDS_SSL_RELOAD 15669
-#define IDS_SSL_NONOVERRIDABLE_PINNED 15670
-#define IDS_SSL_NONOVERRIDABLE_HSTS 15671
-#define IDS_SSL_NONOVERRIDABLE_REVOKED 15672
-#define IDS_SSL_NONOVERRIDABLE_MORE 15673
-#define IDS_SSL_NONOVERRIDABLE_INVALID 15674
-#define IDS_PRIVATE_USER_DATA_INPUT 15675
-#define IDS_MAJOR_SHA1 15676
-#define IDS_MAJOR_SHA1_DESCRIPTION 15677
-#define IDS_MINOR_SHA1 15678
-#define IDS_MINOR_SHA1_DESCRIPTION 15679
-#define IDS_CERTIFICATE_CHAIN_ERROR 15680
-#define IDS_CERTIFICATE_CHAIN_ERROR_DESCRIPTION_FORMAT 15681
-#define IDS_VALID_SERVER_CERTIFICATE 15682
-#define IDS_VALID_SERVER_CERTIFICATE_DESCRIPTION 15683
-#define IDS_STRONG_SSL_SUMMARY 15684
-#define IDS_STRONG_SSL_DESCRIPTION 15685
-#define IDS_OBSOLETE_SSL_SUMMARY 15686
-#define IDS_OBSOLETE_SSL_DESCRIPTION 15687
-#define IDS_CIPHER_WITH_MAC 15688
-#define IDS_SSL_AN_OBSOLETE_PROTOCOL 15689
-#define IDS_SSL_A_STRONG_PROTOCOL 15690
-#define IDS_SSL_AN_OBSOLETE_KEY_EXCHANGE 15691
-#define IDS_SSL_A_STRONG_KEY_EXCHANGE 15692
-#define IDS_SSL_AN_OBSOLETE_CIPHER 15693
-#define IDS_SSL_A_STRONG_CIPHER 15694
-#define IDS_SSL_KEY_EXCHANGE_WITH_GROUP 15695
#define IDS_CERT_ERROR_COMMON_NAME_INVALID_DETAILS 15696
#define IDS_CERT_ERROR_COMMON_NAME_INVALID_DESCRIPTION 15697
#define IDS_CERT_ERROR_EXPIRED_DETAILS 15698
#define IDS_CERT_ERROR_UNKNOWN_ERROR_DESCRIPTION 15726
#define IDS_CERT_ERROR_SUMMARY_PINNING_FAILURE_DETAILS 15727
#define IDS_CERT_ERROR_SUMMARY_PINNING_FAILURE_DESCRIPTION 15728
-#define IDS_CERT_ERROR_CERTIFICATE_TRANSPARENCY_REQUIRED_DETAILS 15729
-#define IDS_CERT_ERROR_CERTIFICATE_TRANSPARENCY_REQUIRED_DESCRIPTION 15730
#define IDS_CERT_ERROR_AUTHORITY_INVALID_DETAILS 15731
-#define IDS_BLOCK_INTERSTITIAL_TITLE 15732
-#define IDS_BLOCK_INTERSTITIAL_HEADER 15733
-#define IDS_CHILD_BLOCK_INTERSTITIAL_HEADER 15734
-#define IDS_BLOCK_INTERSTITIAL_HEADER_ACCESS_REQUESTS_DISABLED 15735
-#define IDS_CHILD_BLOCK_INTERSTITIAL_MESSAGE 15736
-#define IDS_BACK_BUTTON 15737
-#define IDS_BLOCK_INTERSTITIAL_REQUEST_ACCESS_BUTTON 15738
-#define IDS_BLOCK_INTERSTITIAL_REQUEST_SENT_MESSAGE 15739
-#define IDS_BLOCK_INTERSTITIAL_REQUEST_FAILED_MESSAGE 15740
-#define IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_SENT_MESSAGE_SINGLE_PARENT 15741
-#define IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_SENT_MESSAGE_MULTI_PARENT 15742
-#define IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_FAILED_MESSAGE_SINGLE_PARENT 15743
-#define IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_FAILED_MESSAGE_MULTI_PARENT 15744
-#define IDS_BLOCK_INTERSTITIAL_SEND_FEEDBACK 15745
-#define IDS_BLOCK_INTERSTITIAL_SHOW_DETAILS 15746
-#define IDS_BLOCK_INTERSTITIAL_HIDE_DETAILS 15747
-#define IDS_SUPERVISED_USER_BLOCK_HEADER 15748
-#define IDS_CHILD_BLOCK_MESSAGE_DEFAULT_SINGLE_PARENT 15749
-#define IDS_CHILD_BLOCK_MESSAGE_DEFAULT_MULTI_PARENT 15750
-#define IDS_SUPERVISED_USER_BLOCK_MESSAGE_DEFAULT 15751
-#define IDS_SUPERVISED_USER_BLOCK_MESSAGE_SAFE_SITES 15752
-#define IDS_CHILD_BLOCK_MESSAGE_MANUAL_SINGLE_PARENT 15753
-#define IDS_CHILD_BLOCK_MESSAGE_MANUAL_MULTI_PARENT 15754
-#define IDS_SUPERVISED_USER_BLOCK_MESSAGE_MANUAL 15755
-#define IDS_SYNC_BASIC_ENCRYPTION_DATA 15756
-#define IDS_SYNC_CONFIGURE_ENCRYPTION 15757
-#define IDS_SYNC_DATATYPE_AUTOFILL 15758
-#define IDS_SYNC_DATATYPE_BOOKMARKS 15759
-#define IDS_SYNC_DATATYPE_PASSWORDS 15760
-#define IDS_SYNC_DATATYPE_PREFERENCES 15761
-#define IDS_SYNC_DATATYPE_TABS 15762
-#define IDS_SYNC_DATATYPE_TYPED_URLS 15763
-#define IDS_SYNC_EMPTY_PASSPHRASE_ERROR 15764
-#define IDS_SYNC_ENCRYPTION_SECTION_TITLE 15765
-#define IDS_SYNC_ENTER_GOOGLE_PASSPHRASE_BODY 15766
-#define IDS_SYNC_FULL_ENCRYPTION_DATA 15767
-#define IDS_SYNC_LOGIN_SETTING_UP 15768
-#define IDS_SYNC_PASSPHRASE_LABEL 15769
-#define IDS_SYNC_PASSPHRASE_MISMATCH_ERROR 15770
-#define IDS_SYNC_SERVICE_UNAVAILABLE 15771
-#define IDS_SYNC_ENTER_PASSPHRASE_BODY_WITH_DATE 15772
-#define IDS_SYNC_ENTER_PASSPHRASE_BODY 15773
#define IDS_TRANSLATE_INFOBAR_OPTIONS 15774
#define IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_LANG 15775
#define IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_SITE 15776
#define IDS_BOOKMARK_BAR_REDO_MOVE 15808
#define IDS_BOOKMARK_BAR_UNDO_REORDER 15809
#define IDS_BOOKMARK_BAR_REDO_REORDER 15810
-#define IDS_VERSION_UI_TITLE 15811
-#define IDS_VERSION_UI_OFFICIAL 15812
#define IDS_VERSION_UI_UNOFFICIAL 15813
-#define IDS_VERSION_UI_32BIT 15814
-#define IDS_VERSION_UI_64BIT 15815
-#define IDS_VERSION_UI_REVISION 15816
-#define IDS_VERSION_UI_OS 15817
-#define IDS_VERSION_UI_USER_AGENT 15818
-#define IDS_VERSION_UI_COMMAND_LINE 15819
-#define IDS_VERSION_UI_EXECUTABLE_PATH 15821
-#define IDS_VERSION_UI_PROFILE_PATH 15822
-#define IDS_VERSION_UI_PATH_NOTFOUND 15823
-#define IDS_VERSION_UI_VARIATIONS 15824
-#define IDS_COLOR_PICKER_BUTTON_MORE 15825
-#define IDS_COLOR_PICKER_HUE 15826
-#define IDS_COLOR_PICKER_SATURATION 15827
-#define IDS_COLOR_PICKER_VALUE 15828
-#define IDS_COLOR_PICKER_BUTTON_SET 15829
-#define IDS_COLOR_PICKER_BUTTON_CANCEL 15830
-#define IDS_COLOR_PICKER_DIALOG_TITLE 15831
-#define IDS_COLOR_PICKER_BUTTON_RED 15832
-#define IDS_COLOR_PICKER_BUTTON_CYAN 15833
-#define IDS_COLOR_PICKER_BUTTON_BLUE 15834
-#define IDS_COLOR_PICKER_BUTTON_GREEN 15835
-#define IDS_COLOR_PICKER_BUTTON_MAGENTA 15836
-#define IDS_COLOR_PICKER_BUTTON_YELLOW 15837
-#define IDS_COLOR_PICKER_BUTTON_BLACK 15838
-#define IDS_COLOR_PICKER_BUTTON_WHITE 15839
-#define IDS_CANCEL 15840
-#define IDS_CLOSE 15841
-#define IDS_DONE 15842
#define IDS_LEARN_MORE 15843
-#define IDS_OK 15844
-#define IDS_NO_THANKS 15845
-#define IDS_NOT_NOW 15846
-#define IDS_PLUGIN_NOT_SUPPORTED 15847
-#define IDS_PRINT 15848
-#define IDS_RECENTLY_CLOSED 15849
-#define IDS_ACCNAME_BACK 15850
-#define IDS_ACCNAME_FORWARD 15851
-#define IDS_ACCNAME_CLOSE 15852
-#define IDS_ACCNAME_LOCATION 15853
#define IDS_UTILITY_PROCESS_JSON_PARSER_NAME 15854
-#define IDS_SESSION_CRASHED_VIEW_RESTORE_BUTTON 15855
-#define IDS_WEBSITE_SETTINGS_NON_SECURE_TRANSPORT 15856
-#define IDS_OPTIONS_ADVANCED_SECTION_TITLE_PRIVACY 15857
#define PRODUCT_NAME "Chromium"
#define PRODUCT_VERSION "56.0.2924.0"
#define LAST_CHANGE "bc2c1b21208e397db57763e1d2e93e363db80866"
-#define IS_OFFICIAL_BUILD 0
+#define IS_OFFICIAL_BUILD 1
#endif // COMPONENTS_VERSION_INFO_VERSION_INFO_VALUES_H_
#define IDS_AX_ROLE_BANNER 20135
#define IDS_AX_ROLE_COMPLEMENTARY 20136
#define IDS_AX_ROLE_CHECK_BOX 20137
-#define IDS_AX_ROLE_CONTENT_INFO 20138
-#define IDS_AX_ROLE_DEFINITION 20139
#define IDS_AX_ROLE_DESCRIPTION_LIST 20140
#define IDS_AX_ROLE_DESCRIPTION_TERM 20141
#define IDS_AX_ROLE_FIGURE 20142
#define IDS_AX_ROLE_FORM 20143
-#define IDS_AX_ROLE_FOOTER 20144
-#define IDS_AX_ROLE_TOGGLE_BUTTON 20146
#define IDS_AX_ROLE_HEADING 20147
#define IDS_AX_ROLE_IMAGE_MAP 20148
#define IDS_AX_ROLE_LINK 20149
-// Copyright (c) 2017 The Chromium Authors. All rights reserved.
+// Copyright (c) 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.
--- /dev/null
+// This file is automatically generated by GRIT. Do not edit.
+
+#pragma once
+
+#define IDR_VERSION_UI_EFL_HTML 31100
+#define IDR_VERSION_UI_EFL_JS 31101
+#define IDR_VERSION_UI_EFL_CSS 31102
+#define IDS_ABOUT_VERSION_TITLE 31200
+#define IDS_ABOUT_VERSION_OFFICIAL 31201
+#define IDS_ABOUT_VERSION_32BIT 31202
+#define IDS_ABOUT_VERSION_64BIT 31203
+#define IDS_ABOUT_VERSION_REVISION 31204
+#define IDS_ABOUT_VERSION_OS 31205
+#define IDS_ABOUT_VERSION_USER_AGENT 31206
+#define IDS_ABOUT_VERSION_COMMAND_LINE 31207
+#define IDS_ABOUT_VERSION_EXECUTABLE_PATH 31208
+#define IDS_ABOUT_VERSION_PROFILE_PATH 31209
+#define IDS_ABOUT_VERSION_PATH_NOTFOUND 31210
+#define IDS_ABOUT_VERSION_VARIATIONS 31211
+#define IDS_PRODUCT_NAME 31212
+#define IDS_ABOUT_VERSION_COPYRIGHT 31213
+#define IDS_ABOUT_VERSION_COMPANY_NAME 31214
void SwapBuffers() override;
+ void TexImage2D(GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const void* pixels) override;
+
private:
GLES2Interface* gl_;
};
// function is called. If 0 is returned the id is invalid.
int GLGetNumValuesReturned(int id) const;
+ static int ElementsPerGroup(int format, int type);
// Computes the size of a single group of elements from a format and type pair
static uint32_t ComputeImageGroupSize(int format, int type);
bool khr_debug = false;
bool chromium_bind_generates_resource = false;
bool angle_webgl_compatibility = false;
+ bool ext_srgb = false;
};
FeatureInfo();
class GLES2Decoder;
+enum CopyTextureMethod {
+ // Use CopyTex{Sub}Image2D to copy from the source to the destination.
+ DIRECT_COPY,
+ // Draw from the source to the destination texture.
+ DIRECT_DRAW,
+ // Draw to an intermediate texture, and then copy to the destination texture.
+ DRAW_AND_COPY,
+ // CopyTexture isn't available.
+ NOT_COPYABLE
+};
+
+// TODOs(qiankun.miao@intel.com):
+// 1. Add readback path for RGB9_E5 and float formats (if extension isn't
+// available and they are not color-renderable).
+// 2. Support faces of cube map texture as valid dest target. The cube map
+// texture may be incomplete currently.
+// 3. Add support for levels other than 0.
+// 4. Support ALPHA, LUMINANCE and LUMINANCE_ALPHA formats on core profile.
+// 5. Update the extension doc after the whole work is done
+// in gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt. We probably
+// will need a ES2 version and a ES3 version.
+
// This class encapsulates the resources required to implement the
// GL_CHROMIUM_copy_texture extension. The copy operation is performed
// via glCopyTexImage2D() or a blit to a framebuffer object.
GLsizei height,
bool flip_y,
bool premultiply_alpha,
- bool unpremultiply_alpha);
+ bool unpremultiply_alpha,
+ CopyTextureMethod method);
void DoCopySubTexture(const gles2::GLES2Decoder* decoder,
GLenum source_target,
GLsizei source_height,
bool flip_y,
bool premultiply_alpha,
- bool unpremultiply_alpha);
+ bool unpremultiply_alpha,
+ CopyTextureMethod method);
void DoCopySubTextureWithTransform(const gles2::GLES2Decoder* decoder,
GLenum source_target,
void DoCopyTextureWithTransform(const gles2::GLES2Decoder* decoder,
GLenum source_target,
GLuint source_id,
+ GLenum source_format,
GLenum dest_target,
GLuint dest_id,
+ GLenum dest_format,
GLsizei width,
GLsizei height,
bool flip_y,
void DoCopyTextureInternal(const gles2::GLES2Decoder* decoder,
GLenum source_target,
GLuint source_id,
+ GLenum source_format,
GLenum dest_target,
GLuint dest_id,
+ GLenum dest_format,
GLint xoffset,
GLint yoffset,
GLint x,
bool initialized_;
bool nv_egl_stream_consumer_external_;
typedef std::vector<GLuint> ShaderVector;
- GLuint vertex_shader_;
+ ShaderVector vertex_shaders_;
ShaderVector fragment_shaders_;
typedef int ProgramMapKey;
typedef base::hash_map<ProgramMapKey, ProgramInfo> ProgramMap;
bool EmulatingRGB();
+ static bool ColorRenderable(const FeatureInfo* feature_info,
+ GLenum internal_format,
+ bool immutable);
+
private:
friend class MailboxManagerImpl;
friend class MailboxManagerSync;
GLenum format,
GLenum type);
- static bool ColorRenderable(const FeatureInfo* feature_info,
- GLenum internal_format,
- bool immutable);
-
static bool TextureFilterable(const FeatureInfo* feature_info,
GLenum internal_format,
GLenum type,
const gpu::CommandBufferId command_buffer_id_;
const int32_t route_id_;
const int32_t stream_id_;
+ const bool use_direct_canvas_;
uint32_t flush_count_;
int32_t last_put_offset_;
int32_t last_barrier_put_offset_;
IPC_STRUCT_TRAITS_MEMBER(stencil_size)
IPC_STRUCT_TRAITS_MEMBER(samples)
IPC_STRUCT_TRAITS_MEMBER(sample_buffers)
+#if defined(OS_TIZEN_TV_PRODUCT)
+ IPC_STRUCT_TRAITS_MEMBER(texture_samples)
+#endif
IPC_STRUCT_TRAITS_MEMBER(buffer_preserved)
IPC_STRUCT_TRAITS_MEMBER(bind_generates_resource)
IPC_STRUCT_TRAITS_MEMBER(fail_if_major_perf_caveat)
static void SetMainThread(scoped_refptr<base::SingleThreadTaskRunner> task_runner);
static const scoped_refptr<base::SingleThreadTaskRunner>& GetMainThread();
+ static void SetDirectCanvasEnabled();
+ static bool GetDirectCanvasEnabled();
+
static void ReleaseGpuService();
};
void AddFilter(IPC::MessageFilter* filter);
void RemoveFilter(IPC::MessageFilter* filter);
+ void AddFilterOnGpuThread(IPC::MessageFilter* filter);
+ void RemoveFilterOnGpuThread(IPC::MessageFilter* filter);
uint64_t GetMemoryUsage();
IPC::Channel* channel_;
base::ProcessId peer_pid_;
+ base::Lock filters_lock_;
std::vector<scoped_refptr<IPC::MessageFilter>> channel_filters_;
DISALLOW_COPY_AND_ASSIGN(GpuChannelMessageFilter);
AndroidWebViewMsgStart,
MetroViewerMsgStart,
CCMsgStart,
- MediaCaptureMsgStart,
+ MediaRecorderMsgStart,
MediaPlayerMsgStart,
TracingMsgStart,
PeerConnectionTrackerMsgStart,
const std::string& device_id,
const LogCallback& log_callback) = 0;
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ // Creates the output stream for the |AUDIO_PCM_LOW_LATENCY_PPAPI| format.
+ virtual AudioOutputStream* MakeLowLatencyOutputStreamPPAPI(
+ const AudioParameters& params,
+ const std::string& device_id,
+ const LogCallback& log_callback) {
+ return nullptr;
+ }
+#endif
+
std::string GetGroupIDOutput(const std::string& output_device_id) override;
std::string GetGroupIDInput(const std::string& input_device_id) override;
enum Format {
AUDIO_PCM_LINEAR = 0, // PCM is 'raw' amplitude samples.
AUDIO_PCM_LOW_LATENCY, // Linear PCM, low latency requested.
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ AUDIO_PCM_LOW_LATENCY_PPAPI,
+#endif
AUDIO_FAKE, // Creates a fake AudioOutputStream object.
AUDIO_FORMAT_LAST = AUDIO_FAKE, // Only used for validation of format.
};
--- /dev/null
+; Copyright (c) 2011 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.
+
+;
+; void SYMBOL(const uint8_t* argb, uint8_t* y, uint8_t* u, uint8_t* v, int width);
+;
+; The main code that converts RGB pixels to YUV pixels. This function roughly
+; consists of three parts: converting one ARGB pixel to YUV pixels, converting
+; two ARGB pixels to YUV pixels, and converting four ARGB pixels to YUV pixels.
+; To write the structure of this function in C, it becomes the snippet listed
+; below.
+;
+; if (width & 1) {
+; --width;
+; // Convert one ARGB pixel to one Y pixel, one U pixel, and one V pixel.
+; }
+;
+; if (width & 2) {
+; width -= 2;
+; // Convert two ARGB pixels to two Y pixels, one U pixel, and one V pixel.
+; }
+;
+; while (width) {
+; width -= 4;
+; // Convert four ARGB pixels to four Y pixels, two U pixels, and two V
+; // pixels.
+; }
+;
+ EXPORT SYMBOL
+ align function_align
+
+mangle(SYMBOL):
+ %assign stack_offset 0
+ PROLOGUE 5, 6, 8, ARGB, Y, U, V, WIDTH, TEMP
+
+ ; Initialize constants used in this function. (We use immediates to avoid
+ ; dependency onto GOT.)
+ LOAD_XMM XMM_CONST_Y0, 0x00420219
+ LOAD_XMM XMM_CONST_Y1, 0x00007F00
+ LOAD_XMM XMM_CONST_U, 0x00DAB670
+ LOAD_XMM XMM_CONST_V, 0x0070A2EE
+ LOAD_XMM XMM_CONST_128, 0x00800080
+
+.convert_one_pixel:
+ ; Divide the input width by two so it represents the offsets for u[] and v[].
+ ; When the width is odd, We read the rightmost ARGB pixel and convert its
+ ; colorspace to YUV. This code stores one Y pixel, one U pixel, and one V
+ ; pixel.
+ sar WIDTHq, 1
+ jnc .convert_two_pixels
+
+ ; Read one ARGB (or RGB) pixel.
+ READ_ARGB xmm0, 1
+
+ ; Calculate y[0] from one RGB pixel read above.
+ CALC_Y xmm1, xmm0
+ movd TEMPd, xmm1
+ mov BYTE [Yq + WIDTHq * 2], TEMPb
+
+ ; Calculate u[0] from one RGB pixel read above. If this is an odd line, the
+ ; output pixel contains the U value calculated in the previous call. We also
+ ; read this pixel and calculate their average.
+ INIT_UV TEMPd, Uq, 4
+ CALC_UV xmm1, xmm0, XMM_CONST_U, TEMPd
+ movd TEMPd, xmm1
+ mov BYTE [Uq + WIDTHq], TEMPb
+
+ ; Calculate v[0] from one RGB pixel. Same as u[0], we read the result of the
+ ; previous call and get their average.
+ INIT_UV TEMPd, Uq, 4
+ CALC_UV xmm1, xmm0, XMM_CONST_V, TEMPd
+ movd TEMPd, xmm1
+ mov BYTE [Vq + WIDTHq], TEMPb
+
+.convert_two_pixels:
+ ; If the input width is not a multiple of four, read the rightmost two ARGB
+ ; pixels and convert their colorspace to YUV. This code stores two Y pixels,
+ ; one U pixel, and one V pixel.
+ test WIDTHb, 2 / 2
+ jz .convert_four_pixels
+ sub WIDTHb, 2 / 2
+
+ ; Read two ARGB (or RGB) pixels.
+ READ_ARGB xmm0, 2
+
+ ; Calculate r[0] and r[1] from two RGB pixels read above.
+ CALC_Y xmm1, xmm0
+ movd TEMPd, xmm1
+ mov WORD [Yq + WIDTHq * 2], TEMPw
+
+ ; Skip calculating u and v if the output buffer is NULL.
+ test Uq, Uq
+ jz .convert_four_pixels
+
+ ; Calculate u[0] from two RGB pixels read above. (For details, read the above
+ ; comment in .convert_one_pixel).
+ INIT_UV TEMPd, Uq, 2
+ CALC_UV xmm1, xmm0, XMM_CONST_U, TEMPd
+ movd TEMPd, xmm1
+ mov BYTE [Uq + WIDTHq], TEMPb
+
+ ; Calculate v[0] from two RGB pixels read above.
+ INIT_UV TEMPd, Vq, 2
+ CALC_UV xmm1, xmm0, XMM_CONST_V, TEMPd
+ movd TEMPd, xmm1
+ mov BYTE [Vq + WIDTHq], TEMPb
+
+.convert_four_pixels:
+ ; Read four ARGB pixels and convert their colorspace to YUV. This code stores
+ ; four Y pixels, two U pixels, and two V pixels.
+ test WIDTHq, WIDTHq
+ jz .convert_finish
+
+%if PIXELSIZE == 4
+ ; Check if the input buffer is aligned to a 16-byte boundary and use movdqa
+ ; for reading the ARGB pixels.
+ test ARGBw, 15
+ jnz .convert_four_pixels_unaligned
+
+.convert_four_pixels_aligned:
+ sub WIDTHq, 4 / 2
+
+ ; Read four ARGB pixels. (We can use movdqa here since we have checked if the
+ ; source address is aligned.)
+ movdqa xmm0, DQWORD [ARGBq + WIDTHq * 4 * 2]
+
+ ; Calculate y[0], y[1], y[2],and, y[3] from the input ARGB pixels.
+ CALC_Y xmm1, xmm0
+ movd DWORD [Yq + WIDTHq * 2], xmm1
+
+%if SUBSAMPLING == 0
+ ; Skip calculating u and v if the output buffer is NULL, which means we are
+ ; converting an odd line. (When we enable subsampling, these buffers must
+ ; contain the u and v values for the previous call, i.e. these variables must
+ ; not be NULL.)
+ test Uq, Uq
+ jz .convert_four_pixels_aligned_next
+%endif
+
+ ; Calculate u[0] and u[1] from four ARGB pixels read above.
+ INIT_UV TEMPd, Uq, 4
+ CALC_UV xmm1, xmm0, XMM_CONST_U, TEMPd
+ movd TEMPd, xmm1
+ mov WORD [Uq + WIDTHq], TEMPw
+
+ ; Calculate v[0] and v[1] from four ARGB pixels read above.
+ INIT_UV TEMPd, Vq, 4
+ CALC_UV xmm1, xmm0, XMM_CONST_V, TEMPd
+ movd TEMPd, xmm1
+ mov WORD [Vq + WIDTHq], TEMPw
+
+%if SUBSAMPLING == 0
+.convert_four_pixels_aligned_next:
+%endif
+
+ test WIDTHq, WIDTHq
+ jnz .convert_four_pixels_aligned
+
+ jmp .convert_finish
+%endif
+
+.convert_four_pixels_unaligned:
+ sub WIDTHq, 4 / 2
+
+ ; Read four ARGB (or RGB) pixels.
+ READ_ARGB xmm0, 4
+
+ ; Calculate y[0], y[1], y[2],and, y[3] from the input ARGB pixels.
+ CALC_Y xmm1, xmm0
+ movd DWORD [Yq + WIDTHq * 2], xmm1
+
+%if SUBSAMPLING == 0
+ ; Skip calculating u and v if the output buffer is NULL.
+ test Uq, Uq
+ jz .convert_four_pixels_unaligned_next
+%endif
+
+ ; Calculate u[0] and u[1] from the input ARGB pixels.
+ INIT_UV TEMPd, Uq, 4
+ CALC_UV xmm1, xmm0, XMM_CONST_U, TEMPd
+ movd TEMPd, xmm1
+ mov WORD [Uq + WIDTHq], TEMPw
+
+ ; Calculate v[0] and v[1] from the input ARGB pixels.
+ INIT_UV TEMPd, Vq, 4
+ CALC_UV xmm1, xmm0, XMM_CONST_V, TEMPd
+ movd TEMPd, xmm1
+ mov WORD [Vq + WIDTHq], TEMPw
+
+%if SUBSAMPLING == 0
+.convert_four_pixels_unaligned_next:
+%endif
+
+ test WIDTHq, WIDTHq
+ jnz .convert_four_pixels_unaligned
+
+.convert_finish:
+ ; Just exit this function since this is a void function.
+ RET
--- /dev/null
+; Copyright (c) 2011 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/base/simd/media_export.asm"
+
+ EXPORT SYMBOL
+ align function_align
+
+mangle(SYMBOL):
+ %assign stack_offset 0
+ PROLOGUE 6, 7, 3, Y, U, V, ARGB, WIDTH, TABLE, TEMP
+
+ jmp .convertend
+
+.convertloop:
+ movzx TEMPd, BYTE [Uq]
+ movq mm0, [TABLEq + 2048 + 8 * TEMPq]
+ add Uq, 1
+
+ movzx TEMPd, BYTE [Vq]
+ paddsw mm0, [TABLEq + 4096 + 8 * TEMPq]
+ add Vq, 1
+
+ movzx TEMPd, BYTE [Yq]
+ movq mm1, [TABLEq + 8 * TEMPq]
+
+ movzx TEMPd, BYTE [Yq + 1]
+ movq mm2, [TABLEq + 8 * TEMPq]
+ add Yq, 2
+
+ ; Add UV components to Y component.
+ paddsw mm1, mm0
+ paddsw mm2, mm0
+
+ ; Down shift and then pack.
+ psraw mm1, 6
+ psraw mm2, 6
+ packuswb mm1, mm2
+ MOVQ [ARGBq], mm1
+ add ARGBq, 8
+
+.convertend:
+ sub WIDTHq, 2
+ jns .convertloop
+
+ ; If number of pixels is odd then compute it.
+ and WIDTHq, 1
+ jz .convertdone
+
+ movzx TEMPd, BYTE [Uq]
+ movq mm0, [TABLEq + 2048 + 8 * TEMPq]
+ movzx TEMPd, BYTE [Vq]
+ paddsw mm0, [TABLEq + 4096 + 8 * TEMPq]
+ movzx TEMPd, BYTE [Yq]
+ movq mm1, [TABLEq + 8 * TEMPq]
+ paddsw mm1, mm0
+ psraw mm1, 6
+ packuswb mm1, mm1
+ movd [ARGBq], mm1
+
+.convertdone:
+ RET
--- /dev/null
+; Copyright (c) 2011 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/base/simd/media_export.asm"
+
+ EXPORT SYMBOL
+ align function_align
+
+mangle(SYMBOL):
+ %assign stack_offset 0
+ PROLOGUE 7, 7, 3, Y, U, V, A, ARGB, WIDTH, TABLE
+ PUSH WIDTHq
+ DEFINE_ARGS Y, U, V, A, ARGB, TABLE, TEMP
+ mov TABLEq, TEMPq
+ jmp .convertend
+
+.convertloop:
+ movzx TEMPd, BYTE [Uq]
+ movq mm0, [TABLEq + 2048 + 8 * TEMPq]
+ add Uq, 1
+
+ movzx TEMPd, BYTE [Vq]
+ paddsw mm0, [TABLEq + 4096 + 8 * TEMPq]
+ add Vq, 1
+
+ movzx TEMPd, BYTE [Yq]
+ movq mm1, [TABLEq + 8 * TEMPq]
+
+ movzx TEMPd, BYTE [Yq + 1]
+ movq mm2, [TABLEq + 8 * TEMPq]
+ add Yq, 2
+
+ ; Add UV components to Y component.
+ paddsw mm1, mm0
+ paddsw mm2, mm0
+
+ ; Down shift and then pack.
+ psraw mm1, 6
+ psraw mm2, 6
+ packuswb mm1, mm2
+
+ ; Unpack
+ movq mm0, mm1
+ pxor mm2, mm2
+ punpcklbw mm0, mm2
+ punpckhbw mm1, mm2
+
+ ; Add one to our alpha values, this is a somewhat unfortunate hack; while
+ ; the pack/unpack above handle saturating any negative numbers to 0, they also
+ ; truncate the alpha value to 255. The math ahead wants to produce the same
+ ; ARGB alpha value as the source pixel in YUVA, but this depends on the alpha
+ ; value in |mm0| and |mm1| being 256, (let A be the source image alpha,
+ ; 256 * A >> 8 == A, whereas 255 * A >> 8 is off by one except at 0).
+ mov TEMPq, 0x00010000
+ movd mm2, TEMPd
+ psllq mm2, 32
+ paddsw mm0, mm2
+ paddsw mm1, mm2
+
+ ; Multiply by alpha value, then repack high bytes of words.
+ movzx TEMPd, BYTE [Aq]
+ movq mm2, [TABLEq + 6144 + 8 * TEMPq]
+ pmullw mm0, mm2
+ psrlw mm0, 8
+ movzx TEMPd, BYTE [Aq + 1]
+ movq mm2, [TABLEq + 6144 + 8 * TEMPq]
+ add Aq, 2
+ pmullw mm1, mm2
+ psrlw mm1, 8
+ packuswb mm0, mm1
+
+ MOVQ [ARGBq], mm0
+ add ARGBq, 8
+
+.convertend:
+ sub dword [rsp], 2
+ jns .convertloop
+
+ ; If number of pixels is odd then compute it.
+ and dword [rsp], 1
+ jz .convertdone
+
+ movzx TEMPd, BYTE [Uq]
+ movq mm0, [TABLEq + 2048 + 8 * TEMPq]
+ movzx TEMPd, BYTE [Vq]
+ paddsw mm0, [TABLEq + 4096 + 8 * TEMPq]
+ movzx TEMPd, BYTE [Yq]
+ movq mm1, [TABLEq + 8 * TEMPq]
+ paddsw mm1, mm0
+ psraw mm1, 6
+ packuswb mm1, mm1
+
+ ; Multiply ARGB by alpha value.
+ pxor mm0, mm0
+ punpcklbw mm1, mm0
+
+ ; See above note about this hack.
+ mov TEMPq, 0x00010000
+ movd mm0, TEMPd
+ psllq mm0, 32
+ paddsw mm1, mm0
+
+ movzx TEMPd, BYTE [Aq]
+ movq mm0, [TABLEq + 6144 + 8 * TEMPq]
+ pmullw mm1, mm0
+ psrlw mm1, 8
+ packuswb mm1, mm1
+
+ movd [ARGBq], mm1
+
+.convertdone:
+ POP TABLEq
+ RET
--- /dev/null
+; Copyright (c) 2011 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/base/simd/media_export.asm"
+
+ EXPORT SYMBOL
+ align function_align
+
+mangle(SYMBOL):
+ %assign stack_offset 0
+
+; Parameters are in the following order:
+; 1. Y plane
+; 2. U plane
+; 3. V plane
+; 4. ARGB frame
+; 5. Width
+; 6. Source dx
+; 7. Conversion lookup table
+
+PROLOGUE 7, 7, 3, Y, R0, R1, ARGB, R2, TEMP, R3
+
+%if gprsize == 8
+%define WORD_SIZE QWORD
+%else
+%define WORD_SIZE DWORD
+%endif
+
+; Define register aliases.
+%define Xq R1q ; Current X position
+%define COMPLq R2q ; Component A value
+%define COMPLd R2d ; Component A value
+%define U_ARG_REGq R0q ; U plane address argument
+%define V_ARG_REGq R1q ; V plane address argument
+%define SOURCE_DX_ARG_REGq TEMPq ; Source dx argument
+%define WIDTH_ARG_REGq R2q ; Width argument
+
+%define COMPRq R0q ; Component B value
+%define COMPRd R0d ; Component B value
+%define Uq R0q ; U plane address
+%define Vq R0q ; V plane address
+%define U_PLANE WORD_SIZE [rsp + 3 * gprsize]
+%define TABLE R3q ; Address of the table
+
+; Defines for stack variables.
+%define V_PLANE WORD_SIZE [rsp + 2 * gprsize]
+%define SOURCE_DX WORD_SIZE [rsp + gprsize]
+%define SOURCE_WIDTH WORD_SIZE [rsp]
+
+; Define stack usage.
+ PUSH U_ARG_REGq
+ PUSH V_ARG_REGq
+ PUSH SOURCE_DX_ARG_REGq
+ imul WIDTH_ARG_REGq, SOURCE_DX_ARG_REGq ; source_width = width * source_dx
+ PUSH WIDTH_ARG_REGq
+
+%macro EPILOGUE 0
+ ADD rsp, 4 * gprsize
+%endmacro
+
+ xor Xq, Xq ; x = 0
+ cmp SOURCE_DX_ARG_REGq, 0x20000
+ jl .lscaleend
+ mov Xq, 0x8000 ; x = 0.5 for 1/2 or less
+ jmp .lscaleend
+
+.lscaleloop:
+ mov Uq, U_PLANE
+
+; Define macros for scaling YUV components since they are reused.
+%macro SCALEUV 1
+ mov TEMPq, Xq
+ sar TEMPq, 0x11
+ movzx COMPLd, BYTE [%1 + TEMPq]
+ movzx COMPRd, BYTE [%1 + TEMPq + 1]
+ mov TEMPq, Xq
+ and TEMPq, 0x1fffe
+ imul COMPRq, TEMPq
+ xor TEMPq, 0x1fffe
+ imul COMPLq, TEMPq
+ add COMPLq, COMPRq
+ shr COMPLq, 17
+%endmacro
+ SCALEUV Uq ; Use the above macro to scale U
+ movq mm0, [TABLE + 2048 + 8 * COMPLq]
+
+ mov Vq, V_PLANE ; Read V address from stack
+ SCALEUV Vq ; Use the above macro to scale V
+ paddsw mm0, [TABLE + 4096 + 8 * COMPLq]
+
+%macro SCALEY 0
+ mov TEMPq, Xq
+ sar TEMPq, 0x10
+ movzx COMPLd, BYTE [Yq + TEMPq]
+ movzx COMPRd, BYTE [Yq + TEMPq + 1]
+ mov TEMPq, Xq
+ add Xq, SOURCE_DX ; Add source_dx from stack
+ and TEMPq, 0xffff
+ imul COMPRq, TEMPq
+ xor TEMPq, 0xffff
+ imul COMPLq, TEMPq
+ add COMPLq, COMPRq
+ shr COMPLq, 16
+%endmacro
+ SCALEY ; Use the above macro to scale Y1
+ movq mm1, [TABLE + 8 * COMPLq]
+
+ cmp Xq, SOURCE_WIDTH ; Compare source_width from stack
+ jge .lscalelastpixel
+
+ SCALEY ; Use the above macro to sacle Y2
+ movq mm2, [TABLE + 8 * COMPLq]
+
+ paddsw mm1, mm0
+ paddsw mm2, mm0
+ psraw mm1, 0x6
+ psraw mm2, 0x6
+ packuswb mm1, mm2
+ MOVQ [ARGBq], mm1
+ add ARGBq, 0x8
+
+.lscaleend:
+ cmp Xq, SOURCE_WIDTH ; Compare source_width from stack
+ jl .lscaleloop
+ EPILOGUE
+ RET
+
+.lscalelastpixel:
+ paddsw mm1, mm0
+ psraw mm1, 6
+ packuswb mm1, mm1
+ movd [ARGBq], mm1
+ EPILOGUE
+ RET
--- /dev/null
+; Copyright (c) 2011 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/base/simd/media_export.asm"
+
+ EXPORT SYMBOL
+ align function_align
+
+mangle(SYMBOL):
+ %assign stack_offset 0
+
+; Parameters are in the following order:
+; 1. Y plane
+; 2. U plane
+; 3. V plane
+; 4. ARGB frame
+; 5. Width
+; 6. Source dx
+; 7. Lookup table address
+
+PROLOGUE 7, 7, 3, Y, U, V, ARGB, R1, R2, TEMP
+
+%ifdef ARCH_X86_64
+%define WORD_SIZE QWORD
+%else
+%define WORD_SIZE DWORD
+%endif
+
+ PUSH R1q ; Width
+ PUSH R2q ; Source dx
+
+%define SOURCE_DX WORD_SIZE [rsp]
+
+ mov R1q, TEMPq
+
+%define WIDTH WORD_SIZE [rsp + gprsize]
+%define TABLE R1q
+%define Xq R2q
+
+ ; Set Xq index to 0.
+ xor Xq, Xq
+ jmp .scaleend
+
+.scaleloop:
+ mov TEMPq, Xq
+ sar TEMPq, 17
+ movzx TEMPd, BYTE [Uq + TEMPq]
+ movq mm0, [TABLE + 2048 + 8 * TEMPq]
+ mov TEMPq, Xq
+ sar TEMPq, 17
+ movzx TEMPd, BYTE [Vq + TEMPq]
+ paddsw mm0, [TABLE + 4096 + 8 * TEMPq]
+ mov TEMPq, Xq
+ add Xq, SOURCE_DX
+ sar TEMPq, 16
+ movzx TEMPd, BYTE [Yq + TEMPq]
+ movq mm1, [TABLE + 8 * TEMPq]
+ mov TEMPq, Xq
+ add Xq, SOURCE_DX
+ sar TEMPq, 16
+ movzx TEMPd, BYTE [Yq + TEMPq]
+ movq mm2, [TABLE + 8 * TEMPq]
+ paddsw mm1, mm0
+ paddsw mm2, mm0
+ psraw mm1, 6
+ psraw mm2, 6
+ packuswb mm1, mm2
+ MOVQ QWORD [ARGBq], mm1
+ add ARGBq, 8
+
+.scaleend:
+ sub WIDTH, 2
+ jns .scaleloop
+
+ and WIDTH, 1 ; odd number of pixels?
+ jz .scaledone
+
+ mov TEMPq, Xq
+ sar TEMPq, 17
+ movzx TEMPd, BYTE [Uq + TEMPq]
+ movq mm0, [TABLE + 2048 + 8 * TEMPq]
+ mov TEMPq, Xq
+ sar TEMPq, 17
+ movzx TEMPd, BYTE [Vq + TEMPq]
+ paddsw mm0, [TABLE + 4096 + 8 * TEMPq]
+ mov TEMPq, Xq
+ sar TEMPq, 16
+ movzx TEMPd, BYTE [Yq + TEMPq]
+ movq mm1, [TABLE + 8 * TEMPq]
+ paddsw mm1, mm0
+ psraw mm1, 6
+ packuswb mm1, mm1
+ movd DWORD [ARGBq], mm1
+
+.scaledone:
+ ADD rsp, 2 * gprsize
+ RET
}
unsigned GetTbmTexture() { return texture_id_; }
unsigned CreateTbmTextureIfNeeded(gpu::gles2::GLES2Interface* gl);
+ void ReleaseTbm();
void GenTbmTextureMailbox();
#if defined(OS_TIZEN_TV_PRODUCT)
void SetMailBoxHolder(const gpu::MailboxHolder& mailbox_holder) {
gfx::TbmBufferHandle GetTbmBuffer() { return buffer_handle_; }
unsigned GetImageID() { return image_id_; }
void SetImageID(unsigned image) { image_id_ = image; }
+ int GetScalerPhysicalId() { return scaler_physical_id_; }
+ void SetScalerPhysicalId(int id) { scaler_physical_id_ = id; }
+ static bool getScalerIndex(uint32_t* scaler_value);
+ static bool getScalerNumber(uint32_t* scaler_value);
+ static bool lockScalerDuringNextFrame(uint32_t scaler_physical_id,
+ bool enable = true);
#endif // defined(OS_TIZEN_TV_PRODUCT)
#endif
gpu::gles2::GLES2Interface* gl_;
#if defined(OS_TIZEN_TV_PRODUCT)
unsigned image_id_;
+ unsigned scaler_physical_id_;
#endif // defined(OS_TIZEN_TV_PRODUCT)
#endif
// though it may be constructed on any thread.
explicit VideoFrameCompositor(
#if defined(TIZEN_VIDEO_HOLE)
- const base::Callback<void(gfx::Rect)>& drawable_content_rect_changed_cb,
+ const base::Callback<void(gfx::Rect, bool)>&
+ drawable_content_rect_changed_cb,
#endif
const scoped_refptr<base::SingleThreadTaskRunner>&
compositor_task_runner);
bool background_rendering);
#if defined(TIZEN_VIDEO_HOLE)
- const base::Callback<void(gfx::Rect)> drawable_content_rect_changed_cb_;
+ const base::Callback<void(gfx::Rect, bool)> drawable_content_rect_changed_cb_;
#endif
scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
DISALLOW_IMPLICIT_CONSTRUCTORS(ChunkDemuxerStream);
};
+using SeekCB = base::Callback<void(base::TimeDelta, PipelineStatus)>;
+
// Demuxer implementation that allows chunks of media data to be passed
// from JavaScript to the media stack.
class MEDIA_EXPORT ChunkDemuxer : public Demuxer {
bool enable_text_tracks) override;
void Stop() override;
void Seek(base::TimeDelta time, const PipelineStatusCB& cb) override;
+ void Seek(base::TimeDelta time, const SeekCB& seek_cb);
base::Time GetTimelineOffset() const override;
DemuxerStream* GetStream(DemuxerStream::Type type) override;
base::TimeDelta GetStartTime() const override;
#endif
#define AF_UNIX 1
-#define AF_INET 2
-#define AF_INET6 10
#define SOCK_STREAM 1
#define SOCK_DGRAM 2
#define SOCK_SEQPACKET 5
#define MSG_NOSIGNAL 0x4000
typedef uint32_t socklen_t;
-typedef uint16_t sa_family_t;
-typedef uint16_t in_port_t;
struct iovec {
void *iov_base;
int cmsg_type;
};
-struct in_addr {
- uint32_t s_addr;
-};
-
-struct in6_addr {
- uint8_t s6_addr[16];
-};
-
-struct sockaddr {
- sa_family_t sa_family;
- char sa_data[14];
-};
-
-struct sockaddr_in {
- sa_family_t sin_family;
- in_port_t sin_port;
- struct in_addr sin_addr;
-
- unsigned char sin_zero[sizeof(struct sockaddr) - sizeof(sa_family_t) -
- sizeof(in_port_t) -
- sizeof(struct in_addr)];
-};
-
-struct sockaddr_in6 {
- sa_family_t sin6_family;
- in_port_t sin6_port;
- uint32_t sin6_flowinfo;
- struct in6_addr sin6_addr;
- uint32_t sin6_scope_id;
-};
-
ssize_t recv(int sockfd, void *buf, size_t len, int flags);
ssize_t send(int sockfd, const void *buf, size_t len, int flags);
ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);
int shutdown(int sockfd, int how);
int socketpair(int domain, int type, int protocol, int sv[2]);
-ssize_t recvfrom(int sockfd,
- void* buf,
- size_t len,
- int flags,
- struct sockaddr* addr,
- socklen_t* addr_len);
-ssize_t sendto(int sockfd,
- const void* buf,
- size_t len,
- int flags,
- const struct sockaddr* addr,
- socklen_t addr_len);
-
#define CMSG_ALIGN(len) (((len) + sizeof(size_t) - 1) & ~(sizeof(size_t) - 1))
#define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len))
#define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
# define __NR_tgkill 268
# define __NR_utimes 271
# define __NR_socketpair 288
-# define __NR_sendto 290
-# define __NR_recvfrom 292
# define __NR_shutdown 293
# define __NR_sendmsg 296
# define __NR_recvmsg 297
port::Thread *GetThread(uint32_t id);
bool AddBreakpoint(uint32_t user_address);
+ bool IsUserBreakpoint(uint32_t user_address, uint32_t instruction);
bool RemoveBreakpoint(uint32_t user_address);
void CopyFaultSignalFromAppThread(port::Thread *thread);
void RemoveInitialBreakpoint();
--- /dev/null
+# Copyright 2012, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+# Information from setup.ini
+declare -A {s,l}desc category require{d,s} prefix version install source message
+# Contents of categories
+declare -A category_contents
+# Packagenames: in request order and in install order
+declare -A allinstpackages instpackages reqpackages sectionin seed
+declare -a allinstalledpackages
+# Filetype info
+declare -A filetype
+# Sanitized names cache
+declare -A sanitized_name
+# Default installation type - filled in download_addon_packages if there are options
+declare definsttype=1
+
+parse_setup_ini() {
+ if ((verbose)) ; then echo "Parsing setup.ini..." >&2 ; fi
+ local package line acceptmode=0 sdescmode=0 ldescmode=0 messagemode=0
+ while IFS= read -r line ; do
+ if [[ "${line:0:1}" = "@" ]] ; then
+ package="${line:2}"
+ acceptmode=1
+ sdescmode=0
+ ldescmode=0
+ messagemode=0
+ if ((verbose)) ; then echo "Package: \"$package\"..." >&2 ; fi
+ elif [[ "$line" = "[prev]" ]] || [[ "$line" = "[test]" ]] ; then
+ acceptmode=0
+ elif ((acceptmode)) ; then
+ if ((sdescmode)) ; then
+ sdesc["$package"]="${sdesc[$package]} $line"
+ if [[ "$line" = *\"* ]] ; then
+ sdescmode=0
+ fi
+ elif ((ldescmode)) ; then
+ ldesc["$package"]="${ldesc[$package]} $line"
+ if [[ "$line" = *\"* ]] ; then
+ ldescmode=0
+ fi
+ elif ((messagemode)) ; then
+ message["$package"]="${ldesc[$package]} $line"
+ if [[ "$line" = *\"* ]] ; then
+ messagemode=0
+ fi
+ elif [[ "${line:0:6}" = "sdesc:" ]] ; then
+ sdesc["$package"]="${line:7}"
+ if [[ "${line:7}" = *\"*\"* ]] ; then
+ sdescmode=0
+ else
+ sdescmode=1
+ fi
+ ldescmode=0
+ messagemode=0
+ elif [[ "${line:0:6}" = "ldesc:" ]] ; then
+ ldesc["$package"]="${line:7}"
+ sdescmode=0
+ if [[ "${line:7}" = *\"*\"* ]] ; then
+ ldescmode=0
+ else
+ ldescmode=1
+ fi
+ messagemode=0
+ elif [[ "${line:0:9}" = "category:" ]] ; then
+ category["$package"]="${line:10}"
+ for catname in ${category["$package"]} ; do
+ category_contents["$catname"]="${category_contents[$catname]} $package"
+ done
+ sdescmode=0
+ ldescmode=0
+ messagemode=0
+ elif [[ "${line:0:9}" = "requires:" ]] ; then
+ line="${line/ _autorebase/}"
+ requires["$package"]="${line:10}"
+ sdescmode=0
+ ldescmode=0
+ messagemode=0
+ elif [[ "${line:0:8}" = "version:" ]] ; then
+ version["$package"]="${line:9}"
+ sdescmode=0
+ ldescmode=0
+ messagemode=0
+ elif [[ "${line:0:8}" = "install:" ]] ; then
+ install["$package"]="${line:9}"
+ sdescmode=0
+ ldescmode=0
+ messagemode=0
+ elif [[ "${line:0:7}" = "source:" ]] ; then
+ source["$package"]="${line:8}"
+ sdescmode=0
+ ldescmode=0
+ messagemode=0
+ elif [[ "${line:0:8}" = "message:" ]] ; then
+ message["$package"]="${line:9}"
+ sdescmode=0
+ ldescmode=0
+ if [[ "${line:7}" = *\"*\"* ]] ; then
+ messagemode=0
+ else
+ messagemode=1
+ fi
+ elif [[ "$line" != "" ]] &&
+ [[ "$line" != "#"* ]] ; then
+ echo "Unknown tag in \"$line\"" >&2
+ exit 1
+ fi
+ fi
+ done < setup.ini
+}
+
+fix_setup_inf_info() {
+ sdesc["python-lxml"]="\"Python XML2/XSLT bindings\""
+ ldesc["python-lxml"]="\"lxml is a Pythonic binding for the libxml2 and libxslt libraries. It is unique in that it combines the speed and feature completeness of these libraries with the simplicity of a native Python API, mostly compatible but superior to the well-known ElementTree API.\""
+ category["python-lxml"]="Python"
+ category_contents["Python"]="${category_contents[Python]} python-lxml"
+ requires["python-lxml"]="libxml2 libxslt python python-beautifulsoup"
+ version["python-lxml"]="3.2.3-1"
+ install["python-lxml"]="x86/release/python-lxml/python-lxml-3.2.3-1.tar.bz2 705772 1be0ee09ad688ead386f61702db23ffe"
+ source["python-lxml"]="x86/release/python-lxml/python-lxml-3.2.3-1-src.tar.bz2 3353561 977cc672b83383e395b0e0900bc802e1"
+
+ sdesc["python3-lxml"]="\"Py3K XML2/XSLT bindings\""
+ ldesc["python3-lxml"]="\"lxml is a Pythonic binding for the libxml2 and libxslt libraries. It is unique in that it combines the speed and feature completeness of these libraries with the simplicity of a native Python API, mostly compatible but superior to the well-known ElementTree API.\""
+ category["python3-lxml"]="Python"
+ category_contents["Python"]="${category_contents[Python]} python3-lxml"
+ requires["python3-lxml"]="libxml2 libxslt python3"
+ version["python3-lxml"]="3.2.3-1"
+ install["python3-lxml"]="x86/release/python3-lxml/python3-lxml-3.2.3-1.tar.bz2 691721 4e9250266857afbe1cafc7024d42ad36"
+ source["python3-lxml"]="x86/release/python3-lxml/python3-lxml-3.2.3-1-src.tar.bz2 3353519 93e02ae23051cecdef3ff820f885de4b"
+
+ requires["coreutils"]="${requires[coreutils]} dash grep patch sed"
+ requires["cygwin"]="base-files ${requires[cygwin]} editrights ipc-utils run"
+ requires["dash"]="${requires[dash]} cygwin"
+ requires["gettext"]="${requires[gettext]} libiconv libiconv2"
+}
+
+download_package_dependences() {
+ # $1 = name of the package; function is recursive
+ # $2 - Section No
+ local instname="${install[$1]/.tar.bz2*/.tar.bz2}"
+ local srcname="${source[$1]/.tar.bz2*/.tar.bz2}"
+ if [[ "$instname" != "" ]] ; then
+ if ((verbose)) ; then ( echo ; echo -n "Package: \"$1\"..." ) >&2 ; fi
+ if [ ! -e packages/"`basename \"$instname\"`" ] ; then
+ # TODO(bradnelson): Check certs when this issue is resolved.
+ # http://code.google.com/p/nativeclient/issues/detail?id=2931
+ if wget --no-check-certificate https://storage.googleapis.com/nativeclient-mirror/nacl/cygwin_mirror/packages/"`basename \"$instname\"`" -O packages/"`basename \"$instname\"`" ||
+ wget "$mirror_prefix/$instname" -O packages/"`basename \"$instname\"`" ; then
+ if ! [[ "${install[$1]}" = "${install[$1]/.tar.bz2*/.tar.bz2} `
+ stat -c "%s" packages/\"\`basename \\\"$instname\\\"\`\"` `
+ md5sum -b packages/\"\`basename \\\"$instname\\\"\`\" | cut -b -32`" ]] ; then
+ echo "Wrong file downloaded: expected ${install[$1]}" >&2
+ exit 1
+ fi
+ else
+ # Wget should have complained for us
+ exit $?
+ fi
+ fi
+ if [ ! -e packages.unpacked/"`basename \"$instname\"`" ] ; then
+ mkdir -p packages.unpacked/"`basename \"$instname\"`"
+ if ! tar xSvpf {packages,-Cpackages.unpacked}/"`basename \"$instname\"`" ; then
+ # Tar should have complained for us
+ exit $?
+ fi
+ if [[ "$1" = "base-files" ]] ; then
+ if ! patch -p0 --no-backup-if-mismatch <<END
+--- packages.unpacked/`basename "$instname"`/etc/postinstall/base-files-mketc.sh
++++ packages.unpacked/`basename "$instname"`/etc/postinstall/base-files-mketc.sh
+@@ -14,9 +14,14 @@
+ WINETC="\${WINSYS32HOME}\\\\drivers\\\\etc"
+
+ if [ ! -d "\${WINETC}" ]; then
+- echo "Directory \${WINETC} does not exist; exiting" >&2
+- echo "If directory name is garbage you need to update your cygwin package" >&2
+- exit 1
++ # Vista64 is crazy: symlink is usable, but "-f" to the original is false!
++ if ln -s "\`/bin/cygpath -w -W\`\\\\sysnative\\\\drivers\\\\etc\\\\lmhosts.sam" /etc/lmhosts.sam && [ -f /etc/lmhosts.sam ] && rm /etc/lmhosts.sam ; then
++ WINETC="\`/bin/cygpath -w -W\`\\\\sysnative\\\\drivers\\\\etc"
++ else
++ echo "Directory \${WINETC} does not exist; exiting" >&2
++ echo "If directory name is garbage you need to update your cygwin package" >&2
++ exit 1
++ fi
+ fi
+
+ for mketc in \$FILES
+END
+ then
+ # Patch should have complained for us
+ exit $?
+ fi
+ elif [[ "$1" = "WindowMaker" ]] ; then
+ mv packages.unpacked/"`basename \"$instname\"`"/usr/share/WindowMaker/Icons/{,tmp}defaultAppIcon.tiff
+ rm packages.unpacked/"`basename \"$instname\"`"/usr/share/WindowMaker/Icons/DefaultAppIcon.tiff 2> /dev/null
+ mv packages.unpacked/"`basename \"$instname\"`"/usr/share/WindowMaker/Icons/{tmp,}defaultAppIcon.tiff
+ elif [[ "$1" = "lilypond-doc" ]] ; then
+ mv packages.unpacked/"`basename \"$instname\"`"/usr/share/doc/lilypond/html/Documentation/user/lilypond-learning/{,tmp}Lilypond_002dbook-templates.de.html
+ rm packages.unpacked/"`basename \"$instname\"`"/usr/share/doc/lilypond/html/Documentation/user/lilypond-learning/lilypond_002dbook-templates.de.html
+ mv packages.unpacked/"`basename \"$instname\"`"/usr/share/doc/lilypond/html/Documentation/user/lilypond-learning/{tmp,}Lilypond_002dbook-templates.de.html
+ elif [[ "$1" = "ruby" ]] ; then
+ mv packages.unpacked/"`basename \"$instname\"`"/usr/share/ri/1.8/system/Exception2MessageMapper/{,tmp}Fail-i.yaml
+ rm packages.unpacked/"`basename \"$instname\"`"/usr/share/ri/1.8/system/Exception2MessageMapper/fail-i.yaml
+ mv packages.unpacked/"`basename \"$instname\"`"/usr/share/ri/1.8/system/Exception2MessageMapper/{tmp,}Fail-i.yaml
+ mv packages.unpacked/"`basename \"$instname\"`"/usr/share/ri/1.8/system/REXML/Parsers/XPathParser/{,tmp}Predicate-i.yaml
+ rm packages.unpacked/"`basename \"$instname\"`"/usr/share/ri/1.8/system/REXML/Parsers/XPathParser/predicate-i.yaml
+ mv packages.unpacked/"`basename \"$instname\"`"/usr/share/ri/1.8/system/REXML/Parsers/XPathParser/{tmp,}tmpPredicate-i.yaml
+ fi
+ for file in packages.unpacked/"`basename \"$instname\"`"/etc/{postinstall,preremove}/*.sh ; do
+ if [ -e "$file" ] ; then
+ mv "$file" "$file".tmp
+ while IFS= read -r line ; do
+ if [[ "$line" != "while read f; do" ]] ; then
+ printf "%s\n" "$line"
+ else
+ echo "while read f; do if [ \"x\$f\" = \"x\" ] ; then break ; fi"
+ fi
+ done < "$file".tmp > "$file"
+ touch -r "$file".tmp "$file"
+ rm "$file".tmp
+ fi
+ done
+ fi
+ if [ ! -e setup/"$1".lst.gz ] ; then
+ if ! rm -f setup/"$1".lst ; then
+ # Rm should have complained for us
+ exit $?
+ fi
+ if ! tar tf {packages,-Cpackages.unpacked}/"`basename \"$instname\"`" > setup/"$1".lst ; then
+ # Tar should have complained for us
+ exit $?
+ fi
+ if ! gzip -9 setup/"$1".lst ; then
+ # Gzip should have complained for us
+ exit $?
+ fi
+ fi
+ fi
+ if [[ "$srcname" != "" ]] ; then
+ if [ ! -e packages.src/"`basename \"$srcname\"`" ] ; then
+ # TODO(bradnelson): Check certs when this issue is resolved.
+ # http://code.google.com/p/nativeclient/issues/detail?id=2931
+ if wget --no-check-certificate https://storage.googleapis.com/nativeclient-mirror/nacl/cygwin_mirror/packages.src/"`basename \"$srcname\"`" -O packages.src/"`basename \"$srcname\"`" ||
+ wget "$mirror_prefix/$srcname" -O packages.src/"`basename \"$srcname\"`" ; then
+ if ! [[ "${source[$1]}" = "${source[$1]/.tar.bz2*/.tar.bz2} `
+ stat -c "%s" packages.src/\"\`basename \\\"$srcname\\\"\`\"` `
+ md5sum -b packages.src/\"\`basename \\\"$srcname\\\"\`\" | cut -b -32`" ]] ; then
+ echo "Wrong file downloaded: expected ${install[$1]}" >&2
+ exit 1
+ fi
+ else
+ # Wget should have complained for us
+ exit $?
+ fi
+ fi
+ fi
+ local pkgname
+ reqpackages["$1"]="present"
+ sectionin["$1"]="${sectionin[$1]} $2"
+ for pkgname in ${requires["$1"]} ; do
+ if [[ "${reqpackages[$pkgname]}" = "present" ]] ; then
+ if ((verbose)) ; then echo -n "." >&2 ; fi
+ else
+ download_package_dependences "$pkgname" "$2"
+ fi
+ done
+ if [[ "${allinstpackages[$1]}" != "present" ]] ; then
+ allinstpackages["$1"]="present"
+ allinstalledpackages=(${allinstalledpackages[@]} "$1")
+ fi
+}
+
+download_package() {
+ # $1 - Category name
+ # $2 - Section No
+ if ((verbose)) ; then echo -n "Downloading packages in \"$1\"..." >&2 ; fi
+ local pkgname
+ reqpackages=()
+ for pkgname in ${category_contents["$1"]} ; do
+ if [[ "${reqpackages[$pkgname]}" != "present" ]] ; then
+ download_package_dependences "$pkgname" "$2"
+ fi
+ seed["$pkgname"]="${seed[$pkgname]} $2"
+ done
+ if ((verbose)) ; then echo >&2 ; fi
+}
+
+download_all_packages() {
+ # $1 - Section No
+ local secname
+ for secname in "${!category_contents[@]}" ; do
+ if [ "$secname" != "_obsolete" ] ; then
+ download_package "$secname" "$1"
+ fi
+ done
+}
+
+download_addon_packages() {
+ # $1 - Start SectionN
+ local insttype pkgname sectionN="$1"
+ if ((verbose)) ; then echo -n "Downloading addon packages..." >&2 ; fi
+ if [[ "$defpackage" = "Full" ]] ; then
+ definsttype="$((sectionN-1))"
+ fi
+ local IFS=$'\n'
+ for insttype in `
+ for insttype in "${!packages[@]}" ; do
+ echo $insttype
+ done | sort
+ ` ; do
+ if [[ "$defpackage" = "$insttype" ]] ; then
+ definsttype="$sectionN"
+ fi
+ reqpackages=()
+ IFS=$' \t\n'
+ for pkgname in ${packages["$insttype"]} ; do
+ if [[ "${reqpackages[$pkgname]}" != "present" ]] ; then
+ download_package_dependences "$pkgname" "$sectionN"
+ fi
+ seed["$pkgname"]="${seed[$pkgname]} $sectionN"
+ done
+ ((sectionN++))
+ done
+ if [[ "$defpackage" = "Minimal" ]] ; then
+ definsttype="$sectionN"
+ fi
+ if ((verbose)) ; then echo >&2 ; fi
+}
+
+fill_required_packages() {
+ if ((verbose)) ; then echo "Calculating dependences..." >&2 ; fi
+ local pkgname subpkgname subsubpkgname check=1
+ while ((check)) ; do
+ check=0
+ for pkgname in "${allinstalledpackages[@]}" ; do
+ if ((verbose)) ; then echo "Package: \"$pkgname\"..." >&2 ; fi
+ for subpkgname in ${requires["$pkgname"]} ; do
+ for subsubpkgname in ${requires["$subpkgname"]} ; do
+ if ! [[ " ${requires[$pkgname]} " = *" $subsubpkgname "* ]] ; then
+ requires["$pkgname"]="${requires[$pkgname]} $subsubpkgname"
+ check=1
+ fi
+ done
+ done
+ done
+ done
+ for pkgname in "${allinstalledpackages[@]}" ; do
+ for subpkgname in ${requires["$pkgname"]} ; do
+ required["$subpkgname"]="${required[$subpkgname]} $pkgname"
+ done
+ done
+}
+
+fill_filetype_info() {
+ local IFS="
+"
+ # Corner cases: files created by post-install scripts, mistakes, etc
+ filetype=([Cygwin.ico]="file"
+ [bin]="directory"
+ [usr/bin]="directory"
+ [lib]="directory"
+ [usr/lib]="directory"
+ [bin/exim.exe]="file"
+ [bin/latex.exe]="file"
+ [lib/icu/current/Makefile.inc]="file"
+ [lib/rpm/rpmv.exe]="file"
+ [usr/sbin/sendmail]="file"
+ [usr/share/man/man1/gcc.1.gz]="file"
+ [usr/share/man/man1/g++.1.gz]="file"
+ [usr/share/man/man1/g77.1.gz]="file"
+ [usr/share/man/man1/mf.1]="file"
+ [usr/share/terminfo/E/Eterm]="file"
+ [usr/share/terminfo/N/NCR260VT300WPP0]="file")
+ if ((verbose)) ; then echo "Scanning filetypes..." >&2 ; fi
+ for name in `
+ for package in packages.unpacked/* ; do (
+ cd $package
+ if ((verbose)) ; then echo "Archive: \"${package#*/}\"..." >&2 ; fi
+ find -type f
+ ) done
+ ` ; do
+ if [[ "${name:0:10}" = "./usr/bin/" ]] ; then
+ filetype["bin/${name:10}"]="file"
+ elif [[ "${name:0:10}" = "./usr/lib/" ]] ; then
+ filetype["lib/${name:10}"]="file"
+ else
+ filetype["${name:2}"]="file"
+ fi
+ done
+ for name in `
+ for package in packages.unpacked/* ; do (
+ cd $package
+ if ((verbose)) ; then echo "Archive: \"${package#*/}\"..." >&2 ; fi
+ find -type d
+ ) done
+ ` ; do
+ if [[ "${name:0:10}" = "./usr/bin/" ]] ; then
+ if [[ "bin/${filetype[${name:10}]}" = "file" ]] ; then
+ echo "bin/${filetype[${name:10}]} - file and directory... oops?" >&2
+ exit 1
+ fi
+ filetype["bin/${name:10}"]="directory"
+ elif [[ "${name:0:10}" = "./usr/lib/" ]] ; then
+ if [[ "lib/${filetype[${name:10}]}" = "file" ]] ; then
+ echo "lib/${filetype[${name:10}]} - file and directory... oops?" >&2
+ exit 1
+ fi
+ filetype["lib/${name:10}"]="directory"
+ elif ((${#name}>1)) ; then
+ if [[ "${filetype[${name:2}]}" = "file" ]] ; then
+ echo "${filetype[${name:2}]} - file and directory... oops?" >&2
+ exit 1
+ fi
+ filetype["${name:2}"]="directory"
+ fi
+ done
+}
+
+sanitize_var_name() {
+ local varname="$1"
+ varname="${varname//-/_}"
+ varname="${varname//./_}"
+ varname="${varname//+/X}"
+ echo -n "$varname"
+}
+
+declare_nsis_variables() {
+ local outlist
+ local pkgname
+ if ((verbose)) ; then echo "Declare NSIS variables..." >&2 ; fi
+ if [[ "$defpackage" != "NONE" ]] ; then
+ echo "InstType \"Full\""
+ for pkgname in "${!packages[@]}" ; do
+ echo "InstType \"$pkgname\""
+ done | sort
+ cat <<END
+InstType "Minimal"
+
+Var SVV_CmdLineParameters
+Var SVV_InstType
+Var SVV_SelChangeInProgress
+
+!include "FileFunc.nsh"
+
+END
+ fi
+ for pkgname in "${allinstalledpackages[@]}" ; do
+ sanitized_name["$pkgname"]="`sanitize_var_name \"$pkgname\"`"
+ outlist="$outlist
+Var PKV_${sanitized_name[$pkgname]}"
+ done
+ echo "$outlist" | sort
+ local secname
+ for secname in "${!category_contents[@]}" ; do
+ echo "$secname"
+ done | sort |
+ while read -r secname ; do
+ local pkgname
+ for pkgname in ${category_contents["$secname"]} ; do
+ echo "$pkgname"
+ done | sort |
+ while read -r pkgname ; do
+ if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+ echo "Var sv_${secname}_${sanitized_name[$pkgname]}"
+ fi
+ done
+ done |
+ sort
+}
+
+generate_unpack_tarball_text() {
+ # $1 - package to unpack
+ echo " SetOutPath \$INSTDIR"
+ local pkgname="$1"
+ if [[ "$pkgname" != "" ]] ; then
+ pkgname="`basename ${install[$pkgname]/.tar.bz2*/.tar.bz2}`"
+ fi
+ if [[ "$pkgname" != "" ]] ; then
+ local pkgcontent="`tar tSvpf packages/$pkgname\"\" --numeric-owner`"
+ local attrs uidgid size date time filename
+ local -A createddirs
+ createddirs[0]="done"
+ echo "$pkgcontent" | grep "^[dhl-]" |
+ while read -r attrs uidgid size date time filename ; do
+ if [[ "${attrs:0:1}" = "h" ]] ; then
+ filename="${filename%/* link to *}/"
+ elif [[ "${attrs:0:1}" = "l" ]] ; then
+ filename="${filename%/* -> *}/"
+ elif [[ "${attrs:0:1}" = "-" ]] ; then
+ if [[ "$filename" = */* ]] ; then
+ filename="${filename%/*}/"
+ else
+ filename=""
+ fi
+ fi
+ if [[ "$filename" = "usr/share/terminfo/e/" ]] ; then
+ filename="usr/share/terminfo/E/"
+ fi
+ if [[ "${filename:0:8}" = "usr/bin/" ]] ; then
+ filename="bin/${filename:8}"
+ elif [[ "${filename:0:8}" = "usr/lib/" ]] ; then
+ filename="lib/${filename:8}"
+ fi
+ if [[ "$filename" != "" ]] ; then
+ filename="${filename:0:$((${#filename}-1))}"
+ if [[ "${createddirs[$filename]}" != "done" ]] ; then
+ echo " CreateDirectory \"\$INSTDIR\\${prefix[$1]}${filename//\//\\}\""
+ if [[ "$filename" == "bin" ]]; then
+ echo " CreateDirectory \"\$INSTDIR\\${prefix[$1]}bin-unrebased\""
+ fi
+ createddirs["$filename"]="done"
+ fi
+ fi
+ done
+ if [[ "$1" = "libgcj-common" ]] ; then
+ echo " CreateDirectory \"\$INSTDIR\\${prefix[$1]}lib\\security\""
+ fi
+ if [[ "$1" == "cygwin" ]] ; then
+ echo " File \"/oname=${prefix[cygwin]}Cygwin.ico\" \"setup\\Cygwin.ico\""
+ fi
+ echo "$pkgcontent" | grep "^-" |
+ while read -r attrs uidgid size date time filename ; do
+ if [[ "$filename" != "usr/share/WindowMaker/Icons/DefaultAppIcon.tiff" ]] &&
+ [[ "$filename" != "usr/share/ri/1.8/system/Exception2MessageMapper/fail-i.yaml" ]] &&
+ [[ "$filename" != "usr/share/ri/1.8/system/REXML/Parsers/XPathParser/predicate-i.yaml" ]] ; then
+ local fname
+ if [[ "${filename:0:8}" = "usr/bin/" ]] ; then
+ fname="bin/${filename:8}"
+ elif [[ "${filename:0:8}" = "usr/lib/" ]] ; then
+ fname="lib/${filename:8}"
+ elif [[ "$filename" = "usr/share/terminfo/e/Eterm" ]] ; then
+ fname="usr/share/terminfo/E/Eterm"
+ else
+ fname="$filename"
+ fi
+ fname="${fname//\//\\}"
+ fname="${fname//\$/\$\$}"
+ filename="${filename//\//\\}"
+ echo " File \"/oname=${prefix[$1]}$fname\" \"packages.unpacked\\$pkgname\\$filename\""
+ if [[ "$fname" = bin\\*.dll ]]; then
+ echo " File \"/oname=${prefix[$1]}bin-unrebased\\${fname:3}\" \"packages.unpacked\\$pkgname\\$filename\""
+ fi
+ fi
+ done
+ echo " File \"/oname=${prefix[coreutils]}etc\\setup\\$1.lst.gz\" \"setup\\$1.lst.gz\""
+ echo "$pkgcontent" | grep "^h" |
+ while read -r attrs uidgid size date time filename ; do
+ local linkname="${filename/ link to */}"
+ local linktargetname="${filename/* link to /}"
+ if [[ "${linkname:0:8}" = "usr/bin/" ]] ; then
+ linkname="bin/${linkname:8}"
+ elif [[ "${linkname:0:8}" = "usr/lib/" ]] ; then
+ linkname="lib/${linkname:8}"
+ fi
+ if [[ "${linktargetname:0:8}" = "usr/bin/" ]] ; then
+ linktargetname="bin/${linktargetname:8}"
+ elif [[ "${linktargetname:0:8}" = "usr/lib/" ]] ; then
+ linktargetname="lib/${linktargetname:8}"
+ fi
+ linkname="${linkname//\//\\}"
+ linkname="${linkname//\$/\$\$}"
+ linktargetname="${linktargetname//\//\\}"
+ linktargetname="${linktargetname//\$/\$\$}"
+ echo " MkLink::Hard \"\$INSTDIR\\${prefix[$1]}$linkname\" \"\$INSTDIR\\${prefix[$1]}$linktargetname\""
+ done
+ echo "$pkgcontent" | grep "^l" |
+ while read -r attrs uidgid size date time filename ; do
+ local linkname="${filename/ -> */}"
+ local linktargetname="${filename/* -> /}"
+ if [[ "$linktargetname" = "/tmp/install/INSTALL/usr/share/doc/lynx/COPYHEADER" ]] ; then
+ linktargetname="/usr/share/doc/lynx/COPYHEADER"
+ elif [[ "$linktargetname" = "/tmp/install/INSTALL/usr/share/doc/lynx/COPYING" ]] ; then
+ linktargetname="/usr/share/doc/lynx/COPYING"
+ elif [[ "$linktargetname" = "../Cygwin/stunnel-4.29.README" ]] ; then
+ linktargetname="../Cygwin/stunnel.README"
+ elif [[ "$linktargetname" = "../../CHANGELOG" ]] &&
+ [[ "$linkname" = "usr/X11R6/share/tcm-2.20/help/CHANGELOG" ]] ; then
+ linktargetname="../../doc/tcm-2.20/CHANGELOG"
+ elif [[ "$linktargetname" = "../../COPYING" ]] &&
+ [[ "$linkname" = "usr/X11R6/share/tcm-2.20/help/COPYING" ]] ; then
+ linktargetname="../../doc/tcm-2.20/COPYING"
+ elif [[ "$linktargetname" = "mf-nowin.1" ]] &&
+ [[ "$linkname" = "usr/share/man/mf.1" ]] ; then
+ linkname="usr/share/man/man1/mf.1"
+ linktargetname="../../../X11R6/share/man/man1/mf.1"
+ elif [[ "$linktargetname" = "../N/NCR260VT300WPP0" ]] ; then
+ linktargetname="../N/NCR260VT300WPP0"
+ elif [[ "$linkname" = "usr/share/terminfo/e/Eterm-color" ]] ; then
+ linkname="usr/share/terminfo/E/Eterm-color"
+ elif [[ "$linktargetname" = "../../include/qt3" ]] &&
+ [[ "$linkname" = "usr/lib/qt3/include" ]] ; then
+ linktargetname= "../../usr/include/qt4"
+ elif [[ "$linktargetname" = "../../include/qt4" ]] &&
+ [[ "$linkname" = "usr/lib/qt4/include" ]] ; then
+ linktargetname= "../../usr/include/qt4"
+ elif [[ "${linktargetname:0:2}" = "./" ]] ; then
+ linktargetname="${linktargetname:2}"
+ elif [[ "${linkname:0:8}" = "usr/bin/" ]] ; then
+ linkname="bin/${linkname:8}"
+ elif [[ "${linkname:0:8}" = "usr/lib/" ]] ; then
+ linkname="lib/${linkname:8}"
+ fi
+ if [[ "${linkname%/*}/$linktargetname" = *//* ]] ; then
+ linktargetname="/${linkname%/*}/$linktargetname"
+ while [[ "$linktargetname" != //* ]] ; do
+ linktargetname="${linktargetname%/*//*}//../${linktargetname#*//}"
+ done
+ linktargetname="${linktargetname:2}"
+ fi
+ local linktargetfile="/${linkname%/*}/$linktargetname"
+ while [[ "$linktargetfile" = */../* ]] ; do
+ local linktargetprefix="${linktargetfile%%/../*}"
+ local linktargetsuffix="${linktargetfile#*/../}"
+ linktargetfile="${linktargetprefix%/*}/$linktargetsuffix"
+ done
+ if [[ "${linktargetfile:0:9}" = "/usr/bin/" ]] ; then
+ linktargetfile="bin/${linktargetfile:9}"
+ elif [[ "${linktargetfile:0:9}" = "/usr/lib/" ]] ; then
+ linktargetfile="lib/${linktargetfile:9}"
+ else
+ linktargetfile="${linktargetfile:1}"
+ fi
+ linkname="${linkname//\//\\}"
+ linkname="${linkname//\$/\$\$}"
+ if [[ "${filetype[$linktargetfile]}" = "file" ]] ; then
+ linktargetname="${linktargetname//\//\\}"
+ linktargetname="${linktargetname//\$/\$\$}"
+ if [[ "${linkname:$((${#linkname}-4))}" = ".exe" ]] ||
+ [[ "${linktargetfile:$((${#linktargetfile}-4))}" != ".exe" ]] ; then
+ echo " MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname\" \"$linktargetname\""
+ else
+ echo " MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname.exe\" \"$linktargetname\""
+ fi
+ elif [[ "${filetype[$linktargetfile.exe]}" = "file" ]] ; then
+ linktargetname="${linktargetname//\//\\}"
+ linktargetname="${linktargetname//\$/\$\$}"
+ if [[ "${linkname:$((${#linkname}-4))}" = ".exe" ]] ; then
+ echo " MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname\" \"$linktargetname.exe\""
+ else
+ echo " MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname.exe\" \"$linktargetname.exe\""
+ fi
+ elif [[ "${filetype[$linktargetfile]}" = "directory" ]] ; then
+ linktargetname="${linktargetname//\//\\}"
+ linktargetname="${linktargetname//\$/\$\$}"
+ echo " MkLink::SoftD \"\$INSTDIR\\${prefix[$1]}$linkname\" \"$linktargetname\""
+ elif [ -f packages.unpacked/*/"$linktargetfile" ] ; then
+ linktargetname="${linktargetname//\//\\}"
+ linktargetname="${linktargetname//\$/\$\$}"
+ if [[ "${linkname:$((${#linkname}-4))}" = ".exe" ]] ||
+ [[ "${linktargetfile:$((${#linktargetfile}-4))}" != ".exe" ]] ; then
+ echo " MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname\" \"$linktargetname\""
+ else
+ echo " MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname.exe\" \"$linktargetname\""
+ fi
+ elif [ -d packages.unpacked/*/"$linktargetfile" ] ; then
+ linktargetname="${linktargetname//\//\\}"
+ linktargetname="${linktargetname//\$/\$\$}"
+ echo " MkLink::SoftD \"\$INSTDIR\\${prefix[$1]}$linkname\" \"$linktargetname\""
+ elif [[ "$linktargetname" = "../share/webcheck/webcheck.py" ]] ; then
+ echo " MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname\" \"..\\share\\webcheck\\webcheck.py\""
+ else
+ echo "Can not determine the type of link \"$linktargetname\"" >&2
+ exit 1
+ fi
+ done
+ echo "$pkgcontent" |
+ grep "^-.............................................. etc/postinstall/.*\\.sh" |
+ while read -r attrs uidgid size date time filename ; do
+ cat <<END
+ FileOpen \$R0 \$INSTDIR\\postinstall.sh a
+ FileSeek \$R0 0 END
+ FileWrite \$R0 "/$filename\$\n"
+ FileClose \$R0
+END
+ # If we have a postinstall script we need coreutils to execute it!
+ if ! [[ " ${requires[$pkgname]} " = *" coreutils "* ]] ; then
+ requires["$pkgname"]="${requires[$pkgname]} coreutils"
+ fi
+ if ! [[ " ${required[coreutils]} " = *" $pkgname "* ]] ; then
+ required["coreutils"]="${requires[coreutils]} $pkgname"
+ fi
+ done
+ cat <<END
+ Push \$R0
+ FileOpen \$R0 \$INSTDIR\\etc\\setup\\installed.log a
+ FileSeek \$R0 0 END
+ FileWrite \$R0 "$1 $pkgname 0\$\n"
+ FileClose \$R0
+ Pop \$R0
+END
+ fi
+}
+
+generate_section_list() {
+ if ((verbose)) ; then echo "Declaring unpack sections..." >&2 ; fi
+ local secname
+ for secname in "${!category_contents[@]}" ; do
+ echo "$secname"
+ done | sort |
+ while read -r secname ; do
+ local pkgname groupprint=1
+ for pkgname in ${category_contents["$secname"]} ; do
+ echo "$pkgname"
+ done | sort |
+ { local groupprint=1
+ while read -r pkgname ; do
+ if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+ if ((groupprint)) ; then
+ if [[ "$secname" != "_PostInstallLast" ]] &&
+ [[ "$secname" != "_obsolete" ]] ; then
+ echo "SectionGroup \"$secname\" sec_$secname"
+ groupprint=0
+ fi
+ fi
+ local insttar="${install[$pkgname]/.tar.bz2*/}"
+ if [[ "$secname" = "_PostInstallLast" ]] ||
+ [[ "$secname" = "_obsolete" ]] ; then
+ echo -n "Section \"-${insttar/*\//}\" "
+ elif [[ " ${seed[$pkgname]} " == *" $definsttype "* ]] ; then
+ echo -n "Section \"!${insttar/*\//}\" "
+ else
+ echo -n "Section \"${insttar/*\//}\" "
+ fi
+ echo "sec_${secname}_${sanitized_name[$pkgname]}"
+ echo " SectionIn${sectionin[$pkgname]}"
+ echo "SectionEnd"
+ fi
+ done
+ if ((!groupprint)) ; then
+ echo "SectionGroupEnd"
+ fi
+ }
+ done
+ for secname in "${allinstalledpackages[@]}" ; do
+ if ((verbose)) ; then echo "Package "$secname"..." >&2 ; fi
+ echo "Section \"\" sec_PKG_${sanitized_name[$secname]}"
+ echo " SectionIn${sectionin[$secname]}"
+ generate_unpack_tarball_text "$secname"
+ echo "SectionEnd"
+ done
+ echo "!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN"
+ for secname in "${!category_contents[@]}" ; do
+ echo "$secname"
+ done | sort |
+ while read -r secname ; do
+ local pkgname
+ for pkgname in ${category_contents["$secname"]} ; do
+ echo "$pkgname"
+ done | sort |
+ { local groupprint=1
+ while read -r pkgname ; do
+ if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+ if ((groupprint)) ; then
+ if [[ "$secname" != "_PostInstallLast" ]] &&
+ [[ "$secname" != "_obsolete" ]] ; then
+ echo " !insertmacro MUI_DESCRIPTION_TEXT \${sec_$secname} \"\""
+ groupprint=0
+ fi
+ fi
+ echo -n " !insertmacro MUI_DESCRIPTION_TEXT \${"
+ echo -n "sec_${secname}_${sanitized_name[$pkgname]}} "
+ # Modern UI does not like long descriptions
+ #if [ "${sdesc[$pkgname]}" != "" ] ; then
+ #echo "${ldesc[$pkgname]}"
+ #else
+ echo "${sdesc[$pkgname]}"
+ #fi
+ fi
+ done
+ }
+ done
+ echo "!insertmacro MUI_FUNCTION_DESCRIPTION_END"
+}
+
+generate_init_function() {
+ # $1 - Section number for first options (others should follow)
+ if ((verbose)) ; then echo "Declaring .onInit function..." >&2 ; fi
+ echo "Function .onInit"
+ if [[ "$defpackage" != "NONE" ]] ; then
+ echo " StrCpy \$SVV_InstType $(($definsttype-1))"
+ echo " StrCpy \$SVV_SelChangeInProgress 0"
+ fi
+ local pkgname
+ for pkgname in "${allinstalledpackages[@]}" ; do
+ if [[ " ${seed[$pkgname]} " == *" $definsttype "* ]] ; then
+ echo " StrCpy \$PKV_${sanitized_name[$pkgname]} 9"
+ elif [[ " ${sectionin[$pkgname]} " == *" $definsttype "* ]] ; then
+ echo " StrCpy \$PKV_${sanitized_name[$pkgname]} 1"
+ else
+ echo " StrCpy \$PKV_${sanitized_name[$pkgname]} 0"
+ fi
+ done
+ local secname
+ for secname in "${!category_contents[@]}" ; do
+ echo "$secname"
+ done | sort |
+ while read -r secname ; do
+ local pkgname
+ for pkgname in ${category_contents["$secname"]} ; do
+ echo "$pkgname"
+ done | sort |
+ while read -r pkgname ; do
+ if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+ if [[ " ${sectionin[$pkgname]} " == *" $definsttype "* ]] ; then
+ echo " StrCpy \$sv_${secname}_${sanitized_name[$pkgname]} 1"
+ else
+ echo " StrCpy \$sv_${secname}_${sanitized_name[$pkgname]} 0"
+ fi
+ fi
+ done
+ done
+ if [[ "$defpackage" != "NONE" ]] ; then
+ if ((definsttype!=1)) ; then
+ echo " SetCurInstType $((definsttype-1))"
+ fi
+ fi
+ cat <<END
+ \${GetParameters} \$SVV_CmdLineParameters
+ Push \$R0
+ ClearErrors
+ \${GetOptions} \$cmdLineParams "/?" \$R0
+ IfErrors +1 HelpMessage
+ \${GetOptions} \$cmdLineParams "--help" \$R0
+ IfErrors +3 +1
+HelpMessage:
+END
+ echo -n " MessageBox MB_OK \"Recognized common options:"
+ echo -n "\$\\n /D=InstDir - use InstDir as target instead of usual \$INSTDIR"
+ echo -n "\$\\n /NCRC - disables the CRC check"
+ echo -n "\$\\n /S - Silent install"
+ if [[ "$defpackage" != "NONE" ]] ; then
+ local insttype line
+ echo -n "\$\\nRecognized install type options:"
+ echo -n "\$\\n /FULL - Install all availabile packages"
+ for insttype in "${!packages[@]}" ; do
+ echo "\$\\n /`echo \"$insttype\" | tr 'a-z' 'A-Z'` - ${description[$insttype]}"
+ done | sort |
+ while IFS= read -r line ; do
+ printf "%s" "$line"
+ done
+ echo -n "\$\\n /MINIMAL - Install only packages from \$\\\"Base\$\\\" category"
+ fi
+ echo "\""
+ echo " Abort"
+ if [[ "$defpackage" != "NONE" ]] ; then
+ local sectionN="$(($1-1))"
+ local IFS=$'\n'
+ for insttype in `
+ echo "Full"
+ for insttype in "${!packages[@]}" ; do
+ echo $insttype
+ done | sort
+ echo "Minimal"
+ ` ; do
+ echo " \${GetOptions} \$cmdLineParams \"/`echo \"$insttype\" | tr 'a-z' 'A-Z'`\" \$R0"
+ echo " IfErrors No_$insttype +1"
+ echo " StrCpy \$SVV_InstType $((sectionN-1))"
+ for pkgname in "${allinstalledpackages[@]}" ; do
+ if [[ " ${seed[$pkgname]} " == *" $sectionN "* ]] ; then
+ echo " StrCpy \$PKV_${sanitized_name[$pkgname]} 9"
+ elif [[ " ${sectionin[$pkgname]} " == *" $sectionN "* ]] ; then
+ echo " StrCpy \$PKV_${sanitized_name[$pkgname]} 1"
+ else
+ echo " StrCpy \$PKV_${sanitized_name[$pkgname]} 0"
+ fi
+ done
+ for secname in "${!category_contents[@]}" ; do
+ echo "$secname"
+ done | sort |
+ while read -r secname ; do
+ local pkgname
+ for pkgname in ${category_contents["$secname"]} ; do
+ echo "$pkgname"
+ done | sort |
+ while read -r pkgname ; do
+ if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+ if [[ " ${sectionin[$pkgname]} " == *" $sectionN "* ]] ; then
+ echo " StrCpy \$sv_${secname}_${sanitized_name[$pkgname]} 1"
+ else
+ echo " StrCpy \$sv_${secname}_${sanitized_name[$pkgname]} 0"
+ fi
+ fi
+ done
+ done
+ for pkgname in "${allinstalledpackages[@]}" ; do
+ if [[ " ${seed[$pkgname]} " == *" $sectionN "* ]] ; then
+ echo " SectionSetFlags \${sec_PKG_${sanitized_name[$pkgname]}} 9"
+ elif [[ " ${sectionin[$pkgname]} " == *" $sectionN "* ]] ; then
+ echo " SectionSetFlags \${sec_PKG_${sanitized_name[$pkgname]}} 1"
+ else
+ echo " SectionSetFlags \${sec_PKG_${sanitized_name[$pkgname]}} 0"
+ fi
+ done
+ for secname in "${!category_contents[@]}" ; do
+ echo "$secname"
+ done | sort |
+ while read -r secname ; do
+ local pkgname
+ for pkgname in ${category_contents["$secname"]} ; do
+ echo "$pkgname"
+ done | sort |
+ while read -r pkgname ; do
+ if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+ if [[ " ${seed[$pkgname]} " == *" $sectionN "* ]] ; then
+ echo " SectionSetFlags \${sec_${secname}_${sanitized_name[$pkgname]}} 9"
+ elif [[ " ${sectionin[$pkgname]} " == *" $sectionN "* ]] ; then
+ echo " SectionSetFlags \${sec_${secname}_${sanitized_name[$pkgname]}} 1"
+ else
+ echo " SectionSetFlags \${sec_${secname}_${sanitized_name[$pkgname]}} 0"
+ fi
+ fi
+ done
+ done
+ echo " SetCurInstType $((sectionN-1))"
+ echo "No_$insttype:"
+ ((sectionN++))
+ done
+ fi
+ echo " Pop \$R0"
+ echo "FunctionEnd"
+}
+
+generate_onselchange_function(){
+ if ((verbose)) ; then echo "Declaring .onSelChange function..." >&2 ; fi
+ cat <<END
+Function .onSelChange
+ IntCmp \$SVV_SelChangeInProgress 0 +1 L1_SelChangeInProgress L1_SelChangeInProgress
+ StrCpy \$SVV_SelChangeInProgress 1
+ Push \$R0
+ Push \$R1
+END
+ if [[ "$defpackage" != "NONE" ]] ; then
+ cat <<END
+ Push \$R2
+ GetCurInstType \$R0
+ StrCpy \$R2 0
+ IntCmp \$R0 \$SVV_InstType +4 +1 +1
+ StrCpy \$SVV_InstType \$R0
+ IntCmp \$R0 \${NSIS_MAX_INST_TYPES} +2 +1 +1
+ StrCpy \$R2 1
+END
+ fi
+ # sv_XXX/PKV_XXX variables contain information about previous state of affairs
+ # Note: there are three states - 0 (not to be installed), 9 (to be installed)
+ # and 1 (will be installed because some other package needs it).
+ # First we check is some packages were deselected and remove all packages
+ # which can not be installed now.
+ local secname pkgname subpkgname
+ for secname in "${!category_contents[@]}" ; do
+ echo "$secname"
+ done | sort |
+ while read -r secname ; do
+ local pkgname
+ for pkgname in ${category_contents["$secname"]} ; do
+ echo "$pkgname"
+ done | sort |
+ while read -r pkgname ; do
+ if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+ if ((verbose)) ; then echo "Read state: \"$pkgname\"..." >&2 ; fi
+ local PKV_name="PKV_${sanitized_name[$pkgname]}"
+ local sc_name="${secname}_${sanitized_name[$pkgname]}"
+ echo " SectionGetFlags \${sec_$sc_name} \$R0"
+ echo " IntOp \$R1 \$R0 & \${SF_SELECTED}"
+ if [[ "$defpackage" == "NONE" ]] ; then
+ echo " IntCmp \$sv_$sc_name \$R1 L4_$sc_name"
+ else
+ echo " IntCmp \$sv_$sc_name \$R1 L2_$sc_name"
+ fi
+ echo " IntCmp \$sv_$sc_name 0 L1_$sc_name"
+ echo " StrCpy \$$PKV_name 0"
+ for subpkgname in ${required["$pkgname"]} ; do
+ if [[ "${allinstpackages[$subpkgname]}" = "present" ]] ; then
+ echo " IntCmp \$PKV_${sanitized_name[$subpkgname]} 9 +2 +1 +2"
+ echo " StrCpy \$PKV_${sanitized_name[$subpkgname]} 0"
+ fi
+ done
+ echo " Goto L4_$sc_name"
+ echo "L1_$sc_name:"
+ if [[ "$defpackage" != "NONE" ]] ; then
+ echo " IntCmp \$R2 0 L3_$sc_name +1 +1"
+ echo "L2_$sc_name:"
+ for subpkgname in ${seed["$pkgname"]} ; do
+ echo " IntCmp \$SVV_InstType $((subpkgname-1)) L3_$sc_name +1 +1"
+ done
+ echo " GoTo L4_$sc_name"
+ echo "L3_$sc_name:"
+ fi
+ echo " StrCpy \$$PKV_name 9"
+ echo "L4_$sc_name:"
+ fi
+ done
+ done
+ # Now we mark all packages which can be installed or not installed as
+ # not-installed
+ for pkgname in "${allinstalledpackages[@]}" ; do
+ echo " IntCmp \$PKV_${sanitized_name[$pkgname]} 9 +2 +1 +2"
+ echo " StrCpy \$PKV_${sanitized_name[$pkgname]} 0"
+ done
+ # Put the dependences back
+ for pkgname in "${allinstalledpackages[@]}" ; do
+ if ((verbose)) ; then echo "Set state: \"$pkgname\"..." >&2 ; fi
+ echo " IntCmp \$PKV_${sanitized_name[$pkgname]} 9 +1 L5_${sanitized_name[$pkgname]} +1"
+ for subpkgname in ${requires["$pkgname"]} ; do
+ echo " IntCmp \$PKV_${sanitized_name[$subpkgname]} 9 +2 +1 +2"
+ echo " StrCpy \$PKV_${sanitized_name[$subpkgname]} 1"
+ done
+ echo "L5_${sanitized_name[$pkgname]}:"
+ done
+ # Copy the calculated new state to the screen
+ for pkgname in "${allinstalledpackages[@]}" ; do
+ echo " SectionSetFlags \${sec_PKG_${sanitized_name[$pkgname]}} \$PKV_${sanitized_name[$pkgname]}"
+ done
+ for secname in "${!category_contents[@]}" ; do
+ echo "$secname"
+ done | sort |
+ while read -r secname ; do
+ local pkgname
+ for pkgname in ${category_contents["$secname"]} ; do
+ echo "$pkgname"
+ done | sort |
+ while read -r pkgname ; do
+ if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+ echo " IntOp \$sv_${secname}_${sanitized_name[$pkgname]} \$PKV_${sanitized_name[$pkgname]} & 1"
+ echo " SectionSetFlags \${sec_${secname}_${sanitized_name[$pkgname]}} \$PKV_${sanitized_name[$pkgname]}"
+ fi
+ done
+ done
+ if [[ "$defpackage" != "NONE" ]] ; then
+ echo " Pop \$R2"
+ fi
+ cat <<END
+ Pop \$R1
+ Pop \$R0
+ StrCpy \$SVV_SelChangeInProgress 0
+L1_SelChangeInProgress:
+FunctionEnd
+END
+}
// Indicates that this request is not to be migrated to a new network when QUIC
// connection migration is enabled.
LOAD_FLAG(DISABLE_CONNECTION_MIGRATION, 1 << 18)
+
+// Indicates that the cache should not check that the request matches the
+// response's vary header.
+LOAD_FLAG(SKIP_VARY_CHECK, 1 << 19)
--- /dev/null
+// Copyright (c) 2016 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.
+
+// The certificate(s) that were misissued, and which represent these SPKIs,
+// are stored within net/data/ssl/blacklist. Further details about the
+// rationale is documented in net/data/ssl/blacklist/README.md
+static const size_t kNumBlacklistedSPKIs = 34u;
+static const uint8_t
+ kBlacklistedSPKIs[kNumBlacklistedSPKIs][crypto::kSHA256Length] = {
+ // ead610e6e90b439f2ecb51628b0932620f6ef340bd843fca38d3181b8f4ba197.pem
+ {0x12, 0x13, 0x23, 0x60, 0xa3, 0x3b, 0xfd, 0xc6, 0xc3, 0xbf, 0x7b,
+ 0x7f, 0xab, 0x26, 0xa1, 0x68, 0x48, 0x74, 0xe7, 0x2c, 0x12, 0x63,
+ 0xc1, 0xf5, 0xde, 0x56, 0x5b, 0xb4, 0x9e, 0xf0, 0x37, 0x53},
+ // 4bf6bb839b03b72839329b4ea70bb1b2f0d07e014d9d24aa9cc596114702bee3.pem
+ {0x12, 0x7d, 0xa2, 0x7a, 0x9e, 0x45, 0xf0, 0x82, 0x28, 0x0b, 0x31,
+ 0xbf, 0x1e, 0x56, 0x15, 0x20, 0x38, 0x9f, 0x96, 0x65, 0x90, 0x93,
+ 0xb2, 0x69, 0x7c, 0x40, 0xfe, 0x86, 0x00, 0x23, 0x6c, 0x8c},
+ // 0f912fd7be760be25afbc56bdc09cd9e5dcc9c6f6a55a778aefcb6aa30e31554.pem
+ {0x13, 0x0a, 0xd4, 0xe0, 0x63, 0x35, 0x21, 0x29, 0x05, 0x31, 0xb6,
+ 0x65, 0x1f, 0x57, 0x59, 0xb0, 0xbc, 0x7b, 0xc6, 0x56, 0x70, 0x9f,
+ 0xf8, 0xf3, 0x65, 0xc2, 0x14, 0x3b, 0x03, 0x89, 0xb6, 0xf6},
+ // 1af56c98ff043ef92bebff54cebb4dd67a25ba956c817f3e6dd3c1e52eb584c1.key
+ {0x1a, 0xf5, 0x6c, 0x98, 0xff, 0x04, 0x3e, 0xf9, 0x2b, 0xeb, 0xff,
+ 0x54, 0xce, 0xbb, 0x4d, 0xd6, 0x7a, 0x25, 0xba, 0x95, 0x6c, 0x81,
+ 0x7f, 0x3e, 0x6d, 0xd3, 0xc1, 0xe5, 0x2e, 0xb5, 0x84, 0xc1},
+ // 2c998e761160c3b06d82faa9fdc7545d9bda9eb60310f992aa510a6280b74245.pem
+ {0x2c, 0x99, 0x8e, 0x76, 0x11, 0x60, 0xc3, 0xb0, 0x6d, 0x82, 0xfa,
+ 0xa9, 0xfd, 0xc7, 0x54, 0x5d, 0x9b, 0xda, 0x9e, 0xb6, 0x03, 0x10,
+ 0xf9, 0x92, 0xaa, 0x51, 0x0a, 0x62, 0x80, 0xb7, 0x42, 0x45},
+ // 32ecc96f912f96d889e73088cd031c7ded2c651c805016157a23b6f32f798a3b.key
+ {0x32, 0xec, 0xc9, 0x6f, 0x91, 0x2f, 0x96, 0xd8, 0x89, 0xe7, 0x30,
+ 0x88, 0xcd, 0x03, 0x1c, 0x7d, 0xed, 0x2c, 0x65, 0x1c, 0x80, 0x50,
+ 0x16, 0x15, 0x7a, 0x23, 0xb6, 0xf3, 0x2f, 0x79, 0x8a, 0x3b},
+ // 42187727be39faf667aeb92bf0cc4e268f6e2ead2cefbec575bdc90430024f69.pem
+ {0x3e, 0xdb, 0xd9, 0xac, 0xe6, 0x39, 0xba, 0x1a, 0x2d, 0x4a, 0xd0,
+ 0x47, 0x18, 0x71, 0x1f, 0xda, 0x23, 0xe8, 0x59, 0xb2, 0xfb, 0xf5,
+ 0xd1, 0x37, 0xd4, 0x24, 0x04, 0x5e, 0x79, 0x19, 0xdf, 0xb9},
+ // 294f55ef3bd7244c6ff8a68ab797e9186ec27582751a791515e3292e48372d61.pem
+ {0x45, 0x5b, 0x87, 0xe9, 0x6f, 0x1c, 0xea, 0x2f, 0x8b, 0x6d, 0xae,
+ 0x08, 0x08, 0xec, 0x24, 0x73, 0x8f, 0xd9, 0x2b, 0x7f, 0xd3, 0x06,
+ 0x75, 0x71, 0x98, 0xbf, 0x38, 0x9d, 0x75, 0x5c, 0x0b, 0x6c},
+ // 7abd72a323c9d179c722564f4e27a51dd4afd24006b38a40ce918b94960bcf18.pem
+ {0x57, 0x80, 0x94, 0x46, 0xea, 0xf1, 0x14, 0x84, 0x38, 0x54, 0xfe,
+ 0x63, 0x6e, 0xd9, 0xbc, 0xb5, 0x52, 0xe3, 0xc6, 0x16, 0x66, 0x3b,
+ 0xc4, 0x4c, 0xc9, 0x5a, 0xcf, 0x56, 0x50, 0x01, 0x6d, 0x3e},
+ // 817d4e05063d5942869c47d8504dc56a5208f7569c3d6d67f3457cfe921b3e29.pem
+ {0x5c, 0x72, 0x2c, 0xb7, 0x0f, 0xb3, 0x11, 0xf2, 0x1e, 0x0d, 0xa0,
+ 0xe7, 0xd1, 0x2e, 0xbc, 0x8e, 0x05, 0xf6, 0x07, 0x96, 0xbc, 0x49,
+ 0xcf, 0x51, 0x18, 0x49, 0xd5, 0xbc, 0x62, 0x03, 0x03, 0x82},
+ // 79f69a47cfd6c4b4ceae8030d04b49f6171d3b5d6c812f58d040e586f1cb3f14.pem
+ // 933f7d8cda9f0d7c8bfd3c22bf4653f4161fd38ccdcf66b22e95a2f49c2650f8.pem
+ // f8a5ff189fedbfe34e21103389a68340174439ad12974a4e8d4d784d1f3a0faa.pem
+ {0x5e, 0x53, 0xf2, 0x64, 0x67, 0xf8, 0x94, 0xfd, 0xe5, 0x3b, 0x3f,
+ 0xa4, 0x06, 0xa4, 0x40, 0xcb, 0xb3, 0xb0, 0x76, 0xbb, 0x5b, 0x75,
+ 0x8f, 0xe4, 0x83, 0x4a, 0xd6, 0x65, 0x00, 0x20, 0x89, 0x07},
+ // f4a5984324de98bd979ef181a100cf940f2166173319a86a0d9d7c8fac3b0a8f.pem
+ {0x71, 0x65, 0xe9, 0x91, 0xad, 0xe7, 0x91, 0x6d, 0x86, 0xb4, 0x66,
+ 0xab, 0xeb, 0xb6, 0xe4, 0x57, 0xca, 0x93, 0x1c, 0x80, 0x4e, 0x58,
+ 0xce, 0x1f, 0xba, 0xba, 0xe5, 0x09, 0x15, 0x6f, 0xfb, 0x43},
+ // f3bae5e9c0adbfbfb6dbf7e04e74be6ead3ca98a5604ffe591cea86c241848ec.pem
+ {0x7d, 0x5e, 0x3f, 0x50, 0x50, 0x81, 0x97, 0xb9, 0xa4, 0x78, 0xb1,
+ 0x13, 0x40, 0xb7, 0xdc, 0xe2, 0x0a, 0x3c, 0x4d, 0xe4, 0x9c, 0x48,
+ 0xc9, 0xa2, 0x94, 0x15, 0x8a, 0x89, 0x5c, 0x44, 0xa2, 0x1b},
+ // b8686723e415534bc0dbd16326f9486f85b0b0799bf6639334e61daae67f36cd.pem
+ {0x7e, 0x70, 0x58, 0xea, 0x35, 0xad, 0x43, 0x59, 0x65, 0x41, 0x59,
+ 0x97, 0x3f, 0x56, 0x01, 0x87, 0xf1, 0x6d, 0x19, 0xc5, 0x14, 0xb9,
+ 0x39, 0xc5, 0x05, 0x56, 0x72, 0xd1, 0xd2, 0xa5, 0x18, 0xac},
+ // 450f1b421bb05c8609854884559c323319619e8b06b001ea2dcbb74a23aa3be2.pem
+ {0x93, 0xca, 0x2d, 0x43, 0x6c, 0xae, 0x7f, 0x68, 0xd2, 0xb4, 0x25,
+ 0x6c, 0xa1, 0x75, 0xc9, 0x85, 0xce, 0x39, 0x92, 0x6d, 0xc9, 0xf7,
+ 0xee, 0xae, 0xec, 0xf2, 0xf8, 0x97, 0x0f, 0xb9, 0x78, 0x02},
+ // 1f17f2cbb109f01c885c94d9e74a48625ae9659665d6d7e7bc5a10332976370f.pem
+ {0x99, 0xba, 0x47, 0x84, 0xf9, 0xb0, 0x85, 0x12, 0x90, 0x2e, 0xb0,
+ 0xc3, 0xc8, 0x6d, 0xf0, 0xec, 0x04, 0x9e, 0xac, 0x9b, 0x65, 0xf7,
+ 0x7a, 0x9b, 0xa4, 0x2b, 0xe9, 0xd6, 0xeb, 0xce, 0x32, 0x0f},
+ // a8e1dfd9cd8e470aa2f443914f931cfd61c323e94d75827affee985241c35ce5.pem
+ {0x9b, 0x8a, 0x93, 0xde, 0xcc, 0xcf, 0xba, 0xfc, 0xf4, 0xd0, 0x4d,
+ 0x34, 0x42, 0x12, 0x8f, 0xb3, 0x52, 0x18, 0xcf, 0xe4, 0x37, 0xa3,
+ 0xd8, 0xd0, 0x32, 0x8c, 0x99, 0xf8, 0x90, 0x89, 0xe4, 0x50},
+ // 0d136e439f0ab6e97f3a02a540da9f0641aa554e1d66ea51ae2920d51b2f7217.pem
+ // 4fee0163686ecbd65db968e7494f55d84b25486d438e9de558d629d28cd4d176.pem
+ // 8a1bd21661c60015065212cc98b1abb50dfd14c872a208e66bae890f25c448af.pem
+ {0xa9, 0x03, 0xaf, 0x8c, 0x07, 0xbb, 0x91, 0xb0, 0xd9, 0xe3, 0xf3,
+ 0xa3, 0x0c, 0x6d, 0x53, 0x33, 0x9f, 0xc5, 0xbd, 0x47, 0xe5, 0xd6,
+ 0xbd, 0xb4, 0x76, 0x59, 0x88, 0x60, 0xc0, 0x68, 0xa0, 0x24},
+ // b8c1b957c077ea76e00b0f45bff5ae3acb696f221d2e062164fe37125e5a8d25.pem
+ {0xb3, 0x18, 0x2e, 0x28, 0x9a, 0xe3, 0x4d, 0xdf, 0x2b, 0xe6, 0x43,
+ 0xab, 0x79, 0xc2, 0x44, 0x30, 0x16, 0x05, 0xfa, 0x0f, 0x1e, 0xaa,
+ 0xe6, 0xd1, 0x0f, 0xb9, 0x29, 0x60, 0x0a, 0xf8, 0x4d, 0xf0},
+ // be144b56fb1163c49c9a0e6b5a458df6b29f7e6449985960c178a4744624b7bc.pem
+ {0xb4, 0xd5, 0xc9, 0x20, 0x41, 0x5e, 0xd0, 0xcc, 0x4f, 0x5d, 0xbc,
+ 0x7f, 0x54, 0x26, 0x36, 0x76, 0x2e, 0x80, 0xda, 0x66, 0x25, 0xf3,
+ 0x3f, 0x2b, 0x6a, 0xd6, 0xdb, 0x68, 0xbd, 0xba, 0xb2, 0x9a},
+ // 372447c43185c38edd2ce0e9c853f9ac1576ddd1704c2f54d96076c089cb4227.pem
+ {0xc1, 0x73, 0xf0, 0x62, 0x64, 0x56, 0xca, 0x85, 0x4f, 0xf2, 0xa7,
+ 0xf0, 0xb1, 0x33, 0xa7, 0xcf, 0x4d, 0x02, 0x11, 0xe5, 0x52, 0xf2,
+ 0x4b, 0x3e, 0x33, 0xad, 0xe8, 0xc5, 0x9f, 0x0a, 0x42, 0x4c},
+ // c4387d45364a313fbfe79812b35b815d42852ab03b06f11589638021c8f2cb44.key
+ {0xc4, 0x38, 0x7d, 0x45, 0x36, 0x4a, 0x31, 0x3f, 0xbf, 0xe7, 0x98,
+ 0x12, 0xb3, 0x5b, 0x81, 0x5d, 0x42, 0x85, 0x2a, 0xb0, 0x3b, 0x06,
+ 0xf1, 0x15, 0x89, 0x63, 0x80, 0x21, 0xc8, 0xf2, 0xcb, 0x44},
+ // 8290cc3fc1c3aac3239782c141ace8f88aeef4e9576a43d01867cf19d025be66.pem
+ // 9532e8b504964331c271f3f5f10070131a08bf8ba438978ce394c34feeae246f.pem
+ {0xc6, 0x01, 0x23, 0x4e, 0x2b, 0x93, 0x25, 0xdc, 0x92, 0xe3, 0xea,
+ 0xba, 0xc1, 0x96, 0x00, 0xb0, 0xb4, 0x99, 0x47, 0xd4, 0xd0, 0x4d,
+ 0x8c, 0x99, 0xd3, 0x21, 0x27, 0x49, 0x3e, 0xa0, 0x28, 0xf8},
+ // ec30c9c3065a06bb07dc5b1c6b497f370c1ca65c0f30c08e042ba6bcecc78f2c.pem
+ {0xcd, 0xee, 0x9f, 0x33, 0x05, 0x57, 0x2a, 0x67, 0x7e, 0x1a, 0x6c,
+ 0x82, 0xdc, 0x1e, 0x02, 0xa3, 0x5b, 0x11, 0xca, 0xe6, 0xa6, 0x84,
+ 0x33, 0x8c, 0x9f, 0x37, 0xfe, 0x1a, 0xc8, 0xda, 0xec, 0x23},
+ // 9ed8f9b0e8e42a1656b8e1dd18f42ba42dc06fe52686173ba2fc70e756f207dc.pem
+ // a686fee577c88ab664d0787ecdfff035f4806f3de418dc9e4d516324fff02083.pem
+ // fdedb5bdfcb67411513a61aee5cb5b5d7c52af06028efc996cc1b05b1d6cea2b.pem
+ {0xd3, 0x4b, 0x25, 0x5b, 0x2f, 0xe7, 0xd1, 0xa0, 0x96, 0x56, 0xcb,
+ 0xab, 0x64, 0x09, 0xf7, 0x3c, 0x79, 0x6e, 0xc7, 0xd6, 0x6a, 0xf7,
+ 0x36, 0x53, 0xec, 0xc3, 0x9a, 0xf9, 0x78, 0x29, 0x73, 0x10},
+ // 3946901f46b0071e90d78279e82fababca177231a704be72c5b0e8918566ea66.pem
+ {0xdd, 0x3e, 0xeb, 0x77, 0x9b, 0xee, 0x07, 0xf9, 0xef, 0xda, 0xc3,
+ 0x82, 0x40, 0x8b, 0x28, 0xd1, 0x42, 0xfa, 0x84, 0x2c, 0x78, 0xe8,
+ 0xbc, 0x0e, 0x33, 0x34, 0x8d, 0x57, 0xb9, 0x2f, 0x05, 0x83},
+ // c67d722c1495be02cbf9ef1159f5ca4aa782dc832dc6aa60c9aa076a0ad1e69d.pem
+ {0xde, 0x8f, 0x05, 0x07, 0x4e, 0xc0, 0x31, 0x8e, 0x7e, 0x7e, 0x8d,
+ 0x31, 0x90, 0xda, 0xe8, 0xb0, 0x08, 0x94, 0xf0, 0xe8, 0xdd, 0xdf,
+ 0xd3, 0x91, 0x3d, 0x01, 0x75, 0x9b, 0x4f, 0x79, 0xb0, 0x5d},
+ // e4f9a3235df7330255f36412bc849fb630f8519961ec3538301deb896c953da5.pem
+ {0xe6, 0xe1, 0x36, 0xc8, 0x61, 0x54, 0xf3, 0x2c, 0x3e, 0x49, 0xf4,
+ 0x7c, 0xfc, 0x6b, 0x33, 0x8f, 0xf2, 0xdc, 0x61, 0xce, 0x14, 0xfc,
+ 0x75, 0x89, 0xb3, 0xb5, 0x6a, 0x14, 0x50, 0x13, 0x27, 0x01},
+ // 3e26492e20b52de79e15766e6cb4251a1d566b0dbfb225aa7d08dda1dcebbf0a.pem
+ {0xe7, 0xb9, 0x32, 0xae, 0x7e, 0x9b, 0xdc, 0x70, 0x1d, 0x77, 0x1d,
+ 0x6f, 0x39, 0xe8, 0xa6, 0x53, 0x44, 0x9e, 0xea, 0x43, 0xbd, 0xb4,
+ 0x7b, 0xd9, 0x10, 0x22, 0x95, 0x0d, 0x91, 0x79, 0xd8, 0x7e},
+ // ea08c8d45d52ca593de524f0513ca6418da9859f7b08ef13ff9dd7bf612d6a37.key
+ {0xea, 0x08, 0xc8, 0xd4, 0x5d, 0x52, 0xca, 0x59, 0x3d, 0xe5, 0x24,
+ 0xf0, 0x51, 0x3c, 0xa6, 0x41, 0x8d, 0xa9, 0x85, 0x9f, 0x7b, 0x08,
+ 0xef, 0x13, 0xff, 0x9d, 0xd7, 0xbf, 0x61, 0x2d, 0x6a, 0x37},
+ // 31c8fd37db9b56e708b03d1f01848b068c6da66f36fb5d82c008c6040fa3e133.pem
+ {0xf0, 0x34, 0xf6, 0x42, 0xca, 0x1d, 0x9e, 0x88, 0xe9, 0xef, 0xea,
+ 0xfc, 0xb1, 0x5c, 0x7c, 0x93, 0x7a, 0xa1, 0x9e, 0x04, 0xb0, 0x80,
+ 0xf2, 0x73, 0x35, 0xe1, 0xda, 0x70, 0xd1, 0xca, 0x12, 0x01},
+ // 83618f932d6947744d5ecca299d4b2820c01483947bd16be814e683f7436be24.pem
+ {0xf2, 0xbb, 0xe0, 0x4c, 0x5d, 0xc7, 0x0d, 0x76, 0x3e, 0x89, 0xc5,
+ 0xa0, 0x52, 0x70, 0x48, 0xcd, 0x9e, 0xcd, 0x39, 0xeb, 0x62, 0x1e,
+ 0x20, 0x72, 0xff, 0x9a, 0x5f, 0x84, 0x32, 0x57, 0x1a, 0xa0},
+ // 2a3699deca1e9fd099ba45de8489e205977c9f2a5e29d5dd747381eec0744d71.pem
+ {0xf3, 0x0e, 0x8f, 0x61, 0x01, 0x1d, 0x65, 0x87, 0x3c, 0xcb, 0x81,
+ 0xb4, 0x0f, 0xa6, 0x21, 0x97, 0x49, 0xb9, 0x94, 0xf0, 0x1f, 0xa2,
+ 0x4d, 0x02, 0x01, 0xd5, 0x21, 0xc2, 0x43, 0x56, 0x03, 0xca},
+ // 67ed4b703d15dc555f8c444b3a05a32579cb7599bd19c9babe10c584ea327ae0.pem
+ {0xfa, 0x00, 0xbe, 0xc7, 0x3d, 0xd9, 0x97, 0x95, 0xdf, 0x11, 0x62,
+ 0xc7, 0x89, 0x98, 0x70, 0x04, 0xc2, 0x6c, 0xbf, 0x90, 0xaf, 0x4d,
+ 0xb4, 0x42, 0xf6, 0x62, 0x20, 0xde, 0x41, 0x35, 0x4a, 0xc9},
+};
public:
class PersistentCookieStore;
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(TIZEN_DESKTOP_SUPPORT)
+ typedef void (*Ewk_Cookie_Manager_Changes_Watch_Cb)(void* event_info);
+#endif
+
// Terminology:
// * The 'top level domain' (TLD) of an internet domain name is
// the terminal "." free substring (e.g. "com" for google.com
const std::string& name,
const CookieChangedCallback& callback) override;
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(TIZEN_DESKTOP_SUPPORT)
+ void RegisterCookiesChangedCallback(
+ Ewk_Cookie_Manager_Changes_Watch_Cb callback,
+ void* data);
+#endif
+
bool IsEphemeral() override;
private:
base::Time last_statistic_record_time_;
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(TIZEN_DESKTOP_SUPPORT)
+ Ewk_Cookie_Manager_Changes_Watch_Cb cookies_changed_callback_;
+ void* cookies_changed_callback_data_;
+#endif
+
bool persist_session_cookies_;
using CookieChangedHookMap =
void MaybeNotifyFactoryOfCompletion();
- // Called to resume the main job with delay.
+ // Called to resume the main job with delay. Main job is resumed only when
+ // |alternative_job_| has failed or |main_job_wait_time_| elapsed.
void MaybeResumeMainJob(Job* job, const base::TimeDelta& delay);
void ResumeMainJob();
// Starts the |alternative_job_|.
void StartAlternativeProxyServerJob();
+ // Returns whether |job| is an orphaned job.
+ bool IsJobOrphaned(Job* job) const;
+
HttpStreamFactoryImpl* factory_;
HttpNetworkSession* session_;
JobFactory* job_factory_;
--- /dev/null
+// Copyright 2016 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 a set of root CAs which are required to disclose
+// all certificates via Certificate Transparency, as well as exceptions
+// for independent and disclosed sub-CAs.
+//
+// It is meant to be directly included in transport_security_state.cc
+// within an unnamed namespace.
+
+struct CTRequiredPolicy {
+ // A certificate MUST be disclosed via Certificate Transparency if it
+ // chains to or through one of the values contained in |roots|, which
+ // contains the SHA-256 hash of the issuing CA's SubjectPublicKeyInfo,
+ // the same format as HTTP Public Key Pinning.
+ const SHA256HashValue* roots;
+
+ // The number of entries in |roots|.
+ size_t roots_length;
+
+ // The date at which enforcement should begin, relative to the Unix
+ // Epoch.
+ base::TimeDelta effective_date;
+
+ // However, if a certificate ALSO chains to or through one of
+ // |exceptions|, which also contains the SHA-256 hashes of the
+ // issuing CA's SubjectPublicKeyInfo, then even though it chained
+ // through |roots|, it will be exempt from CT requirements.
+ const SHA256HashValue* exceptions;
+
+ // The number of entries in |exceptions|.
+ size_t exceptions_length;
+};
+
+// See net/data/ssl/symantec/README.md
+const SHA256HashValue kSymantecRoots[] = {
+ {{0x02, 0x3c, 0x81, 0xcc, 0xe8, 0xe7, 0xc6, 0x4f, 0xa9, 0x42, 0xd3,
+ 0xc1, 0x50, 0x48, 0x70, 0x7d, 0x35, 0xd9, 0xbb, 0x5b, 0x87, 0xf4,
+ 0xf5, 0x44, 0xc5, 0xbf, 0x1b, 0xc5, 0x64, 0x3a, 0xf2, 0xfa}},
+ {{0x09, 0x99, 0xbf, 0x90, 0x0b, 0xd5, 0xc2, 0x97, 0x86, 0x5e, 0x21,
+ 0xe1, 0xaa, 0xde, 0x6c, 0xf6, 0xbb, 0x3a, 0x94, 0xd1, 0x1a, 0xe5,
+ 0xea, 0x79, 0x84, 0x42, 0xa4, 0xe2, 0xf8, 0x13, 0x24, 0x1f}},
+ {{0x0b, 0xdd, 0x5a, 0xbe, 0x94, 0x0c, 0xaa, 0xab, 0xe8, 0xb2, 0xbb,
+ 0xa8, 0x83, 0x48, 0xfb, 0x6f, 0x4a, 0xa4, 0xcc, 0x84, 0x43, 0x6f,
+ 0x88, 0x0b, 0xec, 0xe6, 0x6b, 0x48, 0xbd, 0xa9, 0x13, 0xd8}},
+ {{0x16, 0xa9, 0xe0, 0x12, 0xd3, 0x23, 0x29, 0xf2, 0x82, 0xb1, 0x0b,
+ 0xbf, 0x57, 0xc7, 0xc0, 0xb4, 0x2a, 0xe8, 0x0f, 0x6a, 0xc9, 0x54,
+ 0x2e, 0xb4, 0x09, 0xbc, 0x1c, 0x2c, 0xde, 0x50, 0xd3, 0x22}},
+ {{0x17, 0x75, 0x5a, 0x5c, 0x29, 0x5f, 0x3d, 0x2d, 0x72, 0xe6, 0xf0,
+ 0x31, 0xa1, 0xf0, 0x7f, 0x40, 0x0c, 0x58, 0x8b, 0x9e, 0x58, 0x2b,
+ 0x22, 0xf1, 0x7e, 0xae, 0x31, 0xa1, 0x59, 0x0d, 0x11, 0x85}},
+ {{0x19, 0x06, 0xc6, 0x12, 0x4d, 0xbb, 0x43, 0x85, 0x78, 0xd0, 0x0e,
+ 0x06, 0x6d, 0x50, 0x54, 0xc6, 0xc3, 0x7f, 0x0f, 0xa6, 0x02, 0x8c,
+ 0x05, 0x54, 0x5e, 0x09, 0x94, 0xed, 0xda, 0xec, 0x86, 0x29}},
+ {{0x19, 0x16, 0xf3, 0x50, 0x8e, 0xc3, 0xfa, 0xd7, 0x95, 0xf8, 0xdc,
+ 0x4b, 0xd3, 0x16, 0xf9, 0xc6, 0x08, 0x5a, 0x64, 0xde, 0x3c, 0x41,
+ 0x53, 0xac, 0x6d, 0x62, 0xd5, 0xea, 0x19, 0x51, 0x5d, 0x39}},
+ {{0x1d, 0x75, 0xd0, 0x83, 0x1b, 0x9e, 0x08, 0x85, 0x39, 0x4d, 0x32,
+ 0xc7, 0xa1, 0xbf, 0xdb, 0x3d, 0xbc, 0x1c, 0x28, 0xe2, 0xb0, 0xe8,
+ 0x39, 0x1f, 0xb1, 0x35, 0x98, 0x1d, 0xbc, 0x5b, 0xa9, 0x36}},
+ {{0x22, 0x07, 0x6e, 0x5a, 0xef, 0x44, 0xbb, 0x9a, 0x41, 0x6a, 0x28,
+ 0xb7, 0xd1, 0xc4, 0x43, 0x22, 0xd7, 0x05, 0x9f, 0x60, 0xfe, 0xff,
+ 0xa5, 0xca, 0xf6, 0xc5, 0xbe, 0x84, 0x47, 0x89, 0x13, 0x03}},
+ {{0x25, 0xb4, 0x1b, 0x50, 0x6e, 0x49, 0x30, 0x95, 0x28, 0x23, 0xa6,
+ 0xeb, 0x9f, 0x1d, 0x31, 0xde, 0xf6, 0x45, 0xea, 0x38, 0xa5, 0xc6,
+ 0xc6, 0xa9, 0x6d, 0x71, 0x95, 0x7e, 0x38, 0x4d, 0xf0, 0x58}},
+ {{0x26, 0xc1, 0x8d, 0xc6, 0xee, 0xa6, 0xf6, 0x32, 0xf6, 0x76, 0xbc,
+ 0xeb, 0xa1, 0xd8, 0xc2, 0xb4, 0x83, 0x52, 0xf2, 0x9c, 0x2d, 0x5f,
+ 0xcd, 0xa8, 0x78, 0xe0, 0x9d, 0xcb, 0x83, 0x2d, 0xd6, 0xe5}},
+ {{0x2d, 0xc9, 0x47, 0x0b, 0xe6, 0x3e, 0xf4, 0xac, 0xf1, 0xbd, 0x82,
+ 0x86, 0x09, 0x40, 0x2b, 0xb7, 0xb8, 0x7b, 0xd9, 0x96, 0x38, 0xa6,
+ 0x43, 0x93, 0x4e, 0x88, 0x68, 0x2d, 0x1b, 0xe8, 0xc3, 0x08}},
+ {{0x2d, 0xee, 0x51, 0x71, 0x59, 0x6a, 0xb8, 0xf3, 0xcd, 0x3c, 0x76,
+ 0x35, 0xfe, 0xa8, 0xe6, 0xc3, 0x00, 0x6a, 0xa9, 0xe3, 0x1d, 0xb3,
+ 0x9d, 0x03, 0xa7, 0x48, 0x0d, 0xdb, 0x24, 0x28, 0xa3, 0x3e}},
+ {{0x30, 0x27, 0xa2, 0x98, 0xfa, 0x57, 0x31, 0x4d, 0xc0, 0xe3, 0xdd,
+ 0x10, 0x19, 0x41, 0x1b, 0x8f, 0x40, 0x4c, 0x43, 0xc3, 0xf9, 0x34,
+ 0xce, 0x3b, 0xdf, 0x85, 0x65, 0x12, 0xc8, 0x0a, 0xa1, 0x5c}},
+ {{0x31, 0x51, 0x26, 0x80, 0x23, 0x3f, 0x5f, 0x2a, 0x1f, 0x29, 0x43,
+ 0x7f, 0x56, 0xd4, 0x98, 0x8c, 0xf0, 0xaf, 0xc4, 0x1c, 0xc6, 0xc5,
+ 0xda, 0x62, 0x75, 0x92, 0x8e, 0x9c, 0x0b, 0xea, 0xde, 0x27}},
+ {{0x43, 0xb3, 0x10, 0x7d, 0x73, 0x42, 0x16, 0x5d, 0x40, 0x6c, 0xf9,
+ 0x75, 0xcd, 0x79, 0xb3, 0x6e, 0xd1, 0x64, 0x50, 0x48, 0xf0, 0x5d,
+ 0x7f, 0xf6, 0xea, 0x00, 0x96, 0xe4, 0x27, 0xb7, 0xdb, 0x84}},
+ {{0x46, 0x3d, 0xbb, 0x9b, 0x0a, 0x26, 0xed, 0x26, 0x16, 0x39, 0x7b,
+ 0x64, 0x31, 0x25, 0xfb, 0xd2, 0x9b, 0x66, 0xcf, 0x3a, 0x46, 0xfd,
+ 0xb4, 0x38, 0x4b, 0x20, 0x9e, 0x78, 0x23, 0x7a, 0x1a, 0xff}},
+ {{0x47, 0x9d, 0x13, 0x0b, 0xf3, 0xfc, 0x61, 0xdc, 0x2f, 0x1d, 0x50,
+ 0x8d, 0x23, 0x9a, 0x13, 0x27, 0x6a, 0xe7, 0xb3, 0xc9, 0x84, 0x10,
+ 0x11, 0xa0, 0x2c, 0x14, 0x02, 0xc7, 0xe6, 0x77, 0xbd, 0x5f}},
+ {{0x49, 0x05, 0x46, 0x66, 0x23, 0xab, 0x41, 0x78, 0xbe, 0x92, 0xac,
+ 0x5c, 0xbd, 0x65, 0x84, 0xf7, 0xa1, 0xe1, 0x7f, 0x27, 0x65, 0x2d,
+ 0x5a, 0x85, 0xaf, 0x89, 0x50, 0x4e, 0xa2, 0x39, 0xaa, 0xaa}},
+ {{0x49, 0x5a, 0x96, 0xba, 0x6b, 0xad, 0x78, 0x24, 0x07, 0xbd, 0x52,
+ 0x1a, 0x00, 0xba, 0xce, 0x65, 0x7b, 0xb3, 0x55, 0x55, 0x5e, 0x4b,
+ 0xb7, 0xf8, 0x14, 0x6c, 0x71, 0xbb, 0xa5, 0x7e, 0x7a, 0xce}},
+ {{0x4b, 0xa6, 0x03, 0x1c, 0xa3, 0x05, 0xb0, 0x9e, 0x53, 0xbd, 0xe3,
+ 0x70, 0x51, 0x45, 0x48, 0x1d, 0x03, 0x32, 0xb6, 0x51, 0xfe, 0x30,
+ 0x37, 0x0d, 0xd5, 0x25, 0x4c, 0xc4, 0xd2, 0xcb, 0x32, 0xf3}},
+ {{0x51, 0x92, 0x43, 0x8e, 0xc3, 0x69, 0xd7, 0xee, 0x0c, 0xe7, 0x1f,
+ 0x5c, 0x6d, 0xb7, 0x5f, 0x94, 0x1e, 0xfb, 0xf7, 0x2e, 0x58, 0x44,
+ 0x17, 0x15, 0xe9, 0x9e, 0xab, 0x04, 0xc2, 0xc8, 0xac, 0xee}},
+ {{0x56, 0x7b, 0x82, 0x11, 0xfd, 0x20, 0xd3, 0xd2, 0x83, 0xee, 0x0c,
+ 0xd7, 0xce, 0x06, 0x72, 0xcb, 0x9d, 0x99, 0xbc, 0x5b, 0x48, 0x7a,
+ 0x58, 0xc9, 0xd5, 0x4e, 0xc6, 0x7f, 0x77, 0xd4, 0xa8, 0xf5}},
+ {{0x5c, 0x4f, 0x28, 0x53, 0x88, 0xf3, 0x83, 0x36, 0x26, 0x9a, 0x55,
+ 0xc7, 0xc1, 0x2c, 0x0b, 0x3c, 0xa7, 0x3f, 0xef, 0x2a, 0x5a, 0x4d,
+ 0xf8, 0x2b, 0x89, 0x14, 0x1e, 0x84, 0x1a, 0x6c, 0x4d, 0xe4}},
+ {{0x67, 0xdc, 0x4f, 0x32, 0xfa, 0x10, 0xe7, 0xd0, 0x1a, 0x79, 0xa0,
+ 0x73, 0xaa, 0x0c, 0x9e, 0x02, 0x12, 0xec, 0x2f, 0xfc, 0x3d, 0x77,
+ 0x9e, 0x0a, 0xa7, 0xf9, 0xc0, 0xf0, 0xe1, 0xc2, 0xc8, 0x93}},
+ {{0x6b, 0x86, 0xde, 0x96, 0xa6, 0x58, 0xa5, 0x68, 0x20, 0xa4, 0xf3,
+ 0x5d, 0x90, 0xdb, 0x6c, 0x3e, 0xfd, 0xd5, 0x74, 0xce, 0x94, 0xb9,
+ 0x09, 0xcb, 0x0d, 0x7f, 0xf1, 0x7c, 0x3c, 0x18, 0x9d, 0x83}},
+ {{0x70, 0x06, 0xa3, 0x83, 0x11, 0xe5, 0x8f, 0xb1, 0x93, 0x48, 0x42,
+ 0x33, 0x21, 0x82, 0x10, 0xc6, 0x61, 0x25, 0xa0, 0xe4, 0xa8, 0x26,
+ 0xae, 0xd5, 0x39, 0xac, 0x56, 0x1d, 0xfb, 0xfb, 0xd9, 0x03}},
+ {{0x78, 0x1f, 0x1c, 0x3a, 0x6a, 0x42, 0xe3, 0xe9, 0x15, 0x22, 0x2d,
+ 0xb4, 0x96, 0x77, 0x02, 0xa2, 0xe5, 0x77, 0xae, 0xb0, 0x17, 0x07,
+ 0x5f, 0xa3, 0xc1, 0x59, 0x85, 0x1f, 0xdd, 0xd0, 0x53, 0x5e}},
+ {{0x7c, 0xaa, 0x03, 0x46, 0x51, 0x24, 0x59, 0x0c, 0x60, 0x1e, 0x56,
+ 0x7e, 0x52, 0x14, 0x8e, 0x95, 0x2c, 0x0c, 0xff, 0xe8, 0x90, 0x00,
+ 0x53, 0x0f, 0xe0, 0xd9, 0x5b, 0x6d, 0x50, 0xea, 0xae, 0x41}},
+ {{0x80, 0x9f, 0x2b, 0xaa, 0xe3, 0x5a, 0xfb, 0x4f, 0x36, 0xbd, 0x64,
+ 0x76, 0xce, 0x75, 0xc2, 0x00, 0x10, 0x77, 0x90, 0x1b, 0x6a, 0xf5,
+ 0xc4, 0xda, 0xb8, 0x2e, 0x18, 0x8c, 0x6b, 0x95, 0xc1, 0xa1}},
+ {{0x81, 0xa9, 0x8f, 0xc7, 0x88, 0xc3, 0x5f, 0x55, 0x76, 0x45, 0xa9,
+ 0x52, 0x24, 0xe5, 0x0c, 0xd1, 0xda, 0xc8, 0xff, 0xb2, 0x09, 0xdc,
+ 0x1e, 0x56, 0x88, 0xaa, 0x29, 0x20, 0x5f, 0x13, 0x22, 0x18}},
+ {{0x86, 0x0a, 0x7f, 0x19, 0x21, 0x0d, 0x5e, 0xad, 0x05, 0x7a, 0x78,
+ 0x53, 0x2b, 0x80, 0x95, 0x14, 0x53, 0xcb, 0x29, 0x07, 0x31, 0x5f,
+ 0x3b, 0xa7, 0xaa, 0x47, 0xb6, 0x98, 0x97, 0xd7, 0x0f, 0x3f}},
+ {{0x87, 0xaf, 0x34, 0xd6, 0x6f, 0xb3, 0xf2, 0xfd, 0xf3, 0x6e, 0x09,
+ 0x11, 0x1e, 0x9a, 0xba, 0x2f, 0x6f, 0x44, 0xb2, 0x07, 0xf3, 0x86,
+ 0x3f, 0x3d, 0x0b, 0x54, 0xb2, 0x50, 0x23, 0x90, 0x9a, 0xa5}},
+ {{0x95, 0x73, 0x54, 0x73, 0xbd, 0x67, 0xa3, 0xb9, 0x5a, 0x8d, 0x5f,
+ 0x90, 0xc5, 0xa2, 0x1a, 0xce, 0x1e, 0x0d, 0x79, 0x47, 0x32, 0x06,
+ 0x74, 0xd4, 0xab, 0x84, 0x79, 0x72, 0xb9, 0x15, 0x44, 0xd2}},
+ {{0x96, 0x7b, 0x0c, 0xd9, 0x3f, 0xce, 0xf7, 0xf2, 0x7c, 0xe2, 0xc2,
+ 0x45, 0x76, 0x7a, 0xe9, 0xb0, 0x5a, 0x77, 0x6b, 0x06, 0x49, 0xf9,
+ 0x96, 0x5b, 0x62, 0x90, 0x96, 0x84, 0x69, 0x68, 0x68, 0x72}},
+ {{0x96, 0x99, 0x22, 0x5c, 0x5d, 0xe5, 0x2e, 0x56, 0xcd, 0xd3, 0x2d,
+ 0xf2, 0xe9, 0x6d, 0x1c, 0xfe, 0xa5, 0xaa, 0x3c, 0xa0, 0xbb, 0x52,
+ 0xcd, 0x89, 0x33, 0xc2, 0x3b, 0x5c, 0x27, 0x44, 0x38, 0x20}},
+ {{0x9c, 0x6f, 0x6a, 0x12, 0x3c, 0xba, 0xa4, 0xee, 0x34, 0xdb, 0xec,
+ 0xee, 0xe2, 0x4c, 0x97, 0xd7, 0x38, 0x87, 0x8c, 0xb4, 0x23, 0xf3,
+ 0xc2, 0x27, 0x39, 0x03, 0x42, 0x4f, 0x5d, 0x1f, 0x6d, 0xd5}},
+ {{0xa6, 0xf1, 0xf9, 0xbf, 0x8a, 0x0a, 0x9d, 0xdc, 0x08, 0x0f, 0xb4,
+ 0x9b, 0x1e, 0xfc, 0x3d, 0x1a, 0x1c, 0x2c, 0x32, 0xdc, 0x0e, 0x13,
+ 0x6a, 0x5b, 0x00, 0xc9, 0x73, 0x16, 0xf2, 0xa3, 0xdc, 0x11}},
+ {{0xab, 0x38, 0x76, 0xc3, 0xda, 0x5d, 0xe0, 0xc9, 0xcf, 0x67, 0x36,
+ 0x86, 0x8e, 0xe5, 0xb8, 0x8b, 0xf9, 0xba, 0x1d, 0xff, 0x9c, 0x9d,
+ 0x72, 0xd2, 0xfe, 0x5a, 0x8d, 0x2f, 0x78, 0x30, 0x21, 0x66}},
+ {{0xab, 0x39, 0xa4, 0xb0, 0x25, 0x95, 0x56, 0x91, 0xa4, 0x02, 0x69,
+ 0xf3, 0x53, 0xfa, 0x1d, 0x5c, 0xb9, 0x4e, 0xaf, 0x6c, 0x7e, 0xa9,
+ 0x80, 0x84, 0x84, 0xbb, 0xbb, 0x62, 0xfd, 0x9f, 0x68, 0xf3}},
+ {{0xab, 0x5c, 0xdb, 0x33, 0x56, 0x39, 0x73, 0x56, 0xd6, 0xe6, 0x91,
+ 0x97, 0x3c, 0x25, 0xb8, 0x61, 0x8b, 0x65, 0xd7, 0x6a, 0x90, 0x48,
+ 0x6e, 0xa7, 0xa8, 0xa5, 0xc1, 0x77, 0x67, 0xf4, 0x67, 0x3a}},
+ {{0xab, 0x98, 0x49, 0x52, 0x76, 0xad, 0xf1, 0xec, 0xaf, 0xf2, 0x8f,
+ 0x35, 0xc5, 0x30, 0x48, 0x78, 0x1e, 0x5c, 0x17, 0x18, 0xda, 0xb9,
+ 0xc8, 0xe6, 0x7a, 0x50, 0x4f, 0x4f, 0x6a, 0x51, 0x32, 0x8f}},
+ {{0xac, 0xf6, 0x5e, 0x1d, 0x62, 0xcb, 0x58, 0xa2, 0xba, 0xfd, 0x6f,
+ 0xfa, 0xb4, 0x0f, 0xb8, 0x86, 0x99, 0xc4, 0x73, 0x97, 0xcf, 0x5c,
+ 0xb4, 0x83, 0xd4, 0x2d, 0x69, 0xca, 0xd3, 0x4c, 0xd4, 0x8b}},
+ {{0xaf, 0x20, 0x7c, 0x61, 0xfd, 0x9c, 0x7c, 0xf9, 0x2c, 0x2a, 0xfe,
+ 0x81, 0x54, 0x28, 0x2d, 0xc3, 0xf2, 0xcb, 0xf3, 0x2f, 0x75, 0xcd,
+ 0x17, 0x28, 0x14, 0xc5, 0x2b, 0x03, 0xb7, 0xeb, 0xc2, 0x58}},
+ {{0xb1, 0x12, 0x41, 0x42, 0xa5, 0xa1, 0xa5, 0xa2, 0x88, 0x19, 0xc7,
+ 0x35, 0x34, 0x0e, 0xff, 0x8c, 0x9e, 0x2f, 0x81, 0x68, 0xfe, 0xe3,
+ 0xba, 0x18, 0x7f, 0x25, 0x3b, 0xc1, 0xa3, 0x92, 0xd7, 0xe2}},
+ {{0xb2, 0xde, 0xf5, 0x36, 0x2a, 0xd3, 0xfa, 0xcd, 0x04, 0xbd, 0x29,
+ 0x04, 0x7a, 0x43, 0x84, 0x4f, 0x76, 0x70, 0x34, 0xea, 0x48, 0x92,
+ 0xf8, 0x0e, 0x56, 0xbe, 0xe6, 0x90, 0x24, 0x3e, 0x25, 0x02}},
+ {{0xbc, 0xfb, 0x44, 0xaa, 0xb9, 0xad, 0x02, 0x10, 0x15, 0x70, 0x6b,
+ 0x41, 0x21, 0xea, 0x76, 0x1c, 0x81, 0xc9, 0xe8, 0x89, 0x67, 0x59,
+ 0x0f, 0x6f, 0x94, 0xae, 0x74, 0x4d, 0xc8, 0x8b, 0x78, 0xfb}},
+ {{0xc0, 0x71, 0x35, 0xf6, 0xb4, 0x52, 0x39, 0x82, 0x64, 0xa4, 0x77,
+ 0x6d, 0xbd, 0x0a, 0x6a, 0x30, 0x7c, 0x60, 0xa3, 0x6f, 0x96, 0x7b,
+ 0xd2, 0x63, 0x21, 0xdc, 0xb8, 0x17, 0xb5, 0xc0, 0xc4, 0x81}},
+ {{0xca, 0xb4, 0x82, 0xcd, 0x3e, 0x82, 0x0c, 0x5c, 0xe7, 0x2a, 0xa3,
+ 0xb6, 0xfd, 0xbe, 0x98, 0x8b, 0xb8, 0xa4, 0xf0, 0x40, 0x7e, 0xca,
+ 0xfd, 0x8c, 0x92, 0x6e, 0x36, 0x82, 0x4e, 0xab, 0x92, 0xdd}},
+ {{0xd2, 0xf9, 0x1a, 0x04, 0xe3, 0xa6, 0x1d, 0x4e, 0xad, 0x78, 0x48,
+ 0xc8, 0xd4, 0x3b, 0x5e, 0x11, 0x52, 0xd8, 0x85, 0x72, 0x74, 0x89,
+ 0xbc, 0x65, 0x73, 0x8b, 0x67, 0xc0, 0xa2, 0x27, 0x85, 0xa7}},
+ {{0xd3, 0xa2, 0x5d, 0xa8, 0x0d, 0xb7, 0xba, 0xb1, 0x29, 0xa0, 0x66,
+ 0xab, 0x41, 0x50, 0x3d, 0xdd, 0xff, 0xa0, 0x2c, 0x76, 0x8c, 0x05,
+ 0x89, 0xf9, 0x9f, 0xd7, 0x11, 0x93, 0xe6, 0x99, 0x16, 0xb6}},
+ {{0xd4, 0xaf, 0x6c, 0x0a, 0x48, 0x23, 0x10, 0xbd, 0x7c, 0x54, 0xbb,
+ 0x7a, 0xb1, 0x21, 0x91, 0x6f, 0x86, 0xc0, 0xc0, 0x7c, 0xd5, 0x2f,
+ 0xca, 0xc3, 0x2d, 0x38, 0x44, 0xc2, 0x60, 0x05, 0x11, 0x5f}},
+ {{0xda, 0x80, 0x0b, 0x80, 0xb2, 0xa8, 0x7d, 0x39, 0x9e, 0x66, 0xfa,
+ 0x19, 0xd7, 0x2f, 0xdf, 0x49, 0x98, 0x3b, 0x47, 0xd8, 0xcf, 0x32,
+ 0x2c, 0x7c, 0x79, 0x50, 0x3a, 0x0c, 0x7e, 0x28, 0xfe, 0xaf}},
+ {{0xf1, 0x5f, 0x1d, 0x32, 0x3e, 0xd9, 0xca, 0x98, 0xe9, 0xea, 0x95,
+ 0xb3, 0x3e, 0xc5, 0xdd, 0xa4, 0x7e, 0xa4, 0xc3, 0x29, 0xf9, 0x52,
+ 0xc1, 0x6f, 0x65, 0xad, 0x41, 0x9e, 0x64, 0x52, 0x04, 0x76}},
+ {{0xf2, 0xe9, 0x36, 0x5e, 0xa1, 0x21, 0xdf, 0x5e, 0xeb, 0xd8, 0xde,
+ 0x24, 0x68, 0xfd, 0xc1, 0x71, 0xdc, 0x0a, 0x9e, 0x46, 0xda, 0xdc,
+ 0x1a, 0xb4, 0x1d, 0x52, 0x79, 0x0b, 0xa9, 0x80, 0xa7, 0xc2}},
+ {{0xf5, 0x3c, 0x22, 0x05, 0x98, 0x17, 0xdd, 0x96, 0xf4, 0x00, 0x65,
+ 0x16, 0x39, 0xd2, 0xf8, 0x57, 0xe2, 0x10, 0x70, 0xa5, 0x9a, 0xbe,
+ 0xd9, 0x07, 0x94, 0x00, 0xd9, 0xf6, 0x95, 0x50, 0x69, 0x00}},
+ {{0xf6, 0xb5, 0x9c, 0x8e, 0x27, 0x89, 0xa1, 0xfd, 0x5d, 0x5b, 0x25,
+ 0x37, 0x42, 0xfe, 0xad, 0xc6, 0x92, 0x5c, 0xb9, 0x3e, 0xdc, 0x34,
+ 0x5e, 0x53, 0x16, 0x6e, 0x12, 0xc5, 0x2b, 0xa2, 0xa6, 0x01}},
+ {{0xff, 0x56, 0x80, 0xcd, 0x73, 0xa5, 0x70, 0x3d, 0xa0, 0x48, 0x17,
+ 0xa0, 0x75, 0xfd, 0x46, 0x25, 0x06, 0xa7, 0x35, 0x06, 0xc4, 0xb8,
+ 0x1a, 0x15, 0x83, 0xef, 0x54, 0x94, 0x78, 0xd2, 0x64, 0x76}},
+};
+
+const SHA256HashValue kSymantecExceptions[] = {
+ {{0x56, 0xe9, 0x8d, 0xea, 0xc0, 0x06, 0xa7, 0x29, 0xaf, 0xa2, 0xed,
+ 0x79, 0xf9, 0xe4, 0x19, 0xdf, 0x69, 0xf4, 0x51, 0x24, 0x25, 0x96,
+ 0xd2, 0xaa, 0xf2, 0x84, 0xc7, 0x4a, 0x85, 0x5e, 0x35, 0x2e}},
+ {{0x72, 0x89, 0xc0, 0x6d, 0xed, 0xd1, 0x6b, 0x71, 0xa7, 0xdc, 0xca,
+ 0x66, 0x57, 0x85, 0x72, 0xe2, 0xe1, 0x09, 0xb1, 0x1d, 0x70, 0xad,
+ 0x04, 0xc2, 0x60, 0x1b, 0x67, 0x43, 0xbc, 0x66, 0xd0, 0x7b}},
+ {{0xa5, 0x3d, 0xb6, 0x10, 0x6b, 0xb7, 0x60, 0x35, 0x4c, 0xed, 0x90,
+ 0x45, 0xfb, 0x06, 0xeb, 0x06, 0xaf, 0x85, 0xe6, 0xb1, 0x18, 0xc0,
+ 0x62, 0xed, 0x13, 0xc3, 0x05, 0x1d, 0xfe, 0xb8, 0xd4, 0x9c}},
+ {{0xb5, 0xcf, 0x82, 0xd4, 0x7e, 0xf9, 0x82, 0x3f, 0x9a, 0xa7, 0x8f,
+ 0x12, 0x31, 0x86, 0xc5, 0x2e, 0x88, 0x79, 0xea, 0x84, 0xb0, 0xf8,
+ 0x22, 0xc9, 0x1d, 0x83, 0xe0, 0x42, 0x79, 0xb7, 0x8f, 0xd5}},
+ {{0xc0, 0x55, 0x4b, 0xde, 0x87, 0xa0, 0x75, 0xec, 0x13, 0xa6, 0x1f,
+ 0x27, 0x59, 0x83, 0xae, 0x02, 0x39, 0x57, 0x29, 0x4b, 0x45, 0x4c,
+ 0xaf, 0x0a, 0x97, 0x24, 0xe3, 0xb2, 0x1b, 0x79, 0x35, 0xbc}},
+ {{0xe2, 0x4f, 0x8e, 0x8c, 0x21, 0x85, 0xda, 0x2f, 0x5e, 0x88, 0xd4,
+ 0x57, 0x9e, 0x81, 0x7c, 0x47, 0xbf, 0x6e, 0xaf, 0xbc, 0x85, 0x05,
+ 0xf0, 0xf9, 0x60, 0xfd, 0x5a, 0x0d, 0xf4, 0x47, 0x3a, 0xd3}},
+ {{0xec, 0x72, 0x29, 0x69, 0xcb, 0x64, 0x20, 0x0a, 0xb6, 0x63, 0x8f,
+ 0x68, 0xac, 0x53, 0x8e, 0x40, 0xab, 0xab, 0x5b, 0x19, 0xa6, 0x48,
+ 0x56, 0x61, 0x04, 0x2a, 0x10, 0x61, 0xc4, 0x61, 0x27, 0x76}},
+ {{0xfa, 0xe4, 0x60, 0x00, 0xd8, 0xf7, 0x04, 0x25, 0x58, 0x54, 0x1e,
+ 0x98, 0xac, 0xf3, 0x51, 0x27, 0x95, 0x89, 0xf8, 0x3b, 0x6d, 0x30,
+ 0x01, 0xc1, 0x84, 0x42, 0xe4, 0x40, 0x3d, 0x11, 0x18, 0x49}},
+};
+
+const CTRequiredPolicy kCTRequiredPolicies[] = {
+ {
+ kSymantecRoots, arraysize(kSymantecRoots),
+ // 1 June 2016, 00:00:00 GMT.
+ base::TimeDelta::FromSeconds(1464739200), kSymantecExceptions,
+ arraysize(kSymantecExceptions),
+ },
+};
--- /dev/null
+/* Copyright (c) 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.
+ */
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 1227750 (0x12bbe6)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
+ Validity
+ Not Before: May 21 04:00:00 2002 GMT
+ Not After : Aug 21 04:00:00 2018 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:da:cc:18:63:30:fd:f4:17:23:1a:56:7e:5b:df:
+ 3c:6c:38:e4:71:b7:78:91:d4:bc:a1:d8:4c:f8:a8:
+ 43:b6:03:e9:4d:21:07:08:88:da:58:2f:66:39:29:
+ bd:05:78:8b:9d:38:e8:05:b7:6a:7e:71:a4:e6:c4:
+ 60:a6:b0:ef:80:e4:89:28:0f:9e:25:d6:ed:83:f3:
+ ad:a6:91:c7:98:c9:42:18:35:14:9d:ad:98:46:92:
+ 2e:4f:ca:f1:87:43:c1:16:95:57:2d:50:ef:89:2d:
+ 80:7a:57:ad:f2:ee:5f:6b:d2:00:8d:b9:14:f8:14:
+ 15:35:d9:c0:46:a3:7b:72:c8:91:bf:c9:55:2b:cd:
+ d0:97:3e:9c:26:64:cc:df:ce:83:19:71:ca:4e:e6:
+ d4:d5:7b:a9:19:cd:55:de:c8:ec:d2:5e:38:53:e5:
+ 5c:4f:8c:2d:fe:50:23:36:fc:66:e6:cb:8e:a4:39:
+ 19:00:b7:95:02:39:91:0b:0e:fe:38:2e:d1:1d:05:
+ 9a:f6:4d:3e:6f:0f:07:1d:af:2c:1e:8f:60:39:e2:
+ fa:36:53:13:39:d4:5e:26:2b:db:3d:a8:14:bd:32:
+ eb:18:03:28:52:04:71:e5:ab:33:3d:e1:38:bb:07:
+ 36:84:62:9c:79:ea:16:30:f4:5f:c0:2b:e8:71:6b:
+ e4:f9
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:98:90:9F:D4
+
+ X509v3 Subject Key Identifier:
+ C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.geotrust.com/crls/secureca.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.geotrust.com/resources/repository
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 76:e1:12:6e:4e:4b:16:12:86:30:06:b2:81:08:cf:f0:08:c7:
+ c7:71:7e:66:ee:c2:ed:d4:3b:1f:ff:f0:f0:c8:4e:d6:43:38:
+ b0:b9:30:7d:18:d0:55:83:a2:6a:cb:36:11:9c:e8:48:66:a3:
+ 6d:7f:b8:13:d4:47:fe:8b:5a:5c:73:fc:ae:d9:1b:32:19:38:
+ ab:97:34:14:aa:96:d2:eb:a3:1c:14:08:49:b6:bb:e5:91:ef:
+ 83:36:eb:1d:56:6f:ca:da:bc:73:63:90:e4:7f:7b:3e:22:cb:
+ 3d:07:ed:5f:38:74:9c:e3:03:50:4e:a1:af:98:ee:61:f2:84:
+ 3f:12
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw
+WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE
+AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m
+OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu
+T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c
+JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR
+Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz
+PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm
+aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM
+TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g
+LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO
+BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv
+dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB
+AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL
+NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W
+b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert0[] = {
+ 0x30, 0x82, 0x03, 0x7d, 0x30, 0x82, 0x02, 0xe6, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x12, 0xbb, 0xe6, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x4e, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07, 0x45,
+ 0x71, 0x75, 0x69, 0x66, 0x61, 0x78, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03,
+ 0x55, 0x04, 0x0b, 0x13, 0x24, 0x45, 0x71, 0x75, 0x69, 0x66, 0x61, 0x78,
+ 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68,
+ 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x32, 0x30,
+ 0x35, 0x32, 0x31, 0x30, 0x34, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d,
+ 0x31, 0x38, 0x30, 0x38, 0x32, 0x31, 0x30, 0x34, 0x30, 0x30, 0x30, 0x30,
+ 0x5a, 0x30, 0x42, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x12, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01,
+ 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+ 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0xcc, 0x18, 0x63, 0x30, 0xfd,
+ 0xf4, 0x17, 0x23, 0x1a, 0x56, 0x7e, 0x5b, 0xdf, 0x3c, 0x6c, 0x38, 0xe4,
+ 0x71, 0xb7, 0x78, 0x91, 0xd4, 0xbc, 0xa1, 0xd8, 0x4c, 0xf8, 0xa8, 0x43,
+ 0xb6, 0x03, 0xe9, 0x4d, 0x21, 0x07, 0x08, 0x88, 0xda, 0x58, 0x2f, 0x66,
+ 0x39, 0x29, 0xbd, 0x05, 0x78, 0x8b, 0x9d, 0x38, 0xe8, 0x05, 0xb7, 0x6a,
+ 0x7e, 0x71, 0xa4, 0xe6, 0xc4, 0x60, 0xa6, 0xb0, 0xef, 0x80, 0xe4, 0x89,
+ 0x28, 0x0f, 0x9e, 0x25, 0xd6, 0xed, 0x83, 0xf3, 0xad, 0xa6, 0x91, 0xc7,
+ 0x98, 0xc9, 0x42, 0x18, 0x35, 0x14, 0x9d, 0xad, 0x98, 0x46, 0x92, 0x2e,
+ 0x4f, 0xca, 0xf1, 0x87, 0x43, 0xc1, 0x16, 0x95, 0x57, 0x2d, 0x50, 0xef,
+ 0x89, 0x2d, 0x80, 0x7a, 0x57, 0xad, 0xf2, 0xee, 0x5f, 0x6b, 0xd2, 0x00,
+ 0x8d, 0xb9, 0x14, 0xf8, 0x14, 0x15, 0x35, 0xd9, 0xc0, 0x46, 0xa3, 0x7b,
+ 0x72, 0xc8, 0x91, 0xbf, 0xc9, 0x55, 0x2b, 0xcd, 0xd0, 0x97, 0x3e, 0x9c,
+ 0x26, 0x64, 0xcc, 0xdf, 0xce, 0x83, 0x19, 0x71, 0xca, 0x4e, 0xe6, 0xd4,
+ 0xd5, 0x7b, 0xa9, 0x19, 0xcd, 0x55, 0xde, 0xc8, 0xec, 0xd2, 0x5e, 0x38,
+ 0x53, 0xe5, 0x5c, 0x4f, 0x8c, 0x2d, 0xfe, 0x50, 0x23, 0x36, 0xfc, 0x66,
+ 0xe6, 0xcb, 0x8e, 0xa4, 0x39, 0x19, 0x00, 0xb7, 0x95, 0x02, 0x39, 0x91,
+ 0x0b, 0x0e, 0xfe, 0x38, 0x2e, 0xd1, 0x1d, 0x05, 0x9a, 0xf6, 0x4d, 0x3e,
+ 0x6f, 0x0f, 0x07, 0x1d, 0xaf, 0x2c, 0x1e, 0x8f, 0x60, 0x39, 0xe2, 0xfa,
+ 0x36, 0x53, 0x13, 0x39, 0xd4, 0x5e, 0x26, 0x2b, 0xdb, 0x3d, 0xa8, 0x14,
+ 0xbd, 0x32, 0xeb, 0x18, 0x03, 0x28, 0x52, 0x04, 0x71, 0xe5, 0xab, 0x33,
+ 0x3d, 0xe1, 0x38, 0xbb, 0x07, 0x36, 0x84, 0x62, 0x9c, 0x79, 0xea, 0x16,
+ 0x30, 0xf4, 0x5f, 0xc0, 0x2b, 0xe8, 0x71, 0x6b, 0xe4, 0xf9, 0x02, 0x03,
+ 0x01, 0x00, 0x01, 0xa3, 0x81, 0xf0, 0x30, 0x81, 0xed, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x48, 0xe6,
+ 0x68, 0xf9, 0x2b, 0xd2, 0xb2, 0x95, 0xd7, 0x47, 0xd8, 0x23, 0x20, 0x10,
+ 0x4f, 0x33, 0x98, 0x90, 0x9f, 0xd4, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+ 0x0e, 0x04, 0x16, 0x04, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb,
+ 0xab, 0x05, 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc,
+ 0x4e, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
+ 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3a,
+ 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0,
+ 0x2d, 0xa0, 0x2b, 0x86, 0x29, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x63, 0x72, 0x6c, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x73, 0x65,
+ 0x63, 0x75, 0x72, 0x65, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x4e,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x47, 0x30, 0x45, 0x30, 0x43, 0x06,
+ 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74, 0x74,
+ 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f,
+ 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81,
+ 0x00, 0x76, 0xe1, 0x12, 0x6e, 0x4e, 0x4b, 0x16, 0x12, 0x86, 0x30, 0x06,
+ 0xb2, 0x81, 0x08, 0xcf, 0xf0, 0x08, 0xc7, 0xc7, 0x71, 0x7e, 0x66, 0xee,
+ 0xc2, 0xed, 0xd4, 0x3b, 0x1f, 0xff, 0xf0, 0xf0, 0xc8, 0x4e, 0xd6, 0x43,
+ 0x38, 0xb0, 0xb9, 0x30, 0x7d, 0x18, 0xd0, 0x55, 0x83, 0xa2, 0x6a, 0xcb,
+ 0x36, 0x11, 0x9c, 0xe8, 0x48, 0x66, 0xa3, 0x6d, 0x7f, 0xb8, 0x13, 0xd4,
+ 0x47, 0xfe, 0x8b, 0x5a, 0x5c, 0x73, 0xfc, 0xae, 0xd9, 0x1b, 0x32, 0x19,
+ 0x38, 0xab, 0x97, 0x34, 0x14, 0xaa, 0x96, 0xd2, 0xeb, 0xa3, 0x1c, 0x14,
+ 0x08, 0x49, 0xb6, 0xbb, 0xe5, 0x91, 0xef, 0x83, 0x36, 0xeb, 0x1d, 0x56,
+ 0x6f, 0xca, 0xda, 0xbc, 0x73, 0x63, 0x90, 0xe4, 0x7f, 0x7b, 0x3e, 0x22,
+ 0xcb, 0x3d, 0x07, 0xed, 0x5f, 0x38, 0x74, 0x9c, 0xe3, 0x03, 0x50, 0x4e,
+ 0xa1, 0xaf, 0x98, 0xee, 0x61, 0xf2, 0x84, 0x3f, 0x12,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 880226 (0xd6e62)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
+ Validity
+ Not Before: Nov 27 00:00:00 2006 GMT
+ Not After : Aug 21 16:15:00 2018 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Primary Certification Authority
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:be:b8:15:7b:ff:d4:7c:7d:67:ad:83:64:7b:c8:
+ 42:53:2d:df:f6:84:08:20:61:d6:01:59:6a:9c:44:
+ 11:af:ef:76:fd:95:7e:ce:61:30:bb:7a:83:5f:02:
+ bd:01:66:ca:ee:15:8d:6f:a1:30:9c:bd:a1:85:9e:
+ 94:3a:f3:56:88:00:31:cf:d8:ee:6a:96:02:d9:ed:
+ 03:8c:fb:75:6d:e7:ea:b8:55:16:05:16:9a:f4:e0:
+ 5e:b1:88:c0:64:85:5c:15:4d:88:c7:b7:ba:e0:75:
+ e9:ad:05:3d:9d:c7:89:48:e0:bb:28:c8:03:e1:30:
+ 93:64:5e:52:c0:59:70:22:35:57:88:8a:f1:95:0a:
+ 83:d7:bc:31:73:01:34:ed:ef:46:71:e0:6b:02:a8:
+ 35:72:6b:97:9b:66:e0:cb:1c:79:5f:d8:1a:04:68:
+ 1e:47:02:e6:9d:60:e2:36:97:01:df:ce:35:92:df:
+ be:67:c7:6d:77:59:3b:8f:9d:d6:90:15:94:bc:42:
+ 34:10:c1:39:f9:b1:27:3e:7e:d6:8a:75:c5:b2:af:
+ 96:d3:a2:de:9b:e4:98:be:7d:e1:e9:81:ad:b6:6f:
+ fc:d7:0e:da:e0:34:b0:0d:1a:77:e7:e3:08:98:ef:
+ 58:fa:9c:84:b7:36:af:c2:df:ac:d2:f4:10:06:70:
+ 71:35
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 2C:D5:50:41:97:15:8B:F0:8F:36:61:5B:4A:FB:6B:D9:99:C9:33:92
+ X509v3 Authority Key Identifier:
+ keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:98:90:9F:D4
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.geotrust.com/crls/secureca.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.geotrust.com/resources/cps
+
+ Signature Algorithm: sha1WithRSAEncryption
+ af:f3:0e:d6:72:ab:c7:a9:97:ca:2a:6b:84:39:de:79:a9:f0:
+ 81:e5:08:67:ab:d7:2f:20:02:01:71:0c:04:22:c9:1e:88:95:
+ 03:c9:49:3a:af:67:08:49:b0:d5:08:f5:20:3d:80:91:a0:c5:
+ 87:a3:fb:c9:a3:17:91:f9:a8:2f:ae:e9:0f:df:96:72:0f:75:
+ 17:80:5d:78:01:4d:9f:1f:6d:7b:d8:f5:42:38:23:1a:99:93:
+ f4:83:be:3b:35:74:e7:37:13:35:7a:ac:b4:b6:90:82:6c:27:
+ a4:e0:ec:9e:35:bd:bf:e5:29:a1:47:9f:5b:32:fc:e9:99:7d:
+ 2b:39
+-----BEGIN CERTIFICATE-----
+MIIDizCCAvSgAwIBAgIDDW5iMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMTI3MDAwMDAwWhcNMTgwODIxMTYxNTAw
+WjBYMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UE
+AxMoR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL64FXv/1Hx9Z62DZHvIQlMt3/aE
+CCBh1gFZapxEEa/vdv2Vfs5hMLt6g18CvQFmyu4VjW+hMJy9oYWelDrzVogAMc/Y
+7mqWAtntA4z7dW3n6rhVFgUWmvTgXrGIwGSFXBVNiMe3uuB16a0FPZ3HiUjguyjI
+A+Ewk2ReUsBZcCI1V4iK8ZUKg9e8MXMBNO3vRnHgawKoNXJrl5tm4MsceV/YGgRo
+HkcC5p1g4jaXAd/ONZLfvmfHbXdZO4+d1pAVlLxCNBDBOfmxJz5+1op1xbKvltOi
+3pvkmL594emBrbZv/NcO2uA0sA0ad+fjCJjvWPqchLc2r8LfrNL0EAZwcTUCAwEA
+AaOB6DCB5TAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFCzVUEGXFYvwjzZhW0r7
+a9mZyTOSMB8GA1UdIwQYMBaAFEjmaPkr0rKV10fYIyAQTzOYkJ/UMA8GA1UdEwEB
+/wQFMAMBAf8wOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5nZW90cnVzdC5j
+b20vY3Jscy9zZWN1cmVjYS5jcmwwRgYDVR0gBD8wPTA7BgRVHSAAMDMwMQYIKwYB
+BQUHAgEWJWh0dHA6Ly93d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwDQYJ
+KoZIhvcNAQEFBQADgYEAr/MO1nKrx6mXyiprhDneeanwgeUIZ6vXLyACAXEMBCLJ
+HoiVA8lJOq9nCEmw1Qj1ID2AkaDFh6P7yaMXkfmoL67pD9+Wcg91F4BdeAFNnx9t
+e9j1QjgjGpmT9IO+OzV05zcTNXqstLaQgmwnpODsnjW9v+UpoUefWzL86Zl9Kzk=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert1[] = {
+ 0x30, 0x82, 0x03, 0x8b, 0x30, 0x82, 0x02, 0xf4, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x0d, 0x6e, 0x62, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x4e, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07, 0x45,
+ 0x71, 0x75, 0x69, 0x66, 0x61, 0x78, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03,
+ 0x55, 0x04, 0x0b, 0x13, 0x24, 0x45, 0x71, 0x75, 0x69, 0x66, 0x61, 0x78,
+ 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68,
+ 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31,
+ 0x31, 0x32, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d,
+ 0x31, 0x38, 0x30, 0x38, 0x32, 0x31, 0x31, 0x36, 0x31, 0x35, 0x30, 0x30,
+ 0x5a, 0x30, 0x58, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x28, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x82, 0x01, 0x22, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+ 0x82, 0x01, 0x01, 0x00, 0xbe, 0xb8, 0x15, 0x7b, 0xff, 0xd4, 0x7c, 0x7d,
+ 0x67, 0xad, 0x83, 0x64, 0x7b, 0xc8, 0x42, 0x53, 0x2d, 0xdf, 0xf6, 0x84,
+ 0x08, 0x20, 0x61, 0xd6, 0x01, 0x59, 0x6a, 0x9c, 0x44, 0x11, 0xaf, 0xef,
+ 0x76, 0xfd, 0x95, 0x7e, 0xce, 0x61, 0x30, 0xbb, 0x7a, 0x83, 0x5f, 0x02,
+ 0xbd, 0x01, 0x66, 0xca, 0xee, 0x15, 0x8d, 0x6f, 0xa1, 0x30, 0x9c, 0xbd,
+ 0xa1, 0x85, 0x9e, 0x94, 0x3a, 0xf3, 0x56, 0x88, 0x00, 0x31, 0xcf, 0xd8,
+ 0xee, 0x6a, 0x96, 0x02, 0xd9, 0xed, 0x03, 0x8c, 0xfb, 0x75, 0x6d, 0xe7,
+ 0xea, 0xb8, 0x55, 0x16, 0x05, 0x16, 0x9a, 0xf4, 0xe0, 0x5e, 0xb1, 0x88,
+ 0xc0, 0x64, 0x85, 0x5c, 0x15, 0x4d, 0x88, 0xc7, 0xb7, 0xba, 0xe0, 0x75,
+ 0xe9, 0xad, 0x05, 0x3d, 0x9d, 0xc7, 0x89, 0x48, 0xe0, 0xbb, 0x28, 0xc8,
+ 0x03, 0xe1, 0x30, 0x93, 0x64, 0x5e, 0x52, 0xc0, 0x59, 0x70, 0x22, 0x35,
+ 0x57, 0x88, 0x8a, 0xf1, 0x95, 0x0a, 0x83, 0xd7, 0xbc, 0x31, 0x73, 0x01,
+ 0x34, 0xed, 0xef, 0x46, 0x71, 0xe0, 0x6b, 0x02, 0xa8, 0x35, 0x72, 0x6b,
+ 0x97, 0x9b, 0x66, 0xe0, 0xcb, 0x1c, 0x79, 0x5f, 0xd8, 0x1a, 0x04, 0x68,
+ 0x1e, 0x47, 0x02, 0xe6, 0x9d, 0x60, 0xe2, 0x36, 0x97, 0x01, 0xdf, 0xce,
+ 0x35, 0x92, 0xdf, 0xbe, 0x67, 0xc7, 0x6d, 0x77, 0x59, 0x3b, 0x8f, 0x9d,
+ 0xd6, 0x90, 0x15, 0x94, 0xbc, 0x42, 0x34, 0x10, 0xc1, 0x39, 0xf9, 0xb1,
+ 0x27, 0x3e, 0x7e, 0xd6, 0x8a, 0x75, 0xc5, 0xb2, 0xaf, 0x96, 0xd3, 0xa2,
+ 0xde, 0x9b, 0xe4, 0x98, 0xbe, 0x7d, 0xe1, 0xe9, 0x81, 0xad, 0xb6, 0x6f,
+ 0xfc, 0xd7, 0x0e, 0xda, 0xe0, 0x34, 0xb0, 0x0d, 0x1a, 0x77, 0xe7, 0xe3,
+ 0x08, 0x98, 0xef, 0x58, 0xfa, 0x9c, 0x84, 0xb7, 0x36, 0xaf, 0xc2, 0xdf,
+ 0xac, 0xd2, 0xf4, 0x10, 0x06, 0x70, 0x71, 0x35, 0x02, 0x03, 0x01, 0x00,
+ 0x01, 0xa3, 0x81, 0xe8, 0x30, 0x81, 0xe5, 0x30, 0x0e, 0x06, 0x03, 0x55,
+ 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2c, 0xd5,
+ 0x50, 0x41, 0x97, 0x15, 0x8b, 0xf0, 0x8f, 0x36, 0x61, 0x5b, 0x4a, 0xfb,
+ 0x6b, 0xd9, 0x99, 0xc9, 0x33, 0x92, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x48, 0xe6, 0x68, 0xf9, 0x2b,
+ 0xd2, 0xb2, 0x95, 0xd7, 0x47, 0xd8, 0x23, 0x20, 0x10, 0x4f, 0x33, 0x98,
+ 0x90, 0x9f, 0xd4, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x3a, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0, 0x2d, 0xa0,
+ 0x2b, 0x86, 0x29, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x6c, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x75,
+ 0x72, 0x65, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x46, 0x06, 0x03,
+ 0x55, 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d, 0x30, 0x3b, 0x06, 0x04, 0x55,
+ 0x1d, 0x20, 0x00, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+ 0x81, 0x81, 0x00, 0xaf, 0xf3, 0x0e, 0xd6, 0x72, 0xab, 0xc7, 0xa9, 0x97,
+ 0xca, 0x2a, 0x6b, 0x84, 0x39, 0xde, 0x79, 0xa9, 0xf0, 0x81, 0xe5, 0x08,
+ 0x67, 0xab, 0xd7, 0x2f, 0x20, 0x02, 0x01, 0x71, 0x0c, 0x04, 0x22, 0xc9,
+ 0x1e, 0x88, 0x95, 0x03, 0xc9, 0x49, 0x3a, 0xaf, 0x67, 0x08, 0x49, 0xb0,
+ 0xd5, 0x08, 0xf5, 0x20, 0x3d, 0x80, 0x91, 0xa0, 0xc5, 0x87, 0xa3, 0xfb,
+ 0xc9, 0xa3, 0x17, 0x91, 0xf9, 0xa8, 0x2f, 0xae, 0xe9, 0x0f, 0xdf, 0x96,
+ 0x72, 0x0f, 0x75, 0x17, 0x80, 0x5d, 0x78, 0x01, 0x4d, 0x9f, 0x1f, 0x6d,
+ 0x7b, 0xd8, 0xf5, 0x42, 0x38, 0x23, 0x1a, 0x99, 0x93, 0xf4, 0x83, 0xbe,
+ 0x3b, 0x35, 0x74, 0xe7, 0x37, 0x13, 0x35, 0x7a, 0xac, 0xb4, 0xb6, 0x90,
+ 0x82, 0x6c, 0x27, 0xa4, 0xe0, 0xec, 0x9e, 0x35, 0xbd, 0xbf, 0xe5, 0x29,
+ 0xa1, 0x47, 0x9f, 0x5b, 0x32, 0xfc, 0xe9, 0x99, 0x7d, 0x2b, 0x39,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 145105 (0x236d1)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Feb 19 22:45:05 2010 GMT
+ Not After : Feb 18 22:45:05 2020 GMT
+ Subject: C=US, O=GeoTrust, Inc., CN=RapidSSL CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:c7:71:f8:56:c7:1e:d9:cc:b5:ad:f6:b4:97:a3:
+ fb:a1:e6:0b:50:5f:50:aa:3a:da:0f:fc:3d:29:24:
+ 43:c6:10:29:c1:fc:55:40:72:ee:bd:ea:df:9f:b6:
+ 41:f4:48:4b:c8:6e:fe:4f:57:12:8b:5b:fa:92:dd:
+ 5e:e8:ad:f3:f0:1b:b1:7b:4d:fb:cf:fd:d1:e5:f8:
+ e3:dc:e7:f5:73:7f:df:01:49:cf:8c:56:c1:bd:37:
+ e3:5b:be:b5:4f:8b:8b:f0:da:4f:c7:e3:dd:55:47:
+ 69:df:f2:5b:7b:07:4f:3d:e5:ac:21:c1:c8:1d:7a:
+ e8:e7:f6:0f:a1:aa:f5:6f:de:a8:65:4f:10:89:9c:
+ 03:f3:89:7a:a5:5e:01:72:33:ed:a9:e9:5a:1e:79:
+ f3:87:c8:df:c8:c5:fc:37:c8:9a:9a:d7:b8:76:cc:
+ b0:3e:e7:fd:e6:54:ea:df:5f:52:41:78:59:57:ad:
+ f1:12:d6:7f:bc:d5:9f:70:d3:05:6c:fa:a3:7d:67:
+ 58:dd:26:62:1d:31:92:0c:79:79:1c:8e:cf:ca:7b:
+ c1:66:af:a8:74:48:fb:8e:82:c2:9e:2c:99:5c:7b:
+ 2d:5d:9b:bc:5b:57:9e:7c:3a:7a:13:ad:f2:a3:18:
+ 5b:2b:59:0f:cd:5c:3a:eb:68:33:c6:28:1d:82:d1:
+ 50:8b
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 6B:69:3D:6A:18:42:4A:DD:8F:02:65:39:FD:35:24:86:78:91:16:30
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.geotrust.com/crls/gtglobal.crl
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.geotrust.com
+
+ Signature Algorithm: sha1WithRSAEncryption
+ ab:bc:bc:0a:5d:18:94:e3:c1:b1:c3:a8:4c:55:d6:be:b4:98:
+ f1:ee:3c:1c:cd:cf:f3:24:24:5c:96:03:27:58:fc:36:ae:a2:
+ 2f:8f:f1:fe:da:2b:02:c3:33:bd:c8:dd:48:22:2b:60:0f:a5:
+ 03:10:fd:77:f8:d0:ed:96:67:4f:fd:ea:47:20:70:54:dc:a9:
+ 0c:55:7e:e1:96:25:8a:d9:b5:da:57:4a:be:8d:8e:49:43:63:
+ a5:6c:4e:27:87:25:eb:5b:6d:fe:a2:7f:38:28:e0:36:ab:ad:
+ 39:a5:a5:62:c4:b7:5c:58:2c:aa:5d:01:60:a6:62:67:a3:c0:
+ c7:62:23:f4:e7:6c:46:ee:b5:d3:80:6a:22:13:d2:2d:3f:74:
+ 4f:ea:af:8c:5f:b4:38:9c:db:ae:ce:af:84:1e:a6:f6:34:51:
+ 59:79:d3:e3:75:dc:bc:d7:f3:73:df:92:ec:d2:20:59:6f:9c:
+ fb:95:f8:92:76:18:0a:7c:0f:2c:a6:ca:de:8a:62:7b:d8:f3:
+ ce:5f:68:bd:8f:3e:c1:74:bb:15:72:3a:16:83:a9:0b:e6:4d:
+ 99:9c:d8:57:ec:a8:01:51:c7:6f:57:34:5e:ab:4a:2c:42:f6:
+ 4f:1c:89:78:de:26:4e:f5:6f:93:4c:15:6b:27:56:4d:00:54:
+ 6c:7a:b7:b7
+-----BEGIN CERTIFICATE-----
+MIID1TCCAr2gAwIBAgIDAjbRMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTAwMjE5MjI0NTA1WhcNMjAwMjE4MjI0NTA1WjA8MQswCQYDVQQG
+EwJVUzEXMBUGA1UEChMOR2VvVHJ1c3QsIEluYy4xFDASBgNVBAMTC1JhcGlkU1NM
+IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3H4Vsce2cy1rfa0
+l6P7oeYLUF9QqjraD/w9KSRDxhApwfxVQHLuverfn7ZB9EhLyG7+T1cSi1v6kt1e
+6K3z8Buxe037z/3R5fjj3Of1c3/fAUnPjFbBvTfjW761T4uL8NpPx+PdVUdp3/Jb
+ewdPPeWsIcHIHXro5/YPoar1b96oZU8QiZwD84l6pV4BcjPtqelaHnnzh8jfyMX8
+N8iamte4dsywPuf95lTq319SQXhZV63xEtZ/vNWfcNMFbPqjfWdY3SZiHTGSDHl5
+HI7PynvBZq+odEj7joLCniyZXHstXZu8W1eefDp6E63yoxhbK1kPzVw662gzxigd
+gtFQiwIDAQABo4HZMIHWMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUa2k9ahhC
+St2PAmU5/TUkhniRFjAwHwYDVR0jBBgwFoAUwHqYaI2J+6sFZAwRfap9ZbjKzE4w
+EgYDVR0TAQH/BAgwBgEB/wIBADA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3Js
+Lmdlb3RydXN0LmNvbS9jcmxzL2d0Z2xvYmFsLmNybDA0BggrBgEFBQcBAQQoMCYw
+JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmdlb3RydXN0LmNvbTANBgkqhkiG9w0B
+AQUFAAOCAQEAq7y8Cl0YlOPBscOoTFXWvrSY8e48HM3P8yQkXJYDJ1j8Nq6iL4/x
+/torAsMzvcjdSCIrYA+lAxD9d/jQ7ZZnT/3qRyBwVNypDFV+4ZYlitm12ldKvo2O
+SUNjpWxOJ4cl61tt/qJ/OCjgNqutOaWlYsS3XFgsql0BYKZiZ6PAx2Ij9OdsRu61
+04BqIhPSLT90T+qvjF+0OJzbrs6vhB6m9jRRWXnT43XcvNfzc9+S7NIgWW+c+5X4
+knYYCnwPLKbK3opie9jzzl9ovY8+wXS7FXI6FoOpC+ZNmZzYV+yoAVHHb1c0XqtK
+LEL2TxyJeN4mTvVvk0wVaydWTQBUbHq3tw==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert2[] = {
+ 0x30, 0x82, 0x03, 0xd5, 0x30, 0x82, 0x02, 0xbd, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x36, 0xd1, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30,
+ 0x32, 0x31, 0x39, 0x32, 0x32, 0x34, 0x35, 0x30, 0x35, 0x5a, 0x17, 0x0d,
+ 0x32, 0x30, 0x30, 0x32, 0x31, 0x38, 0x32, 0x32, 0x34, 0x35, 0x30, 0x35,
+ 0x5a, 0x30, 0x3c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0e, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x2c,
+ 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x0b, 0x52, 0x61, 0x70, 0x69, 0x64, 0x53, 0x53, 0x4c,
+ 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xc7, 0x71, 0xf8, 0x56, 0xc7, 0x1e, 0xd9, 0xcc, 0xb5, 0xad, 0xf6, 0xb4,
+ 0x97, 0xa3, 0xfb, 0xa1, 0xe6, 0x0b, 0x50, 0x5f, 0x50, 0xaa, 0x3a, 0xda,
+ 0x0f, 0xfc, 0x3d, 0x29, 0x24, 0x43, 0xc6, 0x10, 0x29, 0xc1, 0xfc, 0x55,
+ 0x40, 0x72, 0xee, 0xbd, 0xea, 0xdf, 0x9f, 0xb6, 0x41, 0xf4, 0x48, 0x4b,
+ 0xc8, 0x6e, 0xfe, 0x4f, 0x57, 0x12, 0x8b, 0x5b, 0xfa, 0x92, 0xdd, 0x5e,
+ 0xe8, 0xad, 0xf3, 0xf0, 0x1b, 0xb1, 0x7b, 0x4d, 0xfb, 0xcf, 0xfd, 0xd1,
+ 0xe5, 0xf8, 0xe3, 0xdc, 0xe7, 0xf5, 0x73, 0x7f, 0xdf, 0x01, 0x49, 0xcf,
+ 0x8c, 0x56, 0xc1, 0xbd, 0x37, 0xe3, 0x5b, 0xbe, 0xb5, 0x4f, 0x8b, 0x8b,
+ 0xf0, 0xda, 0x4f, 0xc7, 0xe3, 0xdd, 0x55, 0x47, 0x69, 0xdf, 0xf2, 0x5b,
+ 0x7b, 0x07, 0x4f, 0x3d, 0xe5, 0xac, 0x21, 0xc1, 0xc8, 0x1d, 0x7a, 0xe8,
+ 0xe7, 0xf6, 0x0f, 0xa1, 0xaa, 0xf5, 0x6f, 0xde, 0xa8, 0x65, 0x4f, 0x10,
+ 0x89, 0x9c, 0x03, 0xf3, 0x89, 0x7a, 0xa5, 0x5e, 0x01, 0x72, 0x33, 0xed,
+ 0xa9, 0xe9, 0x5a, 0x1e, 0x79, 0xf3, 0x87, 0xc8, 0xdf, 0xc8, 0xc5, 0xfc,
+ 0x37, 0xc8, 0x9a, 0x9a, 0xd7, 0xb8, 0x76, 0xcc, 0xb0, 0x3e, 0xe7, 0xfd,
+ 0xe6, 0x54, 0xea, 0xdf, 0x5f, 0x52, 0x41, 0x78, 0x59, 0x57, 0xad, 0xf1,
+ 0x12, 0xd6, 0x7f, 0xbc, 0xd5, 0x9f, 0x70, 0xd3, 0x05, 0x6c, 0xfa, 0xa3,
+ 0x7d, 0x67, 0x58, 0xdd, 0x26, 0x62, 0x1d, 0x31, 0x92, 0x0c, 0x79, 0x79,
+ 0x1c, 0x8e, 0xcf, 0xca, 0x7b, 0xc1, 0x66, 0xaf, 0xa8, 0x74, 0x48, 0xfb,
+ 0x8e, 0x82, 0xc2, 0x9e, 0x2c, 0x99, 0x5c, 0x7b, 0x2d, 0x5d, 0x9b, 0xbc,
+ 0x5b, 0x57, 0x9e, 0x7c, 0x3a, 0x7a, 0x13, 0xad, 0xf2, 0xa3, 0x18, 0x5b,
+ 0x2b, 0x59, 0x0f, 0xcd, 0x5c, 0x3a, 0xeb, 0x68, 0x33, 0xc6, 0x28, 0x1d,
+ 0x82, 0xd1, 0x50, 0x8b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xd9,
+ 0x30, 0x81, 0xd6, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x6b, 0x69, 0x3d, 0x6a, 0x18, 0x42,
+ 0x4a, 0xdd, 0x8f, 0x02, 0x65, 0x39, 0xfd, 0x35, 0x24, 0x86, 0x78, 0x91,
+ 0x16, 0x30, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05,
+ 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30,
+ 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30,
+ 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x3a, 0x06, 0x03, 0x55,
+ 0x1d, 0x1f, 0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0, 0x2d, 0xa0, 0x2b,
+ 0x86, 0x29, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c,
+ 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f,
+ 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x34, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30,
+ 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86,
+ 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70,
+ 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xab, 0xbc, 0xbc,
+ 0x0a, 0x5d, 0x18, 0x94, 0xe3, 0xc1, 0xb1, 0xc3, 0xa8, 0x4c, 0x55, 0xd6,
+ 0xbe, 0xb4, 0x98, 0xf1, 0xee, 0x3c, 0x1c, 0xcd, 0xcf, 0xf3, 0x24, 0x24,
+ 0x5c, 0x96, 0x03, 0x27, 0x58, 0xfc, 0x36, 0xae, 0xa2, 0x2f, 0x8f, 0xf1,
+ 0xfe, 0xda, 0x2b, 0x02, 0xc3, 0x33, 0xbd, 0xc8, 0xdd, 0x48, 0x22, 0x2b,
+ 0x60, 0x0f, 0xa5, 0x03, 0x10, 0xfd, 0x77, 0xf8, 0xd0, 0xed, 0x96, 0x67,
+ 0x4f, 0xfd, 0xea, 0x47, 0x20, 0x70, 0x54, 0xdc, 0xa9, 0x0c, 0x55, 0x7e,
+ 0xe1, 0x96, 0x25, 0x8a, 0xd9, 0xb5, 0xda, 0x57, 0x4a, 0xbe, 0x8d, 0x8e,
+ 0x49, 0x43, 0x63, 0xa5, 0x6c, 0x4e, 0x27, 0x87, 0x25, 0xeb, 0x5b, 0x6d,
+ 0xfe, 0xa2, 0x7f, 0x38, 0x28, 0xe0, 0x36, 0xab, 0xad, 0x39, 0xa5, 0xa5,
+ 0x62, 0xc4, 0xb7, 0x5c, 0x58, 0x2c, 0xaa, 0x5d, 0x01, 0x60, 0xa6, 0x62,
+ 0x67, 0xa3, 0xc0, 0xc7, 0x62, 0x23, 0xf4, 0xe7, 0x6c, 0x46, 0xee, 0xb5,
+ 0xd3, 0x80, 0x6a, 0x22, 0x13, 0xd2, 0x2d, 0x3f, 0x74, 0x4f, 0xea, 0xaf,
+ 0x8c, 0x5f, 0xb4, 0x38, 0x9c, 0xdb, 0xae, 0xce, 0xaf, 0x84, 0x1e, 0xa6,
+ 0xf6, 0x34, 0x51, 0x59, 0x79, 0xd3, 0xe3, 0x75, 0xdc, 0xbc, 0xd7, 0xf3,
+ 0x73, 0xdf, 0x92, 0xec, 0xd2, 0x20, 0x59, 0x6f, 0x9c, 0xfb, 0x95, 0xf8,
+ 0x92, 0x76, 0x18, 0x0a, 0x7c, 0x0f, 0x2c, 0xa6, 0xca, 0xde, 0x8a, 0x62,
+ 0x7b, 0xd8, 0xf3, 0xce, 0x5f, 0x68, 0xbd, 0x8f, 0x3e, 0xc1, 0x74, 0xbb,
+ 0x15, 0x72, 0x3a, 0x16, 0x83, 0xa9, 0x0b, 0xe6, 0x4d, 0x99, 0x9c, 0xd8,
+ 0x57, 0xec, 0xa8, 0x01, 0x51, 0xc7, 0x6f, 0x57, 0x34, 0x5e, 0xab, 0x4a,
+ 0x2c, 0x42, 0xf6, 0x4f, 0x1c, 0x89, 0x78, 0xde, 0x26, 0x4e, 0xf5, 0x6f,
+ 0x93, 0x4c, 0x15, 0x6b, 0x27, 0x56, 0x4d, 0x00, 0x54, 0x6c, 0x7a, 0xb7,
+ 0xb7,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146051 (0x23a83)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Apr 5 15:15:56 2013 GMT
+ Not After : Dec 31 23:59:59 2016 GMT
+ Subject: C=US, O=Google Inc, CN=Google Internet Authority G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:9c:2a:04:77:5c:d8:50:91:3a:06:a3:82:e0:d8:
+ 50:48:bc:89:3f:f1:19:70:1a:88:46:7e:e0:8f:c5:
+ f1:89:ce:21:ee:5a:fe:61:0d:b7:32:44:89:a0:74:
+ 0b:53:4f:55:a4:ce:82:62:95:ee:eb:59:5f:c6:e1:
+ 05:80:12:c4:5e:94:3f:bc:5b:48:38:f4:53:f7:24:
+ e6:fb:91:e9:15:c4:cf:f4:53:0d:f4:4a:fc:9f:54:
+ de:7d:be:a0:6b:6f:87:c0:d0:50:1f:28:30:03:40:
+ da:08:73:51:6c:7f:ff:3a:3c:a7:37:06:8e:bd:4b:
+ 11:04:eb:7d:24:de:e6:f9:fc:31:71:fb:94:d5:60:
+ f3:2e:4a:af:42:d2:cb:ea:c4:6a:1a:b2:cc:53:dd:
+ 15:4b:8b:1f:c8:19:61:1f:cd:9d:a8:3e:63:2b:84:
+ 35:69:65:84:c8:19:c5:46:22:f8:53:95:be:e3:80:
+ 4a:10:c6:2a:ec:ba:97:20:11:c7:39:99:10:04:a0:
+ f0:61:7a:95:25:8c:4e:52:75:e2:b6:ed:08:ca:14:
+ fc:ce:22:6a:b3:4e:cf:46:03:97:97:03:7e:c0:b1:
+ de:7b:af:45:33:cf:ba:3e:71:b7:de:f4:25:25:c2:
+ 0d:35:89:9d:9d:fb:0e:11:79:89:1e:37:c5:af:8e:
+ 72:69
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ 4A:DD:06:16:1B:BC:F6:68:B5:76:F5:81:B6:BB:62:1A:BA:5A:81:2F
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://g.symcd.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g.symcb.com/crls/gtglobal.crl
+
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.11129.2.5.1
+
+ Signature Algorithm: sha256WithRSAEncryption
+ aa:fa:a9:20:cd:6a:67:83:ed:5e:d4:7e:de:1d:c4:7f:e0:25:
+ 06:00:c5:24:fb:a9:c8:2d:6d:7e:de:9d:82:65:2c:81:63:34:
+ 66:3e:e9:52:c2:08:b4:cb:2f:f7:5f:99:3a:6a:9c:50:7a:85:
+ 05:8c:7d:d1:2a:48:84:d3:09:6c:7c:c2:cd:35:9f:f3:82:ee:
+ 52:de:68:5f:e4:00:8a:17:20:96:f7:29:8d:9a:4d:cb:a8:de:
+ 86:c8:0d:6f:56:87:03:7d:03:3f:dc:fa:79:7d:21:19:f9:c8:
+ 3a:2f:51:76:8c:c7:41:92:71:8f:25:ce:37:f8:4a:4c:00:23:
+ ef:c4:35:10:ae:e0:23:80:73:7c:4d:34:2e:c8:6e:90:d6:10:
+ 1e:99:84:73:1a:70:f2:ed:55:0e:ee:17:06:ea:67:ee:32:eb:
+ 2c:dd:67:07:3f:f6:8b:c2:70:de:5b:00:e6:bb:1b:d3:36:1a:
+ 22:6c:6c:b0:35:42:6c:90:09:3d:93:e9:64:09:22:0e:85:06:
+ 9f:c2:73:21:d3:e6:5f:80:e4:8d:85:22:3a:73:03:b1:60:8e:
+ ae:68:e2:f4:3e:97:e7:60:12:09:68:36:de:3a:d6:e2:43:95:
+ 5b:37:81:92:81:1f:bb:8d:d7:ad:52:64:16:57:96:d9:5e:34:
+ 7e:c8:35:d8
+-----BEGIN CERTIFICATE-----
+MIID8DCCAtigAwIBAgIDAjqDMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTMwNDA1MTUxNTU2WhcNMTYxMjMxMjM1OTU5WjBJMQswCQYDVQQG
+EwJVUzETMBEGA1UEChMKR29vZ2xlIEluYzElMCMGA1UEAxMcR29vZ2xlIEludGVy
+bmV0IEF1dGhvcml0eSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AJwqBHdc2FCROgajguDYUEi8iT/xGXAaiEZ+4I/F8YnOIe5a/mENtzJEiaB0C1NP
+VaTOgmKV7utZX8bhBYASxF6UP7xbSDj0U/ck5vuR6RXEz/RTDfRK/J9U3n2+oGtv
+h8DQUB8oMANA2ghzUWx//zo8pzcGjr1LEQTrfSTe5vn8MXH7lNVg8y5Kr0LSy+rE
+ahqyzFPdFUuLH8gZYR/Nnag+YyuENWllhMgZxUYi+FOVvuOAShDGKuy6lyARxzmZ
+EASg8GF6lSWMTlJ14rbtCMoU/M4iarNOz0YDl5cDfsCx3nuvRTPPuj5xt970JSXC
+DTWJnZ37DhF5iR43xa+OcmkCAwEAAaOB5zCB5DAfBgNVHSMEGDAWgBTAephojYn7
+qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUSt0GFhu89mi1dvWBtrtiGrpagS8wDgYD
+VR0PAQH/BAQDAgEGMC4GCCsGAQUFBwEBBCIwIDAeBggrBgEFBQcwAYYSaHR0cDov
+L2cuc3ltY2QuY29tMBIGA1UdEwEB/wQIMAYBAf8CAQAwNQYDVR0fBC4wLDAqoCig
+JoYkaHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMBcGA1UdIAQQ
+MA4wDAYKKwYBBAHWeQIFATANBgkqhkiG9w0BAQsFAAOCAQEAqvqpIM1qZ4PtXtR+
+3h3Ef+AlBgDFJPupyC1tft6dgmUsgWM0Zj7pUsIItMsv91+ZOmqcUHqFBYx90SpI
+hNMJbHzCzTWf84LuUt5oX+QAihcglvcpjZpNy6jehsgNb1aHA30DP9z6eX0hGfnI
+Oi9RdozHQZJxjyXON/hKTAAj78Q1EK7gI4BzfE00LshukNYQHpmEcxpw8u1VDu4X
+Bupn7jLrLN1nBz/2i8Jw3lsA5rsb0zYaImxssDVCbJAJPZPpZAkiDoUGn8JzIdPm
+X4DkjYUiOnMDsWCOrmji9D6X52ASCWg23jrW4kOVWzeBkoEfu43XrVJkFleW2V40
+fsg12A==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert3[] = {
+ 0x30, 0x82, 0x03, 0xf0, 0x30, 0x82, 0x02, 0xd8, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x83, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x30,
+ 0x34, 0x30, 0x35, 0x31, 0x35, 0x31, 0x35, 0x35, 0x36, 0x5a, 0x17, 0x0d,
+ 0x31, 0x36, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39,
+ 0x5a, 0x30, 0x49, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x20, 0x49, 0x6e,
+ 0x63, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1c,
+ 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72,
+ 0x6e, 0x65, 0x74, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
+ 0x79, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+ 0x00, 0x9c, 0x2a, 0x04, 0x77, 0x5c, 0xd8, 0x50, 0x91, 0x3a, 0x06, 0xa3,
+ 0x82, 0xe0, 0xd8, 0x50, 0x48, 0xbc, 0x89, 0x3f, 0xf1, 0x19, 0x70, 0x1a,
+ 0x88, 0x46, 0x7e, 0xe0, 0x8f, 0xc5, 0xf1, 0x89, 0xce, 0x21, 0xee, 0x5a,
+ 0xfe, 0x61, 0x0d, 0xb7, 0x32, 0x44, 0x89, 0xa0, 0x74, 0x0b, 0x53, 0x4f,
+ 0x55, 0xa4, 0xce, 0x82, 0x62, 0x95, 0xee, 0xeb, 0x59, 0x5f, 0xc6, 0xe1,
+ 0x05, 0x80, 0x12, 0xc4, 0x5e, 0x94, 0x3f, 0xbc, 0x5b, 0x48, 0x38, 0xf4,
+ 0x53, 0xf7, 0x24, 0xe6, 0xfb, 0x91, 0xe9, 0x15, 0xc4, 0xcf, 0xf4, 0x53,
+ 0x0d, 0xf4, 0x4a, 0xfc, 0x9f, 0x54, 0xde, 0x7d, 0xbe, 0xa0, 0x6b, 0x6f,
+ 0x87, 0xc0, 0xd0, 0x50, 0x1f, 0x28, 0x30, 0x03, 0x40, 0xda, 0x08, 0x73,
+ 0x51, 0x6c, 0x7f, 0xff, 0x3a, 0x3c, 0xa7, 0x37, 0x06, 0x8e, 0xbd, 0x4b,
+ 0x11, 0x04, 0xeb, 0x7d, 0x24, 0xde, 0xe6, 0xf9, 0xfc, 0x31, 0x71, 0xfb,
+ 0x94, 0xd5, 0x60, 0xf3, 0x2e, 0x4a, 0xaf, 0x42, 0xd2, 0xcb, 0xea, 0xc4,
+ 0x6a, 0x1a, 0xb2, 0xcc, 0x53, 0xdd, 0x15, 0x4b, 0x8b, 0x1f, 0xc8, 0x19,
+ 0x61, 0x1f, 0xcd, 0x9d, 0xa8, 0x3e, 0x63, 0x2b, 0x84, 0x35, 0x69, 0x65,
+ 0x84, 0xc8, 0x19, 0xc5, 0x46, 0x22, 0xf8, 0x53, 0x95, 0xbe, 0xe3, 0x80,
+ 0x4a, 0x10, 0xc6, 0x2a, 0xec, 0xba, 0x97, 0x20, 0x11, 0xc7, 0x39, 0x99,
+ 0x10, 0x04, 0xa0, 0xf0, 0x61, 0x7a, 0x95, 0x25, 0x8c, 0x4e, 0x52, 0x75,
+ 0xe2, 0xb6, 0xed, 0x08, 0xca, 0x14, 0xfc, 0xce, 0x22, 0x6a, 0xb3, 0x4e,
+ 0xcf, 0x46, 0x03, 0x97, 0x97, 0x03, 0x7e, 0xc0, 0xb1, 0xde, 0x7b, 0xaf,
+ 0x45, 0x33, 0xcf, 0xba, 0x3e, 0x71, 0xb7, 0xde, 0xf4, 0x25, 0x25, 0xc2,
+ 0x0d, 0x35, 0x89, 0x9d, 0x9d, 0xfb, 0x0e, 0x11, 0x79, 0x89, 0x1e, 0x37,
+ 0xc5, 0xaf, 0x8e, 0x72, 0x69, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81,
+ 0xe7, 0x30, 0x81, 0xe4, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+ 0x18, 0x30, 0x16, 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb,
+ 0xab, 0x05, 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc,
+ 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x4a, 0xdd, 0x06, 0x16, 0x1b, 0xbc, 0xf6, 0x68, 0xb5, 0x76, 0xf5, 0x81,
+ 0xb6, 0xbb, 0x62, 0x1a, 0xba, 0x5a, 0x81, 0x2f, 0x30, 0x0e, 0x06, 0x03,
+ 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+ 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+ 0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+ 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x35, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0,
+ 0x26, 0x86, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e,
+ 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72,
+ 0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x17, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x10,
+ 0x30, 0x0e, 0x30, 0x0c, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6,
+ 0x79, 0x02, 0x05, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
+ 0xaa, 0xfa, 0xa9, 0x20, 0xcd, 0x6a, 0x67, 0x83, 0xed, 0x5e, 0xd4, 0x7e,
+ 0xde, 0x1d, 0xc4, 0x7f, 0xe0, 0x25, 0x06, 0x00, 0xc5, 0x24, 0xfb, 0xa9,
+ 0xc8, 0x2d, 0x6d, 0x7e, 0xde, 0x9d, 0x82, 0x65, 0x2c, 0x81, 0x63, 0x34,
+ 0x66, 0x3e, 0xe9, 0x52, 0xc2, 0x08, 0xb4, 0xcb, 0x2f, 0xf7, 0x5f, 0x99,
+ 0x3a, 0x6a, 0x9c, 0x50, 0x7a, 0x85, 0x05, 0x8c, 0x7d, 0xd1, 0x2a, 0x48,
+ 0x84, 0xd3, 0x09, 0x6c, 0x7c, 0xc2, 0xcd, 0x35, 0x9f, 0xf3, 0x82, 0xee,
+ 0x52, 0xde, 0x68, 0x5f, 0xe4, 0x00, 0x8a, 0x17, 0x20, 0x96, 0xf7, 0x29,
+ 0x8d, 0x9a, 0x4d, 0xcb, 0xa8, 0xde, 0x86, 0xc8, 0x0d, 0x6f, 0x56, 0x87,
+ 0x03, 0x7d, 0x03, 0x3f, 0xdc, 0xfa, 0x79, 0x7d, 0x21, 0x19, 0xf9, 0xc8,
+ 0x3a, 0x2f, 0x51, 0x76, 0x8c, 0xc7, 0x41, 0x92, 0x71, 0x8f, 0x25, 0xce,
+ 0x37, 0xf8, 0x4a, 0x4c, 0x00, 0x23, 0xef, 0xc4, 0x35, 0x10, 0xae, 0xe0,
+ 0x23, 0x80, 0x73, 0x7c, 0x4d, 0x34, 0x2e, 0xc8, 0x6e, 0x90, 0xd6, 0x10,
+ 0x1e, 0x99, 0x84, 0x73, 0x1a, 0x70, 0xf2, 0xed, 0x55, 0x0e, 0xee, 0x17,
+ 0x06, 0xea, 0x67, 0xee, 0x32, 0xeb, 0x2c, 0xdd, 0x67, 0x07, 0x3f, 0xf6,
+ 0x8b, 0xc2, 0x70, 0xde, 0x5b, 0x00, 0xe6, 0xbb, 0x1b, 0xd3, 0x36, 0x1a,
+ 0x22, 0x6c, 0x6c, 0xb0, 0x35, 0x42, 0x6c, 0x90, 0x09, 0x3d, 0x93, 0xe9,
+ 0x64, 0x09, 0x22, 0x0e, 0x85, 0x06, 0x9f, 0xc2, 0x73, 0x21, 0xd3, 0xe6,
+ 0x5f, 0x80, 0xe4, 0x8d, 0x85, 0x22, 0x3a, 0x73, 0x03, 0xb1, 0x60, 0x8e,
+ 0xae, 0x68, 0xe2, 0xf4, 0x3e, 0x97, 0xe7, 0x60, 0x12, 0x09, 0x68, 0x36,
+ 0xde, 0x3a, 0xd6, 0xe2, 0x43, 0x95, 0x5b, 0x37, 0x81, 0x92, 0x81, 0x1f,
+ 0xbb, 0x8d, 0xd7, 0xad, 0x52, 0x64, 0x16, 0x57, 0x96, 0xd9, 0x5e, 0x34,
+ 0x7e, 0xc8, 0x35, 0xd8,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 120033005 (0x7278eed)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=GTE Corporation, OU=GTE CyberTrust Solutions, Inc., CN=GTE CyberTrust Global Root
+ Validity
+ Not Before: Apr 18 16:36:18 2012 GMT
+ Not After : Aug 13 16:35:17 2018 GMT
+ Subject: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:a3:04:bb:22:ab:98:3d:57:e8:26:72:9a:b5:79:
+ d4:29:e2:e1:e8:95:80:b1:b0:e3:5b:8e:2b:29:9a:
+ 64:df:a1:5d:ed:b0:09:05:6d:db:28:2e:ce:62:a2:
+ 62:fe:b4:88:da:12:eb:38:eb:21:9d:c0:41:2b:01:
+ 52:7b:88:77:d3:1c:8f:c7:ba:b9:88:b5:6a:09:e7:
+ 73:e8:11:40:a7:d1:cc:ca:62:8d:2d:e5:8f:0b:a6:
+ 50:d2:a8:50:c3:28:ea:f5:ab:25:87:8a:9a:96:1c:
+ a9:67:b8:3f:0c:d5:f7:f9:52:13:2f:c2:1b:d5:70:
+ 70:f0:8f:c0:12:ca:06:cb:9a:e1:d9:ca:33:7a:77:
+ d6:f8:ec:b9:f1:68:44:42:48:13:d2:c0:c2:a4:ae:
+ 5e:60:fe:b6:a6:05:fc:b4:dd:07:59:02:d4:59:18:
+ 98:63:f5:a5:63:e0:90:0c:7d:5d:b2:06:7a:f3:85:
+ ea:eb:d4:03:ae:5e:84:3e:5f:ff:15:ed:69:bc:f9:
+ 39:36:72:75:cf:77:52:4d:f3:c9:90:2c:b9:3d:e5:
+ c9:23:53:3f:1f:24:98:21:5c:07:99:29:bd:c6:3a:
+ ec:e7:6e:86:3a:6b:97:74:63:33:bd:68:18:31:f0:
+ 78:8d:76:bf:fc:9e:8e:5d:2a:86:a7:4d:90:dc:27:
+ 1a:39
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:3
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://cybertrust.omniroot.com/repository
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Authority Key Identifier:
+ DirName:/C=US/O=GTE Corporation/OU=GTE CyberTrust Solutions, Inc./CN=GTE CyberTrust Global Root
+ serial:01:A5
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://www.public-trust.com/cgi-bin/CRL/2018/cdp.crl
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 93:1d:fe:8b:ae:46:ec:cb:a9:0f:ab:e5:ef:ca:b2:68:16:68:
+ d8:8f:fa:13:a9:af:b3:cb:2d:e7:4b:6e:8e:69:2a:c2:2b:10:
+ 0a:8d:f6:ae:73:b6:b9:fb:14:fd:5f:6d:b8:50:b6:c4:8a:d6:
+ 40:7e:d7:c3:cb:73:dc:c9:5d:5b:af:b0:41:b5:37:eb:ea:dc:
+ 20:91:c4:34:6a:f4:a1:f3:96:9d:37:86:97:e1:71:a4:dd:7d:
+ fa:44:84:94:ae:d7:09:04:22:76:0f:64:51:35:a9:24:0f:f9:
+ 0b:db:32:da:c2:fe:c1:b9:2a:5c:7a:27:13:ca:b1:48:3a:71:
+ d0:43
+-----BEGIN CERTIFICATE-----
+MIIEFTCCA36gAwIBAgIEByeO7TANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJV
+UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
+cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
+b2JhbCBSb290MB4XDTEyMDQxODE2MzYxOFoXDTE4MDgxMzE2MzUxN1owWjELMAkG
+A1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVz
+dDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKrmD1X6CZymrV51Cni4eiVgLGw41uO
+KymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsBUnuId9Mcj8e6uYi1agnn
+c+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/CG9VwcPCP
+wBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPg
+kAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFc
+B5kpvcY67Oduhjprl3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaOCAUcw
+ggFDMBIGA1UdEwEB/wQIMAYBAf8CAQMwSgYDVR0gBEMwQTA/BgRVHSAAMDcwNQYI
+KwYBBQUHAgEWKWh0dHA6Ly9jeWJlcnRydXN0Lm9tbmlyb290LmNvbS9yZXBvc2l0
+b3J5MA4GA1UdDwEB/wQEAwIBBjCBiQYDVR0jBIGBMH+heaR3MHUxCzAJBgNVBAYT
+AlVTMRgwFgYDVQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJl
+clRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3Qg
+R2xvYmFsIFJvb3SCAgGlMEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly93d3cucHVi
+bGljLXRydXN0LmNvbS9jZ2ktYmluL0NSTC8yMDE4L2NkcC5jcmwwDQYJKoZIhvcN
+AQEFBQADgYEAkx3+i65G7MupD6vl78qyaBZo2I/6E6mvs8st50tujmkqwisQCo32
+rnO2ufsU/V9tuFC2xIrWQH7Xw8tz3MldW6+wQbU36+rcIJHENGr0ofOWnTeGl+Fx
+pN19+kSElK7XCQQidg9kUTWpJA/5C9sy2sL+wbkqXHonE8qxSDpx0EM=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert4[] = {
+ 0x30, 0x82, 0x04, 0x15, 0x30, 0x82, 0x03, 0x7e, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x07, 0x27, 0x8e, 0xed, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x75,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0f,
+ 0x47, 0x54, 0x45, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x1e, 0x47, 0x54, 0x45, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x23, 0x30, 0x21,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1a, 0x47, 0x54, 0x45, 0x20, 0x43,
+ 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c,
+ 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x32, 0x30, 0x34, 0x31, 0x38, 0x31, 0x36, 0x33, 0x36, 0x31,
+ 0x38, 0x5a, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x38, 0x31, 0x33, 0x31, 0x36,
+ 0x33, 0x35, 0x31, 0x37, 0x5a, 0x30, 0x5a, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x45, 0x31, 0x12, 0x30, 0x10,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09, 0x42, 0x61, 0x6c, 0x74, 0x69,
+ 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19,
+ 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x43, 0x79,
+ 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f,
+ 0x74, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f,
+ 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x04,
+ 0xbb, 0x22, 0xab, 0x98, 0x3d, 0x57, 0xe8, 0x26, 0x72, 0x9a, 0xb5, 0x79,
+ 0xd4, 0x29, 0xe2, 0xe1, 0xe8, 0x95, 0x80, 0xb1, 0xb0, 0xe3, 0x5b, 0x8e,
+ 0x2b, 0x29, 0x9a, 0x64, 0xdf, 0xa1, 0x5d, 0xed, 0xb0, 0x09, 0x05, 0x6d,
+ 0xdb, 0x28, 0x2e, 0xce, 0x62, 0xa2, 0x62, 0xfe, 0xb4, 0x88, 0xda, 0x12,
+ 0xeb, 0x38, 0xeb, 0x21, 0x9d, 0xc0, 0x41, 0x2b, 0x01, 0x52, 0x7b, 0x88,
+ 0x77, 0xd3, 0x1c, 0x8f, 0xc7, 0xba, 0xb9, 0x88, 0xb5, 0x6a, 0x09, 0xe7,
+ 0x73, 0xe8, 0x11, 0x40, 0xa7, 0xd1, 0xcc, 0xca, 0x62, 0x8d, 0x2d, 0xe5,
+ 0x8f, 0x0b, 0xa6, 0x50, 0xd2, 0xa8, 0x50, 0xc3, 0x28, 0xea, 0xf5, 0xab,
+ 0x25, 0x87, 0x8a, 0x9a, 0x96, 0x1c, 0xa9, 0x67, 0xb8, 0x3f, 0x0c, 0xd5,
+ 0xf7, 0xf9, 0x52, 0x13, 0x2f, 0xc2, 0x1b, 0xd5, 0x70, 0x70, 0xf0, 0x8f,
+ 0xc0, 0x12, 0xca, 0x06, 0xcb, 0x9a, 0xe1, 0xd9, 0xca, 0x33, 0x7a, 0x77,
+ 0xd6, 0xf8, 0xec, 0xb9, 0xf1, 0x68, 0x44, 0x42, 0x48, 0x13, 0xd2, 0xc0,
+ 0xc2, 0xa4, 0xae, 0x5e, 0x60, 0xfe, 0xb6, 0xa6, 0x05, 0xfc, 0xb4, 0xdd,
+ 0x07, 0x59, 0x02, 0xd4, 0x59, 0x18, 0x98, 0x63, 0xf5, 0xa5, 0x63, 0xe0,
+ 0x90, 0x0c, 0x7d, 0x5d, 0xb2, 0x06, 0x7a, 0xf3, 0x85, 0xea, 0xeb, 0xd4,
+ 0x03, 0xae, 0x5e, 0x84, 0x3e, 0x5f, 0xff, 0x15, 0xed, 0x69, 0xbc, 0xf9,
+ 0x39, 0x36, 0x72, 0x75, 0xcf, 0x77, 0x52, 0x4d, 0xf3, 0xc9, 0x90, 0x2c,
+ 0xb9, 0x3d, 0xe5, 0xc9, 0x23, 0x53, 0x3f, 0x1f, 0x24, 0x98, 0x21, 0x5c,
+ 0x07, 0x99, 0x29, 0xbd, 0xc6, 0x3a, 0xec, 0xe7, 0x6e, 0x86, 0x3a, 0x6b,
+ 0x97, 0x74, 0x63, 0x33, 0xbd, 0x68, 0x18, 0x31, 0xf0, 0x78, 0x8d, 0x76,
+ 0xbf, 0xfc, 0x9e, 0x8e, 0x5d, 0x2a, 0x86, 0xa7, 0x4d, 0x90, 0xdc, 0x27,
+ 0x1a, 0x39, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x47, 0x30,
+ 0x82, 0x01, 0x43, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x03, 0x30,
+ 0x4a, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x43, 0x30, 0x41, 0x30, 0x3f,
+ 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x37, 0x30, 0x35, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x29, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
+ 0x6f, 0x72, 0x79, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x81, 0x89, 0x06, 0x03,
+ 0x55, 0x1d, 0x23, 0x04, 0x81, 0x81, 0x30, 0x7f, 0xa1, 0x79, 0xa4, 0x77,
+ 0x30, 0x75, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+ 0x02, 0x55, 0x53, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x13, 0x0f, 0x47, 0x54, 0x45, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x1e, 0x47, 0x54, 0x45, 0x20, 0x43, 0x79, 0x62, 0x65,
+ 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6c, 0x75, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x23,
+ 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1a, 0x47, 0x54, 0x45,
+ 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x82,
+ 0x02, 0x01, 0xa5, 0x30, 0x45, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x3e,
+ 0x30, 0x3c, 0x30, 0x3a, 0xa0, 0x38, 0xa0, 0x36, 0x86, 0x34, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x70, 0x75, 0x62,
+ 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x63, 0x67, 0x69, 0x2d, 0x62, 0x69, 0x6e, 0x2f, 0x43, 0x52,
+ 0x4c, 0x2f, 0x32, 0x30, 0x31, 0x38, 0x2f, 0x63, 0x64, 0x70, 0x2e, 0x63,
+ 0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x93, 0x1d, 0xfe,
+ 0x8b, 0xae, 0x46, 0xec, 0xcb, 0xa9, 0x0f, 0xab, 0xe5, 0xef, 0xca, 0xb2,
+ 0x68, 0x16, 0x68, 0xd8, 0x8f, 0xfa, 0x13, 0xa9, 0xaf, 0xb3, 0xcb, 0x2d,
+ 0xe7, 0x4b, 0x6e, 0x8e, 0x69, 0x2a, 0xc2, 0x2b, 0x10, 0x0a, 0x8d, 0xf6,
+ 0xae, 0x73, 0xb6, 0xb9, 0xfb, 0x14, 0xfd, 0x5f, 0x6d, 0xb8, 0x50, 0xb6,
+ 0xc4, 0x8a, 0xd6, 0x40, 0x7e, 0xd7, 0xc3, 0xcb, 0x73, 0xdc, 0xc9, 0x5d,
+ 0x5b, 0xaf, 0xb0, 0x41, 0xb5, 0x37, 0xeb, 0xea, 0xdc, 0x20, 0x91, 0xc4,
+ 0x34, 0x6a, 0xf4, 0xa1, 0xf3, 0x96, 0x9d, 0x37, 0x86, 0x97, 0xe1, 0x71,
+ 0xa4, 0xdd, 0x7d, 0xfa, 0x44, 0x84, 0x94, 0xae, 0xd7, 0x09, 0x04, 0x22,
+ 0x76, 0x0f, 0x64, 0x51, 0x35, 0xa9, 0x24, 0x0f, 0xf9, 0x0b, 0xdb, 0x32,
+ 0xda, 0xc2, 0xfe, 0xc1, 0xb9, 0x2a, 0x5c, 0x7a, 0x27, 0x13, 0xca, 0xb1,
+ 0x48, 0x3a, 0x71, 0xd0, 0x43,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146041 (0x23a79)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Sep 8 20:41:10 2014 GMT
+ Not After : May 20 20:41:10 2022 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust SSL CA - G4
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:9a:7d:98:68:11:40:c1:5f:72:ec:55:b3:b1:63:
+ f3:32:22:72:91:c6:16:05:bb:08:82:31:b4:f6:ee:
+ d4:18:39:11:2f:2e:da:47:fe:51:31:6e:5b:f2:a9:
+ 0a:eb:2f:bb:f5:61:59:65:57:02:cd:80:ff:c7:70:
+ 32:54:89:fd:db:ae:99:72:d4:4f:0c:26:b9:2e:63:
+ 30:7d:de:14:5b:6a:d7:52:78:21:f9:bf:bc:50:d5:
+ 54:12:59:d8:b5:36:d9:21:47:b8:3f:6a:58:1d:8c:
+ 72:e1:97:95:d3:e1:45:a8:f1:5a:e5:be:fe:e3:53:
+ 7c:a5:f0:52:e0:cf:39:94:0c:19:71:f2:c0:25:07:
+ 48:7d:1c:e6:f1:39:25:2f:98:79:43:e8:18:72:f4:
+ 65:86:98:5a:00:04:47:da:4b:58:1e:7c:86:b1:4b:
+ 35:a6:20:00:1c:cd:1b:3b:22:5d:d1:93:28:33:12:
+ 23:94:08:aa:c3:3a:f5:d1:c6:8c:7e:99:d3:18:a0:
+ ad:9d:18:cf:49:ad:10:03:f7:99:33:26:86:46:9a:
+ 2f:a0:ba:6c:6e:c8:88:02:b7:6e:fa:7a:9e:98:4a:
+ ee:9a:31:7d:19:14:60:0c:ec:8f:20:23:3c:da:97:
+ 26:b6:ea:80:6c:8a:57:9e:20:ee:6f:17:25:4a:32:
+ ad:35
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ AC:32:ED:5A:C9:E0:DE:30:9C:90:58:55:26:63:F6:72:A6:54:5F:E3
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g.symcb.com/crls/gtglobal.crl
+
+ Authority Information Access:
+ OCSP - URI:http://g.symcd.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 61:40:ad:21:0f:03:bb:95:dc:89:fc:a3:cb:05:71:e9:1c:59:
+ 97:35:c2:fa:6b:05:a4:16:c6:56:46:37:74:1b:1b:f1:3e:2c:
+ e8:37:19:b7:94:d2:0f:0e:c5:bf:14:07:2b:34:cd:5b:b4:8d:
+ c7:56:9d:19:fc:02:b4:9e:90:31:fa:a4:44:c6:75:dd:dd:1f:
+ 25:54:a3:30:4c:ac:db:fe:c4:88:f7:31:26:18:47:ae:4c:20:
+ 19:1a:c7:ae:3e:98:0a:16:3d:d2:c2:a6:5d:0d:2e:29:7d:b2:
+ 9d:c7:41:32:17:ca:9d:ae:39:bf:91:98:de:e7:44:e2:95:9c:
+ 94:5c:6c:42:1b:59:c9:7b:68:13:a8:96:09:74:ee:40:14:a4:
+ d5:d7:c9:7b:33:a3:0f:5a:69:9c:1a:fa:6f:12:47:1c:df:1e:
+ 4c:70:4e:6d:dd:fe:1c:87:b5:9d:e1:54:07:09:8a:cd:be:aa:
+ a8:46:78:6e:16:f2:e7:91:0e:c3:af:da:76:00:d1:d8:a2:46:
+ 24:03:a5:1a:85:81:56:83:63:27:ba:90:8e:f9:62:11:ba:a7:
+ 7c:90:a9:1a:66:b4:c5:bc:8f:29:41:ab:eb:8d:99:a6:cc:91:
+ 64:ba:dc:c6:a6:4c:b3:b4:23:26:51:72:56:f9:f3:74:55:9f:
+ 25:75:4f:2b
+-----BEGIN CERTIFICATE-----
+MIIEIjCCAwqgAwIBAgIDAjp5MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTQwOTA4MjA0MTEwWhcNMjIwNTIwMjA0MTEwWjBEMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+U1NMIENBIC0gRzQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCafZho
+EUDBX3LsVbOxY/MyInKRxhYFuwiCMbT27tQYOREvLtpH/lExblvyqQrrL7v1YVll
+VwLNgP/HcDJUif3brply1E8MJrkuYzB93hRbatdSeCH5v7xQ1VQSWdi1NtkhR7g/
+algdjHLhl5XT4UWo8Vrlvv7jU3yl8FLgzzmUDBlx8sAlB0h9HObxOSUvmHlD6Bhy
+9GWGmFoABEfaS1gefIaxSzWmIAAczRs7Il3RkygzEiOUCKrDOvXRxox+mdMYoK2d
+GM9JrRAD95kzJoZGmi+gumxuyIgCt276ep6YSu6aMX0ZFGAM7I8gIzzalya26oBs
+ileeIO5vFyVKMq01AgMBAAGjggEdMIIBGTAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjAdBgNVHQ4EFgQUrDLtWsng3jCckFhVJmP2cqZUX+MwEgYDVR0T
+AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNQYDVR0fBC4wLDAqoCigJoYk
+aHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMC4GCCsGAQUFBwEB
+BCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL2cuc3ltY2QuY29tMEwGA1UdIARFMEMw
+QQYKYIZIAYb4RQEHNjAzMDEGCCsGAQUFBwIBFiVodHRwOi8vd3d3Lmdlb3RydXN0
+LmNvbS9yZXNvdXJjZXMvY3BzMA0GCSqGSIb3DQEBCwUAA4IBAQBhQK0hDwO7ldyJ
+/KPLBXHpHFmXNcL6awWkFsZWRjd0GxvxPizoNxm3lNIPDsW/FAcrNM1btI3HVp0Z
+/AK0npAx+qRExnXd3R8lVKMwTKzb/sSI9zEmGEeuTCAZGseuPpgKFj3SwqZdDS4p
+fbKdx0EyF8qdrjm/kZje50TilZyUXGxCG1nJe2gTqJYJdO5AFKTV18l7M6MPWmmc
+GvpvEkcc3x5McE5t3f4ch7Wd4VQHCYrNvqqoRnhuFvLnkQ7Dr9p2ANHYokYkA6Ua
+hYFWg2MnupCO+WIRuqd8kKkaZrTFvI8pQavrjZmmzJFkutzGpkyztCMmUXJW+fN0
+VZ8ldU8r
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert5[] = {
+ 0x30, 0x82, 0x04, 0x22, 0x30, 0x82, 0x03, 0x0a, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x79, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30,
+ 0x39, 0x30, 0x38, 0x32, 0x30, 0x34, 0x31, 0x31, 0x30, 0x5a, 0x17, 0x0d,
+ 0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x30, 0x34, 0x31, 0x31, 0x30,
+ 0x5a, 0x30, 0x44, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x14, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x34, 0x30,
+ 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+ 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x9a, 0x7d, 0x98, 0x68,
+ 0x11, 0x40, 0xc1, 0x5f, 0x72, 0xec, 0x55, 0xb3, 0xb1, 0x63, 0xf3, 0x32,
+ 0x22, 0x72, 0x91, 0xc6, 0x16, 0x05, 0xbb, 0x08, 0x82, 0x31, 0xb4, 0xf6,
+ 0xee, 0xd4, 0x18, 0x39, 0x11, 0x2f, 0x2e, 0xda, 0x47, 0xfe, 0x51, 0x31,
+ 0x6e, 0x5b, 0xf2, 0xa9, 0x0a, 0xeb, 0x2f, 0xbb, 0xf5, 0x61, 0x59, 0x65,
+ 0x57, 0x02, 0xcd, 0x80, 0xff, 0xc7, 0x70, 0x32, 0x54, 0x89, 0xfd, 0xdb,
+ 0xae, 0x99, 0x72, 0xd4, 0x4f, 0x0c, 0x26, 0xb9, 0x2e, 0x63, 0x30, 0x7d,
+ 0xde, 0x14, 0x5b, 0x6a, 0xd7, 0x52, 0x78, 0x21, 0xf9, 0xbf, 0xbc, 0x50,
+ 0xd5, 0x54, 0x12, 0x59, 0xd8, 0xb5, 0x36, 0xd9, 0x21, 0x47, 0xb8, 0x3f,
+ 0x6a, 0x58, 0x1d, 0x8c, 0x72, 0xe1, 0x97, 0x95, 0xd3, 0xe1, 0x45, 0xa8,
+ 0xf1, 0x5a, 0xe5, 0xbe, 0xfe, 0xe3, 0x53, 0x7c, 0xa5, 0xf0, 0x52, 0xe0,
+ 0xcf, 0x39, 0x94, 0x0c, 0x19, 0x71, 0xf2, 0xc0, 0x25, 0x07, 0x48, 0x7d,
+ 0x1c, 0xe6, 0xf1, 0x39, 0x25, 0x2f, 0x98, 0x79, 0x43, 0xe8, 0x18, 0x72,
+ 0xf4, 0x65, 0x86, 0x98, 0x5a, 0x00, 0x04, 0x47, 0xda, 0x4b, 0x58, 0x1e,
+ 0x7c, 0x86, 0xb1, 0x4b, 0x35, 0xa6, 0x20, 0x00, 0x1c, 0xcd, 0x1b, 0x3b,
+ 0x22, 0x5d, 0xd1, 0x93, 0x28, 0x33, 0x12, 0x23, 0x94, 0x08, 0xaa, 0xc3,
+ 0x3a, 0xf5, 0xd1, 0xc6, 0x8c, 0x7e, 0x99, 0xd3, 0x18, 0xa0, 0xad, 0x9d,
+ 0x18, 0xcf, 0x49, 0xad, 0x10, 0x03, 0xf7, 0x99, 0x33, 0x26, 0x86, 0x46,
+ 0x9a, 0x2f, 0xa0, 0xba, 0x6c, 0x6e, 0xc8, 0x88, 0x02, 0xb7, 0x6e, 0xfa,
+ 0x7a, 0x9e, 0x98, 0x4a, 0xee, 0x9a, 0x31, 0x7d, 0x19, 0x14, 0x60, 0x0c,
+ 0xec, 0x8f, 0x20, 0x23, 0x3c, 0xda, 0x97, 0x26, 0xb6, 0xea, 0x80, 0x6c,
+ 0x8a, 0x57, 0x9e, 0x20, 0xee, 0x6f, 0x17, 0x25, 0x4a, 0x32, 0xad, 0x35,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x1d, 0x30, 0x82, 0x01,
+ 0x19, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64,
+ 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xac, 0x32, 0xed,
+ 0x5a, 0xc9, 0xe0, 0xde, 0x30, 0x9c, 0x90, 0x58, 0x55, 0x26, 0x63, 0xf6,
+ 0x72, 0xa6, 0x54, 0x5f, 0xe3, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+ 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+ 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x35, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d,
+ 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f,
+ 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72, 0x6c,
+ 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+ 0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30,
+ 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07,
+ 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x01, 0x00, 0x61, 0x40, 0xad, 0x21, 0x0f, 0x03, 0xbb, 0x95, 0xdc, 0x89,
+ 0xfc, 0xa3, 0xcb, 0x05, 0x71, 0xe9, 0x1c, 0x59, 0x97, 0x35, 0xc2, 0xfa,
+ 0x6b, 0x05, 0xa4, 0x16, 0xc6, 0x56, 0x46, 0x37, 0x74, 0x1b, 0x1b, 0xf1,
+ 0x3e, 0x2c, 0xe8, 0x37, 0x19, 0xb7, 0x94, 0xd2, 0x0f, 0x0e, 0xc5, 0xbf,
+ 0x14, 0x07, 0x2b, 0x34, 0xcd, 0x5b, 0xb4, 0x8d, 0xc7, 0x56, 0x9d, 0x19,
+ 0xfc, 0x02, 0xb4, 0x9e, 0x90, 0x31, 0xfa, 0xa4, 0x44, 0xc6, 0x75, 0xdd,
+ 0xdd, 0x1f, 0x25, 0x54, 0xa3, 0x30, 0x4c, 0xac, 0xdb, 0xfe, 0xc4, 0x88,
+ 0xf7, 0x31, 0x26, 0x18, 0x47, 0xae, 0x4c, 0x20, 0x19, 0x1a, 0xc7, 0xae,
+ 0x3e, 0x98, 0x0a, 0x16, 0x3d, 0xd2, 0xc2, 0xa6, 0x5d, 0x0d, 0x2e, 0x29,
+ 0x7d, 0xb2, 0x9d, 0xc7, 0x41, 0x32, 0x17, 0xca, 0x9d, 0xae, 0x39, 0xbf,
+ 0x91, 0x98, 0xde, 0xe7, 0x44, 0xe2, 0x95, 0x9c, 0x94, 0x5c, 0x6c, 0x42,
+ 0x1b, 0x59, 0xc9, 0x7b, 0x68, 0x13, 0xa8, 0x96, 0x09, 0x74, 0xee, 0x40,
+ 0x14, 0xa4, 0xd5, 0xd7, 0xc9, 0x7b, 0x33, 0xa3, 0x0f, 0x5a, 0x69, 0x9c,
+ 0x1a, 0xfa, 0x6f, 0x12, 0x47, 0x1c, 0xdf, 0x1e, 0x4c, 0x70, 0x4e, 0x6d,
+ 0xdd, 0xfe, 0x1c, 0x87, 0xb5, 0x9d, 0xe1, 0x54, 0x07, 0x09, 0x8a, 0xcd,
+ 0xbe, 0xaa, 0xa8, 0x46, 0x78, 0x6e, 0x16, 0xf2, 0xe7, 0x91, 0x0e, 0xc3,
+ 0xaf, 0xda, 0x76, 0x00, 0xd1, 0xd8, 0xa2, 0x46, 0x24, 0x03, 0xa5, 0x1a,
+ 0x85, 0x81, 0x56, 0x83, 0x63, 0x27, 0xba, 0x90, 0x8e, 0xf9, 0x62, 0x11,
+ 0xba, 0xa7, 0x7c, 0x90, 0xa9, 0x1a, 0x66, 0xb4, 0xc5, 0xbc, 0x8f, 0x29,
+ 0x41, 0xab, 0xeb, 0x8d, 0x99, 0xa6, 0xcc, 0x91, 0x64, 0xba, 0xdc, 0xc6,
+ 0xa6, 0x4c, 0xb3, 0xb4, 0x23, 0x26, 0x51, 0x72, 0x56, 0xf9, 0xf3, 0x74,
+ 0x55, 0x9f, 0x25, 0x75, 0x4f, 0x2b,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146039 (0x23a77)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Aug 29 21:39:32 2014 GMT
+ Not After : May 20 21:39:32 2022 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=RapidSSL SHA256 CA - G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:af:54:9b:d9:58:5d:1e:2c:56:c6:d5:e8:7f:f4:
+ 7d:16:03:ff:d0:8b:5a:e4:8e:a7:dd:54:2e:d4:04:
+ c0:5d:98:9c:8d:90:0f:bc:10:65:5f:da:9a:d6:44:
+ 7c:c0:9f:b5:e9:4a:8c:0b:06:43:04:bb:f4:96:e2:
+ 26:f6:61:01:91:66:31:22:c3:34:34:5f:3f:3f:91:
+ 2f:44:5f:dc:c7:14:b6:03:9f:86:4b:0e:a3:ff:a0:
+ 80:02:83:c3:d3:1f:69:52:d6:9d:64:0f:c9:83:e7:
+ 1b:c4:70:ac:94:e7:c3:a4:6a:2c:bd:b8:9e:69:d8:
+ be:0a:8f:16:63:5a:68:71:80:7b:30:de:15:04:bf:
+ cc:d3:bf:3e:48:05:55:7a:b3:d7:10:0c:03:fc:9b:
+ fd:08:a7:8c:8c:db:a7:8e:f1:1e:63:dc:b3:01:2f:
+ 7f:af:57:c3:3c:48:a7:83:68:21:a7:2f:e7:a7:3f:
+ f0:b5:0c:fc:f5:84:d1:53:bc:0e:72:4f:60:0c:42:
+ b8:98:ad:19:88:57:d7:04:ec:87:bf:7e:87:4e:a3:
+ 21:f9:53:fd:36:98:48:8d:d6:f8:bb:48:f2:29:c8:
+ 64:d1:cc:54:48:53:8b:af:b7:65:1e:bf:29:33:29:
+ d9:29:60:48:f8:ff:91:bc:57:58:e5:35:2e:bb:69:
+ b6:59
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ C3:9C:F3:FC:D3:46:08:34:BB:CE:46:7F:A0:7C:5B:F3:E2:08:CB:59
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g.symcb.com/crls/gtglobal.crl
+
+ Authority Information Access:
+ OCSP - URI:http://g.symcd.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ Signature Algorithm: sha256WithRSAEncryption
+ a3:58:1e:c6:43:32:ac:ac:2f:93:78:b7:ea:ae:54:40:47:2d:
+ 7e:78:8d:50:f6:f8:66:ac:d6:4f:73:d6:44:ef:af:0b:cc:5b:
+ c1:f4:4f:9a:8f:49:7e:60:af:c2:27:c7:16:f1:fb:93:81:90:
+ a9:7c:ef:6f:7e:6e:45:94:16:84:bd:ec:49:f1:c4:0e:f4:af:
+ 04:59:83:87:0f:2c:3b:97:c3:5a:12:9b:7b:04:35:7b:a3:95:
+ 33:08:7b:93:71:22:42:b3:a9:d9:6f:4f:81:92:fc:07:b6:79:
+ bc:84:4a:9d:77:09:f1:c5:89:f2:f0:b4:9c:54:aa:12:7b:0d:
+ ba:4f:ef:93:19:ec:ef:7d:4e:61:a3:8e:76:9c:59:cf:8c:94:
+ b1:84:97:f7:1a:b9:07:b8:b2:c6:4f:13:79:db:bf:4f:51:1b:
+ 7f:69:0d:51:2a:c1:d6:15:ff:37:51:34:65:51:f4:1e:be:38:
+ 6a:ec:0e:ab:bf:3d:7b:39:05:7b:f4:f3:fb:1a:a1:d0:c8:7e:
+ 4e:64:8d:cd:8c:61:55:90:fe:3a:ca:5d:25:0f:f8:1d:a3:4a:
+ 74:56:4f:1a:55:40:70:75:25:a6:33:2e:ba:4b:a5:5d:53:9a:
+ 0d:30:e1:8d:5f:61:2c:af:cc:ef:b0:99:a1:80:ff:0b:f2:62:
+ 4c:70:26:98
+-----BEGIN CERTIFICATE-----
+MIIEJTCCAw2gAwIBAgIDAjp3MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTQwODI5MjEzOTMyWhcNMjIwNTIwMjEzOTMyWjBHMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXUmFwaWRTU0wg
+U0hBMjU2IENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCv
+VJvZWF0eLFbG1eh/9H0WA//Qi1rkjqfdVC7UBMBdmJyNkA+8EGVf2prWRHzAn7Xp
+SowLBkMEu/SW4ib2YQGRZjEiwzQ0Xz8/kS9EX9zHFLYDn4ZLDqP/oIACg8PTH2lS
+1p1kD8mD5xvEcKyU58Okaiy9uJ5p2L4KjxZjWmhxgHsw3hUEv8zTvz5IBVV6s9cQ
+DAP8m/0Ip4yM26eO8R5j3LMBL3+vV8M8SKeDaCGnL+enP/C1DPz1hNFTvA5yT2AM
+QriYrRmIV9cE7Ie/fodOoyH5U/02mEiN1vi7SPIpyGTRzFRIU4uvt2UevykzKdkp
+YEj4/5G8V1jlNS67abZZAgMBAAGjggEdMIIBGTAfBgNVHSMEGDAWgBTAephojYn7
+qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUw5zz/NNGCDS7zkZ/oHxb8+IIy1kwEgYD
+VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNQYDVR0fBC4wLDAqoCig
+JoYkaHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMC4GCCsGAQUF
+BwEBBCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL2cuc3ltY2QuY29tMEwGA1UdIARF
+MEMwQQYKYIZIAYb4RQEHNjAzMDEGCCsGAQUFBwIBFiVodHRwOi8vd3d3Lmdlb3Ry
+dXN0LmNvbS9yZXNvdXJjZXMvY3BzMA0GCSqGSIb3DQEBCwUAA4IBAQCjWB7GQzKs
+rC+TeLfqrlRARy1+eI1Q9vhmrNZPc9ZE768LzFvB9E+aj0l+YK/CJ8cW8fuTgZCp
+fO9vfm5FlBaEvexJ8cQO9K8EWYOHDyw7l8NaEpt7BDV7o5UzCHuTcSJCs6nZb0+B
+kvwHtnm8hEqddwnxxYny8LScVKoSew26T++TGezvfU5ho452nFnPjJSxhJf3GrkH
+uLLGTxN5279PURt/aQ1RKsHWFf83UTRlUfQevjhq7A6rvz17OQV79PP7GqHQyH5O
+ZI3NjGFVkP46yl0lD/gdo0p0Vk8aVUBwdSWmMy66S6VdU5oNMOGNX2Esr8zvsJmh
+gP8L8mJMcCaY
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert6[] = {
+ 0x30, 0x82, 0x04, 0x25, 0x30, 0x82, 0x03, 0x0d, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x77, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30,
+ 0x38, 0x32, 0x39, 0x32, 0x31, 0x33, 0x39, 0x33, 0x32, 0x5a, 0x17, 0x0d,
+ 0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x33, 0x39, 0x33, 0x32,
+ 0x5a, 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x17, 0x52, 0x61, 0x70, 0x69, 0x64, 0x53, 0x53, 0x4c, 0x20,
+ 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20,
+ 0x47, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xaf,
+ 0x54, 0x9b, 0xd9, 0x58, 0x5d, 0x1e, 0x2c, 0x56, 0xc6, 0xd5, 0xe8, 0x7f,
+ 0xf4, 0x7d, 0x16, 0x03, 0xff, 0xd0, 0x8b, 0x5a, 0xe4, 0x8e, 0xa7, 0xdd,
+ 0x54, 0x2e, 0xd4, 0x04, 0xc0, 0x5d, 0x98, 0x9c, 0x8d, 0x90, 0x0f, 0xbc,
+ 0x10, 0x65, 0x5f, 0xda, 0x9a, 0xd6, 0x44, 0x7c, 0xc0, 0x9f, 0xb5, 0xe9,
+ 0x4a, 0x8c, 0x0b, 0x06, 0x43, 0x04, 0xbb, 0xf4, 0x96, 0xe2, 0x26, 0xf6,
+ 0x61, 0x01, 0x91, 0x66, 0x31, 0x22, 0xc3, 0x34, 0x34, 0x5f, 0x3f, 0x3f,
+ 0x91, 0x2f, 0x44, 0x5f, 0xdc, 0xc7, 0x14, 0xb6, 0x03, 0x9f, 0x86, 0x4b,
+ 0x0e, 0xa3, 0xff, 0xa0, 0x80, 0x02, 0x83, 0xc3, 0xd3, 0x1f, 0x69, 0x52,
+ 0xd6, 0x9d, 0x64, 0x0f, 0xc9, 0x83, 0xe7, 0x1b, 0xc4, 0x70, 0xac, 0x94,
+ 0xe7, 0xc3, 0xa4, 0x6a, 0x2c, 0xbd, 0xb8, 0x9e, 0x69, 0xd8, 0xbe, 0x0a,
+ 0x8f, 0x16, 0x63, 0x5a, 0x68, 0x71, 0x80, 0x7b, 0x30, 0xde, 0x15, 0x04,
+ 0xbf, 0xcc, 0xd3, 0xbf, 0x3e, 0x48, 0x05, 0x55, 0x7a, 0xb3, 0xd7, 0x10,
+ 0x0c, 0x03, 0xfc, 0x9b, 0xfd, 0x08, 0xa7, 0x8c, 0x8c, 0xdb, 0xa7, 0x8e,
+ 0xf1, 0x1e, 0x63, 0xdc, 0xb3, 0x01, 0x2f, 0x7f, 0xaf, 0x57, 0xc3, 0x3c,
+ 0x48, 0xa7, 0x83, 0x68, 0x21, 0xa7, 0x2f, 0xe7, 0xa7, 0x3f, 0xf0, 0xb5,
+ 0x0c, 0xfc, 0xf5, 0x84, 0xd1, 0x53, 0xbc, 0x0e, 0x72, 0x4f, 0x60, 0x0c,
+ 0x42, 0xb8, 0x98, 0xad, 0x19, 0x88, 0x57, 0xd7, 0x04, 0xec, 0x87, 0xbf,
+ 0x7e, 0x87, 0x4e, 0xa3, 0x21, 0xf9, 0x53, 0xfd, 0x36, 0x98, 0x48, 0x8d,
+ 0xd6, 0xf8, 0xbb, 0x48, 0xf2, 0x29, 0xc8, 0x64, 0xd1, 0xcc, 0x54, 0x48,
+ 0x53, 0x8b, 0xaf, 0xb7, 0x65, 0x1e, 0xbf, 0x29, 0x33, 0x29, 0xd9, 0x29,
+ 0x60, 0x48, 0xf8, 0xff, 0x91, 0xbc, 0x57, 0x58, 0xe5, 0x35, 0x2e, 0xbb,
+ 0x69, 0xb6, 0x59, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x1d,
+ 0x30, 0x82, 0x01, 0x19, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+ 0x18, 0x30, 0x16, 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb,
+ 0xab, 0x05, 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc,
+ 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0xc3, 0x9c, 0xf3, 0xfc, 0xd3, 0x46, 0x08, 0x34, 0xbb, 0xce, 0x46, 0x7f,
+ 0xa0, 0x7c, 0x5b, 0xf3, 0xe2, 0x08, 0xcb, 0x59, 0x30, 0x12, 0x06, 0x03,
+ 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+ 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+ 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x35, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0,
+ 0x26, 0x86, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e,
+ 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72,
+ 0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x01, 0x01, 0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45,
+ 0x30, 0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8,
+ 0x45, 0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x58, 0x1e, 0xc6, 0x43, 0x32, 0xac,
+ 0xac, 0x2f, 0x93, 0x78, 0xb7, 0xea, 0xae, 0x54, 0x40, 0x47, 0x2d, 0x7e,
+ 0x78, 0x8d, 0x50, 0xf6, 0xf8, 0x66, 0xac, 0xd6, 0x4f, 0x73, 0xd6, 0x44,
+ 0xef, 0xaf, 0x0b, 0xcc, 0x5b, 0xc1, 0xf4, 0x4f, 0x9a, 0x8f, 0x49, 0x7e,
+ 0x60, 0xaf, 0xc2, 0x27, 0xc7, 0x16, 0xf1, 0xfb, 0x93, 0x81, 0x90, 0xa9,
+ 0x7c, 0xef, 0x6f, 0x7e, 0x6e, 0x45, 0x94, 0x16, 0x84, 0xbd, 0xec, 0x49,
+ 0xf1, 0xc4, 0x0e, 0xf4, 0xaf, 0x04, 0x59, 0x83, 0x87, 0x0f, 0x2c, 0x3b,
+ 0x97, 0xc3, 0x5a, 0x12, 0x9b, 0x7b, 0x04, 0x35, 0x7b, 0xa3, 0x95, 0x33,
+ 0x08, 0x7b, 0x93, 0x71, 0x22, 0x42, 0xb3, 0xa9, 0xd9, 0x6f, 0x4f, 0x81,
+ 0x92, 0xfc, 0x07, 0xb6, 0x79, 0xbc, 0x84, 0x4a, 0x9d, 0x77, 0x09, 0xf1,
+ 0xc5, 0x89, 0xf2, 0xf0, 0xb4, 0x9c, 0x54, 0xaa, 0x12, 0x7b, 0x0d, 0xba,
+ 0x4f, 0xef, 0x93, 0x19, 0xec, 0xef, 0x7d, 0x4e, 0x61, 0xa3, 0x8e, 0x76,
+ 0x9c, 0x59, 0xcf, 0x8c, 0x94, 0xb1, 0x84, 0x97, 0xf7, 0x1a, 0xb9, 0x07,
+ 0xb8, 0xb2, 0xc6, 0x4f, 0x13, 0x79, 0xdb, 0xbf, 0x4f, 0x51, 0x1b, 0x7f,
+ 0x69, 0x0d, 0x51, 0x2a, 0xc1, 0xd6, 0x15, 0xff, 0x37, 0x51, 0x34, 0x65,
+ 0x51, 0xf4, 0x1e, 0xbe, 0x38, 0x6a, 0xec, 0x0e, 0xab, 0xbf, 0x3d, 0x7b,
+ 0x39, 0x05, 0x7b, 0xf4, 0xf3, 0xfb, 0x1a, 0xa1, 0xd0, 0xc8, 0x7e, 0x4e,
+ 0x64, 0x8d, 0xcd, 0x8c, 0x61, 0x55, 0x90, 0xfe, 0x3a, 0xca, 0x5d, 0x25,
+ 0x0f, 0xf8, 0x1d, 0xa3, 0x4a, 0x74, 0x56, 0x4f, 0x1a, 0x55, 0x40, 0x70,
+ 0x75, 0x25, 0xa6, 0x33, 0x2e, 0xba, 0x4b, 0xa5, 0x5d, 0x53, 0x9a, 0x0d,
+ 0x30, 0xe1, 0x8d, 0x5f, 0x61, 0x2c, 0xaf, 0xcc, 0xef, 0xb0, 0x99, 0xa1,
+ 0x80, 0xff, 0x0b, 0xf2, 0x62, 0x4c, 0x70, 0x26, 0x98,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 11:20:96:f6:c8:03:7c:9e:07:b1:38:bf:2e:72:10:8a:d7:ed
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=FR, O=Certplus, CN=Class 2 Primary CA
+ Validity
+ Not Before: Jun 5 00:00:00 2007 GMT
+ Not After : Jun 20 00:00:00 2019 GMT
+ Subject: C=FR, O=KEYNECTIS, CN=CLASS 2 KEYNECTIS CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:c6:be:fe:44:23:04:d4:ef:2f:3b:86:aa:35:58:
+ 81:d1:e1:9a:d6:b1:d4:27:45:28:fc:d1:1e:46:85:
+ ba:54:23:11:7d:e0:66:3f:d4:a3:57:66:78:f9:6b:
+ eb:74:7c:2a:b8:37:a5:e8:70:ae:82:b5:4e:d4:81:
+ fe:5b:e2:ea:e7:22:16:f8:f9:d7:ba:3a:f6:88:56:
+ dc:c4:f2:a0:a4:e5:75:06:60:72:2b:fb:f5:94:ee:
+ 2c:83:28:de:91:9a:b3:83:3a:b0:9f:08:fa:dd:d8:
+ 9e:8c:24:e6:df:66:5b:c8:7e:a3:62:4d:3f:3a:85:
+ 23:ec:e8:71:8f:0a:00:ac:89:6d:7e:d8:72:e5:dd:
+ c1:94:8e:5f:e4:73:e6:c1:c6:0c:87:58:4f:37:da:
+ d1:a9:88:26:76:b4:ee:11:8d:f6:ad:b2:a7:bc:73:
+ c4:cd:1c:6e:1a:e6:8d:72:56:44:a0:98:f7:92:f9:
+ d7:79:9b:03:e6:68:5f:a4:5c:7c:3d:50:b4:83:cc:
+ e5:ac:0d:e1:3e:4f:14:f2:b4:e4:7d:bf:71:a4:c3:
+ 97:73:38:d6:52:7c:c8:a4:b5:ea:e9:b2:54:56:d4:
+ eb:b8:57:3a:40:52:5a:5e:46:27:a3:7b:30:2d:08:
+ 3d:85:1e:9a:f0:32:a8:f2:10:a2:83:9b:e2:28:f6:
+ 9d:cb
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.4.1.22234.2.5.3.3
+ CPS: http://www.keynectis.com/PC
+ Policy: 1.3.6.4.1.22234.2.5.1.3
+ CPS: http://www.keynectis.com/PC
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://www.certplus.com/CRL/class2.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 00:11:41:DF:3B:9D:3B:CB:B8:A2:C1:33:92:A8:81:CC:E5:7D:E7:99
+ X509v3 Authority Key Identifier:
+ keyid:E3:73:2D:DF:CB:0E:28:0C:DE:DD:B3:A4:CA:79:B8:8E:BB:E8:30:89
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 08:88:fe:1f:a2:ca:cd:e2:a0:f1:2e:7c:67:49:fb:dc:94:ac:
+ 7f:41:0d:78:01:ba:31:f7:9b:fb:31:18:77:2f:66:25:94:b8:
+ 6d:16:74:81:f1:c0:ae:67:c6:14:45:7a:01:d1:13:88:fc:e2:
+ 8d:22:1d:bd:1e:0c:c7:a9:7e:d0:c3:97:f6:37:5b:41:5e:67:
+ 94:8e:ab:69:02:17:18:f5:4d:38:c2:49:28:09:6e:5a:9b:a6:
+ 27:db:c0:5f:8f:44:9c:90:65:99:d8:b3:2e:c1:92:ee:1a:9d:
+ 0f:72:45:20:fa:2c:0c:9c:5d:cd:5b:54:41:54:4f:d3:e2:c7:
+ 59:84:3f:17:7b:7d:0e:c2:ef:62:c7:ba:b1:26:6c:83:4e:d3:
+ 19:c5:ff:56:a7:b4:45:3f:7a:9e:fa:d0:39:3e:80:46:75:5d:
+ 5a:79:7a:33:c5:01:bc:02:44:ce:1b:c0:31:4e:47:96:15:6e:
+ e7:e4:76:f0:c2:90:0d:a1:78:f4:38:00:91:2b:65:7c:79:13:
+ a8:3e:91:14:dc:88:05:08:d7:6f:53:f6:15:43:ee:c5:53:56:
+ 1a:02:b5:a6:a2:46:8d:1e:13:e4:67:c2:45:5f:40:5e:10:42:
+ 58:b5:cd:44:a3:94:4c:1c:54:90:4d:91:9a:26:8b:ad:a2:80:
+ 50:8d:14:14
+-----BEGIN CERTIFICATE-----
+MIIEKzCCAxOgAwIBAgISESCW9sgDfJ4HsTi/LnIQitftMA0GCSqGSIb3DQEBBQUA
+MD0xCzAJBgNVBAYTAkZSMREwDwYDVQQKEwhDZXJ0cGx1czEbMBkGA1UEAxMSQ2xh
+c3MgMiBQcmltYXJ5IENBMB4XDTA3MDYwNTAwMDAwMFoXDTE5MDYyMDAwMDAwMFow
+QDELMAkGA1UEBhMCRlIxEjAQBgNVBAoTCUtFWU5FQ1RJUzEdMBsGA1UEAxMUQ0xB
+U1MgMiBLRVlORUNUSVMgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQDGvv5EIwTU7y87hqo1WIHR4ZrWsdQnRSj80R5GhbpUIxF94GY/1KNXZnj5a+t0
+fCq4N6XocK6CtU7Ugf5b4urnIhb4+de6OvaIVtzE8qCk5XUGYHIr+/WU7iyDKN6R
+mrODOrCfCPrd2J6MJObfZlvIfqNiTT86hSPs6HGPCgCsiW1+2HLl3cGUjl/kc+bB
+xgyHWE832tGpiCZ2tO4Rjfatsqe8c8TNHG4a5o1yVkSgmPeS+dd5mwPmaF+kXHw9
+ULSDzOWsDeE+TxTytOR9v3Gkw5dzONZSfMikterpslRW1Ou4VzpAUlpeRiejezAt
+CD2FHprwMqjyEKKDm+Io9p3LAgMBAAGjggEgMIIBHDASBgNVHRMBAf8ECDAGAQH/
+AgEAMH0GA1UdIAR2MHQwOAYLKwYEAYGtWgIFAwMwKTAnBggrBgEFBQcCARYbaHR0
+cDovL3d3dy5rZXluZWN0aXMuY29tL1BDMDgGCysGBAGBrVoCBQEDMCkwJwYIKwYB
+BQUHAgEWG2h0dHA6Ly93d3cua2V5bmVjdGlzLmNvbS9QQzA3BgNVHR8EMDAuMCyg
+KqAohiZodHRwOi8vd3d3LmNlcnRwbHVzLmNvbS9DUkwvY2xhc3MyLmNybDAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAARQd87nTvLuKLBM5KogczlfeeZMB8GA1Ud
+IwQYMBaAFONzLd/LDigM3t2zpMp5uI676DCJMA0GCSqGSIb3DQEBBQUAA4IBAQAI
+iP4fosrN4qDxLnxnSfvclKx/QQ14Abox95v7MRh3L2YllLhtFnSB8cCuZ8YURXoB
+0ROI/OKNIh29HgzHqX7Qw5f2N1tBXmeUjqtpAhcY9U04wkkoCW5am6Yn28Bfj0Sc
+kGWZ2LMuwZLuGp0PckUg+iwMnF3NW1RBVE/T4sdZhD8Xe30Owu9ix7qxJmyDTtMZ
+xf9Wp7RFP3qe+tA5PoBGdV1aeXozxQG8AkTOG8AxTkeWFW7n5HbwwpANoXj0OACR
+K2V8eROoPpEU3IgFCNdvU/YVQ+7FU1YaArWmokaNHhPkZ8JFX0BeEEJYtc1Eo5RM
+HFSQTZGaJoutooBQjRQU
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert7[] = {
+ 0x30, 0x82, 0x04, 0x2b, 0x30, 0x82, 0x03, 0x13, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x12, 0x11, 0x20, 0x96, 0xf6, 0xc8, 0x03, 0x7c, 0x9e, 0x07,
+ 0xb1, 0x38, 0xbf, 0x2e, 0x72, 0x10, 0x8a, 0xd7, 0xed, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00,
+ 0x30, 0x3d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+ 0x02, 0x46, 0x52, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x13, 0x08, 0x43, 0x65, 0x72, 0x74, 0x70, 0x6c, 0x75, 0x73, 0x31, 0x1b,
+ 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x43, 0x6c, 0x61,
+ 0x73, 0x73, 0x20, 0x32, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
+ 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x37, 0x30, 0x36, 0x30,
+ 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x31, 0x39,
+ 0x30, 0x36, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30,
+ 0x40, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x46, 0x52, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x09, 0x4b, 0x45, 0x59, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x53, 0x31, 0x1d,
+ 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x14, 0x43, 0x4c, 0x41,
+ 0x53, 0x53, 0x20, 0x32, 0x20, 0x4b, 0x45, 0x59, 0x4e, 0x45, 0x43, 0x54,
+ 0x49, 0x53, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+ 0x01, 0x00, 0xc6, 0xbe, 0xfe, 0x44, 0x23, 0x04, 0xd4, 0xef, 0x2f, 0x3b,
+ 0x86, 0xaa, 0x35, 0x58, 0x81, 0xd1, 0xe1, 0x9a, 0xd6, 0xb1, 0xd4, 0x27,
+ 0x45, 0x28, 0xfc, 0xd1, 0x1e, 0x46, 0x85, 0xba, 0x54, 0x23, 0x11, 0x7d,
+ 0xe0, 0x66, 0x3f, 0xd4, 0xa3, 0x57, 0x66, 0x78, 0xf9, 0x6b, 0xeb, 0x74,
+ 0x7c, 0x2a, 0xb8, 0x37, 0xa5, 0xe8, 0x70, 0xae, 0x82, 0xb5, 0x4e, 0xd4,
+ 0x81, 0xfe, 0x5b, 0xe2, 0xea, 0xe7, 0x22, 0x16, 0xf8, 0xf9, 0xd7, 0xba,
+ 0x3a, 0xf6, 0x88, 0x56, 0xdc, 0xc4, 0xf2, 0xa0, 0xa4, 0xe5, 0x75, 0x06,
+ 0x60, 0x72, 0x2b, 0xfb, 0xf5, 0x94, 0xee, 0x2c, 0x83, 0x28, 0xde, 0x91,
+ 0x9a, 0xb3, 0x83, 0x3a, 0xb0, 0x9f, 0x08, 0xfa, 0xdd, 0xd8, 0x9e, 0x8c,
+ 0x24, 0xe6, 0xdf, 0x66, 0x5b, 0xc8, 0x7e, 0xa3, 0x62, 0x4d, 0x3f, 0x3a,
+ 0x85, 0x23, 0xec, 0xe8, 0x71, 0x8f, 0x0a, 0x00, 0xac, 0x89, 0x6d, 0x7e,
+ 0xd8, 0x72, 0xe5, 0xdd, 0xc1, 0x94, 0x8e, 0x5f, 0xe4, 0x73, 0xe6, 0xc1,
+ 0xc6, 0x0c, 0x87, 0x58, 0x4f, 0x37, 0xda, 0xd1, 0xa9, 0x88, 0x26, 0x76,
+ 0xb4, 0xee, 0x11, 0x8d, 0xf6, 0xad, 0xb2, 0xa7, 0xbc, 0x73, 0xc4, 0xcd,
+ 0x1c, 0x6e, 0x1a, 0xe6, 0x8d, 0x72, 0x56, 0x44, 0xa0, 0x98, 0xf7, 0x92,
+ 0xf9, 0xd7, 0x79, 0x9b, 0x03, 0xe6, 0x68, 0x5f, 0xa4, 0x5c, 0x7c, 0x3d,
+ 0x50, 0xb4, 0x83, 0xcc, 0xe5, 0xac, 0x0d, 0xe1, 0x3e, 0x4f, 0x14, 0xf2,
+ 0xb4, 0xe4, 0x7d, 0xbf, 0x71, 0xa4, 0xc3, 0x97, 0x73, 0x38, 0xd6, 0x52,
+ 0x7c, 0xc8, 0xa4, 0xb5, 0xea, 0xe9, 0xb2, 0x54, 0x56, 0xd4, 0xeb, 0xb8,
+ 0x57, 0x3a, 0x40, 0x52, 0x5a, 0x5e, 0x46, 0x27, 0xa3, 0x7b, 0x30, 0x2d,
+ 0x08, 0x3d, 0x85, 0x1e, 0x9a, 0xf0, 0x32, 0xa8, 0xf2, 0x10, 0xa2, 0x83,
+ 0x9b, 0xe2, 0x28, 0xf6, 0x9d, 0xcb, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
+ 0x82, 0x01, 0x20, 0x30, 0x82, 0x01, 0x1c, 0x30, 0x12, 0x06, 0x03, 0x55,
+ 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+ 0x02, 0x01, 0x00, 0x30, 0x7d, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x76,
+ 0x30, 0x74, 0x30, 0x38, 0x06, 0x0b, 0x2b, 0x06, 0x04, 0x01, 0x81, 0xad,
+ 0x5a, 0x02, 0x05, 0x03, 0x03, 0x30, 0x29, 0x30, 0x27, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1b, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6b, 0x65, 0x79, 0x6e,
+ 0x65, 0x63, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x43,
+ 0x30, 0x38, 0x06, 0x0b, 0x2b, 0x06, 0x04, 0x01, 0x81, 0xad, 0x5a, 0x02,
+ 0x05, 0x01, 0x03, 0x30, 0x29, 0x30, 0x27, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1b, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6b, 0x65, 0x79, 0x6e, 0x65, 0x63,
+ 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x43, 0x30, 0x37,
+ 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x30, 0x30, 0x2e, 0x30, 0x2c, 0xa0,
+ 0x2a, 0xa0, 0x28, 0x86, 0x26, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x77, 0x77, 0x77, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x70, 0x6c, 0x75, 0x73,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x32, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55,
+ 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x00, 0x11,
+ 0x41, 0xdf, 0x3b, 0x9d, 0x3b, 0xcb, 0xb8, 0xa2, 0xc1, 0x33, 0x92, 0xa8,
+ 0x81, 0xcc, 0xe5, 0x7d, 0xe7, 0x99, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe3, 0x73, 0x2d, 0xdf, 0xcb,
+ 0x0e, 0x28, 0x0c, 0xde, 0xdd, 0xb3, 0xa4, 0xca, 0x79, 0xb8, 0x8e, 0xbb,
+ 0xe8, 0x30, 0x89, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x08,
+ 0x88, 0xfe, 0x1f, 0xa2, 0xca, 0xcd, 0xe2, 0xa0, 0xf1, 0x2e, 0x7c, 0x67,
+ 0x49, 0xfb, 0xdc, 0x94, 0xac, 0x7f, 0x41, 0x0d, 0x78, 0x01, 0xba, 0x31,
+ 0xf7, 0x9b, 0xfb, 0x31, 0x18, 0x77, 0x2f, 0x66, 0x25, 0x94, 0xb8, 0x6d,
+ 0x16, 0x74, 0x81, 0xf1, 0xc0, 0xae, 0x67, 0xc6, 0x14, 0x45, 0x7a, 0x01,
+ 0xd1, 0x13, 0x88, 0xfc, 0xe2, 0x8d, 0x22, 0x1d, 0xbd, 0x1e, 0x0c, 0xc7,
+ 0xa9, 0x7e, 0xd0, 0xc3, 0x97, 0xf6, 0x37, 0x5b, 0x41, 0x5e, 0x67, 0x94,
+ 0x8e, 0xab, 0x69, 0x02, 0x17, 0x18, 0xf5, 0x4d, 0x38, 0xc2, 0x49, 0x28,
+ 0x09, 0x6e, 0x5a, 0x9b, 0xa6, 0x27, 0xdb, 0xc0, 0x5f, 0x8f, 0x44, 0x9c,
+ 0x90, 0x65, 0x99, 0xd8, 0xb3, 0x2e, 0xc1, 0x92, 0xee, 0x1a, 0x9d, 0x0f,
+ 0x72, 0x45, 0x20, 0xfa, 0x2c, 0x0c, 0x9c, 0x5d, 0xcd, 0x5b, 0x54, 0x41,
+ 0x54, 0x4f, 0xd3, 0xe2, 0xc7, 0x59, 0x84, 0x3f, 0x17, 0x7b, 0x7d, 0x0e,
+ 0xc2, 0xef, 0x62, 0xc7, 0xba, 0xb1, 0x26, 0x6c, 0x83, 0x4e, 0xd3, 0x19,
+ 0xc5, 0xff, 0x56, 0xa7, 0xb4, 0x45, 0x3f, 0x7a, 0x9e, 0xfa, 0xd0, 0x39,
+ 0x3e, 0x80, 0x46, 0x75, 0x5d, 0x5a, 0x79, 0x7a, 0x33, 0xc5, 0x01, 0xbc,
+ 0x02, 0x44, 0xce, 0x1b, 0xc0, 0x31, 0x4e, 0x47, 0x96, 0x15, 0x6e, 0xe7,
+ 0xe4, 0x76, 0xf0, 0xc2, 0x90, 0x0d, 0xa1, 0x78, 0xf4, 0x38, 0x00, 0x91,
+ 0x2b, 0x65, 0x7c, 0x79, 0x13, 0xa8, 0x3e, 0x91, 0x14, 0xdc, 0x88, 0x05,
+ 0x08, 0xd7, 0x6f, 0x53, 0xf6, 0x15, 0x43, 0xee, 0xc5, 0x53, 0x56, 0x1a,
+ 0x02, 0xb5, 0xa6, 0xa2, 0x46, 0x8d, 0x1e, 0x13, 0xe4, 0x67, 0xc2, 0x45,
+ 0x5f, 0x40, 0x5e, 0x10, 0x42, 0x58, 0xb5, 0xcd, 0x44, 0xa3, 0x94, 0x4c,
+ 0x1c, 0x54, 0x90, 0x4d, 0x91, 0x9a, 0x26, 0x8b, 0xad, 0xa2, 0x80, 0x50,
+ 0x8d, 0x14, 0x14,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 120024505 (0x7276db9)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=GTE Corporation, OU=GTE CyberTrust Solutions, Inc., CN=GTE CyberTrust Global Root
+ Validity
+ Not Before: Nov 30 16:35:21 2010 GMT
+ Not After : Aug 10 15:34:26 2018 GMT
+ Subject: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:a3:04:bb:22:ab:98:3d:57:e8:26:72:9a:b5:79:
+ d4:29:e2:e1:e8:95:80:b1:b0:e3:5b:8e:2b:29:9a:
+ 64:df:a1:5d:ed:b0:09:05:6d:db:28:2e:ce:62:a2:
+ 62:fe:b4:88:da:12:eb:38:eb:21:9d:c0:41:2b:01:
+ 52:7b:88:77:d3:1c:8f:c7:ba:b9:88:b5:6a:09:e7:
+ 73:e8:11:40:a7:d1:cc:ca:62:8d:2d:e5:8f:0b:a6:
+ 50:d2:a8:50:c3:28:ea:f5:ab:25:87:8a:9a:96:1c:
+ a9:67:b8:3f:0c:d5:f7:f9:52:13:2f:c2:1b:d5:70:
+ 70:f0:8f:c0:12:ca:06:cb:9a:e1:d9:ca:33:7a:77:
+ d6:f8:ec:b9:f1:68:44:42:48:13:d2:c0:c2:a4:ae:
+ 5e:60:fe:b6:a6:05:fc:b4:dd:07:59:02:d4:59:18:
+ 98:63:f5:a5:63:e0:90:0c:7d:5d:b2:06:7a:f3:85:
+ ea:eb:d4:03:ae:5e:84:3e:5f:ff:15:ed:69:bc:f9:
+ 39:36:72:75:cf:77:52:4d:f3:c9:90:2c:b9:3d:e5:
+ c9:23:53:3f:1f:24:98:21:5c:07:99:29:bd:c6:3a:
+ ec:e7:6e:86:3a:6b:97:74:63:33:bd:68:18:31:f0:
+ 78:8d:76:bf:fc:9e:8e:5d:2a:86:a7:4d:90:dc:27:
+ 1a:39
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:3
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://cybertrust.omniroot.com/repository.cfm
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Authority Key Identifier:
+ DirName:/C=US/O=GTE Corporation/OU=GTE CyberTrust Solutions, Inc./CN=GTE CyberTrust Global Root
+ serial:01:A5
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://www.public-trust.com/cgi-bin/CRL/2018/cdp.crl
+
+ X509v3 Subject Key Identifier:
+ E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+ Signature Algorithm: sha1WithRSAEncryption
+ 16:b4:2c:c9:f1:5e:e1:a2:7b:9b:78:20:7a:4a:70:70:86:19:
+ 00:b7:05:2a:e8:c9:25:39:0f:c3:64:3c:75:09:d9:89:15:80:
+ 07:c2:8d:bc:29:a5:64:50:cf:71:75:47:23:bd:4d:d8:7f:77:
+ 9a:51:10:6e:4e:1f:20:3c:47:9c:43:74:7f:96:84:10:4c:13:
+ 43:be:f8:e0:72:2e:ff:bf:ae:3c:0a:03:60:82:4b:6f:f9:9a:
+ c5:1e:f6:af:90:3b:9f:61:3b:3e:de:9b:05:1a:c6:2c:3c:57:
+ 21:08:0f:54:fa:28:63:6c:e8:1b:9c:0f:cf:dd:30:44:13:b9:
+ 57:fe
+-----BEGIN CERTIFICATE-----
+MIIEODCCA6GgAwIBAgIEBydtuTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJV
+UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
+cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
+b2JhbCBSb290MB4XDTEwMTEzMDE2MzUyMVoXDTE4MDgxMDE1MzQyNlowWjELMAkG
+A1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVz
+dDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKrmD1X6CZymrV51Cni4eiVgLGw41uO
+KymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsBUnuId9Mcj8e6uYi1agnn
+c+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/CG9VwcPCP
+wBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPg
+kAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFc
+B5kpvcY67Oduhjprl3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaOCAWow
+ggFmMBIGA1UdEwEB/wQIMAYBAf8CAQMwTgYDVR0gBEcwRTBDBgRVHSAAMDswOQYI
+KwYBBQUHAgEWLWh0dHA6Ly9jeWJlcnRydXN0Lm9tbmlyb290LmNvbS9yZXBvc2l0
+b3J5LmNmbTAOBgNVHQ8BAf8EBAMCAQYwgYkGA1UdIwSBgTB/oXmkdzB1MQswCQYD
+VQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUg
+Q3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRy
+dXN0IEdsb2JhbCBSb290ggIBpTBFBgNVHR8EPjA8MDqgOKA2hjRodHRwOi8vd3d3
+LnB1YmxpYy10cnVzdC5jb20vY2dpLWJpbi9DUkwvMjAxOC9jZHAuY3JsMB0GA1Ud
+DgQWBBTlnVkwgkdYzKz6CFQ2hns6tQRN8DANBgkqhkiG9w0BAQUFAAOBgQAWtCzJ
+8V7honubeCB6SnBwhhkAtwUq6MklOQ/DZDx1CdmJFYAHwo28KaVkUM9xdUcjvU3Y
+f3eaURBuTh8gPEecQ3R/loQQTBNDvvjgci7/v648CgNggktv+ZrFHvavkDufYTs+
+3psFGsYsPFchCA9U+ihjbOgbnA/P3TBEE7lX/g==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert8[] = {
+ 0x30, 0x82, 0x04, 0x38, 0x30, 0x82, 0x03, 0xa1, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x07, 0x27, 0x6d, 0xb9, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x75,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0f,
+ 0x47, 0x54, 0x45, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x1e, 0x47, 0x54, 0x45, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x23, 0x30, 0x21,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1a, 0x47, 0x54, 0x45, 0x20, 0x43,
+ 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c,
+ 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x30, 0x31, 0x31, 0x33, 0x30, 0x31, 0x36, 0x33, 0x35, 0x32,
+ 0x31, 0x5a, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x38, 0x31, 0x30, 0x31, 0x35,
+ 0x33, 0x34, 0x32, 0x36, 0x5a, 0x30, 0x5a, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x45, 0x31, 0x12, 0x30, 0x10,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09, 0x42, 0x61, 0x6c, 0x74, 0x69,
+ 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19,
+ 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x43, 0x79,
+ 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f,
+ 0x74, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f,
+ 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x04,
+ 0xbb, 0x22, 0xab, 0x98, 0x3d, 0x57, 0xe8, 0x26, 0x72, 0x9a, 0xb5, 0x79,
+ 0xd4, 0x29, 0xe2, 0xe1, 0xe8, 0x95, 0x80, 0xb1, 0xb0, 0xe3, 0x5b, 0x8e,
+ 0x2b, 0x29, 0x9a, 0x64, 0xdf, 0xa1, 0x5d, 0xed, 0xb0, 0x09, 0x05, 0x6d,
+ 0xdb, 0x28, 0x2e, 0xce, 0x62, 0xa2, 0x62, 0xfe, 0xb4, 0x88, 0xda, 0x12,
+ 0xeb, 0x38, 0xeb, 0x21, 0x9d, 0xc0, 0x41, 0x2b, 0x01, 0x52, 0x7b, 0x88,
+ 0x77, 0xd3, 0x1c, 0x8f, 0xc7, 0xba, 0xb9, 0x88, 0xb5, 0x6a, 0x09, 0xe7,
+ 0x73, 0xe8, 0x11, 0x40, 0xa7, 0xd1, 0xcc, 0xca, 0x62, 0x8d, 0x2d, 0xe5,
+ 0x8f, 0x0b, 0xa6, 0x50, 0xd2, 0xa8, 0x50, 0xc3, 0x28, 0xea, 0xf5, 0xab,
+ 0x25, 0x87, 0x8a, 0x9a, 0x96, 0x1c, 0xa9, 0x67, 0xb8, 0x3f, 0x0c, 0xd5,
+ 0xf7, 0xf9, 0x52, 0x13, 0x2f, 0xc2, 0x1b, 0xd5, 0x70, 0x70, 0xf0, 0x8f,
+ 0xc0, 0x12, 0xca, 0x06, 0xcb, 0x9a, 0xe1, 0xd9, 0xca, 0x33, 0x7a, 0x77,
+ 0xd6, 0xf8, 0xec, 0xb9, 0xf1, 0x68, 0x44, 0x42, 0x48, 0x13, 0xd2, 0xc0,
+ 0xc2, 0xa4, 0xae, 0x5e, 0x60, 0xfe, 0xb6, 0xa6, 0x05, 0xfc, 0xb4, 0xdd,
+ 0x07, 0x59, 0x02, 0xd4, 0x59, 0x18, 0x98, 0x63, 0xf5, 0xa5, 0x63, 0xe0,
+ 0x90, 0x0c, 0x7d, 0x5d, 0xb2, 0x06, 0x7a, 0xf3, 0x85, 0xea, 0xeb, 0xd4,
+ 0x03, 0xae, 0x5e, 0x84, 0x3e, 0x5f, 0xff, 0x15, 0xed, 0x69, 0xbc, 0xf9,
+ 0x39, 0x36, 0x72, 0x75, 0xcf, 0x77, 0x52, 0x4d, 0xf3, 0xc9, 0x90, 0x2c,
+ 0xb9, 0x3d, 0xe5, 0xc9, 0x23, 0x53, 0x3f, 0x1f, 0x24, 0x98, 0x21, 0x5c,
+ 0x07, 0x99, 0x29, 0xbd, 0xc6, 0x3a, 0xec, 0xe7, 0x6e, 0x86, 0x3a, 0x6b,
+ 0x97, 0x74, 0x63, 0x33, 0xbd, 0x68, 0x18, 0x31, 0xf0, 0x78, 0x8d, 0x76,
+ 0xbf, 0xfc, 0x9e, 0x8e, 0x5d, 0x2a, 0x86, 0xa7, 0x4d, 0x90, 0xdc, 0x27,
+ 0x1a, 0x39, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x6a, 0x30,
+ 0x82, 0x01, 0x66, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x03, 0x30,
+ 0x4e, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x47, 0x30, 0x45, 0x30, 0x43,
+ 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
+ 0x6f, 0x72, 0x79, 0x2e, 0x63, 0x66, 0x6d, 0x30, 0x0e, 0x06, 0x03, 0x55,
+ 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+ 0x81, 0x89, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x81, 0x81, 0x30, 0x7f,
+ 0xa1, 0x79, 0xa4, 0x77, 0x30, 0x75, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
+ 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x18, 0x30, 0x16, 0x06,
+ 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0f, 0x47, 0x54, 0x45, 0x20, 0x43, 0x6f,
+ 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x27, 0x30,
+ 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1e, 0x47, 0x54, 0x45, 0x20,
+ 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x53,
+ 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x1a, 0x47, 0x54, 0x45, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72,
+ 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52,
+ 0x6f, 0x6f, 0x74, 0x82, 0x02, 0x01, 0xa5, 0x30, 0x45, 0x06, 0x03, 0x55,
+ 0x1d, 0x1f, 0x04, 0x3e, 0x30, 0x3c, 0x30, 0x3a, 0xa0, 0x38, 0xa0, 0x36,
+ 0x86, 0x34, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
+ 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73,
+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x67, 0x69, 0x2d, 0x62, 0x69,
+ 0x6e, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x32, 0x30, 0x31, 0x38, 0x2f, 0x63,
+ 0x64, 0x70, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+ 0x0e, 0x04, 0x16, 0x04, 0x14, 0xe5, 0x9d, 0x59, 0x30, 0x82, 0x47, 0x58,
+ 0xcc, 0xac, 0xfa, 0x08, 0x54, 0x36, 0x86, 0x7b, 0x3a, 0xb5, 0x04, 0x4d,
+ 0xf0, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x16, 0xb4, 0x2c, 0xc9,
+ 0xf1, 0x5e, 0xe1, 0xa2, 0x7b, 0x9b, 0x78, 0x20, 0x7a, 0x4a, 0x70, 0x70,
+ 0x86, 0x19, 0x00, 0xb7, 0x05, 0x2a, 0xe8, 0xc9, 0x25, 0x39, 0x0f, 0xc3,
+ 0x64, 0x3c, 0x75, 0x09, 0xd9, 0x89, 0x15, 0x80, 0x07, 0xc2, 0x8d, 0xbc,
+ 0x29, 0xa5, 0x64, 0x50, 0xcf, 0x71, 0x75, 0x47, 0x23, 0xbd, 0x4d, 0xd8,
+ 0x7f, 0x77, 0x9a, 0x51, 0x10, 0x6e, 0x4e, 0x1f, 0x20, 0x3c, 0x47, 0x9c,
+ 0x43, 0x74, 0x7f, 0x96, 0x84, 0x10, 0x4c, 0x13, 0x43, 0xbe, 0xf8, 0xe0,
+ 0x72, 0x2e, 0xff, 0xbf, 0xae, 0x3c, 0x0a, 0x03, 0x60, 0x82, 0x4b, 0x6f,
+ 0xf9, 0x9a, 0xc5, 0x1e, 0xf6, 0xaf, 0x90, 0x3b, 0x9f, 0x61, 0x3b, 0x3e,
+ 0xde, 0x9b, 0x05, 0x1a, 0xc6, 0x2c, 0x3c, 0x57, 0x21, 0x08, 0x0f, 0x54,
+ 0xfa, 0x28, 0x63, 0x6c, 0xe8, 0x1b, 0x9c, 0x0f, 0xcf, 0xdd, 0x30, 0x44,
+ 0x13, 0xb9, 0x57, 0xfe,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146040 (0x23a78)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Aug 29 22:24:58 2014 GMT
+ Not After : May 20 22:24:58 2022 GMT
+ Subject: C=US, O=GeoTrust Inc., OU=Domain Validated SSL, CN=GeoTrust DV SSL CA - G4
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:df:41:94:7a:da:f7:e4:31:43:b6:ea:01:1b:5c:
+ ce:63:ea:fa:6d:a3:d9:6a:ee:2d:9a:75:f9:d5:9c:
+ 5b:bd:34:df:d8:1c:c9:6d:d8:04:88:da:6e:b5:b7:
+ b5:f0:30:ae:40:d6:5d:fa:c4:53:c1:d4:22:9d:04:
+ 4e:11:a6:95:d5:45:7c:41:05:58:e0:4c:dd:f9:ee:
+ 55:bd:5f:46:dc:ad:13:08:9d:2c:e4:f7:82:e6:07:
+ 2b:9e:0e:8c:34:a1:ce:c4:a1:e0:81:70:86:00:06:
+ 3f:2d:ea:7c:9b:28:ae:1b:28:8b:39:09:d3:e7:f0:
+ 45:a4:b1:ba:11:67:90:55:7b:8f:de:ed:38:5c:a1:
+ e1:e3:83:c4:c3:72:91:4f:98:ee:1c:c2:80:aa:64:
+ a5:3e:83:62:1c:cc:e0:9e:f8:5a:c0:13:12:7d:a2:
+ a7:8b:a3:e7:9f:2a:d7:9b:ca:cb:ed:97:01:9c:28:
+ 84:51:04:50:41:bc:b4:fc:78:e9:1b:cf:14:ea:1f:
+ 0f:fc:2e:01:32:8d:b6:35:cb:0a:18:3b:ec:5a:3e:
+ 3c:1b:d3:99:43:1e:2f:f7:bd:f3:5b:12:b9:07:5e:
+ ed:3e:d1:a9:87:cc:77:72:27:d4:d9:75:a2:63:4b:
+ 93:36:bd:e5:5c:d7:bf:5f:79:0d:b3:32:a7:0b:b2:
+ 63:23
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ 0B:50:EC:77:EF:2A:9B:FF:EC:03:A1:0A:FF:AD:C6:E4:2A:18:C7:3E
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g.symcb.com/crls/gtglobal.crl
+
+ Authority Information Access:
+ OCSP - URI:http://g.symcd.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 33:24:d5:90:aa:29:0c:35:b9:2f:c3:c7:42:93:c0:c6:10:4b:
+ 03:08:76:84:10:a2:e0:e7:53:12:27:f2:0a:da:7f:3a:dc:fd:
+ 5c:79:5a:8f:17:74:43:53:b1:d5:d1:5d:59:b9:a6:84:64:ca:
+ f1:3a:0a:59:96:10:bf:a9:81:57:8b:5c:87:dc:7f:e3:e4:bb:
+ 05:7a:a0:32:09:13:4e:10:81:28:1f:9c:03:62:bc:f4:01:b5:
+ 29:83:46:07:b9:e7:b8:5d:c8:e9:d1:dd:ad:3b:f8:34:db:c1:
+ d1:95:a9:91:18:ed:3c:2c:37:11:4d:cc:fe:53:3e:50:43:f9:
+ c3:56:41:ac:53:9b:6c:05:b2:9a:e2:e0:59:57:30:32:b6:26:
+ 4e:13:25:cd:fa:48:70:0f:75:55:60:11:f5:3b:d5:5e:5a:3c:
+ 8b:5b:0f:0f:62:42:48:61:85:8b:10:f4:c1:88:bf:7f:5f:8a:
+ c2:d7:cd:2b:94:5c:1f:34:4a:08:af:eb:ae:89:a8:48:75:55:
+ 95:1d:bb:c0:9a:01:b9:f4:03:22:3e:d4:e6:52:30:0d:67:b9:
+ c0:91:fd:2d:4c:30:8e:bd:8c:a5:04:91:bb:a4:ab:7f:0f:d8:
+ 6f:f0:66:00:c9:a3:5c:f5:b0:8f:83:e6:9c:5a:e6:b6:b9:c5:
+ bc:be:e4:02
+-----BEGIN CERTIFICATE-----
+MIIERDCCAyygAwIBAgIDAjp4MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTQwODI5MjIyNDU4WhcNMjIwNTIwMjIyNDU4WjBmMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UECxMURG9tYWluIFZh
+bGlkYXRlZCBTU0wxIDAeBgNVBAMTF0dlb1RydXN0IERWIFNTTCBDQSAtIEc0MIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA30GUetr35DFDtuoBG1zOY+r6
+baPZau4tmnX51ZxbvTTf2BzJbdgEiNputbe18DCuQNZd+sRTwdQinQROEaaV1UV8
+QQVY4Ezd+e5VvV9G3K0TCJ0s5PeC5gcrng6MNKHOxKHggXCGAAY/Lep8myiuGyiL
+OQnT5/BFpLG6EWeQVXuP3u04XKHh44PEw3KRT5juHMKAqmSlPoNiHMzgnvhawBMS
+faKni6PnnyrXm8rL7ZcBnCiEUQRQQby0/HjpG88U6h8P/C4BMo22NcsKGDvsWj48
+G9OZQx4v973zWxK5B17tPtGph8x3cifU2XWiY0uTNr3lXNe/X3kNszKnC7JjIwID
+AQABo4IBHTCCARkwHwYDVR0jBBgwFoAUwHqYaI2J+6sFZAwRfap9ZbjKzE4wHQYD
+VR0OBBYEFAtQ7HfvKpv/7AOhCv+txuQqGMc+MBIGA1UdEwEB/wQIMAYBAf8CAQAw
+DgYDVR0PAQH/BAQDAgEGMDUGA1UdHwQuMCwwKqAooCaGJGh0dHA6Ly9nLnN5bWNi
+LmNvbS9jcmxzL2d0Z2xvYmFsLmNybDAuBggrBgEFBQcBAQQiMCAwHgYIKwYBBQUH
+MAGGEmh0dHA6Ly9nLnN5bWNkLmNvbTBMBgNVHSAERTBDMEEGCmCGSAGG+EUBBzYw
+MzAxBggrBgEFBQcCARYlaHR0cDovL3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2Vz
+L2NwczANBgkqhkiG9w0BAQsFAAOCAQEAMyTVkKopDDW5L8PHQpPAxhBLAwh2hBCi
+4OdTEifyCtp/Otz9XHlajxd0Q1Ox1dFdWbmmhGTK8ToKWZYQv6mBV4tch9x/4+S7
+BXqgMgkTThCBKB+cA2K89AG1KYNGB7nnuF3I6dHdrTv4NNvB0ZWpkRjtPCw3EU3M
+/lM+UEP5w1ZBrFObbAWymuLgWVcwMrYmThMlzfpIcA91VWAR9TvVXlo8i1sPD2JC
+SGGFixD0wYi/f1+KwtfNK5RcHzRKCK/rromoSHVVlR27wJoBufQDIj7U5lIwDWe5
+wJH9LUwwjr2MpQSRu6Srfw/Yb/BmAMmjXPWwj4PmnFrmtrnFvL7kAg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert9[] = {
+ 0x30, 0x82, 0x04, 0x44, 0x30, 0x82, 0x03, 0x2c, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x78, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30,
+ 0x38, 0x32, 0x39, 0x32, 0x32, 0x32, 0x34, 0x35, 0x38, 0x5a, 0x17, 0x0d,
+ 0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x32, 0x32, 0x34, 0x35, 0x38,
+ 0x5a, 0x30, 0x66, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x14, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61,
+ 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, 0x53, 0x53, 0x4c, 0x31,
+ 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x47, 0x65,
+ 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x44, 0x56, 0x20, 0x53, 0x53,
+ 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x34, 0x30, 0x82, 0x01,
+ 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+ 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xdf, 0x41, 0x94, 0x7a, 0xda, 0xf7,
+ 0xe4, 0x31, 0x43, 0xb6, 0xea, 0x01, 0x1b, 0x5c, 0xce, 0x63, 0xea, 0xfa,
+ 0x6d, 0xa3, 0xd9, 0x6a, 0xee, 0x2d, 0x9a, 0x75, 0xf9, 0xd5, 0x9c, 0x5b,
+ 0xbd, 0x34, 0xdf, 0xd8, 0x1c, 0xc9, 0x6d, 0xd8, 0x04, 0x88, 0xda, 0x6e,
+ 0xb5, 0xb7, 0xb5, 0xf0, 0x30, 0xae, 0x40, 0xd6, 0x5d, 0xfa, 0xc4, 0x53,
+ 0xc1, 0xd4, 0x22, 0x9d, 0x04, 0x4e, 0x11, 0xa6, 0x95, 0xd5, 0x45, 0x7c,
+ 0x41, 0x05, 0x58, 0xe0, 0x4c, 0xdd, 0xf9, 0xee, 0x55, 0xbd, 0x5f, 0x46,
+ 0xdc, 0xad, 0x13, 0x08, 0x9d, 0x2c, 0xe4, 0xf7, 0x82, 0xe6, 0x07, 0x2b,
+ 0x9e, 0x0e, 0x8c, 0x34, 0xa1, 0xce, 0xc4, 0xa1, 0xe0, 0x81, 0x70, 0x86,
+ 0x00, 0x06, 0x3f, 0x2d, 0xea, 0x7c, 0x9b, 0x28, 0xae, 0x1b, 0x28, 0x8b,
+ 0x39, 0x09, 0xd3, 0xe7, 0xf0, 0x45, 0xa4, 0xb1, 0xba, 0x11, 0x67, 0x90,
+ 0x55, 0x7b, 0x8f, 0xde, 0xed, 0x38, 0x5c, 0xa1, 0xe1, 0xe3, 0x83, 0xc4,
+ 0xc3, 0x72, 0x91, 0x4f, 0x98, 0xee, 0x1c, 0xc2, 0x80, 0xaa, 0x64, 0xa5,
+ 0x3e, 0x83, 0x62, 0x1c, 0xcc, 0xe0, 0x9e, 0xf8, 0x5a, 0xc0, 0x13, 0x12,
+ 0x7d, 0xa2, 0xa7, 0x8b, 0xa3, 0xe7, 0x9f, 0x2a, 0xd7, 0x9b, 0xca, 0xcb,
+ 0xed, 0x97, 0x01, 0x9c, 0x28, 0x84, 0x51, 0x04, 0x50, 0x41, 0xbc, 0xb4,
+ 0xfc, 0x78, 0xe9, 0x1b, 0xcf, 0x14, 0xea, 0x1f, 0x0f, 0xfc, 0x2e, 0x01,
+ 0x32, 0x8d, 0xb6, 0x35, 0xcb, 0x0a, 0x18, 0x3b, 0xec, 0x5a, 0x3e, 0x3c,
+ 0x1b, 0xd3, 0x99, 0x43, 0x1e, 0x2f, 0xf7, 0xbd, 0xf3, 0x5b, 0x12, 0xb9,
+ 0x07, 0x5e, 0xed, 0x3e, 0xd1, 0xa9, 0x87, 0xcc, 0x77, 0x72, 0x27, 0xd4,
+ 0xd9, 0x75, 0xa2, 0x63, 0x4b, 0x93, 0x36, 0xbd, 0xe5, 0x5c, 0xd7, 0xbf,
+ 0x5f, 0x79, 0x0d, 0xb3, 0x32, 0xa7, 0x0b, 0xb2, 0x63, 0x23, 0x02, 0x03,
+ 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x1d, 0x30, 0x82, 0x01, 0x19, 0x30,
+ 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+ 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64, 0x0c, 0x11,
+ 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d, 0x06, 0x03,
+ 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x0b, 0x50, 0xec, 0x77, 0xef,
+ 0x2a, 0x9b, 0xff, 0xec, 0x03, 0xa1, 0x0a, 0xff, 0xad, 0xc6, 0xe4, 0x2a,
+ 0x18, 0xc7, 0x3e, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+ 0x02, 0x01, 0x06, 0x30, 0x35, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2e,
+ 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67, 0x74,
+ 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x2e,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22,
+ 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67,
+ 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4c,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06,
+ 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30,
+ 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+ 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+ 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
+ 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
+ 0x33, 0x24, 0xd5, 0x90, 0xaa, 0x29, 0x0c, 0x35, 0xb9, 0x2f, 0xc3, 0xc7,
+ 0x42, 0x93, 0xc0, 0xc6, 0x10, 0x4b, 0x03, 0x08, 0x76, 0x84, 0x10, 0xa2,
+ 0xe0, 0xe7, 0x53, 0x12, 0x27, 0xf2, 0x0a, 0xda, 0x7f, 0x3a, 0xdc, 0xfd,
+ 0x5c, 0x79, 0x5a, 0x8f, 0x17, 0x74, 0x43, 0x53, 0xb1, 0xd5, 0xd1, 0x5d,
+ 0x59, 0xb9, 0xa6, 0x84, 0x64, 0xca, 0xf1, 0x3a, 0x0a, 0x59, 0x96, 0x10,
+ 0xbf, 0xa9, 0x81, 0x57, 0x8b, 0x5c, 0x87, 0xdc, 0x7f, 0xe3, 0xe4, 0xbb,
+ 0x05, 0x7a, 0xa0, 0x32, 0x09, 0x13, 0x4e, 0x10, 0x81, 0x28, 0x1f, 0x9c,
+ 0x03, 0x62, 0xbc, 0xf4, 0x01, 0xb5, 0x29, 0x83, 0x46, 0x07, 0xb9, 0xe7,
+ 0xb8, 0x5d, 0xc8, 0xe9, 0xd1, 0xdd, 0xad, 0x3b, 0xf8, 0x34, 0xdb, 0xc1,
+ 0xd1, 0x95, 0xa9, 0x91, 0x18, 0xed, 0x3c, 0x2c, 0x37, 0x11, 0x4d, 0xcc,
+ 0xfe, 0x53, 0x3e, 0x50, 0x43, 0xf9, 0xc3, 0x56, 0x41, 0xac, 0x53, 0x9b,
+ 0x6c, 0x05, 0xb2, 0x9a, 0xe2, 0xe0, 0x59, 0x57, 0x30, 0x32, 0xb6, 0x26,
+ 0x4e, 0x13, 0x25, 0xcd, 0xfa, 0x48, 0x70, 0x0f, 0x75, 0x55, 0x60, 0x11,
+ 0xf5, 0x3b, 0xd5, 0x5e, 0x5a, 0x3c, 0x8b, 0x5b, 0x0f, 0x0f, 0x62, 0x42,
+ 0x48, 0x61, 0x85, 0x8b, 0x10, 0xf4, 0xc1, 0x88, 0xbf, 0x7f, 0x5f, 0x8a,
+ 0xc2, 0xd7, 0xcd, 0x2b, 0x94, 0x5c, 0x1f, 0x34, 0x4a, 0x08, 0xaf, 0xeb,
+ 0xae, 0x89, 0xa8, 0x48, 0x75, 0x55, 0x95, 0x1d, 0xbb, 0xc0, 0x9a, 0x01,
+ 0xb9, 0xf4, 0x03, 0x22, 0x3e, 0xd4, 0xe6, 0x52, 0x30, 0x0d, 0x67, 0xb9,
+ 0xc0, 0x91, 0xfd, 0x2d, 0x4c, 0x30, 0x8e, 0xbd, 0x8c, 0xa5, 0x04, 0x91,
+ 0xbb, 0xa4, 0xab, 0x7f, 0x0f, 0xd8, 0x6f, 0xf0, 0x66, 0x00, 0xc9, 0xa3,
+ 0x5c, 0xf5, 0xb0, 0x8f, 0x83, 0xe6, 0x9c, 0x5a, 0xe6, 0xb6, 0xb9, 0xc5,
+ 0xbc, 0xbe, 0xe4, 0x02,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 33:65:50:08:79:ad:73:e2:30:b9:e0:1d:0d:7f:ac:91
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
+ Validity
+ Not Before: Nov 17 00:00:00 2006 GMT
+ Not After : Dec 30 23:59:59 2020 GMT
+ Subject: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:ac:a0:f0:fb:80:59:d4:9c:c7:a4:cf:9d:a1:59:
+ 73:09:10:45:0c:0d:2c:6e:68:f1:6c:5b:48:68:49:
+ 59:37:fc:0b:33:19:c2:77:7f:cc:10:2d:95:34:1c:
+ e6:eb:4d:09:a7:1c:d2:b8:c9:97:36:02:b7:89:d4:
+ 24:5f:06:c0:cc:44:94:94:8d:02:62:6f:eb:5a:dd:
+ 11:8d:28:9a:5c:84:90:10:7a:0d:bd:74:66:2f:6a:
+ 38:a0:e2:d5:54:44:eb:1d:07:9f:07:ba:6f:ee:e9:
+ fd:4e:0b:29:f5:3e:84:a0:01:f1:9c:ab:f8:1c:7e:
+ 89:a4:e8:a1:d8:71:65:0d:a3:51:7b:ee:bc:d2:22:
+ 60:0d:b9:5b:9d:df:ba:fc:51:5b:0b:af:98:b2:e9:
+ 2e:e9:04:e8:62:87:de:2b:c8:d7:4e:c1:4c:64:1e:
+ dd:cf:87:58:ba:4a:4f:ca:68:07:1d:1c:9d:4a:c6:
+ d5:2f:91:cc:7c:71:72:1c:c5:c0:67:eb:32:fd:c9:
+ 92:5c:94:da:85:c0:9b:bf:53:7d:2b:09:f4:8c:9d:
+ 91:1f:97:6a:52:cb:de:09:36:a4:77:d8:7b:87:50:
+ 44:d5:3e:6e:29:69:fb:39:49:26:1e:09:a5:80:7b:
+ 40:2d:eb:e8:27:85:c9:fe:61:fd:7e:e6:7c:97:1d:
+ d5:9d
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.thawte.com/cps
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.thawte.com/ThawtePremiumServerCA.crl
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 84:a8:4c:c9:3e:2a:bc:9a:e2:cc:8f:0b:b2:25:77:c4:61:89:
+ 89:63:5a:d4:a3:15:40:d4:fb:5e:3f:b4:43:ea:63:17:2b:6b:
+ 99:74:9e:09:a8:dd:d4:56:15:2e:7a:79:31:5f:63:96:53:1b:
+ 34:d9:15:ea:4f:6d:70:ca:be:f6:82:a9:ed:da:85:77:cc:76:
+ 1c:6a:81:0a:21:d8:41:99:7f:5e:2e:82:c1:e8:aa:f7:93:81:
+ 05:aa:92:b4:1f:b7:9a:c0:07:17:f5:cb:c6:b4:4c:0e:d7:56:
+ dc:71:20:74:38:d6:74:c6:d6:8f:6b:af:8b:8d:a0:6c:29:0b:
+ 61:e0
+-----BEGIN CERTIFICATE-----
+MIIERTCCA66gAwIBAgIQM2VQCHmtc+IwueAdDX+skTANBgkqhkiG9w0BAQUFADCB
+zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
+Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
+CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
+d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
+cnZlckB0aGF3dGUuY29tMB4XDTA2MTExNzAwMDAwMFoXDTIwMTIzMDIzNTk1OVow
+gakxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUsIEluYy4xKDAmBgNVBAsT
+H0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xODA2BgNVBAsTLyhjKSAy
+MDA2IHRoYXd0ZSwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYD
+VQQDExZ0aGF3dGUgUHJpbWFyeSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEArKDw+4BZ1JzHpM+doVlzCRBFDA0sbmjxbFtIaElZN/wLMxnC
+d3/MEC2VNBzm600JpxzSuMmXNgK3idQkXwbAzESUlI0CYm/rWt0RjSiaXISQEHoN
+vXRmL2o4oOLVVETrHQefB7pv7un9Tgsp9T6EoAHxnKv4HH6JpOih2HFlDaNRe+68
+0iJgDblbnd+6/FFbC6+Ysuku6QToYofeK8jXTsFMZB7dz4dYukpPymgHHRydSsbV
+L5HMfHFyHMXAZ+sy/cmSXJTahcCbv1N9Kwn0jJ2RH5dqUsveCTakd9h7h1BE1T5u
+KWn7OUkmHgmlgHtALevoJ4XJ/mH9fuZ8lx3VnQIDAQABo4HCMIG/MA8GA1UdEwEB
+/wQFMAMBAf8wOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHBz
+Oi8vd3d3LnRoYXd0ZS5jb20vY3BzMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
+e1tFz6/Oy3r9MZIaarbzRutXSFAwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cDovL2Ny
+bC50aGF3dGUuY29tL1RoYXd0ZVByZW1pdW1TZXJ2ZXJDQS5jcmwwDQYJKoZIhvcN
+AQEFBQADgYEAhKhMyT4qvJrizI8LsiV3xGGJiWNa1KMVQNT7Xj+0Q+pjFytrmXSe
+Cajd1FYVLnp5MV9jllMbNNkV6k9tcMq+9oKp7dqFd8x2HGqBCiHYQZl/Xi6Cweiq
+95OBBaqStB+3msAHF/XLxrRMDtdW3HEgdDjWdMbWj2uvi42gbCkLYeA=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert10[] = {
+ 0x30, 0x82, 0x04, 0x45, 0x30, 0x82, 0x03, 0xae, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x33, 0x65, 0x50, 0x08, 0x79, 0xad, 0x73, 0xe2, 0x30,
+ 0xb9, 0xe0, 0x1d, 0x0d, 0x7f, 0xac, 0x91, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+ 0xce, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x5a, 0x41, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
+ 0x0c, 0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x43, 0x61, 0x70,
+ 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x09,
+ 0x43, 0x61, 0x70, 0x65, 0x20, 0x54, 0x6f, 0x77, 0x6e, 0x31, 0x1d, 0x30,
+ 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x54, 0x68, 0x61, 0x77,
+ 0x74, 0x65, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e,
+ 0x67, 0x20, 0x63, 0x63, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x1f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x73, 0x20, 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x21,
+ 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x18, 0x54, 0x68, 0x61,
+ 0x77, 0x74, 0x65, 0x20, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x20,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x31, 0x28, 0x30,
+ 0x26, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01,
+ 0x16, 0x19, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x2d, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x40, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x31,
+ 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30,
+ 0x31, 0x32, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30,
+ 0x81, 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+ 0x02, 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x13, 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x1f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20,
+ 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36,
+ 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32,
+ 0x30, 0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61,
+ 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73,
+ 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20,
+ 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74,
+ 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xac, 0xa0, 0xf0, 0xfb, 0x80, 0x59, 0xd4, 0x9c, 0xc7, 0xa4, 0xcf, 0x9d,
+ 0xa1, 0x59, 0x73, 0x09, 0x10, 0x45, 0x0c, 0x0d, 0x2c, 0x6e, 0x68, 0xf1,
+ 0x6c, 0x5b, 0x48, 0x68, 0x49, 0x59, 0x37, 0xfc, 0x0b, 0x33, 0x19, 0xc2,
+ 0x77, 0x7f, 0xcc, 0x10, 0x2d, 0x95, 0x34, 0x1c, 0xe6, 0xeb, 0x4d, 0x09,
+ 0xa7, 0x1c, 0xd2, 0xb8, 0xc9, 0x97, 0x36, 0x02, 0xb7, 0x89, 0xd4, 0x24,
+ 0x5f, 0x06, 0xc0, 0xcc, 0x44, 0x94, 0x94, 0x8d, 0x02, 0x62, 0x6f, 0xeb,
+ 0x5a, 0xdd, 0x11, 0x8d, 0x28, 0x9a, 0x5c, 0x84, 0x90, 0x10, 0x7a, 0x0d,
+ 0xbd, 0x74, 0x66, 0x2f, 0x6a, 0x38, 0xa0, 0xe2, 0xd5, 0x54, 0x44, 0xeb,
+ 0x1d, 0x07, 0x9f, 0x07, 0xba, 0x6f, 0xee, 0xe9, 0xfd, 0x4e, 0x0b, 0x29,
+ 0xf5, 0x3e, 0x84, 0xa0, 0x01, 0xf1, 0x9c, 0xab, 0xf8, 0x1c, 0x7e, 0x89,
+ 0xa4, 0xe8, 0xa1, 0xd8, 0x71, 0x65, 0x0d, 0xa3, 0x51, 0x7b, 0xee, 0xbc,
+ 0xd2, 0x22, 0x60, 0x0d, 0xb9, 0x5b, 0x9d, 0xdf, 0xba, 0xfc, 0x51, 0x5b,
+ 0x0b, 0xaf, 0x98, 0xb2, 0xe9, 0x2e, 0xe9, 0x04, 0xe8, 0x62, 0x87, 0xde,
+ 0x2b, 0xc8, 0xd7, 0x4e, 0xc1, 0x4c, 0x64, 0x1e, 0xdd, 0xcf, 0x87, 0x58,
+ 0xba, 0x4a, 0x4f, 0xca, 0x68, 0x07, 0x1d, 0x1c, 0x9d, 0x4a, 0xc6, 0xd5,
+ 0x2f, 0x91, 0xcc, 0x7c, 0x71, 0x72, 0x1c, 0xc5, 0xc0, 0x67, 0xeb, 0x32,
+ 0xfd, 0xc9, 0x92, 0x5c, 0x94, 0xda, 0x85, 0xc0, 0x9b, 0xbf, 0x53, 0x7d,
+ 0x2b, 0x09, 0xf4, 0x8c, 0x9d, 0x91, 0x1f, 0x97, 0x6a, 0x52, 0xcb, 0xde,
+ 0x09, 0x36, 0xa4, 0x77, 0xd8, 0x7b, 0x87, 0x50, 0x44, 0xd5, 0x3e, 0x6e,
+ 0x29, 0x69, 0xfb, 0x39, 0x49, 0x26, 0x1e, 0x09, 0xa5, 0x80, 0x7b, 0x40,
+ 0x2d, 0xeb, 0xe8, 0x27, 0x85, 0xc9, 0xfe, 0x61, 0xfd, 0x7e, 0xe6, 0x7c,
+ 0x97, 0x1d, 0xd5, 0x9d, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xc2,
+ 0x30, 0x81, 0xbf, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x3b, 0x06, 0x03,
+ 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06, 0x04, 0x55,
+ 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73,
+ 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74,
+ 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0e, 0x06,
+ 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+ 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x7b, 0x5b, 0x45, 0xcf, 0xaf, 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a,
+ 0x6a, 0xb6, 0xf3, 0x46, 0xeb, 0x57, 0x48, 0x50, 0x30, 0x40, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x39, 0x30, 0x37, 0x30, 0x35, 0xa0, 0x33, 0xa0,
+ 0x31, 0x86, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x72, 0x65, 0x6d, 0x69,
+ 0x75, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x41, 0x2e, 0x63,
+ 0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x84, 0xa8, 0x4c,
+ 0xc9, 0x3e, 0x2a, 0xbc, 0x9a, 0xe2, 0xcc, 0x8f, 0x0b, 0xb2, 0x25, 0x77,
+ 0xc4, 0x61, 0x89, 0x89, 0x63, 0x5a, 0xd4, 0xa3, 0x15, 0x40, 0xd4, 0xfb,
+ 0x5e, 0x3f, 0xb4, 0x43, 0xea, 0x63, 0x17, 0x2b, 0x6b, 0x99, 0x74, 0x9e,
+ 0x09, 0xa8, 0xdd, 0xd4, 0x56, 0x15, 0x2e, 0x7a, 0x79, 0x31, 0x5f, 0x63,
+ 0x96, 0x53, 0x1b, 0x34, 0xd9, 0x15, 0xea, 0x4f, 0x6d, 0x70, 0xca, 0xbe,
+ 0xf6, 0x82, 0xa9, 0xed, 0xda, 0x85, 0x77, 0xcc, 0x76, 0x1c, 0x6a, 0x81,
+ 0x0a, 0x21, 0xd8, 0x41, 0x99, 0x7f, 0x5e, 0x2e, 0x82, 0xc1, 0xe8, 0xaa,
+ 0xf7, 0x93, 0x81, 0x05, 0xaa, 0x92, 0xb4, 0x1f, 0xb7, 0x9a, 0xc0, 0x07,
+ 0x17, 0xf5, 0xcb, 0xc6, 0xb4, 0x4c, 0x0e, 0xd7, 0x56, 0xdc, 0x71, 0x20,
+ 0x74, 0x38, 0xd6, 0x74, 0xc6, 0xd6, 0x8f, 0x6b, 0xaf, 0x8b, 0x8d, 0xa0,
+ 0x6c, 0x29, 0x0b, 0x61, 0xe0,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 04:00:00:00:00:01:44:4e:f0:36:31
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+ Validity
+ Not Before: Feb 20 10:00:00 2014 GMT
+ Not After : Feb 20 10:00:00 2024 GMT
+ Subject: C=BE, O=GlobalSign nv-sa, CN=AlphaSSL CA - SHA256 - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:da:01:ec:e4:ec:73:60:fb:7e:8f:6a:b7:c6:17:
+ e3:92:64:32:d4:ac:00:d9:a2:0f:b9:ed:ee:6b:8a:
+ 86:ca:92:67:d9:74:d7:5d:47:02:3c:8f:40:d6:9e:
+ 6d:14:cd:c3:da:29:39:a7:0f:05:0a:68:a2:66:1a:
+ 1e:c4:b2:8b:76:58:e5:ab:5d:1d:8f:40:b3:39:8b:
+ ef:1e:83:7d:22:d0:e3:a9:00:2e:ec:53:cf:62:19:
+ 85:44:28:4c:c0:27:cb:7b:0e:ec:10:64:00:10:a4:
+ 05:cc:a0:72:be:41:6c:31:5b:48:e4:b1:ec:b9:23:
+ eb:55:4d:d0:7d:62:4a:a5:b4:a5:a4:59:85:c5:25:
+ 91:a6:fe:a6:09:9f:06:10:6d:8f:81:0c:64:40:5e:
+ 73:00:9a:e0:2e:65:98:54:10:00:70:98:c8:e1:ed:
+ 34:5f:d8:9c:c7:0d:c0:d6:23:59:45:fc:fe:55:7a:
+ 86:ee:94:60:22:f1:ae:d1:e6:55:46:f6:99:c5:1b:
+ 08:74:5f:ac:b0:64:84:8f:89:38:1c:a1:a7:90:21:
+ 4f:02:6e:bd:e0:61:67:d4:f8:42:87:0f:0a:f7:c9:
+ 04:6d:2a:a9:2f:ef:42:a5:df:dd:a3:53:db:98:1e:
+ 81:f9:9a:72:7b:5a:de:4f:3e:7f:a2:58:a0:e2:17:
+ ad:67
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Subject Key Identifier:
+ F5:CD:D5:3C:08:50:F9:6A:4F:3A:B7:97:DA:56:83:E6:69:D2:68:F7
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.alphassl.com/repository/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.globalsign.net/root.crl
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+ X509v3 Authority Key Identifier:
+ keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 60:40:68:16:47:e7:16:8d:db:5c:a1:56:2a:cb:f4:5c:9b:b0:
+ 1e:a2:4b:f5:cb:02:3f:f8:0b:a1:f2:a7:42:d4:b7:4c:eb:e3:
+ 66:80:f3:25:43:78:2e:1b:17:56:07:52:18:cb:d1:a8:ec:e6:
+ fb:73:3e:a4:62:8c:80:b4:d2:c5:12:73:a3:d3:fa:02:38:be:
+ 63:3d:84:b8:99:c1:f1:ba:f7:9f:c3:40:d1:58:18:53:c1:62:
+ dd:af:18:42:7f:34:4e:c5:43:d5:71:b0:30:00:c7:e3:90:ae:
+ 3f:57:86:97:ce:ea:0c:12:8e:22:70:e3:66:a7:54:7f:2e:28:
+ cb:d4:54:d0:b3:1e:62:67:08:f9:27:e1:cb:e3:66:b8:24:1b:
+ 89:6a:89:44:65:f2:d9:4c:d2:58:1c:8c:4e:c0:95:a1:d4:ef:
+ 67:2f:38:20:e8:2e:ff:96:51:f0:ba:d8:3d:92:70:47:65:1c:
+ 9e:73:72:b4:60:0c:5c:e2:d1:73:76:e0:af:4e:e2:e5:37:a5:
+ 45:2f:8a:23:3e:87:c7:30:e6:31:38:7c:f4:dd:52:ca:f3:53:
+ 04:25:57:56:66:94:e8:0b:ee:e6:03:14:4e:ee:fd:6d:94:64:
+ 9e:5e:ce:79:d4:b2:a6:cf:40:b1:44:a8:3e:87:19:5e:e9:f8:
+ 21:16:59:53
+-----BEGIN CERTIFICATE-----
+MIIETTCCAzWgAwIBAgILBAAAAAABRE7wNjEwDQYJKoZIhvcNAQELBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
+MDBaFw0yNDAyMjAxMDAwMDBaMEwxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMSIwIAYDVQQDExlBbHBoYVNTTCBDQSAtIFNIQTI1NiAtIEcy
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2gHs5OxzYPt+j2q3xhfj
+kmQy1KwA2aIPue3ua4qGypJn2XTXXUcCPI9A1p5tFM3D2ik5pw8FCmiiZhoexLKL
+dljlq10dj0CzOYvvHoN9ItDjqQAu7FPPYhmFRChMwCfLew7sEGQAEKQFzKByvkFs
+MVtI5LHsuSPrVU3QfWJKpbSlpFmFxSWRpv6mCZ8GEG2PgQxkQF5zAJrgLmWYVBAA
+cJjI4e00X9icxw3A1iNZRfz+VXqG7pRgIvGu0eZVRvaZxRsIdF+ssGSEj4k4HKGn
+kCFPAm694GFn1PhChw8K98kEbSqpL+9Cpd/do1PbmB6B+Zpye1reTz5/olig4het
+ZwIDAQABo4IBIzCCAR8wDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwHQYDVR0OBBYEFPXN1TwIUPlqTzq3l9pWg+Zp0mj3MEUGA1UdIAQ+MDwwOgYE
+VR0gADAyMDAGCCsGAQUFBwIBFiRodHRwczovL3d3dy5hbHBoYXNzbC5jb20vcmVw
+b3NpdG9yeS8wMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5nbG9iYWxzaWdu
+Lm5ldC9yb290LmNybDA9BggrBgEFBQcBAQQxMC8wLQYIKwYBBQUHMAGGIWh0dHA6
+Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyMTAfBgNVHSMEGDAWgBRge2YaRQ2X
+yolQL30EzTSo//z9SzANBgkqhkiG9w0BAQsFAAOCAQEAYEBoFkfnFo3bXKFWKsv0
+XJuwHqJL9csCP/gLofKnQtS3TOvjZoDzJUN4LhsXVgdSGMvRqOzm+3M+pGKMgLTS
+xRJzo9P6Aji+Yz2EuJnB8br3n8NA0VgYU8Fi3a8YQn80TsVD1XGwMADH45CuP1eG
+l87qDBKOInDjZqdUfy4oy9RU0LMeYmcI+Sfhy+NmuCQbiWqJRGXy2UzSWByMTsCV
+odTvZy84IOgu/5ZR8LrYPZJwR2UcnnNytGAMXOLRc3bgr07i5TelRS+KIz6HxzDm
+MTh89N1SyvNTBCVXVmaU6Avu5gMUTu79bZRknl7OedSyps9AsUSoPocZXun4IRZZ
+Uw==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert11[] = {
+ 0x30, 0x82, 0x04, 0x4d, 0x30, 0x82, 0x03, 0x35, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x4e, 0xf0,
+ 0x36, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+ 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61, 0x31,
+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x07, 0x52, 0x6f,
+ 0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
+ 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e,
+ 0x17, 0x0d, 0x31, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x4c, 0x31, 0x0b, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
+ 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
+ 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19, 0x41,
+ 0x6c, 0x70, 0x68, 0x61, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d,
+ 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20, 0x47, 0x32,
+ 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+ 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0x01, 0xec,
+ 0xe4, 0xec, 0x73, 0x60, 0xfb, 0x7e, 0x8f, 0x6a, 0xb7, 0xc6, 0x17, 0xe3,
+ 0x92, 0x64, 0x32, 0xd4, 0xac, 0x00, 0xd9, 0xa2, 0x0f, 0xb9, 0xed, 0xee,
+ 0x6b, 0x8a, 0x86, 0xca, 0x92, 0x67, 0xd9, 0x74, 0xd7, 0x5d, 0x47, 0x02,
+ 0x3c, 0x8f, 0x40, 0xd6, 0x9e, 0x6d, 0x14, 0xcd, 0xc3, 0xda, 0x29, 0x39,
+ 0xa7, 0x0f, 0x05, 0x0a, 0x68, 0xa2, 0x66, 0x1a, 0x1e, 0xc4, 0xb2, 0x8b,
+ 0x76, 0x58, 0xe5, 0xab, 0x5d, 0x1d, 0x8f, 0x40, 0xb3, 0x39, 0x8b, 0xef,
+ 0x1e, 0x83, 0x7d, 0x22, 0xd0, 0xe3, 0xa9, 0x00, 0x2e, 0xec, 0x53, 0xcf,
+ 0x62, 0x19, 0x85, 0x44, 0x28, 0x4c, 0xc0, 0x27, 0xcb, 0x7b, 0x0e, 0xec,
+ 0x10, 0x64, 0x00, 0x10, 0xa4, 0x05, 0xcc, 0xa0, 0x72, 0xbe, 0x41, 0x6c,
+ 0x31, 0x5b, 0x48, 0xe4, 0xb1, 0xec, 0xb9, 0x23, 0xeb, 0x55, 0x4d, 0xd0,
+ 0x7d, 0x62, 0x4a, 0xa5, 0xb4, 0xa5, 0xa4, 0x59, 0x85, 0xc5, 0x25, 0x91,
+ 0xa6, 0xfe, 0xa6, 0x09, 0x9f, 0x06, 0x10, 0x6d, 0x8f, 0x81, 0x0c, 0x64,
+ 0x40, 0x5e, 0x73, 0x00, 0x9a, 0xe0, 0x2e, 0x65, 0x98, 0x54, 0x10, 0x00,
+ 0x70, 0x98, 0xc8, 0xe1, 0xed, 0x34, 0x5f, 0xd8, 0x9c, 0xc7, 0x0d, 0xc0,
+ 0xd6, 0x23, 0x59, 0x45, 0xfc, 0xfe, 0x55, 0x7a, 0x86, 0xee, 0x94, 0x60,
+ 0x22, 0xf1, 0xae, 0xd1, 0xe6, 0x55, 0x46, 0xf6, 0x99, 0xc5, 0x1b, 0x08,
+ 0x74, 0x5f, 0xac, 0xb0, 0x64, 0x84, 0x8f, 0x89, 0x38, 0x1c, 0xa1, 0xa7,
+ 0x90, 0x21, 0x4f, 0x02, 0x6e, 0xbd, 0xe0, 0x61, 0x67, 0xd4, 0xf8, 0x42,
+ 0x87, 0x0f, 0x0a, 0xf7, 0xc9, 0x04, 0x6d, 0x2a, 0xa9, 0x2f, 0xef, 0x42,
+ 0xa5, 0xdf, 0xdd, 0xa3, 0x53, 0xdb, 0x98, 0x1e, 0x81, 0xf9, 0x9a, 0x72,
+ 0x7b, 0x5a, 0xde, 0x4f, 0x3e, 0x7f, 0xa2, 0x58, 0xa0, 0xe2, 0x17, 0xad,
+ 0x67, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x23, 0x30, 0x82,
+ 0x01, 0x1f, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+ 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+ 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+ 0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0xf5, 0xcd, 0xd5, 0x3c, 0x08, 0x50, 0xf9, 0x6a, 0x4f, 0x3a, 0xb7,
+ 0x97, 0xda, 0x56, 0x83, 0xe6, 0x69, 0xd2, 0x68, 0xf7, 0x30, 0x45, 0x06,
+ 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3e, 0x30, 0x3c, 0x30, 0x3a, 0x06, 0x04,
+ 0x55, 0x1d, 0x20, 0x00, 0x30, 0x32, 0x30, 0x30, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x24, 0x68, 0x74, 0x74, 0x70,
+ 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x30, 0x33, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30, 0x28, 0xa0, 0x26, 0xa0,
+ 0x24, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x6c, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e,
+ 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72,
+ 0x6c, 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+ 0x01, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61,
+ 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f,
+ 0x6f, 0x74, 0x72, 0x31, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+ 0x18, 0x30, 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66, 0x1a, 0x45, 0x0d, 0x97,
+ 0xca, 0x89, 0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34, 0xa8, 0xff, 0xfc, 0xfd,
+ 0x4b, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x60, 0x40, 0x68,
+ 0x16, 0x47, 0xe7, 0x16, 0x8d, 0xdb, 0x5c, 0xa1, 0x56, 0x2a, 0xcb, 0xf4,
+ 0x5c, 0x9b, 0xb0, 0x1e, 0xa2, 0x4b, 0xf5, 0xcb, 0x02, 0x3f, 0xf8, 0x0b,
+ 0xa1, 0xf2, 0xa7, 0x42, 0xd4, 0xb7, 0x4c, 0xeb, 0xe3, 0x66, 0x80, 0xf3,
+ 0x25, 0x43, 0x78, 0x2e, 0x1b, 0x17, 0x56, 0x07, 0x52, 0x18, 0xcb, 0xd1,
+ 0xa8, 0xec, 0xe6, 0xfb, 0x73, 0x3e, 0xa4, 0x62, 0x8c, 0x80, 0xb4, 0xd2,
+ 0xc5, 0x12, 0x73, 0xa3, 0xd3, 0xfa, 0x02, 0x38, 0xbe, 0x63, 0x3d, 0x84,
+ 0xb8, 0x99, 0xc1, 0xf1, 0xba, 0xf7, 0x9f, 0xc3, 0x40, 0xd1, 0x58, 0x18,
+ 0x53, 0xc1, 0x62, 0xdd, 0xaf, 0x18, 0x42, 0x7f, 0x34, 0x4e, 0xc5, 0x43,
+ 0xd5, 0x71, 0xb0, 0x30, 0x00, 0xc7, 0xe3, 0x90, 0xae, 0x3f, 0x57, 0x86,
+ 0x97, 0xce, 0xea, 0x0c, 0x12, 0x8e, 0x22, 0x70, 0xe3, 0x66, 0xa7, 0x54,
+ 0x7f, 0x2e, 0x28, 0xcb, 0xd4, 0x54, 0xd0, 0xb3, 0x1e, 0x62, 0x67, 0x08,
+ 0xf9, 0x27, 0xe1, 0xcb, 0xe3, 0x66, 0xb8, 0x24, 0x1b, 0x89, 0x6a, 0x89,
+ 0x44, 0x65, 0xf2, 0xd9, 0x4c, 0xd2, 0x58, 0x1c, 0x8c, 0x4e, 0xc0, 0x95,
+ 0xa1, 0xd4, 0xef, 0x67, 0x2f, 0x38, 0x20, 0xe8, 0x2e, 0xff, 0x96, 0x51,
+ 0xf0, 0xba, 0xd8, 0x3d, 0x92, 0x70, 0x47, 0x65, 0x1c, 0x9e, 0x73, 0x72,
+ 0xb4, 0x60, 0x0c, 0x5c, 0xe2, 0xd1, 0x73, 0x76, 0xe0, 0xaf, 0x4e, 0xe2,
+ 0xe5, 0x37, 0xa5, 0x45, 0x2f, 0x8a, 0x23, 0x3e, 0x87, 0xc7, 0x30, 0xe6,
+ 0x31, 0x38, 0x7c, 0xf4, 0xdd, 0x52, 0xca, 0xf3, 0x53, 0x04, 0x25, 0x57,
+ 0x56, 0x66, 0x94, 0xe8, 0x0b, 0xee, 0xe6, 0x03, 0x14, 0x4e, 0xee, 0xfd,
+ 0x6d, 0x94, 0x64, 0x9e, 0x5e, 0xce, 0x79, 0xd4, 0xb2, 0xa6, 0xcf, 0x40,
+ 0xb1, 0x44, 0xa8, 0x3e, 0x87, 0x19, 0x5e, 0xe9, 0xf8, 0x21, 0x16, 0x59,
+ 0x53,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146031 (0x23a6f)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Nov 5 21:36:50 2013 GMT
+ Not After : May 20 21:36:50 2022 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust SSL CA - G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:e3:be:7e:0a:86:a3:cf:6b:6d:3d:2b:a1:97:ad:
+ 49:24:4d:d7:77:b9:34:79:08:a5:9e:a2:9e:de:47:
+ 12:92:3d:7e:ea:19:86:b1:e8:4f:3d:5f:f7:d0:a7:
+ 77:9a:5b:1f:0a:03:b5:19:53:db:a5:21:94:69:63:
+ 9d:6a:4c:91:0c:10:47:be:11:fa:6c:86:25:b7:ab:
+ 04:68:42:38:09:65:f0:14:da:19:9e:fa:6b:0b:ab:
+ 62:ef:8d:a7:ef:63:70:23:a8:af:81:f3:d1:6e:88:
+ 67:53:ec:12:a4:29:75:8a:a7:f2:57:3d:a2:83:98:
+ 97:f2:0a:7d:d4:e7:43:6e:30:78:62:22:59:59:b8:
+ 71:27:45:aa:0f:66:c6:55:3f:fa:32:17:2b:31:8f:
+ 46:a0:fa:69:14:7c:9d:9f:5a:e2:eb:33:4e:10:a6:
+ b3:ed:77:63:d8:c3:9e:f4:dd:df:79:9a:7a:d4:ee:
+ de:dd:9a:cc:c3:b7:a9:5d:cc:11:3a:07:bb:6f:97:
+ a4:01:23:47:95:1f:a3:77:fa:58:92:c6:c7:d0:bd:
+ cf:93:18:42:b7:7e:f7:9e:65:ea:d5:3b:ca:ed:ac:
+ c5:70:a1:fe:d4:10:9a:f0:12:04:44:ac:1a:5b:78:
+ 50:45:57:4c:6f:bd:80:cb:81:5c:2d:b3:bc:76:a1:
+ 1e:65
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ D2:6F:F7:96:F4:85:3F:72:3C:30:7D:23:DA:85:78:9B:A3:7C:5A:7C
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g1.symcb.com/crls/gtglobal.crl
+
+ Authority Information Access:
+ OCSP - URI:http://g2.symcb.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-539
+ Signature Algorithm: sha256WithRSAEncryption
+ a0:d4:f7:2c:fb:74:0b:7f:64:f1:cd:43:6a:9f:62:53:1c:02:
+ 7c:98:90:a2:ee:4f:68:d4:20:1a:73:12:3e:77:b3:50:eb:72:
+ bc:ee:88:be:7f:17:ea:77:8f:83:61:95:4f:84:a1:cb:32:4f:
+ 6c:21:be:d2:69:96:7d:63:bd:dc:2b:a8:1f:d0:13:84:70:fe:
+ f6:35:95:89:f9:a6:77:b0:46:c8:bb:b7:13:f5:c9:60:69:d6:
+ 4c:fe:d2:8e:ef:d3:60:c1:80:80:e1:e7:fb:8b:6f:21:79:4a:
+ e0:dc:a9:1b:c1:b7:fb:c3:49:59:5c:b5:77:07:44:d4:97:fc:
+ 49:00:89:6f:06:4e:01:70:19:ac:2f:11:c0:e2:e6:0f:2f:86:
+ 4b:8d:7b:c3:b9:a7:2e:f4:f1:ac:16:3e:39:49:51:9e:17:4b:
+ 4f:10:3a:5b:a5:a8:92:6f:fd:fa:d6:0b:03:4d:47:56:57:19:
+ f3:cb:6b:f5:f3:d6:cf:b0:f5:f5:a3:11:d2:20:53:13:34:37:
+ 05:2c:43:5a:63:df:8d:40:d6:85:1e:51:e9:51:17:1e:03:56:
+ c9:f1:30:ad:e7:9b:11:a2:b9:d0:31:81:9b:68:b1:d9:e8:f3:
+ e6:94:7e:c7:ae:13:2f:87:ed:d0:25:b0:68:f9:de:08:5a:f3:
+ 29:cc:d4:92
+-----BEGIN CERTIFICATE-----
+MIIETzCCAzegAwIBAgIDAjpvMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTMxMTA1MjEzNjUwWhcNMjIwNTIwMjEzNjUwWjBEMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+U1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDjvn4K
+hqPPa209K6GXrUkkTdd3uTR5CKWeop7eRxKSPX7qGYax6E89X/fQp3eaWx8KA7UZ
+U9ulIZRpY51qTJEMEEe+EfpshiW3qwRoQjgJZfAU2hme+msLq2LvjafvY3AjqK+B
+89FuiGdT7BKkKXWKp/JXPaKDmJfyCn3U50NuMHhiIllZuHEnRaoPZsZVP/oyFysx
+j0ag+mkUfJ2fWuLrM04QprPtd2PYw5703d95mnrU7t7dmszDt6ldzBE6B7tvl6QB
+I0eVH6N3+liSxsfQvc+TGEK3fveeZerVO8rtrMVwof7UEJrwEgRErBpbeFBFV0xv
+vYDLgVwts7x2oR5lAgMBAAGjggFKMIIBRjAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjAdBgNVHQ4EFgQU0m/3lvSFP3I8MH0j2oV4m6N8WnwwEgYDVR0T
+AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNgYDVR0fBC8wLTAroCmgJ4Yl
+aHR0cDovL2cxLnN5bWNiLmNvbS9jcmxzL2d0Z2xvYmFsLmNybDAvBggrBgEFBQcB
+AQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9nMi5zeW1jYi5jb20wTAYDVR0gBEUw
+QzBBBgpghkgBhvhFAQc2MDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuZ2VvdHJ1
+c3QuY29tL3Jlc291cmNlcy9jcHMwKQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMTEVN5
+bWFudGVjUEtJLTEtNTM5MA0GCSqGSIb3DQEBCwUAA4IBAQCg1Pcs+3QLf2TxzUNq
+n2JTHAJ8mJCi7k9o1CAacxI+d7NQ63K87oi+fxfqd4+DYZVPhKHLMk9sIb7SaZZ9
+Y73cK6gf0BOEcP72NZWJ+aZ3sEbIu7cT9clgadZM/tKO79NgwYCA4ef7i28heUrg
+3Kkbwbf7w0lZXLV3B0TUl/xJAIlvBk4BcBmsLxHA4uYPL4ZLjXvDuacu9PGsFj45
+SVGeF0tPEDpbpaiSb/361gsDTUdWVxnzy2v189bPsPX1oxHSIFMTNDcFLENaY9+N
+QNaFHlHpURceA1bJ8TCt55sRornQMYGbaLHZ6PPmlH7HrhMvh+3QJbBo+d4IWvMp
+zNSS
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert12[] = {
+ 0x30, 0x82, 0x04, 0x4f, 0x30, 0x82, 0x03, 0x37, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x6f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31,
+ 0x31, 0x30, 0x35, 0x32, 0x31, 0x33, 0x36, 0x35, 0x30, 0x5a, 0x17, 0x0d,
+ 0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x33, 0x36, 0x35, 0x30,
+ 0x5a, 0x30, 0x44, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x14, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30,
+ 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+ 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe3, 0xbe, 0x7e, 0x0a,
+ 0x86, 0xa3, 0xcf, 0x6b, 0x6d, 0x3d, 0x2b, 0xa1, 0x97, 0xad, 0x49, 0x24,
+ 0x4d, 0xd7, 0x77, 0xb9, 0x34, 0x79, 0x08, 0xa5, 0x9e, 0xa2, 0x9e, 0xde,
+ 0x47, 0x12, 0x92, 0x3d, 0x7e, 0xea, 0x19, 0x86, 0xb1, 0xe8, 0x4f, 0x3d,
+ 0x5f, 0xf7, 0xd0, 0xa7, 0x77, 0x9a, 0x5b, 0x1f, 0x0a, 0x03, 0xb5, 0x19,
+ 0x53, 0xdb, 0xa5, 0x21, 0x94, 0x69, 0x63, 0x9d, 0x6a, 0x4c, 0x91, 0x0c,
+ 0x10, 0x47, 0xbe, 0x11, 0xfa, 0x6c, 0x86, 0x25, 0xb7, 0xab, 0x04, 0x68,
+ 0x42, 0x38, 0x09, 0x65, 0xf0, 0x14, 0xda, 0x19, 0x9e, 0xfa, 0x6b, 0x0b,
+ 0xab, 0x62, 0xef, 0x8d, 0xa7, 0xef, 0x63, 0x70, 0x23, 0xa8, 0xaf, 0x81,
+ 0xf3, 0xd1, 0x6e, 0x88, 0x67, 0x53, 0xec, 0x12, 0xa4, 0x29, 0x75, 0x8a,
+ 0xa7, 0xf2, 0x57, 0x3d, 0xa2, 0x83, 0x98, 0x97, 0xf2, 0x0a, 0x7d, 0xd4,
+ 0xe7, 0x43, 0x6e, 0x30, 0x78, 0x62, 0x22, 0x59, 0x59, 0xb8, 0x71, 0x27,
+ 0x45, 0xaa, 0x0f, 0x66, 0xc6, 0x55, 0x3f, 0xfa, 0x32, 0x17, 0x2b, 0x31,
+ 0x8f, 0x46, 0xa0, 0xfa, 0x69, 0x14, 0x7c, 0x9d, 0x9f, 0x5a, 0xe2, 0xeb,
+ 0x33, 0x4e, 0x10, 0xa6, 0xb3, 0xed, 0x77, 0x63, 0xd8, 0xc3, 0x9e, 0xf4,
+ 0xdd, 0xdf, 0x79, 0x9a, 0x7a, 0xd4, 0xee, 0xde, 0xdd, 0x9a, 0xcc, 0xc3,
+ 0xb7, 0xa9, 0x5d, 0xcc, 0x11, 0x3a, 0x07, 0xbb, 0x6f, 0x97, 0xa4, 0x01,
+ 0x23, 0x47, 0x95, 0x1f, 0xa3, 0x77, 0xfa, 0x58, 0x92, 0xc6, 0xc7, 0xd0,
+ 0xbd, 0xcf, 0x93, 0x18, 0x42, 0xb7, 0x7e, 0xf7, 0x9e, 0x65, 0xea, 0xd5,
+ 0x3b, 0xca, 0xed, 0xac, 0xc5, 0x70, 0xa1, 0xfe, 0xd4, 0x10, 0x9a, 0xf0,
+ 0x12, 0x04, 0x44, 0xac, 0x1a, 0x5b, 0x78, 0x50, 0x45, 0x57, 0x4c, 0x6f,
+ 0xbd, 0x80, 0xcb, 0x81, 0x5c, 0x2d, 0xb3, 0xbc, 0x76, 0xa1, 0x1e, 0x65,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x4a, 0x30, 0x82, 0x01,
+ 0x46, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64,
+ 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xd2, 0x6f, 0xf7,
+ 0x96, 0xf4, 0x85, 0x3f, 0x72, 0x3c, 0x30, 0x7d, 0x23, 0xda, 0x85, 0x78,
+ 0x9b, 0xa3, 0x7c, 0x5a, 0x7c, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+ 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+ 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x36, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x2f, 0x30, 0x2d, 0x30, 0x2b, 0xa0, 0x29, 0xa0, 0x27, 0x86, 0x25,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x31, 0x2e, 0x73, 0x79,
+ 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73,
+ 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72,
+ 0x6c, 0x30, 0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+ 0x01, 0x04, 0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x67, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30,
+ 0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45,
+ 0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x29, 0x06, 0x03,
+ 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31,
+ 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79,
+ 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d,
+ 0x35, 0x33, 0x39, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xa0,
+ 0xd4, 0xf7, 0x2c, 0xfb, 0x74, 0x0b, 0x7f, 0x64, 0xf1, 0xcd, 0x43, 0x6a,
+ 0x9f, 0x62, 0x53, 0x1c, 0x02, 0x7c, 0x98, 0x90, 0xa2, 0xee, 0x4f, 0x68,
+ 0xd4, 0x20, 0x1a, 0x73, 0x12, 0x3e, 0x77, 0xb3, 0x50, 0xeb, 0x72, 0xbc,
+ 0xee, 0x88, 0xbe, 0x7f, 0x17, 0xea, 0x77, 0x8f, 0x83, 0x61, 0x95, 0x4f,
+ 0x84, 0xa1, 0xcb, 0x32, 0x4f, 0x6c, 0x21, 0xbe, 0xd2, 0x69, 0x96, 0x7d,
+ 0x63, 0xbd, 0xdc, 0x2b, 0xa8, 0x1f, 0xd0, 0x13, 0x84, 0x70, 0xfe, 0xf6,
+ 0x35, 0x95, 0x89, 0xf9, 0xa6, 0x77, 0xb0, 0x46, 0xc8, 0xbb, 0xb7, 0x13,
+ 0xf5, 0xc9, 0x60, 0x69, 0xd6, 0x4c, 0xfe, 0xd2, 0x8e, 0xef, 0xd3, 0x60,
+ 0xc1, 0x80, 0x80, 0xe1, 0xe7, 0xfb, 0x8b, 0x6f, 0x21, 0x79, 0x4a, 0xe0,
+ 0xdc, 0xa9, 0x1b, 0xc1, 0xb7, 0xfb, 0xc3, 0x49, 0x59, 0x5c, 0xb5, 0x77,
+ 0x07, 0x44, 0xd4, 0x97, 0xfc, 0x49, 0x00, 0x89, 0x6f, 0x06, 0x4e, 0x01,
+ 0x70, 0x19, 0xac, 0x2f, 0x11, 0xc0, 0xe2, 0xe6, 0x0f, 0x2f, 0x86, 0x4b,
+ 0x8d, 0x7b, 0xc3, 0xb9, 0xa7, 0x2e, 0xf4, 0xf1, 0xac, 0x16, 0x3e, 0x39,
+ 0x49, 0x51, 0x9e, 0x17, 0x4b, 0x4f, 0x10, 0x3a, 0x5b, 0xa5, 0xa8, 0x92,
+ 0x6f, 0xfd, 0xfa, 0xd6, 0x0b, 0x03, 0x4d, 0x47, 0x56, 0x57, 0x19, 0xf3,
+ 0xcb, 0x6b, 0xf5, 0xf3, 0xd6, 0xcf, 0xb0, 0xf5, 0xf5, 0xa3, 0x11, 0xd2,
+ 0x20, 0x53, 0x13, 0x34, 0x37, 0x05, 0x2c, 0x43, 0x5a, 0x63, 0xdf, 0x8d,
+ 0x40, 0xd6, 0x85, 0x1e, 0x51, 0xe9, 0x51, 0x17, 0x1e, 0x03, 0x56, 0xc9,
+ 0xf1, 0x30, 0xad, 0xe7, 0x9b, 0x11, 0xa2, 0xb9, 0xd0, 0x31, 0x81, 0x9b,
+ 0x68, 0xb1, 0xd9, 0xe8, 0xf3, 0xe6, 0x94, 0x7e, 0xc7, 0xae, 0x13, 0x2f,
+ 0x87, 0xed, 0xd0, 0x25, 0xb0, 0x68, 0xf9, 0xde, 0x08, 0x5a, 0xf3, 0x29,
+ 0xcc, 0xd4, 0x92,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146019 (0x23a63)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Aug 27 20:40:40 2012 GMT
+ Not After : May 20 20:40:40 2022 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust SSL CA - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b9:27:f9:4f:d8:f6:b7:15:3f:8f:cd:ce:d6:8d:
+ 1c:6b:fd:7f:da:54:21:4e:03:d8:ca:d0:72:52:15:
+ b8:c9:82:5b:58:79:84:ff:24:72:6f:f2:69:7f:bc:
+ 96:d9:9a:7a:c3:3e:a9:cf:50:22:13:0e:86:19:db:
+ e8:49:ef:8b:e6:d6:47:f2:fd:73:45:08:ae:8f:ac:
+ 5e:b6:f8:9e:7c:f7:10:ff:92:43:66:ef:1c:d4:ee:
+ a1:46:88:11:89:49:79:7a:25:ce:4b:6a:f0:d7:1c:
+ 76:1a:29:3c:c9:e4:fd:1e:85:dc:e0:31:65:05:47:
+ 16:ac:0a:07:4b:2e:70:5e:6b:06:a7:6b:3a:6c:af:
+ 05:12:c4:b2:11:25:d6:3e:97:29:f0:83:6c:57:1c:
+ d8:a5:ef:cc:ec:fd:d6:12:f1:3f:db:40:b4:ae:0f:
+ 18:d3:c5:af:40:92:5d:07:5e:4e:fe:62:17:37:89:
+ e9:8b:74:26:a2:ed:b8:0a:e7:6c:15:5b:35:90:72:
+ dd:d8:4d:21:d4:40:23:5c:8f:ee:80:31:16:ab:68:
+ 55:f4:0e:3b:54:e9:04:4d:f0:cc:4e:81:5e:e9:6f:
+ 52:69:4e:be:a6:16:6d:42:f5:51:ff:e0:0b:56:3c:
+ 98:4f:73:8f:0e:6f:1a:23:f1:c9:c8:d9:df:bc:ec:
+ 52:d7
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ 11:4A:D0:73:39:D5:5B:69:08:5C:BA:3D:BF:64:9A:A8:8B:1C:55:BC
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.geotrust.com/crls/gtglobal.crl
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.geotrust.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=VeriSignMPKI-2-254
+ Signature Algorithm: sha1WithRSAEncryption
+ 3c:e5:3d:5a:1b:a2:37:2a:e3:46:cf:36:96:18:3c:7b:f1:84:
+ c5:57:86:77:40:9d:35:f0:12:f0:78:18:fb:22:a4:de:98:4b:
+ 78:81:e6:4d:86:e3:91:0f:42:e3:b9:dc:a0:d6:ff:a9:f8:b1:
+ 79:97:99:d1:c3:6c:42:a5:92:94:e0:5d:0c:33:18:25:c9:2b:
+ 95:53:e0:e5:a9:0c:7d:47:fe:7f:51:31:44:5e:f7:2a:1e:35:
+ a2:94:32:f7:c9:ee:c0:b6:c6:9a:ac:de:99:21:6a:23:a0:38:
+ 64:ee:a3:c4:88:73:32:3b:50:ce:bf:ad:d3:75:1e:a6:f4:e9:
+ f9:42:6b:60:b2:dd:45:fd:5d:57:08:ce:2d:50:e6:12:32:16:
+ 13:8a:f2:94:a2:9b:47:a8:86:7f:d9:98:e5:f7:e5:76:74:64:
+ d8:91:bc:84:16:28:d8:25:44:30:7e:82:d8:ac:b1:e4:c0:e4:
+ 15:6c:db:b6:24:27:02:2a:01:12:85:ba:31:88:58:47:74:e3:
+ b8:d2:64:a6:c3:32:59:2e:29:4b:45:f1:5b:89:49:2e:82:9a:
+ c6:18:15:44:d0:2e:64:01:15:68:38:f9:f6:f9:66:03:0c:55:
+ 1b:9d:bf:00:40:ae:f0:48:27:4c:e0:80:5e:2d:b9:2a:15:7a:
+ bc:66:f8:35
+-----BEGIN CERTIFICATE-----
+MIIEWTCCA0GgAwIBAgIDAjpjMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTIwODI3MjA0MDQwWhcNMjIwNTIwMjA0MDQwWjBEMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+U1NMIENBIC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5J/lP
+2Pa3FT+Pzc7WjRxr/X/aVCFOA9jK0HJSFbjJgltYeYT/JHJv8ml/vJbZmnrDPqnP
+UCITDoYZ2+hJ74vm1kfy/XNFCK6PrF62+J589xD/kkNm7xzU7qFGiBGJSXl6Jc5L
+avDXHHYaKTzJ5P0ehdzgMWUFRxasCgdLLnBeawanazpsrwUSxLIRJdY+lynwg2xX
+HNil78zs/dYS8T/bQLSuDxjTxa9Akl0HXk7+Yhc3iemLdCai7bgK52wVWzWQct3Y
+TSHUQCNcj+6AMRaraFX0DjtU6QRN8MxOgV7pb1JpTr6mFm1C9VH/4AtWPJhPc48O
+bxoj8cnI2d+87FLXAgMBAAGjggFUMIIBUDAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjAdBgNVHQ4EFgQUEUrQcznVW2kIXLo9v2SaqIscVbwwEgYDVR0T
+AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwOgYDVR0fBDMwMTAvoC2gK4Yp
+aHR0cDovL2NybC5nZW90cnVzdC5jb20vY3Jscy9ndGdsb2JhbC5jcmwwNAYIKwYB
+BQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5nZW90cnVzdC5jb20w
+TAYDVR0gBEUwQzBBBgpghkgBhvhFAQc2MDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93
+d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwKgYDVR0RBCMwIaQfMB0xGzAZ
+BgNVBAMTElZlcmlTaWduTVBLSS0yLTI1NDANBgkqhkiG9w0BAQUFAAOCAQEAPOU9
+WhuiNyrjRs82lhg8e/GExVeGd0CdNfAS8HgY+yKk3phLeIHmTYbjkQ9C47ncoNb/
+qfixeZeZ0cNsQqWSlOBdDDMYJckrlVPg5akMfUf+f1ExRF73Kh41opQy98nuwLbG
+mqzemSFqI6A4ZO6jxIhzMjtQzr+t03UepvTp+UJrYLLdRf1dVwjOLVDmEjIWE4ry
+lKKbR6iGf9mY5ffldnRk2JG8hBYo2CVEMH6C2Kyx5MDkFWzbtiQnAioBEoW6MYhY
+R3TjuNJkpsMyWS4pS0XxW4lJLoKaxhgVRNAuZAEVaDj59vlmAwxVG52/AECu8Egn
+TOCAXi25KhV6vGb4NQ==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert13[] = {
+ 0x30, 0x82, 0x04, 0x59, 0x30, 0x82, 0x03, 0x41, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x63, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30,
+ 0x38, 0x32, 0x37, 0x32, 0x30, 0x34, 0x30, 0x34, 0x30, 0x5a, 0x17, 0x0d,
+ 0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x30, 0x34, 0x30, 0x34, 0x30,
+ 0x5a, 0x30, 0x44, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x14, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30,
+ 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+ 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xb9, 0x27, 0xf9, 0x4f,
+ 0xd8, 0xf6, 0xb7, 0x15, 0x3f, 0x8f, 0xcd, 0xce, 0xd6, 0x8d, 0x1c, 0x6b,
+ 0xfd, 0x7f, 0xda, 0x54, 0x21, 0x4e, 0x03, 0xd8, 0xca, 0xd0, 0x72, 0x52,
+ 0x15, 0xb8, 0xc9, 0x82, 0x5b, 0x58, 0x79, 0x84, 0xff, 0x24, 0x72, 0x6f,
+ 0xf2, 0x69, 0x7f, 0xbc, 0x96, 0xd9, 0x9a, 0x7a, 0xc3, 0x3e, 0xa9, 0xcf,
+ 0x50, 0x22, 0x13, 0x0e, 0x86, 0x19, 0xdb, 0xe8, 0x49, 0xef, 0x8b, 0xe6,
+ 0xd6, 0x47, 0xf2, 0xfd, 0x73, 0x45, 0x08, 0xae, 0x8f, 0xac, 0x5e, 0xb6,
+ 0xf8, 0x9e, 0x7c, 0xf7, 0x10, 0xff, 0x92, 0x43, 0x66, 0xef, 0x1c, 0xd4,
+ 0xee, 0xa1, 0x46, 0x88, 0x11, 0x89, 0x49, 0x79, 0x7a, 0x25, 0xce, 0x4b,
+ 0x6a, 0xf0, 0xd7, 0x1c, 0x76, 0x1a, 0x29, 0x3c, 0xc9, 0xe4, 0xfd, 0x1e,
+ 0x85, 0xdc, 0xe0, 0x31, 0x65, 0x05, 0x47, 0x16, 0xac, 0x0a, 0x07, 0x4b,
+ 0x2e, 0x70, 0x5e, 0x6b, 0x06, 0xa7, 0x6b, 0x3a, 0x6c, 0xaf, 0x05, 0x12,
+ 0xc4, 0xb2, 0x11, 0x25, 0xd6, 0x3e, 0x97, 0x29, 0xf0, 0x83, 0x6c, 0x57,
+ 0x1c, 0xd8, 0xa5, 0xef, 0xcc, 0xec, 0xfd, 0xd6, 0x12, 0xf1, 0x3f, 0xdb,
+ 0x40, 0xb4, 0xae, 0x0f, 0x18, 0xd3, 0xc5, 0xaf, 0x40, 0x92, 0x5d, 0x07,
+ 0x5e, 0x4e, 0xfe, 0x62, 0x17, 0x37, 0x89, 0xe9, 0x8b, 0x74, 0x26, 0xa2,
+ 0xed, 0xb8, 0x0a, 0xe7, 0x6c, 0x15, 0x5b, 0x35, 0x90, 0x72, 0xdd, 0xd8,
+ 0x4d, 0x21, 0xd4, 0x40, 0x23, 0x5c, 0x8f, 0xee, 0x80, 0x31, 0x16, 0xab,
+ 0x68, 0x55, 0xf4, 0x0e, 0x3b, 0x54, 0xe9, 0x04, 0x4d, 0xf0, 0xcc, 0x4e,
+ 0x81, 0x5e, 0xe9, 0x6f, 0x52, 0x69, 0x4e, 0xbe, 0xa6, 0x16, 0x6d, 0x42,
+ 0xf5, 0x51, 0xff, 0xe0, 0x0b, 0x56, 0x3c, 0x98, 0x4f, 0x73, 0x8f, 0x0e,
+ 0x6f, 0x1a, 0x23, 0xf1, 0xc9, 0xc8, 0xd9, 0xdf, 0xbc, 0xec, 0x52, 0xd7,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x54, 0x30, 0x82, 0x01,
+ 0x50, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64,
+ 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x11, 0x4a, 0xd0,
+ 0x73, 0x39, 0xd5, 0x5b, 0x69, 0x08, 0x5c, 0xba, 0x3d, 0xbf, 0x64, 0x9a,
+ 0xa8, 0x8b, 0x1c, 0x55, 0xbc, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+ 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+ 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3a, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0, 0x2d, 0xa0, 0x2b, 0x86, 0x29,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67,
+ 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61,
+ 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67,
+ 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+ 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41,
+ 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36,
+ 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
+ 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x2a, 0x06, 0x03, 0x55, 0x1d, 0x11,
+ 0x04, 0x23, 0x30, 0x21, 0xa4, 0x1f, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x56, 0x65, 0x72, 0x69, 0x53,
+ 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x32, 0x35,
+ 0x34, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x3c, 0xe5, 0x3d,
+ 0x5a, 0x1b, 0xa2, 0x37, 0x2a, 0xe3, 0x46, 0xcf, 0x36, 0x96, 0x18, 0x3c,
+ 0x7b, 0xf1, 0x84, 0xc5, 0x57, 0x86, 0x77, 0x40, 0x9d, 0x35, 0xf0, 0x12,
+ 0xf0, 0x78, 0x18, 0xfb, 0x22, 0xa4, 0xde, 0x98, 0x4b, 0x78, 0x81, 0xe6,
+ 0x4d, 0x86, 0xe3, 0x91, 0x0f, 0x42, 0xe3, 0xb9, 0xdc, 0xa0, 0xd6, 0xff,
+ 0xa9, 0xf8, 0xb1, 0x79, 0x97, 0x99, 0xd1, 0xc3, 0x6c, 0x42, 0xa5, 0x92,
+ 0x94, 0xe0, 0x5d, 0x0c, 0x33, 0x18, 0x25, 0xc9, 0x2b, 0x95, 0x53, 0xe0,
+ 0xe5, 0xa9, 0x0c, 0x7d, 0x47, 0xfe, 0x7f, 0x51, 0x31, 0x44, 0x5e, 0xf7,
+ 0x2a, 0x1e, 0x35, 0xa2, 0x94, 0x32, 0xf7, 0xc9, 0xee, 0xc0, 0xb6, 0xc6,
+ 0x9a, 0xac, 0xde, 0x99, 0x21, 0x6a, 0x23, 0xa0, 0x38, 0x64, 0xee, 0xa3,
+ 0xc4, 0x88, 0x73, 0x32, 0x3b, 0x50, 0xce, 0xbf, 0xad, 0xd3, 0x75, 0x1e,
+ 0xa6, 0xf4, 0xe9, 0xf9, 0x42, 0x6b, 0x60, 0xb2, 0xdd, 0x45, 0xfd, 0x5d,
+ 0x57, 0x08, 0xce, 0x2d, 0x50, 0xe6, 0x12, 0x32, 0x16, 0x13, 0x8a, 0xf2,
+ 0x94, 0xa2, 0x9b, 0x47, 0xa8, 0x86, 0x7f, 0xd9, 0x98, 0xe5, 0xf7, 0xe5,
+ 0x76, 0x74, 0x64, 0xd8, 0x91, 0xbc, 0x84, 0x16, 0x28, 0xd8, 0x25, 0x44,
+ 0x30, 0x7e, 0x82, 0xd8, 0xac, 0xb1, 0xe4, 0xc0, 0xe4, 0x15, 0x6c, 0xdb,
+ 0xb6, 0x24, 0x27, 0x02, 0x2a, 0x01, 0x12, 0x85, 0xba, 0x31, 0x88, 0x58,
+ 0x47, 0x74, 0xe3, 0xb8, 0xd2, 0x64, 0xa6, 0xc3, 0x32, 0x59, 0x2e, 0x29,
+ 0x4b, 0x45, 0xf1, 0x5b, 0x89, 0x49, 0x2e, 0x82, 0x9a, 0xc6, 0x18, 0x15,
+ 0x44, 0xd0, 0x2e, 0x64, 0x01, 0x15, 0x68, 0x38, 0xf9, 0xf6, 0xf9, 0x66,
+ 0x03, 0x0c, 0x55, 0x1b, 0x9d, 0xbf, 0x00, 0x40, 0xae, 0xf0, 0x48, 0x27,
+ 0x4c, 0xe0, 0x80, 0x5e, 0x2d, 0xb9, 0x2a, 0x15, 0x7a, 0xbc, 0x66, 0xf8,
+ 0x35,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 04:00:00:00:00:01:44:4e:f0:3e:20
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+ Validity
+ Not Before: Feb 20 10:00:00 2014 GMT
+ Not After : Feb 20 10:00:00 2024 GMT
+ Subject: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Domain Validation CA - SHA256 - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:a9:dd:cc:0e:b3:e2:32:39:dd:49:22:a8:13:69:
+ 93:87:88:e1:0c:ee:71:7d:bd:90:87:96:5d:59:f2:
+ cc:b3:d2:58:57:57:f9:46:ef:6c:26:d8:36:42:8e:
+ 7e:30:b3:2f:9a:3e:53:7b:1f:6e:b6:a2:4c:45:1f:
+ 3c:d3:15:93:1c:89:ed:3c:f4:57:de:ca:bd:ec:06:
+ 9a:6a:2a:a0:19:52:7f:51:d1:74:39:08:9f:ab:eb:
+ d7:86:13:15:97:ae:36:c3:54:66:0e:5a:f2:a0:73:
+ 85:31:e3:b2:64:14:6a:ff:a5:a2:8e:24:bb:bd:85:
+ 52:15:a2:79:ee:f0:b5:ee:3d:b8:f4:7d:80:bc:d9:
+ 90:35:65:b8:17:a9:ad:b3:98:9f:a0:7e:7d:6e:fb:
+ 3f:ad:7c:c2:1b:59:36:96:da:37:32:4b:4b:5d:35:
+ 02:63:8e:db:a7:cf:62:ee:cc:2e:d4:8d:c9:bd:3c:
+ 6a:91:72:a2:22:a7:72:2d:20:d1:fa:ca:37:da:18:
+ 98:e6:16:24:71:25:4b:c4:e5:7b:89:52:09:02:fd:
+ 59:2b:04:6e:ca:07:81:d4:b3:da:da:db:e3:cc:80:
+ a8:56:07:06:7c:96:08:37:9d:db:38:b6:62:34:91:
+ 62:07:74:01:38:d8:72:30:e2:eb:90:71:26:62:c0:
+ 57:f3
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Subject Key Identifier:
+ EA:4E:7C:D4:80:2D:E5:15:81:86:26:8C:82:6D:C0:98:A4:CF:97:0F
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.globalsign.com/repository/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.globalsign.net/root.crl
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+ X509v3 Authority Key Identifier:
+ keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+ Signature Algorithm: sha256WithRSAEncryption
+ d7:45:9e:a0:dc:e0:e3:61:5a:0b:7d:77:84:17:2d:65:5a:82:
+ 9a:8d:a3:27:2a:85:f7:c9:ef:e9:86:fd:d4:47:cd:01:52:96:
+ c5:43:bd:37:b1:e1:b8:f2:a9:d2:8a:11:84:71:91:15:89:dc:
+ 02:9d:0b:cb:6c:33:85:34:28:9e:20:b2:b1:97:dc:6d:0b:10:
+ c1:3c:cd:5f:ea:5d:d7:98:31:c5:34:99:5c:00:61:55:c4:1b:
+ 02:5b:c5:e3:89:c8:b4:b8:6f:1e:38:f2:56:26:e9:41:ef:3d:
+ cd:ac:99:4f:59:4a:57:2d:4b:7d:ae:c7:88:fb:d6:98:3b:f5:
+ e5:f0:e8:89:89:b9:8b:03:cb:5a:23:1f:a4:fd:b8:ea:fb:2e:
+ 9d:ae:6a:73:09:bc:fc:d5:a0:b5:44:82:ab:44:91:2e:50:2e:
+ 57:c1:43:d8:91:04:8b:e9:11:2e:5f:b4:3f:79:df:1e:fb:3f:
+ 30:00:8b:53:e3:b7:2c:1d:3b:4d:8b:dc:e4:64:1d:04:58:33:
+ af:1b:55:e7:ab:0c:bf:30:04:74:e4:f3:0e:2f:30:39:8d:4b:
+ 04:8c:1e:75:66:66:49:e0:be:40:34:c7:5c:5a:51:92:ba:12:
+ 3c:52:d5:04:82:55:2d:67:a5:df:b7:95:7c:ee:3f:c3:08:ba:
+ 04:be:c0:46
+-----BEGIN CERTIFICATE-----
+MIIEYzCCA0ugAwIBAgILBAAAAAABRE7wPiAwDQYJKoZIhvcNAQELBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
+MDBaFw0yNDAyMjAxMDAwMDBaMGAxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMTYwNAYDVQQDEy1HbG9iYWxTaWduIERvbWFpbiBWYWxpZGF0
+aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCp3cwOs+IyOd1JIqgTaZOHiOEM7nF9vZCHll1Z8syz0lhXV/lG72wm2DZC
+jn4wsy+aPlN7H262okxFHzzTFZMcie089Ffeyr3sBppqKqAZUn9R0XQ5CJ+r69eG
+ExWXrjbDVGYOWvKgc4Ux47JkFGr/paKOJLu9hVIVonnu8LXuPbj0fYC82ZA1ZbgX
+qa2zmJ+gfn1u+z+tfMIbWTaW2jcyS0tdNQJjjtunz2LuzC7Ujcm9PGqRcqIip3It
+INH6yjfaGJjmFiRxJUvE5XuJUgkC/VkrBG7KB4HUs9ra2+PMgKhWBwZ8lgg3nds4
+tmI0kWIHdAE42HIw4uuQcSZiwFfzAgMBAAGjggElMIIBITAOBgNVHQ8BAf8EBAMC
+AQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU6k581IAt5RWBhiaMgm3A
+mKTPlw8wRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8v
+d3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCowKKAmoCSG
+Imh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYBBQUHAQEE
+MTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9yb290
+cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZIhvcNAQEL
+BQADggEBANdFnqDc4ONhWgt9d4QXLWVagpqNoycqhffJ7+mG/dRHzQFSlsVDvTex
+4bjyqdKKEYRxkRWJ3AKdC8tsM4U0KJ4gsrGX3G0LEME8zV/qXdeYMcU0mVwAYVXE
+GwJbxeOJyLS4bx448lYm6UHvPc2smU9ZSlctS32ux4j71pg79eXw6ImJuYsDy1oj
+H6T9uOr7Lp2uanMJvPzVoLVEgqtEkS5QLlfBQ9iRBIvpES5ftD953x77PzAAi1Pj
+tywdO02L3ORkHQRYM68bVeerDL8wBHTk8w4vMDmNSwSMHnVmZkngvkA0x1xaUZK6
+EjxS1QSCVS1npd+3lXzuP8MIugS+wEY=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert14[] = {
+ 0x30, 0x82, 0x04, 0x63, 0x30, 0x82, 0x03, 0x4b, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x4e, 0xf0,
+ 0x3e, 0x20, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+ 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61, 0x31,
+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x07, 0x52, 0x6f,
+ 0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
+ 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e,
+ 0x17, 0x0d, 0x31, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x60, 0x31, 0x0b, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
+ 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
+ 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d, 0x47,
+ 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x44, 0x6f,
+ 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x53, 0x48, 0x41,
+ 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xa9, 0xdd, 0xcc, 0x0e, 0xb3, 0xe2, 0x32,
+ 0x39, 0xdd, 0x49, 0x22, 0xa8, 0x13, 0x69, 0x93, 0x87, 0x88, 0xe1, 0x0c,
+ 0xee, 0x71, 0x7d, 0xbd, 0x90, 0x87, 0x96, 0x5d, 0x59, 0xf2, 0xcc, 0xb3,
+ 0xd2, 0x58, 0x57, 0x57, 0xf9, 0x46, 0xef, 0x6c, 0x26, 0xd8, 0x36, 0x42,
+ 0x8e, 0x7e, 0x30, 0xb3, 0x2f, 0x9a, 0x3e, 0x53, 0x7b, 0x1f, 0x6e, 0xb6,
+ 0xa2, 0x4c, 0x45, 0x1f, 0x3c, 0xd3, 0x15, 0x93, 0x1c, 0x89, 0xed, 0x3c,
+ 0xf4, 0x57, 0xde, 0xca, 0xbd, 0xec, 0x06, 0x9a, 0x6a, 0x2a, 0xa0, 0x19,
+ 0x52, 0x7f, 0x51, 0xd1, 0x74, 0x39, 0x08, 0x9f, 0xab, 0xeb, 0xd7, 0x86,
+ 0x13, 0x15, 0x97, 0xae, 0x36, 0xc3, 0x54, 0x66, 0x0e, 0x5a, 0xf2, 0xa0,
+ 0x73, 0x85, 0x31, 0xe3, 0xb2, 0x64, 0x14, 0x6a, 0xff, 0xa5, 0xa2, 0x8e,
+ 0x24, 0xbb, 0xbd, 0x85, 0x52, 0x15, 0xa2, 0x79, 0xee, 0xf0, 0xb5, 0xee,
+ 0x3d, 0xb8, 0xf4, 0x7d, 0x80, 0xbc, 0xd9, 0x90, 0x35, 0x65, 0xb8, 0x17,
+ 0xa9, 0xad, 0xb3, 0x98, 0x9f, 0xa0, 0x7e, 0x7d, 0x6e, 0xfb, 0x3f, 0xad,
+ 0x7c, 0xc2, 0x1b, 0x59, 0x36, 0x96, 0xda, 0x37, 0x32, 0x4b, 0x4b, 0x5d,
+ 0x35, 0x02, 0x63, 0x8e, 0xdb, 0xa7, 0xcf, 0x62, 0xee, 0xcc, 0x2e, 0xd4,
+ 0x8d, 0xc9, 0xbd, 0x3c, 0x6a, 0x91, 0x72, 0xa2, 0x22, 0xa7, 0x72, 0x2d,
+ 0x20, 0xd1, 0xfa, 0xca, 0x37, 0xda, 0x18, 0x98, 0xe6, 0x16, 0x24, 0x71,
+ 0x25, 0x4b, 0xc4, 0xe5, 0x7b, 0x89, 0x52, 0x09, 0x02, 0xfd, 0x59, 0x2b,
+ 0x04, 0x6e, 0xca, 0x07, 0x81, 0xd4, 0xb3, 0xda, 0xda, 0xdb, 0xe3, 0xcc,
+ 0x80, 0xa8, 0x56, 0x07, 0x06, 0x7c, 0x96, 0x08, 0x37, 0x9d, 0xdb, 0x38,
+ 0xb6, 0x62, 0x34, 0x91, 0x62, 0x07, 0x74, 0x01, 0x38, 0xd8, 0x72, 0x30,
+ 0xe2, 0xeb, 0x90, 0x71, 0x26, 0x62, 0xc0, 0x57, 0xf3, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x25, 0x30, 0x82, 0x01, 0x21, 0x30, 0x0e,
+ 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
+ 0x01, 0x06, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
+ 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xea, 0x4e, 0x7c,
+ 0xd4, 0x80, 0x2d, 0xe5, 0x15, 0x81, 0x86, 0x26, 0x8c, 0x82, 0x6d, 0xc0,
+ 0x98, 0xa4, 0xcf, 0x97, 0x0f, 0x30, 0x47, 0x06, 0x03, 0x55, 0x1d, 0x20,
+ 0x04, 0x40, 0x30, 0x3e, 0x30, 0x3c, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00,
+ 0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
+ 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69,
+ 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x30, 0x33, 0x06, 0x03, 0x55, 0x1d,
+ 0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30, 0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86,
+ 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e,
+ 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x6e,
+ 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+ 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73,
+ 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74,
+ 0x72, 0x31, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66, 0x1a, 0x45, 0x0d, 0x97, 0xca, 0x89,
+ 0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34, 0xa8, 0xff, 0xfc, 0xfd, 0x4b, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xd7, 0x45, 0x9e, 0xa0, 0xdc,
+ 0xe0, 0xe3, 0x61, 0x5a, 0x0b, 0x7d, 0x77, 0x84, 0x17, 0x2d, 0x65, 0x5a,
+ 0x82, 0x9a, 0x8d, 0xa3, 0x27, 0x2a, 0x85, 0xf7, 0xc9, 0xef, 0xe9, 0x86,
+ 0xfd, 0xd4, 0x47, 0xcd, 0x01, 0x52, 0x96, 0xc5, 0x43, 0xbd, 0x37, 0xb1,
+ 0xe1, 0xb8, 0xf2, 0xa9, 0xd2, 0x8a, 0x11, 0x84, 0x71, 0x91, 0x15, 0x89,
+ 0xdc, 0x02, 0x9d, 0x0b, 0xcb, 0x6c, 0x33, 0x85, 0x34, 0x28, 0x9e, 0x20,
+ 0xb2, 0xb1, 0x97, 0xdc, 0x6d, 0x0b, 0x10, 0xc1, 0x3c, 0xcd, 0x5f, 0xea,
+ 0x5d, 0xd7, 0x98, 0x31, 0xc5, 0x34, 0x99, 0x5c, 0x00, 0x61, 0x55, 0xc4,
+ 0x1b, 0x02, 0x5b, 0xc5, 0xe3, 0x89, 0xc8, 0xb4, 0xb8, 0x6f, 0x1e, 0x38,
+ 0xf2, 0x56, 0x26, 0xe9, 0x41, 0xef, 0x3d, 0xcd, 0xac, 0x99, 0x4f, 0x59,
+ 0x4a, 0x57, 0x2d, 0x4b, 0x7d, 0xae, 0xc7, 0x88, 0xfb, 0xd6, 0x98, 0x3b,
+ 0xf5, 0xe5, 0xf0, 0xe8, 0x89, 0x89, 0xb9, 0x8b, 0x03, 0xcb, 0x5a, 0x23,
+ 0x1f, 0xa4, 0xfd, 0xb8, 0xea, 0xfb, 0x2e, 0x9d, 0xae, 0x6a, 0x73, 0x09,
+ 0xbc, 0xfc, 0xd5, 0xa0, 0xb5, 0x44, 0x82, 0xab, 0x44, 0x91, 0x2e, 0x50,
+ 0x2e, 0x57, 0xc1, 0x43, 0xd8, 0x91, 0x04, 0x8b, 0xe9, 0x11, 0x2e, 0x5f,
+ 0xb4, 0x3f, 0x79, 0xdf, 0x1e, 0xfb, 0x3f, 0x30, 0x00, 0x8b, 0x53, 0xe3,
+ 0xb7, 0x2c, 0x1d, 0x3b, 0x4d, 0x8b, 0xdc, 0xe4, 0x64, 0x1d, 0x04, 0x58,
+ 0x33, 0xaf, 0x1b, 0x55, 0xe7, 0xab, 0x0c, 0xbf, 0x30, 0x04, 0x74, 0xe4,
+ 0xf3, 0x0e, 0x2f, 0x30, 0x39, 0x8d, 0x4b, 0x04, 0x8c, 0x1e, 0x75, 0x66,
+ 0x66, 0x49, 0xe0, 0xbe, 0x40, 0x34, 0xc7, 0x5c, 0x5a, 0x51, 0x92, 0xba,
+ 0x12, 0x3c, 0x52, 0xd5, 0x04, 0x82, 0x55, 0x2d, 0x67, 0xa5, 0xdf, 0xb7,
+ 0x95, 0x7c, 0xee, 0x3f, 0xc3, 0x08, 0xba, 0x04, 0xbe, 0xc0, 0x46,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 04:00:00:00:00:01:44:4e:f0:42:47
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+ Validity
+ Not Before: Feb 20 10:00:00 2014 GMT
+ Not After : Feb 20 10:00:00 2024 GMT
+ Subject: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Organization Validation CA - SHA256 - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:c7:0e:6c:3f:23:93:7f:cc:70:a5:9d:20:c3:0e:
+ 53:3f:7e:c0:4e:c2:98:49:ca:47:d5:23:ef:03:34:
+ 85:74:c8:a3:02:2e:46:5c:0b:7d:c9:88:9d:4f:8b:
+ f0:f8:9c:6c:8c:55:35:db:bf:f2:b3:ea:fb:e3:56:
+ e7:4a:46:d9:13:22:ca:36:d5:9b:c1:a8:e3:96:43:
+ 93:f2:0c:bc:e6:f9:e6:e8:99:c8:63:48:78:7f:57:
+ 36:69:1a:19:1d:5a:d1:d4:7d:c2:9c:d4:7f:e1:80:
+ 12:ae:7a:ea:88:ea:57:d8:ca:0a:0a:3a:12:49:a2:
+ 62:19:7a:0d:24:f7:37:eb:b4:73:92:7b:05:23:9b:
+ 12:b5:ce:eb:29:df:a4:14:02:b9:01:a5:d4:a6:9c:
+ 43:64:88:de:f8:7e:fe:e3:f5:1e:e5:fe:dc:a3:a8:
+ e4:66:31:d9:4c:25:e9:18:b9:89:59:09:ae:e9:9d:
+ 1c:6d:37:0f:4a:1e:35:20:28:e2:af:d4:21:8b:01:
+ c4:45:ad:6e:2b:63:ab:92:6b:61:0a:4d:20:ed:73:
+ ba:7c:ce:fe:16:b5:db:9f:80:f0:d6:8b:6c:d9:08:
+ 79:4a:4f:78:65:da:92:bc:be:35:f9:b3:c4:f9:27:
+ 80:4e:ff:96:52:e6:02:20:e1:07:73:e9:5d:2b:bd:
+ b2:f1
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Subject Key Identifier:
+ 96:DE:61:F1:BD:1C:16:29:53:1C:C0:CC:7D:3B:83:00:40:E6:1A:7C
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.globalsign.com/repository/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.globalsign.net/root.crl
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+ X509v3 Authority Key Identifier:
+ keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 46:2a:ee:5e:bd:ae:01:60:37:31:11:86:71:74:b6:46:49:c8:
+ 10:16:fe:2f:62:23:17:ab:1f:87:f8:82:ed:ca:df:0e:2c:df:
+ 64:75:8e:e5:18:72:a7:8c:3a:8b:c9:ac:a5:77:50:f7:ef:9e:
+ a4:e0:a0:8f:14:57:a3:2a:5f:ec:7e:6d:10:e6:ba:8d:b0:08:
+ 87:76:0e:4c:b2:d9:51:bb:11:02:f2:5c:dd:1c:bd:f3:55:96:
+ 0f:d4:06:c0:fc:e2:23:8a:24:70:d3:bb:f0:79:1a:a7:61:70:
+ 83:8a:af:06:c5:20:d8:a1:63:d0:6c:ae:4f:32:d7:ae:7c:18:
+ 45:75:05:29:77:df:42:40:64:64:86:be:2a:76:09:31:6f:1d:
+ 24:f4:99:d0:85:fe:f2:21:08:f9:c6:f6:f1:d0:59:ed:d6:56:
+ 3c:08:28:03:67:ba:f0:f9:f1:90:16:47:ae:67:e6:bc:80:48:
+ e9:42:76:34:97:55:69:24:0e:83:d6:a0:2d:b4:f5:f3:79:8a:
+ 49:28:74:1a:41:a1:c2:d3:24:88:35:30:60:94:17:b4:e1:04:
+ 22:31:3d:3b:2f:17:06:b2:b8:9d:86:2b:5a:69:ef:83:f5:4b:
+ c4:aa:b4:2a:f8:7c:a1:b1:85:94:8c:f4:0c:87:0c:f4:ac:40:
+ f8:59:49:98
+-----BEGIN CERTIFICATE-----
+MIIEaTCCA1GgAwIBAgILBAAAAAABRE7wQkcwDQYJKoZIhvcNAQELBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
+MDBaFw0yNDAyMjAxMDAwMDBaMGYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMTwwOgYDVQQDEzNHbG9iYWxTaWduIE9yZ2FuaXphdGlvbiBW
+YWxpZGF0aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDHDmw/I5N/zHClnSDDDlM/fsBOwphJykfVI+8DNIV0yKMCLkZc
+C33JiJ1Pi/D4nGyMVTXbv/Kz6vvjVudKRtkTIso21ZvBqOOWQ5PyDLzm+ebomchj
+SHh/VzZpGhkdWtHUfcKc1H/hgBKueuqI6lfYygoKOhJJomIZeg0k9zfrtHOSewUj
+mxK1zusp36QUArkBpdSmnENkiN74fv7j9R7l/tyjqORmMdlMJekYuYlZCa7pnRxt
+Nw9KHjUgKOKv1CGLAcRFrW4rY6uSa2EKTSDtc7p8zv4WtdufgPDWi2zZCHlKT3hl
+2pK8vjX5s8T5J4BO/5ZS5gIg4Qdz6V0rvbLxAgMBAAGjggElMIIBITAOBgNVHQ8B
+Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUlt5h8b0cFilT
+HMDMfTuDAEDmGnwwRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0
+dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCow
+KKAmoCSGImh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYB
+BQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNv
+bS9yb290cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZI
+hvcNAQELBQADggEBAEYq7l69rgFgNzERhnF0tkZJyBAW/i9iIxerH4f4gu3K3w4s
+32R1juUYcqeMOovJrKV3UPfvnqTgoI8UV6MqX+x+bRDmuo2wCId2Dkyy2VG7EQLy
+XN0cvfNVlg/UBsD84iOKJHDTu/B5GqdhcIOKrwbFINihY9Bsrk8y1658GEV1BSl3
+30JAZGSGvip2CTFvHST0mdCF/vIhCPnG9vHQWe3WVjwIKANnuvD58ZAWR65n5ryA
+SOlCdjSXVWkkDoPWoC209fN5ikkodBpBocLTJIg1MGCUF7ThBCIxPTsvFwayuJ2G
+K1pp74P1S8SqtCr4fKGxhZSM9AyHDPSsQPhZSZg=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert15[] = {
+ 0x30, 0x82, 0x04, 0x69, 0x30, 0x82, 0x03, 0x51, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x4e, 0xf0,
+ 0x42, 0x47, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+ 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61, 0x31,
+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x07, 0x52, 0x6f,
+ 0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
+ 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e,
+ 0x17, 0x0d, 0x31, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x66, 0x31, 0x0b, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
+ 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
+ 0x31, 0x3c, 0x30, 0x3a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x33, 0x47,
+ 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x4f, 0x72,
+ 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x56,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x41,
+ 0x20, 0x2d, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20,
+ 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc7,
+ 0x0e, 0x6c, 0x3f, 0x23, 0x93, 0x7f, 0xcc, 0x70, 0xa5, 0x9d, 0x20, 0xc3,
+ 0x0e, 0x53, 0x3f, 0x7e, 0xc0, 0x4e, 0xc2, 0x98, 0x49, 0xca, 0x47, 0xd5,
+ 0x23, 0xef, 0x03, 0x34, 0x85, 0x74, 0xc8, 0xa3, 0x02, 0x2e, 0x46, 0x5c,
+ 0x0b, 0x7d, 0xc9, 0x88, 0x9d, 0x4f, 0x8b, 0xf0, 0xf8, 0x9c, 0x6c, 0x8c,
+ 0x55, 0x35, 0xdb, 0xbf, 0xf2, 0xb3, 0xea, 0xfb, 0xe3, 0x56, 0xe7, 0x4a,
+ 0x46, 0xd9, 0x13, 0x22, 0xca, 0x36, 0xd5, 0x9b, 0xc1, 0xa8, 0xe3, 0x96,
+ 0x43, 0x93, 0xf2, 0x0c, 0xbc, 0xe6, 0xf9, 0xe6, 0xe8, 0x99, 0xc8, 0x63,
+ 0x48, 0x78, 0x7f, 0x57, 0x36, 0x69, 0x1a, 0x19, 0x1d, 0x5a, 0xd1, 0xd4,
+ 0x7d, 0xc2, 0x9c, 0xd4, 0x7f, 0xe1, 0x80, 0x12, 0xae, 0x7a, 0xea, 0x88,
+ 0xea, 0x57, 0xd8, 0xca, 0x0a, 0x0a, 0x3a, 0x12, 0x49, 0xa2, 0x62, 0x19,
+ 0x7a, 0x0d, 0x24, 0xf7, 0x37, 0xeb, 0xb4, 0x73, 0x92, 0x7b, 0x05, 0x23,
+ 0x9b, 0x12, 0xb5, 0xce, 0xeb, 0x29, 0xdf, 0xa4, 0x14, 0x02, 0xb9, 0x01,
+ 0xa5, 0xd4, 0xa6, 0x9c, 0x43, 0x64, 0x88, 0xde, 0xf8, 0x7e, 0xfe, 0xe3,
+ 0xf5, 0x1e, 0xe5, 0xfe, 0xdc, 0xa3, 0xa8, 0xe4, 0x66, 0x31, 0xd9, 0x4c,
+ 0x25, 0xe9, 0x18, 0xb9, 0x89, 0x59, 0x09, 0xae, 0xe9, 0x9d, 0x1c, 0x6d,
+ 0x37, 0x0f, 0x4a, 0x1e, 0x35, 0x20, 0x28, 0xe2, 0xaf, 0xd4, 0x21, 0x8b,
+ 0x01, 0xc4, 0x45, 0xad, 0x6e, 0x2b, 0x63, 0xab, 0x92, 0x6b, 0x61, 0x0a,
+ 0x4d, 0x20, 0xed, 0x73, 0xba, 0x7c, 0xce, 0xfe, 0x16, 0xb5, 0xdb, 0x9f,
+ 0x80, 0xf0, 0xd6, 0x8b, 0x6c, 0xd9, 0x08, 0x79, 0x4a, 0x4f, 0x78, 0x65,
+ 0xda, 0x92, 0xbc, 0xbe, 0x35, 0xf9, 0xb3, 0xc4, 0xf9, 0x27, 0x80, 0x4e,
+ 0xff, 0x96, 0x52, 0xe6, 0x02, 0x20, 0xe1, 0x07, 0x73, 0xe9, 0x5d, 0x2b,
+ 0xbd, 0xb2, 0xf1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x25,
+ 0x30, 0x82, 0x01, 0x21, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+ 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12, 0x06, 0x03,
+ 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+ 0xff, 0x02, 0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+ 0x16, 0x04, 0x14, 0x96, 0xde, 0x61, 0xf1, 0xbd, 0x1c, 0x16, 0x29, 0x53,
+ 0x1c, 0xc0, 0xcc, 0x7d, 0x3b, 0x83, 0x00, 0x40, 0xe6, 0x1a, 0x7c, 0x30,
+ 0x47, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x40, 0x30, 0x3e, 0x30, 0x3c,
+ 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x34, 0x30, 0x32, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x26, 0x68, 0x74,
+ 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6c,
+ 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+ 0x30, 0x33, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30,
+ 0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
+ 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f,
+ 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67,
+ 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x72, 0x31, 0x30, 0x1f, 0x06, 0x03,
+ 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66,
+ 0x1a, 0x45, 0x0d, 0x97, 0xca, 0x89, 0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34,
+ 0xa8, 0xff, 0xfc, 0xfd, 0x4b, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+ 0x00, 0x46, 0x2a, 0xee, 0x5e, 0xbd, 0xae, 0x01, 0x60, 0x37, 0x31, 0x11,
+ 0x86, 0x71, 0x74, 0xb6, 0x46, 0x49, 0xc8, 0x10, 0x16, 0xfe, 0x2f, 0x62,
+ 0x23, 0x17, 0xab, 0x1f, 0x87, 0xf8, 0x82, 0xed, 0xca, 0xdf, 0x0e, 0x2c,
+ 0xdf, 0x64, 0x75, 0x8e, 0xe5, 0x18, 0x72, 0xa7, 0x8c, 0x3a, 0x8b, 0xc9,
+ 0xac, 0xa5, 0x77, 0x50, 0xf7, 0xef, 0x9e, 0xa4, 0xe0, 0xa0, 0x8f, 0x14,
+ 0x57, 0xa3, 0x2a, 0x5f, 0xec, 0x7e, 0x6d, 0x10, 0xe6, 0xba, 0x8d, 0xb0,
+ 0x08, 0x87, 0x76, 0x0e, 0x4c, 0xb2, 0xd9, 0x51, 0xbb, 0x11, 0x02, 0xf2,
+ 0x5c, 0xdd, 0x1c, 0xbd, 0xf3, 0x55, 0x96, 0x0f, 0xd4, 0x06, 0xc0, 0xfc,
+ 0xe2, 0x23, 0x8a, 0x24, 0x70, 0xd3, 0xbb, 0xf0, 0x79, 0x1a, 0xa7, 0x61,
+ 0x70, 0x83, 0x8a, 0xaf, 0x06, 0xc5, 0x20, 0xd8, 0xa1, 0x63, 0xd0, 0x6c,
+ 0xae, 0x4f, 0x32, 0xd7, 0xae, 0x7c, 0x18, 0x45, 0x75, 0x05, 0x29, 0x77,
+ 0xdf, 0x42, 0x40, 0x64, 0x64, 0x86, 0xbe, 0x2a, 0x76, 0x09, 0x31, 0x6f,
+ 0x1d, 0x24, 0xf4, 0x99, 0xd0, 0x85, 0xfe, 0xf2, 0x21, 0x08, 0xf9, 0xc6,
+ 0xf6, 0xf1, 0xd0, 0x59, 0xed, 0xd6, 0x56, 0x3c, 0x08, 0x28, 0x03, 0x67,
+ 0xba, 0xf0, 0xf9, 0xf1, 0x90, 0x16, 0x47, 0xae, 0x67, 0xe6, 0xbc, 0x80,
+ 0x48, 0xe9, 0x42, 0x76, 0x34, 0x97, 0x55, 0x69, 0x24, 0x0e, 0x83, 0xd6,
+ 0xa0, 0x2d, 0xb4, 0xf5, 0xf3, 0x79, 0x8a, 0x49, 0x28, 0x74, 0x1a, 0x41,
+ 0xa1, 0xc2, 0xd3, 0x24, 0x88, 0x35, 0x30, 0x60, 0x94, 0x17, 0xb4, 0xe1,
+ 0x04, 0x22, 0x31, 0x3d, 0x3b, 0x2f, 0x17, 0x06, 0xb2, 0xb8, 0x9d, 0x86,
+ 0x2b, 0x5a, 0x69, 0xef, 0x83, 0xf5, 0x4b, 0xc4, 0xaa, 0xb4, 0x2a, 0xf8,
+ 0x7c, 0xa1, 0xb1, 0x85, 0x94, 0x8c, 0xf4, 0x0c, 0x87, 0x0c, 0xf4, 0xac,
+ 0x40, 0xf8, 0x59, 0x49, 0x98,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 4d:5f:2c:34:08:b2:4c:20:cd:6d:50:7e:24:4d:c9:ec
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+ Validity
+ Not Before: Feb 8 00:00:00 2010 GMT
+ Not After : Feb 7 23:59:59 2020 GMT
+ Subject: C=US, O=Thawte, Inc., CN=Thawte SSL CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:99:e4:85:5b:76:49:7d:2f:05:d8:c5:ac:c8:c8:
+ a9:d3:dc:98:e6:d7:34:a6:2f:0c:f2:22:26:d8:a3:
+ c9:14:4c:8f:05:a4:45:e8:14:0c:58:90:05:1a:b7:
+ c5:c1:06:a5:80:af:bb:1d:49:6b:52:34:88:c3:59:
+ e7:ef:6b:c4:27:41:8c:2b:66:1d:d0:e0:a3:97:98:
+ 19:34:4b:41:d5:98:d5:c7:05:ad:a2:e4:d7:ed:0c:
+ ad:4f:c1:b5:b0:21:fd:3e:50:53:b2:c4:90:d0:d4:
+ 30:67:6c:9a:f1:0e:74:c4:c2:dc:8a:e8:97:ff:c9:
+ 92:ae:01:8a:56:0a:98:32:b0:00:23:ec:90:1a:60:
+ c3:ed:bb:3a:cb:0f:63:9f:0d:44:c9:52:e1:25:96:
+ bf:ed:50:95:89:7f:56:14:b1:b7:61:1d:1c:07:8c:
+ 3a:2c:f7:ff:80:de:39:45:d5:af:1a:d1:78:d8:c7:
+ 71:6a:a3:19:a7:32:50:21:e9:f2:0e:a1:c6:13:03:
+ 44:48:d1:66:a8:52:57:d7:11:b4:93:8b:e5:99:9f:
+ 5d:e7:78:51:e5:4d:f6:b7:59:b4:76:b5:09:37:4d:
+ 06:38:13:7a:1c:08:98:5c:c4:48:4a:cb:52:a0:a9:
+ f8:b1:9d:8e:7b:79:b0:20:2f:3c:96:a8:11:62:47:
+ bb:11
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ Authority Information Access:
+ OCSP - URI:http://ocsp.thawte.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.thawte.com/ThawtePCA.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Alternative Name:
+ DirName:/CN=VeriSignMPKI-2-9
+ X509v3 Subject Key Identifier:
+ A7:A2:83:BB:34:45:40:3D:FC:D5:30:4F:12:B9:3E:A1:01:9F:F6:DB
+ X509v3 Authority Key Identifier:
+ keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 80:22:80:e0:6c:c8:95:16:d7:57:26:87:f3:72:34:db:c6:72:
+ 56:27:3e:d3:96:f6:2e:25:91:a5:3e:33:97:a7:4b:e5:2f:fb:
+ 25:7d:2f:07:61:fa:6f:83:74:4c:4c:53:72:20:a4:7a:cf:51:
+ 51:56:81:88:b0:6d:1f:36:2c:c8:2b:b1:88:99:c1:fe:44:ab:
+ 48:51:7c:d8:f2:44:64:2a:d8:71:a7:fb:1a:2f:f9:19:8d:34:
+ b2:23:bf:c4:4c:55:1d:8e:44:e8:aa:5d:9a:dd:9f:fd:03:c7:
+ ba:24:43:8d:2d:47:44:db:f6:d8:98:c8:b2:f9:da:ef:ed:29:
+ 5c:69:12:fa:d1:23:96:0f:bf:9c:0d:f2:79:45:53:37:9a:56:
+ 2f:e8:57:10:70:f6:ee:89:0c:49:89:9a:c1:23:f5:c2:2a:cc:
+ 41:cf:22:ab:65:6e:b7:94:82:6d:2f:40:5f:58:de:eb:95:2b:
+ a6:72:68:52:19:91:2a:ae:75:9d:4e:92:e6:ca:de:54:ea:18:
+ ab:25:3c:e6:64:a6:79:1f:26:7d:61:ed:7d:d2:e5:71:55:d8:
+ 93:17:7c:14:38:30:3c:df:86:e3:4c:ad:49:e3:97:59:ce:1b:
+ 9b:2b:ce:dc:65:d4:0b:28:6b:4e:84:46:51:44:f7:33:08:2d:
+ 58:97:21:ae
+-----BEGIN CERTIFICATE-----
+MIIEbDCCA1SgAwIBAgIQTV8sNAiyTCDNbVB+JE3J7DANBgkqhkiG9w0BAQUFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTAwMjA4MDAwMDAwWhcNMjAw
+MjA3MjM1OTU5WjA8MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMVGhhd3RlLCBJbmMu
+MRYwFAYDVQQDEw1UaGF3dGUgU1NMIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAmeSFW3ZJfS8F2MWsyMip09yY5tc0pi8M8iIm2KPJFEyPBaRF6BQM
+WJAFGrfFwQalgK+7HUlrUjSIw1nn72vEJ0GMK2Yd0OCjl5gZNEtB1ZjVxwWtouTX
+7QytT8G1sCH9PlBTssSQ0NQwZ2ya8Q50xMLciuiX/8mSrgGKVgqYMrAAI+yQGmDD
+7bs6yw9jnw1EyVLhJZa/7VCViX9WFLG3YR0cB4w6LPf/gN45RdWvGtF42MdxaqMZ
+pzJQIenyDqHGEwNESNFmqFJX1xG0k4vlmZ9d53hR5U32t1m0drUJN00GOBN6HAiY
+XMRISstSoKn4sZ2Oe3mwIC88lqgRYke7EQIDAQABo4H7MIH4MDIGCCsGAQUFBwEB
+BCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTASBgNVHRMB
+Af8ECDAGAQH/AgEAMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwudGhhd3Rl
+LmNvbS9UaGF3dGVQQ0EuY3JsMA4GA1UdDwEB/wQEAwIBBjAoBgNVHREEITAfpB0w
+GzEZMBcGA1UEAxMQVmVyaVNpZ25NUEtJLTItOTAdBgNVHQ4EFgQUp6KDuzRFQD38
+1TBPErk+oQGf9tswHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutXSFAwDQYJ
+KoZIhvcNAQEFBQADggEBAIAigOBsyJUW11cmh/NyNNvGclYnPtOW9i4lkaU+M5en
+S+Uv+yV9Lwdh+m+DdExMU3IgpHrPUVFWgYiwbR82LMgrsYiZwf5Eq0hRfNjyRGQq
+2HGn+xov+RmNNLIjv8RMVR2OROiqXZrdn/0Dx7okQ40tR0Tb9tiYyLL52u/tKVxp
+EvrRI5YPv5wN8nlFUzeaVi/oVxBw9u6JDEmJmsEj9cIqzEHPIqtlbreUgm0vQF9Y
+3uuVK6ZyaFIZkSqudZ1OkubK3lTqGKslPOZkpnkfJn1h7X3S5XFV2JMXfBQ4MDzf
+huNMrUnjl1nOG5srztxl1Asoa06ERlFE9zMILViXIa4=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert16[] = {
+ 0x30, 0x82, 0x04, 0x6c, 0x30, 0x82, 0x03, 0x54, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x4d, 0x5f, 0x2c, 0x34, 0x08, 0xb2, 0x4c, 0x20, 0xcd,
+ 0x6d, 0x50, 0x7e, 0x24, 0x4d, 0xc9, 0xec, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+ 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+ 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+ 0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+ 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x32, 0x30, 0x38,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30, 0x30,
+ 0x32, 0x30, 0x37, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x3c,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0d, 0x54,
+ 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+ 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+ 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x99, 0xe4, 0x85,
+ 0x5b, 0x76, 0x49, 0x7d, 0x2f, 0x05, 0xd8, 0xc5, 0xac, 0xc8, 0xc8, 0xa9,
+ 0xd3, 0xdc, 0x98, 0xe6, 0xd7, 0x34, 0xa6, 0x2f, 0x0c, 0xf2, 0x22, 0x26,
+ 0xd8, 0xa3, 0xc9, 0x14, 0x4c, 0x8f, 0x05, 0xa4, 0x45, 0xe8, 0x14, 0x0c,
+ 0x58, 0x90, 0x05, 0x1a, 0xb7, 0xc5, 0xc1, 0x06, 0xa5, 0x80, 0xaf, 0xbb,
+ 0x1d, 0x49, 0x6b, 0x52, 0x34, 0x88, 0xc3, 0x59, 0xe7, 0xef, 0x6b, 0xc4,
+ 0x27, 0x41, 0x8c, 0x2b, 0x66, 0x1d, 0xd0, 0xe0, 0xa3, 0x97, 0x98, 0x19,
+ 0x34, 0x4b, 0x41, 0xd5, 0x98, 0xd5, 0xc7, 0x05, 0xad, 0xa2, 0xe4, 0xd7,
+ 0xed, 0x0c, 0xad, 0x4f, 0xc1, 0xb5, 0xb0, 0x21, 0xfd, 0x3e, 0x50, 0x53,
+ 0xb2, 0xc4, 0x90, 0xd0, 0xd4, 0x30, 0x67, 0x6c, 0x9a, 0xf1, 0x0e, 0x74,
+ 0xc4, 0xc2, 0xdc, 0x8a, 0xe8, 0x97, 0xff, 0xc9, 0x92, 0xae, 0x01, 0x8a,
+ 0x56, 0x0a, 0x98, 0x32, 0xb0, 0x00, 0x23, 0xec, 0x90, 0x1a, 0x60, 0xc3,
+ 0xed, 0xbb, 0x3a, 0xcb, 0x0f, 0x63, 0x9f, 0x0d, 0x44, 0xc9, 0x52, 0xe1,
+ 0x25, 0x96, 0xbf, 0xed, 0x50, 0x95, 0x89, 0x7f, 0x56, 0x14, 0xb1, 0xb7,
+ 0x61, 0x1d, 0x1c, 0x07, 0x8c, 0x3a, 0x2c, 0xf7, 0xff, 0x80, 0xde, 0x39,
+ 0x45, 0xd5, 0xaf, 0x1a, 0xd1, 0x78, 0xd8, 0xc7, 0x71, 0x6a, 0xa3, 0x19,
+ 0xa7, 0x32, 0x50, 0x21, 0xe9, 0xf2, 0x0e, 0xa1, 0xc6, 0x13, 0x03, 0x44,
+ 0x48, 0xd1, 0x66, 0xa8, 0x52, 0x57, 0xd7, 0x11, 0xb4, 0x93, 0x8b, 0xe5,
+ 0x99, 0x9f, 0x5d, 0xe7, 0x78, 0x51, 0xe5, 0x4d, 0xf6, 0xb7, 0x59, 0xb4,
+ 0x76, 0xb5, 0x09, 0x37, 0x4d, 0x06, 0x38, 0x13, 0x7a, 0x1c, 0x08, 0x98,
+ 0x5c, 0xc4, 0x48, 0x4a, 0xcb, 0x52, 0xa0, 0xa9, 0xf8, 0xb1, 0x9d, 0x8e,
+ 0x7b, 0x79, 0xb0, 0x20, 0x2f, 0x3c, 0x96, 0xa8, 0x11, 0x62, 0x47, 0xbb,
+ 0x11, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xfb, 0x30, 0x81, 0xf8,
+ 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+ 0x04, 0x26, 0x30, 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x30, 0x01, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+ 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
+ 0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2d, 0x30, 0x2b, 0x30,
+ 0x29, 0xa0, 0x27, 0xa0, 0x25, 0x86, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50,
+ 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x28,
+ 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x21, 0x30, 0x1f, 0xa4, 0x1d, 0x30,
+ 0x1b, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x10,
+ 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49,
+ 0x2d, 0x32, 0x2d, 0x39, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+ 0x16, 0x04, 0x14, 0xa7, 0xa2, 0x83, 0xbb, 0x34, 0x45, 0x40, 0x3d, 0xfc,
+ 0xd5, 0x30, 0x4f, 0x12, 0xb9, 0x3e, 0xa1, 0x01, 0x9f, 0xf6, 0xdb, 0x30,
+ 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+ 0x7b, 0x5b, 0x45, 0xcf, 0xaf, 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a,
+ 0x6a, 0xb6, 0xf3, 0x46, 0xeb, 0x57, 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x01, 0x00, 0x80, 0x22, 0x80, 0xe0, 0x6c, 0xc8, 0x95, 0x16,
+ 0xd7, 0x57, 0x26, 0x87, 0xf3, 0x72, 0x34, 0xdb, 0xc6, 0x72, 0x56, 0x27,
+ 0x3e, 0xd3, 0x96, 0xf6, 0x2e, 0x25, 0x91, 0xa5, 0x3e, 0x33, 0x97, 0xa7,
+ 0x4b, 0xe5, 0x2f, 0xfb, 0x25, 0x7d, 0x2f, 0x07, 0x61, 0xfa, 0x6f, 0x83,
+ 0x74, 0x4c, 0x4c, 0x53, 0x72, 0x20, 0xa4, 0x7a, 0xcf, 0x51, 0x51, 0x56,
+ 0x81, 0x88, 0xb0, 0x6d, 0x1f, 0x36, 0x2c, 0xc8, 0x2b, 0xb1, 0x88, 0x99,
+ 0xc1, 0xfe, 0x44, 0xab, 0x48, 0x51, 0x7c, 0xd8, 0xf2, 0x44, 0x64, 0x2a,
+ 0xd8, 0x71, 0xa7, 0xfb, 0x1a, 0x2f, 0xf9, 0x19, 0x8d, 0x34, 0xb2, 0x23,
+ 0xbf, 0xc4, 0x4c, 0x55, 0x1d, 0x8e, 0x44, 0xe8, 0xaa, 0x5d, 0x9a, 0xdd,
+ 0x9f, 0xfd, 0x03, 0xc7, 0xba, 0x24, 0x43, 0x8d, 0x2d, 0x47, 0x44, 0xdb,
+ 0xf6, 0xd8, 0x98, 0xc8, 0xb2, 0xf9, 0xda, 0xef, 0xed, 0x29, 0x5c, 0x69,
+ 0x12, 0xfa, 0xd1, 0x23, 0x96, 0x0f, 0xbf, 0x9c, 0x0d, 0xf2, 0x79, 0x45,
+ 0x53, 0x37, 0x9a, 0x56, 0x2f, 0xe8, 0x57, 0x10, 0x70, 0xf6, 0xee, 0x89,
+ 0x0c, 0x49, 0x89, 0x9a, 0xc1, 0x23, 0xf5, 0xc2, 0x2a, 0xcc, 0x41, 0xcf,
+ 0x22, 0xab, 0x65, 0x6e, 0xb7, 0x94, 0x82, 0x6d, 0x2f, 0x40, 0x5f, 0x58,
+ 0xde, 0xeb, 0x95, 0x2b, 0xa6, 0x72, 0x68, 0x52, 0x19, 0x91, 0x2a, 0xae,
+ 0x75, 0x9d, 0x4e, 0x92, 0xe6, 0xca, 0xde, 0x54, 0xea, 0x18, 0xab, 0x25,
+ 0x3c, 0xe6, 0x64, 0xa6, 0x79, 0x1f, 0x26, 0x7d, 0x61, 0xed, 0x7d, 0xd2,
+ 0xe5, 0x71, 0x55, 0xd8, 0x93, 0x17, 0x7c, 0x14, 0x38, 0x30, 0x3c, 0xdf,
+ 0x86, 0xe3, 0x4c, 0xad, 0x49, 0xe3, 0x97, 0x59, 0xce, 0x1b, 0x9b, 0x2b,
+ 0xce, 0xdc, 0x65, 0xd4, 0x0b, 0x28, 0x6b, 0x4e, 0x84, 0x46, 0x51, 0x44,
+ 0xf7, 0x33, 0x08, 0x2d, 0x58, 0x97, 0x21, 0xae,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 6e:8a:90:eb:cf:f0:44:8a:72:0d:08:05:d0:82:a5:44
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Primary Certification Authority
+ Validity
+ Not Before: Oct 31 00:00:00 2013 GMT
+ Not After : Oct 30 23:59:59 2023 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust EV SSL CA - G4
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:d9:b4:05:f2:38:67:0f:09:e7:7c:f5:63:2a:e5:
+ b9:5e:a8:11:ae:75:71:d9:4c:84:67:ad:89:5d:fc:
+ 28:3d:2a:b0:a5:d5:d4:e6:30:0a:84:d4:e4:18:cb:
+ 85:37:c5:46:71:eb:1c:7b:69:db:65:69:8c:30:05:
+ 3e:07:e1:6f:3c:c1:0b:61:e6:38:44:fc:bc:8c:2f:
+ 4e:75:57:f5:96:99:7c:3e:87:1f:0f:90:4b:70:c3:
+ 3f:39:45:3b:3a:6b:cb:bb:7b:40:54:d1:8b:4b:a1:
+ 72:d2:04:e9:e0:72:1a:93:11:7a:2f:f1:ab:9d:9c:
+ 98:58:ae:2c:ea:77:5f:2f:2e:87:af:b8:6b:e3:e2:
+ e2:3f:d6:3d:e0:96:44:df:11:55:63:52:2f:f4:26:
+ 78:c4:0f:20:4d:0a:c0:68:70:15:86:38:ee:b7:76:
+ 88:ab:18:8f:4f:35:1e:d4:8c:c9:db:7e:3d:44:d4:
+ 36:8c:c1:37:b5:59:5b:87:f9:e9:f1:d4:c5:28:bd:
+ 1d:dc:cc:96:72:d1:7a:a1:a7:20:b5:b8:af:f8:6e:
+ a5:60:7b:2b:8d:1f:ee:f4:2b:d6:69:cd:af:ca:80:
+ 58:29:e8:4c:00:20:8a:49:0a:6e:8e:8c:a8:d1:00:
+ 12:84:b6:c5:e2:95:a2:c0:3b:a4:6b:f0:82:d0:96:
+ 5d:25
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://g2.symcb.com
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.geotrust.com/resources/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g1.symcb.com/GeoTrustPCA.crl
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-538
+ X509v3 Subject Key Identifier:
+ DE:CF:5C:50:B7:AE:02:1F:15:17:AA:16:E8:0D:B5:28:9D:6A:5A:F3
+ X509v3 Authority Key Identifier:
+ keyid:2C:D5:50:41:97:15:8B:F0:8F:36:61:5B:4A:FB:6B:D9:99:C9:33:92
+
+ Signature Algorithm: sha256WithRSAEncryption
+ b4:8e:bd:07:b9:9a:85:ec:3b:67:bd:07:60:61:e6:84:d1:d4:
+ ef:eb:1b:ba:0b:82:4b:95:64:b6:66:53:23:bd:b7:84:dd:e4:
+ 7b:8d:09:da:cf:b2:f5:f1:c3:bf:87:84:be:4e:a6:a8:c2:e7:
+ 12:39:28:34:e0:a4:56:44:40:0c:9f:88:a3:15:d3:e8:d3:5e:
+ e3:1c:04:60:fb:69:36:4f:6a:7e:0c:2a:28:c1:f3:aa:58:0e:
+ 6c:ce:1d:07:c3:4a:c0:9c:8d:c3:74:b1:ae:82:f0:1a:e1:f9:
+ 4e:29:bd:46:de:b7:1d:f9:7d:db:d9:0f:84:cb:92:45:cc:1c:
+ b3:18:f6:a0:cf:71:6f:0c:2e:9b:d2:2d:b3:99:93:83:44:ac:
+ 15:aa:9b:2e:67:ec:4f:88:69:05:56:7b:8b:b2:43:a9:3a:6c:
+ 1c:13:33:25:1b:fd:a8:c8:57:02:fb:1c:e0:d1:bd:3b:56:44:
+ 65:c3:63:f5:1b:ef:ec:30:d9:e3:6e:2e:13:e9:39:08:2a:0c:
+ 72:f3:9a:cc:f6:27:29:84:d3:ef:4c:c7:84:11:65:1f:c6:e3:
+ 81:03:db:87:cc:78:f7:b5:9d:96:3e:6a:7f:bc:11:85:7a:75:
+ e6:41:7d:0d:cf:f9:e5:85:69:25:8f:c7:8d:07:2d:f8:69:0f:
+ cb:41:53:00
+-----BEGIN CERTIFICATE-----
+MIIEbjCCA1agAwIBAgIQboqQ68/wRIpyDQgF0IKlRDANBgkqhkiG9w0BAQsFADBY
+MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
+R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMzEw
+MzEwMDAwMDBaFw0yMzEwMzAyMzU5NTlaMEcxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1HZW9UcnVzdCBJbmMuMSAwHgYDVQQDExdHZW9UcnVzdCBFViBTU0wgQ0EgLSBH
+NDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANm0BfI4Zw8J53z1Yyrl
+uV6oEa51cdlMhGetiV38KD0qsKXV1OYwCoTU5BjLhTfFRnHrHHtp22VpjDAFPgfh
+bzzBC2HmOET8vIwvTnVX9ZaZfD6HHw+QS3DDPzlFOzpry7t7QFTRi0uhctIE6eBy
+GpMRei/xq52cmFiuLOp3Xy8uh6+4a+Pi4j/WPeCWRN8RVWNSL/QmeMQPIE0KwGhw
+FYY47rd2iKsYj081HtSMydt+PUTUNozBN7VZW4f56fHUxSi9HdzMlnLReqGnILW4
+r/hupWB7K40f7vQr1mnNr8qAWCnoTAAgikkKbo6MqNEAEoS2xeKVosA7pGvwgtCW
+XSUCAwEAAaOCAUMwggE/MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQD
+AgEGMC8GCCsGAQUFBwEBBCMwITAfBggrBgEFBQcwAYYTaHR0cDovL2cyLnN5bWNi
+LmNvbTBHBgNVHSAEQDA+MDwGBFUdIAAwNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93
+d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwNAYDVR0fBC0wKzApoCegJYYj
+aHR0cDovL2cxLnN5bWNiLmNvbS9HZW9UcnVzdFBDQS5jcmwwKQYDVR0RBCIwIKQe
+MBwxGjAYBgNVBAMTEVN5bWFudGVjUEtJLTEtNTM4MB0GA1UdDgQWBBTez1xQt64C
+HxUXqhboDbUonWpa8zAfBgNVHSMEGDAWgBQs1VBBlxWL8I82YVtK+2vZmckzkjAN
+BgkqhkiG9w0BAQsFAAOCAQEAtI69B7mahew7Z70HYGHmhNHU7+sbuguCS5VktmZT
+I723hN3ke40J2s+y9fHDv4eEvk6mqMLnEjkoNOCkVkRADJ+IoxXT6NNe4xwEYPtp
+Nk9qfgwqKMHzqlgObM4dB8NKwJyNw3SxroLwGuH5Tim9Rt63Hfl929kPhMuSRcwc
+sxj2oM9xbwwum9Its5mTg0SsFaqbLmfsT4hpBVZ7i7JDqTpsHBMzJRv9qMhXAvsc
+4NG9O1ZEZcNj9Rvv7DDZ424uE+k5CCoMcvOazPYnKYTT70zHhBFlH8bjgQPbh8x4
+97Wdlj5qf7wRhXp15kF9Dc/55YVpJY/HjQct+GkPy0FTAA==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert17[] = {
+ 0x30, 0x82, 0x04, 0x6e, 0x30, 0x82, 0x03, 0x56, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x6e, 0x8a, 0x90, 0xeb, 0xcf, 0xf0, 0x44, 0x8a, 0x72,
+ 0x0d, 0x08, 0x05, 0xd0, 0x82, 0xa5, 0x44, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x58,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d,
+ 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x28,
+ 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30,
+ 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32,
+ 0x33, 0x31, 0x30, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a,
+ 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+ 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x17, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45,
+ 0x56, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47,
+ 0x34, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f,
+ 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xd9, 0xb4,
+ 0x05, 0xf2, 0x38, 0x67, 0x0f, 0x09, 0xe7, 0x7c, 0xf5, 0x63, 0x2a, 0xe5,
+ 0xb9, 0x5e, 0xa8, 0x11, 0xae, 0x75, 0x71, 0xd9, 0x4c, 0x84, 0x67, 0xad,
+ 0x89, 0x5d, 0xfc, 0x28, 0x3d, 0x2a, 0xb0, 0xa5, 0xd5, 0xd4, 0xe6, 0x30,
+ 0x0a, 0x84, 0xd4, 0xe4, 0x18, 0xcb, 0x85, 0x37, 0xc5, 0x46, 0x71, 0xeb,
+ 0x1c, 0x7b, 0x69, 0xdb, 0x65, 0x69, 0x8c, 0x30, 0x05, 0x3e, 0x07, 0xe1,
+ 0x6f, 0x3c, 0xc1, 0x0b, 0x61, 0xe6, 0x38, 0x44, 0xfc, 0xbc, 0x8c, 0x2f,
+ 0x4e, 0x75, 0x57, 0xf5, 0x96, 0x99, 0x7c, 0x3e, 0x87, 0x1f, 0x0f, 0x90,
+ 0x4b, 0x70, 0xc3, 0x3f, 0x39, 0x45, 0x3b, 0x3a, 0x6b, 0xcb, 0xbb, 0x7b,
+ 0x40, 0x54, 0xd1, 0x8b, 0x4b, 0xa1, 0x72, 0xd2, 0x04, 0xe9, 0xe0, 0x72,
+ 0x1a, 0x93, 0x11, 0x7a, 0x2f, 0xf1, 0xab, 0x9d, 0x9c, 0x98, 0x58, 0xae,
+ 0x2c, 0xea, 0x77, 0x5f, 0x2f, 0x2e, 0x87, 0xaf, 0xb8, 0x6b, 0xe3, 0xe2,
+ 0xe2, 0x3f, 0xd6, 0x3d, 0xe0, 0x96, 0x44, 0xdf, 0x11, 0x55, 0x63, 0x52,
+ 0x2f, 0xf4, 0x26, 0x78, 0xc4, 0x0f, 0x20, 0x4d, 0x0a, 0xc0, 0x68, 0x70,
+ 0x15, 0x86, 0x38, 0xee, 0xb7, 0x76, 0x88, 0xab, 0x18, 0x8f, 0x4f, 0x35,
+ 0x1e, 0xd4, 0x8c, 0xc9, 0xdb, 0x7e, 0x3d, 0x44, 0xd4, 0x36, 0x8c, 0xc1,
+ 0x37, 0xb5, 0x59, 0x5b, 0x87, 0xf9, 0xe9, 0xf1, 0xd4, 0xc5, 0x28, 0xbd,
+ 0x1d, 0xdc, 0xcc, 0x96, 0x72, 0xd1, 0x7a, 0xa1, 0xa7, 0x20, 0xb5, 0xb8,
+ 0xaf, 0xf8, 0x6e, 0xa5, 0x60, 0x7b, 0x2b, 0x8d, 0x1f, 0xee, 0xf4, 0x2b,
+ 0xd6, 0x69, 0xcd, 0xaf, 0xca, 0x80, 0x58, 0x29, 0xe8, 0x4c, 0x00, 0x20,
+ 0x8a, 0x49, 0x0a, 0x6e, 0x8e, 0x8c, 0xa8, 0xd1, 0x00, 0x12, 0x84, 0xb6,
+ 0xc5, 0xe2, 0x95, 0xa2, 0xc0, 0x3b, 0xa4, 0x6b, 0xf0, 0x82, 0xd0, 0x96,
+ 0x5d, 0x25, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x43, 0x30,
+ 0x82, 0x01, 0x3f, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+ 0x02, 0x01, 0x06, 0x30, 0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x01, 0x01, 0x04, 0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x47, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+ 0x40, 0x30, 0x3e, 0x30, 0x3c, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30,
+ 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+ 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77,
+ 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x2d, 0x30, 0x2b, 0x30, 0x29, 0xa0, 0x27, 0xa0, 0x25, 0x86, 0x23,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x31, 0x2e, 0x73, 0x79,
+ 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x6f, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x50, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+ 0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e,
+ 0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49,
+ 0x2d, 0x31, 0x2d, 0x35, 0x33, 0x38, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+ 0x0e, 0x04, 0x16, 0x04, 0x14, 0xde, 0xcf, 0x5c, 0x50, 0xb7, 0xae, 0x02,
+ 0x1f, 0x15, 0x17, 0xaa, 0x16, 0xe8, 0x0d, 0xb5, 0x28, 0x9d, 0x6a, 0x5a,
+ 0xf3, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0x2c, 0xd5, 0x50, 0x41, 0x97, 0x15, 0x8b, 0xf0, 0x8f, 0x36,
+ 0x61, 0x5b, 0x4a, 0xfb, 0x6b, 0xd9, 0x99, 0xc9, 0x33, 0x92, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xb4, 0x8e, 0xbd, 0x07, 0xb9, 0x9a,
+ 0x85, 0xec, 0x3b, 0x67, 0xbd, 0x07, 0x60, 0x61, 0xe6, 0x84, 0xd1, 0xd4,
+ 0xef, 0xeb, 0x1b, 0xba, 0x0b, 0x82, 0x4b, 0x95, 0x64, 0xb6, 0x66, 0x53,
+ 0x23, 0xbd, 0xb7, 0x84, 0xdd, 0xe4, 0x7b, 0x8d, 0x09, 0xda, 0xcf, 0xb2,
+ 0xf5, 0xf1, 0xc3, 0xbf, 0x87, 0x84, 0xbe, 0x4e, 0xa6, 0xa8, 0xc2, 0xe7,
+ 0x12, 0x39, 0x28, 0x34, 0xe0, 0xa4, 0x56, 0x44, 0x40, 0x0c, 0x9f, 0x88,
+ 0xa3, 0x15, 0xd3, 0xe8, 0xd3, 0x5e, 0xe3, 0x1c, 0x04, 0x60, 0xfb, 0x69,
+ 0x36, 0x4f, 0x6a, 0x7e, 0x0c, 0x2a, 0x28, 0xc1, 0xf3, 0xaa, 0x58, 0x0e,
+ 0x6c, 0xce, 0x1d, 0x07, 0xc3, 0x4a, 0xc0, 0x9c, 0x8d, 0xc3, 0x74, 0xb1,
+ 0xae, 0x82, 0xf0, 0x1a, 0xe1, 0xf9, 0x4e, 0x29, 0xbd, 0x46, 0xde, 0xb7,
+ 0x1d, 0xf9, 0x7d, 0xdb, 0xd9, 0x0f, 0x84, 0xcb, 0x92, 0x45, 0xcc, 0x1c,
+ 0xb3, 0x18, 0xf6, 0xa0, 0xcf, 0x71, 0x6f, 0x0c, 0x2e, 0x9b, 0xd2, 0x2d,
+ 0xb3, 0x99, 0x93, 0x83, 0x44, 0xac, 0x15, 0xaa, 0x9b, 0x2e, 0x67, 0xec,
+ 0x4f, 0x88, 0x69, 0x05, 0x56, 0x7b, 0x8b, 0xb2, 0x43, 0xa9, 0x3a, 0x6c,
+ 0x1c, 0x13, 0x33, 0x25, 0x1b, 0xfd, 0xa8, 0xc8, 0x57, 0x02, 0xfb, 0x1c,
+ 0xe0, 0xd1, 0xbd, 0x3b, 0x56, 0x44, 0x65, 0xc3, 0x63, 0xf5, 0x1b, 0xef,
+ 0xec, 0x30, 0xd9, 0xe3, 0x6e, 0x2e, 0x13, 0xe9, 0x39, 0x08, 0x2a, 0x0c,
+ 0x72, 0xf3, 0x9a, 0xcc, 0xf6, 0x27, 0x29, 0x84, 0xd3, 0xef, 0x4c, 0xc7,
+ 0x84, 0x11, 0x65, 0x1f, 0xc6, 0xe3, 0x81, 0x03, 0xdb, 0x87, 0xcc, 0x78,
+ 0xf7, 0xb5, 0x9d, 0x96, 0x3e, 0x6a, 0x7f, 0xbc, 0x11, 0x85, 0x7a, 0x75,
+ 0xe6, 0x41, 0x7d, 0x0d, 0xcf, 0xf9, 0xe5, 0x85, 0x69, 0x25, 0x8f, 0xc7,
+ 0x8d, 0x07, 0x2d, 0xf8, 0x69, 0x0f, 0xcb, 0x41, 0x53, 0x00,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 1828629 (0x1be715)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority
+ Validity
+ Not Before: Jan 1 07:00:00 2014 GMT
+ Not After : May 30 07:00:00 2031 GMT
+ Subject: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:bf:71:62:08:f1:fa:59:34:f7:1b:c9:18:a3:f7:
+ 80:49:58:e9:22:83:13:a6:c5:20:43:01:3b:84:f1:
+ e6:85:49:9f:27:ea:f6:84:1b:4e:a0:b4:db:70:98:
+ c7:32:01:b1:05:3e:07:4e:ee:f4:fa:4f:2f:59:30:
+ 22:e7:ab:19:56:6b:e2:80:07:fc:f3:16:75:80:39:
+ 51:7b:e5:f9:35:b6:74:4e:a9:8d:82:13:e4:b6:3f:
+ a9:03:83:fa:a2:be:8a:15:6a:7f:de:0b:c3:b6:19:
+ 14:05:ca:ea:c3:a8:04:94:3b:46:7c:32:0d:f3:00:
+ 66:22:c8:8d:69:6d:36:8c:11:18:b7:d3:b2:1c:60:
+ b4:38:fa:02:8c:ce:d3:dd:46:07:de:0a:3e:eb:5d:
+ 7c:c8:7c:fb:b0:2b:53:a4:92:62:69:51:25:05:61:
+ 1a:44:81:8c:2c:a9:43:96:23:df:ac:3a:81:9a:0e:
+ 29:c5:1c:a9:e9:5d:1e:b6:9e:9e:30:0a:39:ce:f1:
+ 88:80:fb:4b:5d:cc:32:ec:85:62:43:25:34:02:56:
+ 27:01:91:b4:3b:70:2a:3f:6e:b1:e8:9c:88:01:7d:
+ 9f:d4:f9:db:53:6d:60:9d:bf:2c:e7:58:ab:b8:5f:
+ 46:fc:ce:c4:1b:03:3c:09:eb:49:31:5c:69:46:b3:
+ e0:47
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 3A:9A:85:07:10:67:28:B6:EF:F6:BD:05:41:6E:20:C1:94:DA:0F:DE
+ X509v3 Authority Key Identifier:
+ keyid:D2:C4:B0:D2:91:D4:4C:11:71:B3:61:CB:3D:A1:FE:DD:A8:6A:D4:E3
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.godaddy.com/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.godaddy.com/gdroot.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://certs.godaddy.com/repository/
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 59:0b:53:bd:92:86:11:a7:24:7b:ed:5b:31:cf:1d:1f:6c:70:
+ c5:b8:6e:be:4e:bb:f6:be:97:50:e1:30:7f:ba:28:5c:62:94:
+ c2:e3:7e:33:f7:fb:42:76:85:db:95:1c:8c:22:58:75:09:0c:
+ 88:65:67:39:0a:16:09:c5:a0:38:97:a4:c5:23:93:3f:b4:18:
+ a6:01:06:44:91:e3:a7:69:27:b4:5a:25:7f:3a:b7:32:cd:dd:
+ 84:ff:2a:38:29:33:a4:dd:67:b2:85:fe:a1:88:20:1c:50:89:
+ c8:dc:2a:f6:42:03:37:4c:e6:88:df:d5:af:24:f2:b1:c3:df:
+ cc:b5:ec:e0:99:5e:b7:49:54:20:3c:94:18:0c:c7:1c:52:18:
+ 49:a4:6d:e1:b3:58:0b:c9:d8:ec:d9:ae:1c:32:8e:28:70:0d:
+ e2:fe:a6:17:9e:84:0f:bd:57:70:b3:5a:e9:1f:a0:86:53:bb:
+ ef:7c:ff:69:0b:e0:48:c3:b7:93:0b:c8:0a:54:c4:ac:5d:14:
+ 67:37:6c:ca:a5:2f:31:08:37:aa:6e:6f:8c:bc:9b:e2:57:5d:
+ 24:81:af:97:97:9c:84:ad:6c:ac:37:4c:66:f3:61:91:11:20:
+ e4:be:30:9f:7a:a4:29:09:b0:e1:34:5f:64:77:18:40:51:df:
+ 8c:30:a6:af
+-----BEGIN CERTIFICATE-----
+MIIEfTCCA2WgAwIBAgIDG+cVMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVT
+MSEwHwYDVQQKExhUaGUgR28gRGFkZHkgR3JvdXAsIEluYy4xMTAvBgNVBAsTKEdv
+IERhZGR5IENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMTAx
+MDcwMDAwWhcNMzEwNTMwMDcwMDAwWjCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHku
+Y29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1
+dGhvcml0eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3Fi
+CPH6WTT3G8kYo/eASVjpIoMTpsUgQwE7hPHmhUmfJ+r2hBtOoLTbcJjHMgGxBT4H
+Tu70+k8vWTAi56sZVmvigAf88xZ1gDlRe+X5NbZ0TqmNghPktj+pA4P6or6KFWp/
+3gvDthkUBcrqw6gElDtGfDIN8wBmIsiNaW02jBEYt9OyHGC0OPoCjM7T3UYH3go+
+6118yHz7sCtTpJJiaVElBWEaRIGMLKlDliPfrDqBmg4pxRyp6V0etp6eMAo5zvGI
+gPtLXcwy7IViQyU0AlYnAZG0O3AqP26x6JyIAX2f1PnbU21gnb8s51iruF9G/M7E
+GwM8CetJMVxpRrPgRwIDAQABo4IBFzCCARMwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9BUFuIMGU2g/eMB8GA1Ud
+IwQYMBaAFNLEsNKR1EwRcbNhyz2h/t2oatTjMDQGCCsGAQUFBwEBBCgwJjAkBggr
+BgEFBQcwAYYYaHR0cDovL29jc3AuZ29kYWRkeS5jb20vMDIGA1UdHwQrMCkwJ6Al
+oCOGIWh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Ryb290LmNybDBGBgNVHSAEPzA9
+MDsGBFUdIAAwMzAxBggrBgEFBQcCARYlaHR0cHM6Ly9jZXJ0cy5nb2RhZGR5LmNv
+bS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWQtTvZKGEacke+1bMc8d
+H2xwxbhuvk679r6XUOEwf7ooXGKUwuN+M/f7QnaF25UcjCJYdQkMiGVnOQoWCcWg
+OJekxSOTP7QYpgEGRJHjp2kntFolfzq3Ms3dhP8qOCkzpN1nsoX+oYggHFCJyNwq
+9kIDN0zmiN/VryTyscPfzLXs4Jlet0lUIDyUGAzHHFIYSaRt4bNYC8nY7NmuHDKO
+KHAN4v6mF56ED71XcLNa6R+ghlO773z/aQvgSMO3kwvIClTErF0UZzdsyqUvMQg3
+qm5vjLyb4lddJIGvl5echK1srDdMZvNhkREg5L4wn3qkKQmw4TRfZHcYQFHfjDCm
+rw==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert18[] = {
+ 0x30, 0x82, 0x04, 0x7d, 0x30, 0x82, 0x03, 0x65, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x1b, 0xe7, 0x15, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x63, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x18, 0x54,
+ 0x68, 0x65, 0x20, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20,
+ 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31,
+ 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x28, 0x47, 0x6f,
+ 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73,
+ 0x20, 0x32, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x31, 0x30, 0x31,
+ 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x31, 0x30,
+ 0x35, 0x33, 0x30, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x81,
+ 0x83, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
+ 0x07, 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11,
+ 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74,
+ 0x73, 0x64, 0x61, 0x6c, 0x65, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55,
+ 0x04, 0x0a, 0x13, 0x11, 0x47, 0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30,
+ 0x2f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x28, 0x47, 0x6f, 0x20, 0x44,
+ 0x61, 0x64, 0x64, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65,
+ 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32,
+ 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+ 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbf, 0x71, 0x62,
+ 0x08, 0xf1, 0xfa, 0x59, 0x34, 0xf7, 0x1b, 0xc9, 0x18, 0xa3, 0xf7, 0x80,
+ 0x49, 0x58, 0xe9, 0x22, 0x83, 0x13, 0xa6, 0xc5, 0x20, 0x43, 0x01, 0x3b,
+ 0x84, 0xf1, 0xe6, 0x85, 0x49, 0x9f, 0x27, 0xea, 0xf6, 0x84, 0x1b, 0x4e,
+ 0xa0, 0xb4, 0xdb, 0x70, 0x98, 0xc7, 0x32, 0x01, 0xb1, 0x05, 0x3e, 0x07,
+ 0x4e, 0xee, 0xf4, 0xfa, 0x4f, 0x2f, 0x59, 0x30, 0x22, 0xe7, 0xab, 0x19,
+ 0x56, 0x6b, 0xe2, 0x80, 0x07, 0xfc, 0xf3, 0x16, 0x75, 0x80, 0x39, 0x51,
+ 0x7b, 0xe5, 0xf9, 0x35, 0xb6, 0x74, 0x4e, 0xa9, 0x8d, 0x82, 0x13, 0xe4,
+ 0xb6, 0x3f, 0xa9, 0x03, 0x83, 0xfa, 0xa2, 0xbe, 0x8a, 0x15, 0x6a, 0x7f,
+ 0xde, 0x0b, 0xc3, 0xb6, 0x19, 0x14, 0x05, 0xca, 0xea, 0xc3, 0xa8, 0x04,
+ 0x94, 0x3b, 0x46, 0x7c, 0x32, 0x0d, 0xf3, 0x00, 0x66, 0x22, 0xc8, 0x8d,
+ 0x69, 0x6d, 0x36, 0x8c, 0x11, 0x18, 0xb7, 0xd3, 0xb2, 0x1c, 0x60, 0xb4,
+ 0x38, 0xfa, 0x02, 0x8c, 0xce, 0xd3, 0xdd, 0x46, 0x07, 0xde, 0x0a, 0x3e,
+ 0xeb, 0x5d, 0x7c, 0xc8, 0x7c, 0xfb, 0xb0, 0x2b, 0x53, 0xa4, 0x92, 0x62,
+ 0x69, 0x51, 0x25, 0x05, 0x61, 0x1a, 0x44, 0x81, 0x8c, 0x2c, 0xa9, 0x43,
+ 0x96, 0x23, 0xdf, 0xac, 0x3a, 0x81, 0x9a, 0x0e, 0x29, 0xc5, 0x1c, 0xa9,
+ 0xe9, 0x5d, 0x1e, 0xb6, 0x9e, 0x9e, 0x30, 0x0a, 0x39, 0xce, 0xf1, 0x88,
+ 0x80, 0xfb, 0x4b, 0x5d, 0xcc, 0x32, 0xec, 0x85, 0x62, 0x43, 0x25, 0x34,
+ 0x02, 0x56, 0x27, 0x01, 0x91, 0xb4, 0x3b, 0x70, 0x2a, 0x3f, 0x6e, 0xb1,
+ 0xe8, 0x9c, 0x88, 0x01, 0x7d, 0x9f, 0xd4, 0xf9, 0xdb, 0x53, 0x6d, 0x60,
+ 0x9d, 0xbf, 0x2c, 0xe7, 0x58, 0xab, 0xb8, 0x5f, 0x46, 0xfc, 0xce, 0xc4,
+ 0x1b, 0x03, 0x3c, 0x09, 0xeb, 0x49, 0x31, 0x5c, 0x69, 0x46, 0xb3, 0xe0,
+ 0x47, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x17, 0x30, 0x82,
+ 0x01, 0x13, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
+ 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55,
+ 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x3a, 0x9a,
+ 0x85, 0x07, 0x10, 0x67, 0x28, 0xb6, 0xef, 0xf6, 0xbd, 0x05, 0x41, 0x6e,
+ 0x20, 0xc1, 0x94, 0xda, 0x0f, 0xde, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xd2, 0xc4, 0xb0, 0xd2, 0x91,
+ 0xd4, 0x4c, 0x11, 0x71, 0xb3, 0x61, 0xcb, 0x3d, 0xa1, 0xfe, 0xdd, 0xa8,
+ 0x6a, 0xd4, 0xe3, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6f, 0x64,
+ 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x32, 0x06,
+ 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30, 0x27, 0xa0, 0x25,
+ 0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+ 0x72, 0x6c, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x67, 0x64, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72,
+ 0x6c, 0x30, 0x46, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d,
+ 0x30, 0x3b, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x33, 0x30, 0x31,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25,
+ 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74,
+ 0x73, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
+ 0x2f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x59, 0x0b, 0x53,
+ 0xbd, 0x92, 0x86, 0x11, 0xa7, 0x24, 0x7b, 0xed, 0x5b, 0x31, 0xcf, 0x1d,
+ 0x1f, 0x6c, 0x70, 0xc5, 0xb8, 0x6e, 0xbe, 0x4e, 0xbb, 0xf6, 0xbe, 0x97,
+ 0x50, 0xe1, 0x30, 0x7f, 0xba, 0x28, 0x5c, 0x62, 0x94, 0xc2, 0xe3, 0x7e,
+ 0x33, 0xf7, 0xfb, 0x42, 0x76, 0x85, 0xdb, 0x95, 0x1c, 0x8c, 0x22, 0x58,
+ 0x75, 0x09, 0x0c, 0x88, 0x65, 0x67, 0x39, 0x0a, 0x16, 0x09, 0xc5, 0xa0,
+ 0x38, 0x97, 0xa4, 0xc5, 0x23, 0x93, 0x3f, 0xb4, 0x18, 0xa6, 0x01, 0x06,
+ 0x44, 0x91, 0xe3, 0xa7, 0x69, 0x27, 0xb4, 0x5a, 0x25, 0x7f, 0x3a, 0xb7,
+ 0x32, 0xcd, 0xdd, 0x84, 0xff, 0x2a, 0x38, 0x29, 0x33, 0xa4, 0xdd, 0x67,
+ 0xb2, 0x85, 0xfe, 0xa1, 0x88, 0x20, 0x1c, 0x50, 0x89, 0xc8, 0xdc, 0x2a,
+ 0xf6, 0x42, 0x03, 0x37, 0x4c, 0xe6, 0x88, 0xdf, 0xd5, 0xaf, 0x24, 0xf2,
+ 0xb1, 0xc3, 0xdf, 0xcc, 0xb5, 0xec, 0xe0, 0x99, 0x5e, 0xb7, 0x49, 0x54,
+ 0x20, 0x3c, 0x94, 0x18, 0x0c, 0xc7, 0x1c, 0x52, 0x18, 0x49, 0xa4, 0x6d,
+ 0xe1, 0xb3, 0x58, 0x0b, 0xc9, 0xd8, 0xec, 0xd9, 0xae, 0x1c, 0x32, 0x8e,
+ 0x28, 0x70, 0x0d, 0xe2, 0xfe, 0xa6, 0x17, 0x9e, 0x84, 0x0f, 0xbd, 0x57,
+ 0x70, 0xb3, 0x5a, 0xe9, 0x1f, 0xa0, 0x86, 0x53, 0xbb, 0xef, 0x7c, 0xff,
+ 0x69, 0x0b, 0xe0, 0x48, 0xc3, 0xb7, 0x93, 0x0b, 0xc8, 0x0a, 0x54, 0xc4,
+ 0xac, 0x5d, 0x14, 0x67, 0x37, 0x6c, 0xca, 0xa5, 0x2f, 0x31, 0x08, 0x37,
+ 0xaa, 0x6e, 0x6f, 0x8c, 0xbc, 0x9b, 0xe2, 0x57, 0x5d, 0x24, 0x81, 0xaf,
+ 0x97, 0x97, 0x9c, 0x84, 0xad, 0x6c, 0xac, 0x37, 0x4c, 0x66, 0xf3, 0x61,
+ 0x91, 0x11, 0x20, 0xe4, 0xbe, 0x30, 0x9f, 0x7a, 0xa4, 0x29, 0x09, 0xb0,
+ 0xe1, 0x34, 0x5f, 0x64, 0x77, 0x18, 0x40, 0x51, 0xdf, 0x8c, 0x30, 0xa6,
+ 0xaf,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 06:9e:1d:b7:7f:cf:1d:fb:a9:7a:f5:e5:c9:a2:40:37
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA
+ Validity
+ Not Before: Mar 8 12:00:00 2013 GMT
+ Not After : Mar 8 12:00:00 2023 GMT
+ Subject: C=US, O=DigiCert Inc, CN=DigiCert Secure Server CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:bb:57:e4:21:a9:d5:9b:60:37:7e:8e:a1:61:7f:
+ 81:e2:1a:c2:75:64:d9:91:50:0b:e4:36:44:24:6e:
+ 30:d2:9b:7a:27:fa:c2:6a:ae:6a:70:09:38:b9:20:
+ 0a:c8:65:10:4a:88:ac:31:f2:dc:92:f2:63:a1:5d:
+ 80:63:59:80:92:23:1c:e6:ef:76:4a:50:35:c9:d8:
+ 71:38:b9:ed:f0:e6:42:ae:d3:38:26:79:30:f9:22:
+ 94:c6:db:a6:3f:41:78:90:d8:de:5c:7e:69:7d:f8:
+ 90:15:3a:d0:a1:a0:be:fa:b2:b2:19:a1:d8:2b:d1:
+ ce:bf:6b:dd:49:ab:a3:92:fe:b5:ab:c8:c1:3e:ee:
+ 01:00:d8:a9:44:b8:42:73:88:c3:61:f5:ab:4a:83:
+ 28:0a:d2:d4:49:fa:6a:b1:cd:df:57:2c:94:e5:e2:
+ ca:83:5f:b7:ba:62:5c:2f:68:a5:f0:c0:b9:fd:2b:
+ d1:e9:1f:d8:1a:62:15:bd:ff:3d:a6:f7:cb:ef:e6:
+ db:65:2f:25:38:ec:fb:e6:20:66:58:96:34:19:d2:
+ 15:ce:21:d3:24:cc:d9:14:6f:d8:fe:55:c7:e7:6f:
+ b6:0f:1a:8c:49:be:29:f2:ba:5a:9a:81:26:37:24:
+ 6f:d7:48:12:6c:2e:59:f5:9c:18:bb:d9:f6:68:e2:
+ df:45
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://ocsp.digicert.com
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl3.digicert.com/DigiCertGlobalRootCA.crl
+
+ Full Name:
+ URI:http://crl4.digicert.com/DigiCertGlobalRootCA.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.digicert.com/CPS
+
+ X509v3 Subject Key Identifier:
+ 90:71:DB:37:EB:73:C8:EF:DC:D5:1E:12:B6:34:BA:2B:5A:A0:A6:92
+ X509v3 Authority Key Identifier:
+ keyid:03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 30:ce:d1:95:51:00:ae:06:0b:a1:0e:02:c0:17:ac:b6:7f:8f:
+ 20:f6:40:75:74:1c:cc:78:b1:a4:4f:ea:f4:d0:c4:9d:a2:de:
+ 81:07:26:1f:40:88:51:f0:1f:cf:b7:4c:40:99:d0:f4:3c:71:
+ 98:73:88:97:2c:19:d7:6e:84:8f:a4:1f:9c:5a:20:e3:51:5c:
+ b0:c5:9e:99:6a:4f:c8:69:f7:10:ff:4e:ad:19:d9:c9:58:b3:
+ 33:ae:0c:d9:96:29:9e:71:b2:70:63:a3:b6:99:16:42:1d:65:
+ f3:f7:a0:1e:7d:c5:d4:65:14:b2:62:84:d4:6c:5c:08:0c:d8:
+ 6c:93:2b:b4:76:59:8a:d1:7f:ff:03:d8:c2:5d:b8:2f:22:d6:
+ 38:f0:f6:9c:6b:7d:46:eb:99:74:f7:eb:4a:0e:a9:a6:04:eb:
+ 7b:ce:f0:5c:6b:98:31:5a:98:40:eb:69:c4:05:f4:20:a8:ca:
+ 08:3a:65:6c:38:15:f5:5c:2c:b2:55:e4:2c:6b:41:f0:be:5c:
+ 46:ca:4a:29:a0:48:5e:20:d2:45:ff:05:de:34:af:70:4b:81:
+ 39:e2:ca:07:57:7c:b6:31:dc:21:29:e2:be:97:0e:77:90:14:
+ 51:40:e1:bf:e3:cc:1b:19:9c:25:ca:a7:06:b2:53:df:23:b2:
+ cf:12:19:a3
+-----BEGIN CERTIFICATE-----
+MIIEjzCCA3egAwIBAgIQBp4dt3/PHfupevXlyaJANzANBgkqhkiG9w0BAQUFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaMEgxCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxIjAgBgNVBAMTGURpZ2lDZXJ0IFNlY3Vy
+ZSBTZXJ2ZXIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7V+Qh
+qdWbYDd+jqFhf4HiGsJ1ZNmRUAvkNkQkbjDSm3on+sJqrmpwCTi5IArIZRBKiKwx
+8tyS8mOhXYBjWYCSIxzm73ZKUDXJ2HE4ue3w5kKu0zgmeTD5IpTG26Y/QXiQ2N5c
+fml9+JAVOtChoL76srIZodgr0c6/a91Jq6OS/rWryME+7gEA2KlEuEJziMNh9atK
+gygK0tRJ+mqxzd9XLJTl4sqDX7e6YlwvaKXwwLn9K9HpH9gaYhW9/z2m98vv5ttl
+LyU47PvmIGZYljQZ0hXOIdMkzNkUb9j+Vcfnb7YPGoxJvinyulqagSY3JG/XSBJs
+Lln1nBi72fZo4t9FAgMBAAGjggFaMIIBVjASBgNVHRMBAf8ECDAGAQH/AgEAMA4G
+A1UdDwEB/wQEAwIBhjA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6
+Ly9vY3NwLmRpZ2ljZXJ0LmNvbTB7BgNVHR8EdDByMDegNaAzhjFodHRwOi8vY3Js
+My5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9iYWxSb290Q0EuY3JsMDegNaAzhjFo
+dHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9iYWxSb290Q0EuY3Js
+MD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5k
+aWdpY2VydC5jb20vQ1BTMB0GA1UdDgQWBBSQcds363PI79zVHhK2NLorWqCmkjAf
+BgNVHSMEGDAWgBQD3lA1VtFMu2bwo+IbG8OXsj3RVTANBgkqhkiG9w0BAQUFAAOC
+AQEAMM7RlVEArgYLoQ4CwBestn+PIPZAdXQczHixpE/q9NDEnaLegQcmH0CIUfAf
+z7dMQJnQ9DxxmHOIlywZ126Ej6QfnFog41FcsMWemWpPyGn3EP9OrRnZyVizM64M
+2ZYpnnGycGOjtpkWQh1l8/egHn3F1GUUsmKE1GxcCAzYbJMrtHZZitF//wPYwl24
+LyLWOPD2nGt9RuuZdPfrSg6ppgTre87wXGuYMVqYQOtpxAX0IKjKCDplbDgV9Vws
+slXkLGtB8L5cRspKKaBIXiDSRf8F3jSvcEuBOeLKB1d8tjHcISnivpcOd5AUUUDh
+v+PMGxmcJcqnBrJT3yOyzxIZow==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert19[] = {
+ 0x30, 0x82, 0x04, 0x8f, 0x30, 0x82, 0x03, 0x77, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x06, 0x9e, 0x1d, 0xb7, 0x7f, 0xcf, 0x1d, 0xfb, 0xa9,
+ 0x7a, 0xf5, 0xe5, 0xc9, 0xa2, 0x40, 0x37, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x61,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+ 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+ 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x17, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x47,
+ 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43,
+ 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x30, 0x33, 0x30, 0x38, 0x31,
+ 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x33,
+ 0x30, 0x38, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x48, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44,
+ 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31,
+ 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19, 0x44, 0x69,
+ 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72,
+ 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30,
+ 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+ 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbb, 0x57, 0xe4, 0x21,
+ 0xa9, 0xd5, 0x9b, 0x60, 0x37, 0x7e, 0x8e, 0xa1, 0x61, 0x7f, 0x81, 0xe2,
+ 0x1a, 0xc2, 0x75, 0x64, 0xd9, 0x91, 0x50, 0x0b, 0xe4, 0x36, 0x44, 0x24,
+ 0x6e, 0x30, 0xd2, 0x9b, 0x7a, 0x27, 0xfa, 0xc2, 0x6a, 0xae, 0x6a, 0x70,
+ 0x09, 0x38, 0xb9, 0x20, 0x0a, 0xc8, 0x65, 0x10, 0x4a, 0x88, 0xac, 0x31,
+ 0xf2, 0xdc, 0x92, 0xf2, 0x63, 0xa1, 0x5d, 0x80, 0x63, 0x59, 0x80, 0x92,
+ 0x23, 0x1c, 0xe6, 0xef, 0x76, 0x4a, 0x50, 0x35, 0xc9, 0xd8, 0x71, 0x38,
+ 0xb9, 0xed, 0xf0, 0xe6, 0x42, 0xae, 0xd3, 0x38, 0x26, 0x79, 0x30, 0xf9,
+ 0x22, 0x94, 0xc6, 0xdb, 0xa6, 0x3f, 0x41, 0x78, 0x90, 0xd8, 0xde, 0x5c,
+ 0x7e, 0x69, 0x7d, 0xf8, 0x90, 0x15, 0x3a, 0xd0, 0xa1, 0xa0, 0xbe, 0xfa,
+ 0xb2, 0xb2, 0x19, 0xa1, 0xd8, 0x2b, 0xd1, 0xce, 0xbf, 0x6b, 0xdd, 0x49,
+ 0xab, 0xa3, 0x92, 0xfe, 0xb5, 0xab, 0xc8, 0xc1, 0x3e, 0xee, 0x01, 0x00,
+ 0xd8, 0xa9, 0x44, 0xb8, 0x42, 0x73, 0x88, 0xc3, 0x61, 0xf5, 0xab, 0x4a,
+ 0x83, 0x28, 0x0a, 0xd2, 0xd4, 0x49, 0xfa, 0x6a, 0xb1, 0xcd, 0xdf, 0x57,
+ 0x2c, 0x94, 0xe5, 0xe2, 0xca, 0x83, 0x5f, 0xb7, 0xba, 0x62, 0x5c, 0x2f,
+ 0x68, 0xa5, 0xf0, 0xc0, 0xb9, 0xfd, 0x2b, 0xd1, 0xe9, 0x1f, 0xd8, 0x1a,
+ 0x62, 0x15, 0xbd, 0xff, 0x3d, 0xa6, 0xf7, 0xcb, 0xef, 0xe6, 0xdb, 0x65,
+ 0x2f, 0x25, 0x38, 0xec, 0xfb, 0xe6, 0x20, 0x66, 0x58, 0x96, 0x34, 0x19,
+ 0xd2, 0x15, 0xce, 0x21, 0xd3, 0x24, 0xcc, 0xd9, 0x14, 0x6f, 0xd8, 0xfe,
+ 0x55, 0xc7, 0xe7, 0x6f, 0xb6, 0x0f, 0x1a, 0x8c, 0x49, 0xbe, 0x29, 0xf2,
+ 0xba, 0x5a, 0x9a, 0x81, 0x26, 0x37, 0x24, 0x6f, 0xd7, 0x48, 0x12, 0x6c,
+ 0x2e, 0x59, 0xf5, 0x9c, 0x18, 0xbb, 0xd9, 0xf6, 0x68, 0xe2, 0xdf, 0x45,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x5a, 0x30, 0x82, 0x01,
+ 0x56, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
+ 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06,
+ 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+ 0x86, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+ 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63,
+ 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x7b, 0x06, 0x03, 0x55,
+ 0x1d, 0x1f, 0x04, 0x74, 0x30, 0x72, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33,
+ 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c,
+ 0x33, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x47,
+ 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x34, 0x2e, 0x64,
+ 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c,
+ 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30,
+ 0x32, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68,
+ 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x64,
+ 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16,
+ 0x04, 0x14, 0x90, 0x71, 0xdb, 0x37, 0xeb, 0x73, 0xc8, 0xef, 0xdc, 0xd5,
+ 0x1e, 0x12, 0xb6, 0x34, 0xba, 0x2b, 0x5a, 0xa0, 0xa6, 0x92, 0x30, 0x1f,
+ 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x03,
+ 0xde, 0x50, 0x35, 0x56, 0xd1, 0x4c, 0xbb, 0x66, 0xf0, 0xa3, 0xe2, 0x1b,
+ 0x1b, 0xc3, 0x97, 0xb2, 0x3d, 0xd1, 0x55, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x01, 0x00, 0x30, 0xce, 0xd1, 0x95, 0x51, 0x00, 0xae, 0x06, 0x0b,
+ 0xa1, 0x0e, 0x02, 0xc0, 0x17, 0xac, 0xb6, 0x7f, 0x8f, 0x20, 0xf6, 0x40,
+ 0x75, 0x74, 0x1c, 0xcc, 0x78, 0xb1, 0xa4, 0x4f, 0xea, 0xf4, 0xd0, 0xc4,
+ 0x9d, 0xa2, 0xde, 0x81, 0x07, 0x26, 0x1f, 0x40, 0x88, 0x51, 0xf0, 0x1f,
+ 0xcf, 0xb7, 0x4c, 0x40, 0x99, 0xd0, 0xf4, 0x3c, 0x71, 0x98, 0x73, 0x88,
+ 0x97, 0x2c, 0x19, 0xd7, 0x6e, 0x84, 0x8f, 0xa4, 0x1f, 0x9c, 0x5a, 0x20,
+ 0xe3, 0x51, 0x5c, 0xb0, 0xc5, 0x9e, 0x99, 0x6a, 0x4f, 0xc8, 0x69, 0xf7,
+ 0x10, 0xff, 0x4e, 0xad, 0x19, 0xd9, 0xc9, 0x58, 0xb3, 0x33, 0xae, 0x0c,
+ 0xd9, 0x96, 0x29, 0x9e, 0x71, 0xb2, 0x70, 0x63, 0xa3, 0xb6, 0x99, 0x16,
+ 0x42, 0x1d, 0x65, 0xf3, 0xf7, 0xa0, 0x1e, 0x7d, 0xc5, 0xd4, 0x65, 0x14,
+ 0xb2, 0x62, 0x84, 0xd4, 0x6c, 0x5c, 0x08, 0x0c, 0xd8, 0x6c, 0x93, 0x2b,
+ 0xb4, 0x76, 0x59, 0x8a, 0xd1, 0x7f, 0xff, 0x03, 0xd8, 0xc2, 0x5d, 0xb8,
+ 0x2f, 0x22, 0xd6, 0x38, 0xf0, 0xf6, 0x9c, 0x6b, 0x7d, 0x46, 0xeb, 0x99,
+ 0x74, 0xf7, 0xeb, 0x4a, 0x0e, 0xa9, 0xa6, 0x04, 0xeb, 0x7b, 0xce, 0xf0,
+ 0x5c, 0x6b, 0x98, 0x31, 0x5a, 0x98, 0x40, 0xeb, 0x69, 0xc4, 0x05, 0xf4,
+ 0x20, 0xa8, 0xca, 0x08, 0x3a, 0x65, 0x6c, 0x38, 0x15, 0xf5, 0x5c, 0x2c,
+ 0xb2, 0x55, 0xe4, 0x2c, 0x6b, 0x41, 0xf0, 0xbe, 0x5c, 0x46, 0xca, 0x4a,
+ 0x29, 0xa0, 0x48, 0x5e, 0x20, 0xd2, 0x45, 0xff, 0x05, 0xde, 0x34, 0xaf,
+ 0x70, 0x4b, 0x81, 0x39, 0xe2, 0xca, 0x07, 0x57, 0x7c, 0xb6, 0x31, 0xdc,
+ 0x21, 0x29, 0xe2, 0xbe, 0x97, 0x0e, 0x77, 0x90, 0x14, 0x51, 0x40, 0xe1,
+ 0xbf, 0xe3, 0xcc, 0x1b, 0x19, 0x9c, 0x25, 0xca, 0xa7, 0x06, 0xb2, 0x53,
+ 0xdf, 0x23, 0xb2, 0xcf, 0x12, 0x19, 0xa3,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 1b:09:3b:78:60:96:da:37:bb:a4:51:94:46:c8:96:78
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
+ Validity
+ Not Before: Nov 8 00:00:00 2006 GMT
+ Not After : Nov 7 23:59:59 2021 GMT
+ Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:af:24:08:08:29:7a:35:9e:60:0c:aa:e7:4b:3b:
+ 4e:dc:7c:bc:3c:45:1c:bb:2b:e0:fe:29:02:f9:57:
+ 08:a3:64:85:15:27:f5:f1:ad:c8:31:89:5d:22:e8:
+ 2a:aa:a6:42:b3:8f:f8:b9:55:b7:b1:b7:4b:b3:fe:
+ 8f:7e:07:57:ec:ef:43:db:66:62:15:61:cf:60:0d:
+ a4:d8:de:f8:e0:c3:62:08:3d:54:13:eb:49:ca:59:
+ 54:85:26:e5:2b:8f:1b:9f:eb:f5:a1:91:c2:33:49:
+ d8:43:63:6a:52:4b:d2:8f:e8:70:51:4d:d1:89:69:
+ 7b:c7:70:f6:b3:dc:12:74:db:7b:5d:4b:56:d3:96:
+ bf:15:77:a1:b0:f4:a2:25:f2:af:1c:92:67:18:e5:
+ f4:06:04:ef:90:b9:e4:00:e4:dd:3a:b5:19:ff:02:
+ ba:f4:3c:ee:e0:8b:eb:37:8b:ec:f4:d7:ac:f2:f6:
+ f0:3d:af:dd:75:91:33:19:1d:1c:40:cb:74:24:19:
+ 21:93:d9:14:fe:ac:2a:52:c7:8f:d5:04:49:e4:8d:
+ 63:47:88:3c:69:83:cb:fe:47:bd:2b:7e:4f:c5:95:
+ ae:0e:9d:d4:d1:43:c0:67:73:e3:14:08:7e:e5:3f:
+ 9f:73:b8:33:0a:cf:5d:3f:34:87:96:8a:ee:53:e8:
+ 25:15
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.verisign.com/pca3.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.verisign.com/cps
+
+ X509v3 Subject Key Identifier:
+ 7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+ 1.3.6.1.5.5.7.1.12:
+ 0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+ Authority Information Access:
+ OCSP - URI:http://ocsp.verisign.com
+
+ Signature Algorithm: sha1WithRSAEncryption
+ a3:cd:7d:1e:f7:c7:75:8d:48:e7:56:34:4c:00:90:75:a9:51:
+ a5:56:c1:6d:bc:fe:f5:53:22:e9:98:a2:ac:9a:7e:70:1e:b3:
+ 8e:3b:45:e3:86:95:31:da:6d:4c:fb:34:50:80:96:cd:24:f2:
+ 40:df:04:3f:e2:65:ce:34:22:61:15:ea:66:70:64:d2:f1:6e:
+ f3:ca:18:59:6a:41:46:7e:82:de:19:b0:70:31:56:69:0d:0c:
+ e6:1d:9d:71:58:dc:cc:de:62:f5:e1:7a:10:02:d8:7a:dc:3b:
+ fa:57:bd:c9:e9:8f:46:21:39:9f:51:65:4c:8e:3a:be:28:41:
+ 70:1d
+-----BEGIN CERTIFICATE-----
+MIIEkDCCA/mgAwIBAgIQGwk7eGCW2je7pFGURsiWeDANBgkqhkiG9w0BAQUFADBf
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
+LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv
+ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8
+RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb
+ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR
+TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH
+iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB
+AAGjggFbMIIBVzAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0
+dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjA9
+BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVy
+aXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwbQYI
+KwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQU
+j+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29t
+L3ZzbG9nby5naWYwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
+b2NzcC52ZXJpc2lnbi5jb20wDQYJKoZIhvcNAQEFBQADgYEAo819HvfHdY1I51Y0
+TACQdalRpVbBbbz+9VMi6ZiirJp+cB6zjjtF44aVMdptTPs0UICWzSTyQN8EP+Jl
+zjQiYRXqZnBk0vFu88oYWWpBRn6C3hmwcDFWaQ0M5h2dcVjczN5i9eF6EALYetw7
++le9yemPRiE5n1FlTI46vihBcB0=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert20[] = {
+ 0x30, 0x82, 0x04, 0x90, 0x30, 0x82, 0x03, 0xf9, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x1b, 0x09, 0x3b, 0x78, 0x60, 0x96, 0xda, 0x37, 0xbb,
+ 0xa4, 0x51, 0x94, 0x46, 0xc8, 0x96, 0x78, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e,
+ 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x37, 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62,
+ 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30,
+ 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x30, 0x38, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31, 0x30, 0x37,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xca, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+ 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3a, 0x30,
+ 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28, 0x63, 0x29, 0x20,
+ 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+ 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f,
+ 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64,
+ 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x45, 0x30,
+ 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
+ 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xaf, 0x24, 0x08, 0x08, 0x29, 0x7a, 0x35,
+ 0x9e, 0x60, 0x0c, 0xaa, 0xe7, 0x4b, 0x3b, 0x4e, 0xdc, 0x7c, 0xbc, 0x3c,
+ 0x45, 0x1c, 0xbb, 0x2b, 0xe0, 0xfe, 0x29, 0x02, 0xf9, 0x57, 0x08, 0xa3,
+ 0x64, 0x85, 0x15, 0x27, 0xf5, 0xf1, 0xad, 0xc8, 0x31, 0x89, 0x5d, 0x22,
+ 0xe8, 0x2a, 0xaa, 0xa6, 0x42, 0xb3, 0x8f, 0xf8, 0xb9, 0x55, 0xb7, 0xb1,
+ 0xb7, 0x4b, 0xb3, 0xfe, 0x8f, 0x7e, 0x07, 0x57, 0xec, 0xef, 0x43, 0xdb,
+ 0x66, 0x62, 0x15, 0x61, 0xcf, 0x60, 0x0d, 0xa4, 0xd8, 0xde, 0xf8, 0xe0,
+ 0xc3, 0x62, 0x08, 0x3d, 0x54, 0x13, 0xeb, 0x49, 0xca, 0x59, 0x54, 0x85,
+ 0x26, 0xe5, 0x2b, 0x8f, 0x1b, 0x9f, 0xeb, 0xf5, 0xa1, 0x91, 0xc2, 0x33,
+ 0x49, 0xd8, 0x43, 0x63, 0x6a, 0x52, 0x4b, 0xd2, 0x8f, 0xe8, 0x70, 0x51,
+ 0x4d, 0xd1, 0x89, 0x69, 0x7b, 0xc7, 0x70, 0xf6, 0xb3, 0xdc, 0x12, 0x74,
+ 0xdb, 0x7b, 0x5d, 0x4b, 0x56, 0xd3, 0x96, 0xbf, 0x15, 0x77, 0xa1, 0xb0,
+ 0xf4, 0xa2, 0x25, 0xf2, 0xaf, 0x1c, 0x92, 0x67, 0x18, 0xe5, 0xf4, 0x06,
+ 0x04, 0xef, 0x90, 0xb9, 0xe4, 0x00, 0xe4, 0xdd, 0x3a, 0xb5, 0x19, 0xff,
+ 0x02, 0xba, 0xf4, 0x3c, 0xee, 0xe0, 0x8b, 0xeb, 0x37, 0x8b, 0xec, 0xf4,
+ 0xd7, 0xac, 0xf2, 0xf6, 0xf0, 0x3d, 0xaf, 0xdd, 0x75, 0x91, 0x33, 0x19,
+ 0x1d, 0x1c, 0x40, 0xcb, 0x74, 0x24, 0x19, 0x21, 0x93, 0xd9, 0x14, 0xfe,
+ 0xac, 0x2a, 0x52, 0xc7, 0x8f, 0xd5, 0x04, 0x49, 0xe4, 0x8d, 0x63, 0x47,
+ 0x88, 0x3c, 0x69, 0x83, 0xcb, 0xfe, 0x47, 0xbd, 0x2b, 0x7e, 0x4f, 0xc5,
+ 0x95, 0xae, 0x0e, 0x9d, 0xd4, 0xd1, 0x43, 0xc0, 0x67, 0x73, 0xe3, 0x14,
+ 0x08, 0x7e, 0xe5, 0x3f, 0x9f, 0x73, 0xb8, 0x33, 0x0a, 0xcf, 0x5d, 0x3f,
+ 0x34, 0x87, 0x96, 0x8a, 0xee, 0x53, 0xe8, 0x25, 0x15, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x5b, 0x30, 0x82, 0x01, 0x57, 0x30, 0x0f,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+ 0x01, 0x01, 0xff, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a,
+ 0x30, 0x28, 0x30, 0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72,
+ 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63,
+ 0x61, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3d,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+ 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+ 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72,
+ 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70,
+ 0x73, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+ 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x6d, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f,
+ 0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09,
+ 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30,
+ 0x1f, 0x30, 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14,
+ 0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80,
+ 0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e,
+ 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30,
+ 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67,
+ 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00,
+ 0xa3, 0xcd, 0x7d, 0x1e, 0xf7, 0xc7, 0x75, 0x8d, 0x48, 0xe7, 0x56, 0x34,
+ 0x4c, 0x00, 0x90, 0x75, 0xa9, 0x51, 0xa5, 0x56, 0xc1, 0x6d, 0xbc, 0xfe,
+ 0xf5, 0x53, 0x22, 0xe9, 0x98, 0xa2, 0xac, 0x9a, 0x7e, 0x70, 0x1e, 0xb3,
+ 0x8e, 0x3b, 0x45, 0xe3, 0x86, 0x95, 0x31, 0xda, 0x6d, 0x4c, 0xfb, 0x34,
+ 0x50, 0x80, 0x96, 0xcd, 0x24, 0xf2, 0x40, 0xdf, 0x04, 0x3f, 0xe2, 0x65,
+ 0xce, 0x34, 0x22, 0x61, 0x15, 0xea, 0x66, 0x70, 0x64, 0xd2, 0xf1, 0x6e,
+ 0xf3, 0xca, 0x18, 0x59, 0x6a, 0x41, 0x46, 0x7e, 0x82, 0xde, 0x19, 0xb0,
+ 0x70, 0x31, 0x56, 0x69, 0x0d, 0x0c, 0xe6, 0x1d, 0x9d, 0x71, 0x58, 0xdc,
+ 0xcc, 0xde, 0x62, 0xf5, 0xe1, 0x7a, 0x10, 0x02, 0xd8, 0x7a, 0xdc, 0x3b,
+ 0xfa, 0x57, 0xbd, 0xc9, 0xe9, 0x8f, 0x46, 0x21, 0x39, 0x9f, 0x51, 0x65,
+ 0x4c, 0x8e, 0x3a, 0xbe, 0x28, 0x41, 0x70, 0x1d,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 01:fd:a3:eb:6e:ca:75:c8:88:43:8b:72:4b:cf:bc:91
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA
+ Validity
+ Not Before: Mar 8 12:00:00 2013 GMT
+ Not After : Mar 8 12:00:00 2023 GMT
+ Subject: C=US, O=DigiCert Inc, CN=DigiCert SHA2 Secure Server CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:dc:ae:58:90:4d:c1:c4:30:15:90:35:5b:6e:3c:
+ 82:15:f5:2c:5c:bd:e3:db:ff:71:43:fa:64:25:80:
+ d4:ee:18:a2:4d:f0:66:d0:0a:73:6e:11:98:36:17:
+ 64:af:37:9d:fd:fa:41:84:af:c7:af:8c:fe:1a:73:
+ 4d:cf:33:97:90:a2:96:87:53:83:2b:b9:a6:75:48:
+ 2d:1d:56:37:7b:da:31:32:1a:d7:ac:ab:06:f4:aa:
+ 5d:4b:b7:47:46:dd:2a:93:c3:90:2e:79:80:80:ef:
+ 13:04:6a:14:3b:b5:9b:92:be:c2:07:65:4e:fc:da:
+ fc:ff:7a:ae:dc:5c:7e:55:31:0c:e8:39:07:a4:d7:
+ be:2f:d3:0b:6a:d2:b1:df:5f:fe:57:74:53:3b:35:
+ 80:dd:ae:8e:44:98:b3:9f:0e:d3:da:e0:d7:f4:6b:
+ 29:ab:44:a7:4b:58:84:6d:92:4b:81:c3:da:73:8b:
+ 12:97:48:90:04:45:75:1a:dd:37:31:97:92:e8:cd:
+ 54:0d:3b:e4:c1:3f:39:5e:2e:b8:f3:5c:7e:10:8e:
+ 86:41:00:8d:45:66:47:b0:a1:65:ce:a0:aa:29:09:
+ 4e:f3:97:eb:e8:2e:ab:0f:72:a7:30:0e:fa:c7:f4:
+ fd:14:77:c3:a4:5b:28:57:c2:b3:f9:82:fd:b7:45:
+ 58:9b
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://ocsp.digicert.com
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl3.digicert.com/DigiCertGlobalRootCA.crl
+
+ Full Name:
+ URI:http://crl4.digicert.com/DigiCertGlobalRootCA.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.digicert.com/CPS
+
+ X509v3 Subject Key Identifier:
+ 0F:80:61:1C:82:31:61:D5:2F:28:E7:8D:46:38:B4:2C:E1:C6:D9:E2
+ X509v3 Authority Key Identifier:
+ keyid:03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 23:3e:df:4b:d2:31:42:a5:b6:7e:42:5c:1a:44:cc:69:d1:68:
+ b4:5d:4b:e0:04:21:6c:4b:e2:6d:cc:b1:e0:97:8f:a6:53:09:
+ cd:aa:2a:65:e5:39:4f:1e:83:a5:6e:5c:98:a2:24:26:e6:fb:
+ a1:ed:93:c7:2e:02:c6:4d:4a:bf:b0:42:df:78:da:b3:a8:f9:
+ 6d:ff:21:85:53:36:60:4c:76:ce:ec:38:dc:d6:51:80:f0:c5:
+ d6:e5:d4:4d:27:64:ab:9b:c7:3e:71:fb:48:97:b8:33:6d:c9:
+ 13:07:ee:96:a2:1b:18:15:f6:5c:4c:40:ed:b3:c2:ec:ff:71:
+ c1:e3:47:ff:d4:b9:00:b4:37:42:da:20:c9:ea:6e:8a:ee:14:
+ 06:ae:7d:a2:59:98:88:a8:1b:6f:2d:f4:f2:c9:14:5f:26:cf:
+ 2c:8d:7e:ed:37:c0:a9:d5:39:b9:82:bf:19:0c:ea:34:af:00:
+ 21:68:f8:ad:73:e2:c9:32:da:38:25:0b:55:d3:9a:1d:f0:68:
+ 86:ed:2e:41:34:ef:7c:a5:50:1d:bf:3a:f9:d3:c1:08:0c:e6:
+ ed:1e:8a:58:25:e4:b8:77:ad:2d:6e:f5:52:dd:b4:74:8f:ab:
+ 49:2e:9d:3b:93:34:28:1f:78:ce:94:ea:c7:bd:d3:c9:6d:1c:
+ de:5c:32:f3
+-----BEGIN CERTIFICATE-----
+MIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaME0xCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg
+U2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANyuWJBNwcQwFZA1W248ghX1LFy949v/cUP6ZCWA1O4Yok3wZtAKc24RmDYXZK83
+nf36QYSvx6+M/hpzTc8zl5CilodTgyu5pnVILR1WN3vaMTIa16yrBvSqXUu3R0bd
+KpPDkC55gIDvEwRqFDu1m5K+wgdlTvza/P96rtxcflUxDOg5B6TXvi/TC2rSsd9f
+/ld0Uzs1gN2ujkSYs58O09rg1/RrKatEp0tYhG2SS4HD2nOLEpdIkARFdRrdNzGX
+kujNVA075ME/OV4uuPNcfhCOhkEAjUVmR7ChZc6gqikJTvOX6+guqw9ypzAO+sf0
+/RR3w6RbKFfCs/mC/bdFWJsCAwEAAaOCAVowggFWMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwDgYDVR0PAQH/BAQDAgGGMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYY
+aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMHsGA1UdHwR0MHIwN6A1oDOGMWh0dHA6
+Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwN6A1
+oDOGMWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RD
+QS5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
+d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwHQYDVR0OBBYEFA+AYRyCMWHVLyjnjUY4tCzh
+xtniMB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA0GCSqGSIb3DQEB
+CwUAA4IBAQAjPt9L0jFCpbZ+QlwaRMxp0Wi0XUvgBCFsS+JtzLHgl4+mUwnNqipl
+5TlPHoOlblyYoiQm5vuh7ZPHLgLGTUq/sELfeNqzqPlt/yGFUzZgTHbO7Djc1lGA
+8MXW5dRNJ2Srm8c+cftIl7gzbckTB+6WohsYFfZcTEDts8Ls/3HB40f/1LkAtDdC
+2iDJ6m6K7hQGrn2iWZiIqBtvLfTyyRRfJs8sjX7tN8Cp1Tm5gr8ZDOo0rwAhaPit
+c+LJMto4JQtV05od8GiG7S5BNO98pVAdvzr508EIDObtHopYJeS4d60tbvVS3bR0
+j6tJLp07kzQoH3jOlOrHvdPJbRzeXDLz
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert21[] = {
+ 0x30, 0x82, 0x04, 0x94, 0x30, 0x82, 0x03, 0x7c, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x01, 0xfd, 0xa3, 0xeb, 0x6e, 0xca, 0x75, 0xc8, 0x88,
+ 0x43, 0x8b, 0x72, 0x4b, 0xcf, 0xbc, 0x91, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x61,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+ 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+ 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x17, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x47,
+ 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43,
+ 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x30, 0x33, 0x30, 0x38, 0x31,
+ 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x33,
+ 0x30, 0x38, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x4d, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44,
+ 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31,
+ 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1e, 0x44, 0x69,
+ 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x48, 0x41, 0x32, 0x20,
+ 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+ 0x00, 0xdc, 0xae, 0x58, 0x90, 0x4d, 0xc1, 0xc4, 0x30, 0x15, 0x90, 0x35,
+ 0x5b, 0x6e, 0x3c, 0x82, 0x15, 0xf5, 0x2c, 0x5c, 0xbd, 0xe3, 0xdb, 0xff,
+ 0x71, 0x43, 0xfa, 0x64, 0x25, 0x80, 0xd4, 0xee, 0x18, 0xa2, 0x4d, 0xf0,
+ 0x66, 0xd0, 0x0a, 0x73, 0x6e, 0x11, 0x98, 0x36, 0x17, 0x64, 0xaf, 0x37,
+ 0x9d, 0xfd, 0xfa, 0x41, 0x84, 0xaf, 0xc7, 0xaf, 0x8c, 0xfe, 0x1a, 0x73,
+ 0x4d, 0xcf, 0x33, 0x97, 0x90, 0xa2, 0x96, 0x87, 0x53, 0x83, 0x2b, 0xb9,
+ 0xa6, 0x75, 0x48, 0x2d, 0x1d, 0x56, 0x37, 0x7b, 0xda, 0x31, 0x32, 0x1a,
+ 0xd7, 0xac, 0xab, 0x06, 0xf4, 0xaa, 0x5d, 0x4b, 0xb7, 0x47, 0x46, 0xdd,
+ 0x2a, 0x93, 0xc3, 0x90, 0x2e, 0x79, 0x80, 0x80, 0xef, 0x13, 0x04, 0x6a,
+ 0x14, 0x3b, 0xb5, 0x9b, 0x92, 0xbe, 0xc2, 0x07, 0x65, 0x4e, 0xfc, 0xda,
+ 0xfc, 0xff, 0x7a, 0xae, 0xdc, 0x5c, 0x7e, 0x55, 0x31, 0x0c, 0xe8, 0x39,
+ 0x07, 0xa4, 0xd7, 0xbe, 0x2f, 0xd3, 0x0b, 0x6a, 0xd2, 0xb1, 0xdf, 0x5f,
+ 0xfe, 0x57, 0x74, 0x53, 0x3b, 0x35, 0x80, 0xdd, 0xae, 0x8e, 0x44, 0x98,
+ 0xb3, 0x9f, 0x0e, 0xd3, 0xda, 0xe0, 0xd7, 0xf4, 0x6b, 0x29, 0xab, 0x44,
+ 0xa7, 0x4b, 0x58, 0x84, 0x6d, 0x92, 0x4b, 0x81, 0xc3, 0xda, 0x73, 0x8b,
+ 0x12, 0x97, 0x48, 0x90, 0x04, 0x45, 0x75, 0x1a, 0xdd, 0x37, 0x31, 0x97,
+ 0x92, 0xe8, 0xcd, 0x54, 0x0d, 0x3b, 0xe4, 0xc1, 0x3f, 0x39, 0x5e, 0x2e,
+ 0xb8, 0xf3, 0x5c, 0x7e, 0x10, 0x8e, 0x86, 0x41, 0x00, 0x8d, 0x45, 0x66,
+ 0x47, 0xb0, 0xa1, 0x65, 0xce, 0xa0, 0xaa, 0x29, 0x09, 0x4e, 0xf3, 0x97,
+ 0xeb, 0xe8, 0x2e, 0xab, 0x0f, 0x72, 0xa7, 0x30, 0x0e, 0xfa, 0xc7, 0xf4,
+ 0xfd, 0x14, 0x77, 0xc3, 0xa4, 0x5b, 0x28, 0x57, 0xc2, 0xb3, 0xf9, 0x82,
+ 0xfd, 0xb7, 0x45, 0x58, 0x9b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+ 0x01, 0x5a, 0x30, 0x82, 0x01, 0x56, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+ 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+ 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+ 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e,
+ 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x30, 0x7b, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x74, 0x30, 0x72, 0x30,
+ 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x33, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63,
+ 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69,
+ 0x43, 0x65, 0x72, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x6f,
+ 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x37, 0xa0, 0x35,
+ 0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+ 0x72, 0x6c, 0x34, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72,
+ 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x43,
+ 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x20,
+ 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00,
+ 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
+ 0x77, 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03,
+ 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x0f, 0x80, 0x61, 0x1c, 0x82,
+ 0x31, 0x61, 0xd5, 0x2f, 0x28, 0xe7, 0x8d, 0x46, 0x38, 0xb4, 0x2c, 0xe1,
+ 0xc6, 0xd9, 0xe2, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
+ 0x30, 0x16, 0x80, 0x14, 0x03, 0xde, 0x50, 0x35, 0x56, 0xd1, 0x4c, 0xbb,
+ 0x66, 0xf0, 0xa3, 0xe2, 0x1b, 0x1b, 0xc3, 0x97, 0xb2, 0x3d, 0xd1, 0x55,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x23, 0x3e, 0xdf, 0x4b,
+ 0xd2, 0x31, 0x42, 0xa5, 0xb6, 0x7e, 0x42, 0x5c, 0x1a, 0x44, 0xcc, 0x69,
+ 0xd1, 0x68, 0xb4, 0x5d, 0x4b, 0xe0, 0x04, 0x21, 0x6c, 0x4b, 0xe2, 0x6d,
+ 0xcc, 0xb1, 0xe0, 0x97, 0x8f, 0xa6, 0x53, 0x09, 0xcd, 0xaa, 0x2a, 0x65,
+ 0xe5, 0x39, 0x4f, 0x1e, 0x83, 0xa5, 0x6e, 0x5c, 0x98, 0xa2, 0x24, 0x26,
+ 0xe6, 0xfb, 0xa1, 0xed, 0x93, 0xc7, 0x2e, 0x02, 0xc6, 0x4d, 0x4a, 0xbf,
+ 0xb0, 0x42, 0xdf, 0x78, 0xda, 0xb3, 0xa8, 0xf9, 0x6d, 0xff, 0x21, 0x85,
+ 0x53, 0x36, 0x60, 0x4c, 0x76, 0xce, 0xec, 0x38, 0xdc, 0xd6, 0x51, 0x80,
+ 0xf0, 0xc5, 0xd6, 0xe5, 0xd4, 0x4d, 0x27, 0x64, 0xab, 0x9b, 0xc7, 0x3e,
+ 0x71, 0xfb, 0x48, 0x97, 0xb8, 0x33, 0x6d, 0xc9, 0x13, 0x07, 0xee, 0x96,
+ 0xa2, 0x1b, 0x18, 0x15, 0xf6, 0x5c, 0x4c, 0x40, 0xed, 0xb3, 0xc2, 0xec,
+ 0xff, 0x71, 0xc1, 0xe3, 0x47, 0xff, 0xd4, 0xb9, 0x00, 0xb4, 0x37, 0x42,
+ 0xda, 0x20, 0xc9, 0xea, 0x6e, 0x8a, 0xee, 0x14, 0x06, 0xae, 0x7d, 0xa2,
+ 0x59, 0x98, 0x88, 0xa8, 0x1b, 0x6f, 0x2d, 0xf4, 0xf2, 0xc9, 0x14, 0x5f,
+ 0x26, 0xcf, 0x2c, 0x8d, 0x7e, 0xed, 0x37, 0xc0, 0xa9, 0xd5, 0x39, 0xb9,
+ 0x82, 0xbf, 0x19, 0x0c, 0xea, 0x34, 0xaf, 0x00, 0x21, 0x68, 0xf8, 0xad,
+ 0x73, 0xe2, 0xc9, 0x32, 0xda, 0x38, 0x25, 0x0b, 0x55, 0xd3, 0x9a, 0x1d,
+ 0xf0, 0x68, 0x86, 0xed, 0x2e, 0x41, 0x34, 0xef, 0x7c, 0xa5, 0x50, 0x1d,
+ 0xbf, 0x3a, 0xf9, 0xd3, 0xc1, 0x08, 0x0c, 0xe6, 0xed, 0x1e, 0x8a, 0x58,
+ 0x25, 0xe4, 0xb8, 0x77, 0xad, 0x2d, 0x6e, 0xf5, 0x52, 0xdd, 0xb4, 0x74,
+ 0x8f, 0xab, 0x49, 0x2e, 0x9d, 0x3b, 0x93, 0x34, 0x28, 0x1f, 0x78, 0xce,
+ 0x94, 0xea, 0xc7, 0xbd, 0xd3, 0xc9, 0x6d, 0x1c, 0xde, 0x5c, 0x32, 0xf3,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 0b:1d:b1:a9:19:f2:4c:3c:4e:fc:b5:7a:6a:4e:6c:bf
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Primary Certification Authority
+ Validity
+ Not Before: Aug 23 00:00:00 2012 GMT
+ Not After : Aug 22 23:59:59 2022 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Extended Validation SSL CA - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:9e:c6:21:cd:2e:3d:d0:bb:2a:4d:a4:7b:1f:a8:
+ 1a:c2:03:a6:ff:43:62:5b:bf:91:d1:66:52:a9:81:
+ 90:68:31:86:16:bb:1d:85:58:a9:7e:91:6a:1e:4c:
+ 31:ca:21:c4:be:70:1b:9f:8c:e4:05:2d:9c:ed:11:
+ 79:ad:8f:9c:25:86:4c:ba:f2:e5:62:79:8e:22:5f:
+ 85:7c:22:35:38:23:8d:80:3c:ac:cc:2d:fc:58:f2:
+ 35:bf:66:5b:eb:c1:24:f8:70:80:74:32:f9:46:de:
+ 32:19:80:8c:b7:e7:1a:a1:aa:64:98:8d:ca:ce:0e:
+ dc:6b:f7:e2:90:0a:6c:1c:a5:f4:90:32:52:e5:f1:
+ 00:42:31:91:48:42:89:a8:5d:7f:63:8d:31:b2:d6:
+ 48:5c:45:45:22:c9:c5:59:12:ab:41:94:ea:fe:9c:
+ 46:4d:9a:bc:9c:e0:e2:c6:46:b3:e6:7f:dc:f5:0f:
+ a3:13:45:86:6d:79:78:fc:e1:50:cf:09:86:e5:9f:
+ bf:cb:3a:d4:e0:b1:d4:ff:a8:3f:7d:62:1f:c0:6d:
+ 78:48:c3:d7:a3:a5:23:61:c5:3e:35:4d:b2:e5:f8:
+ fd:94:4b:bc:73:53:af:e3:9a:69:55:be:cb:67:ab:
+ e1:be:ef:1b:c2:4d:ac:cb:29:5c:bc:ed:b8:62:9d:
+ 10:e9
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ Authority Information Access:
+ OCSP - URI:http://EVSecure-ocsp.geotrust.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.geotrust.com/resources/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://EVSecure-crl.geotrust.com/GeoTrustPCA.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Alternative Name:
+ DirName:/CN=VeriSignMPKI-2-253
+ X509v3 Subject Key Identifier:
+ 6F:26:56:D9:5C:E7:F7:C9:04:20:F8:1E:BA:7C:91:27:2F:8C:FA:07
+ X509v3 Authority Key Identifier:
+ keyid:2C:D5:50:41:97:15:8B:F0:8F:36:61:5B:4A:FB:6B:D9:99:C9:33:92
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 92:77:e9:57:c9:eb:c4:45:6f:c9:4c:6e:7d:00:12:71:a5:e3:
+ 39:fe:13:84:49:6c:e7:49:71:f5:2c:c7:c0:36:c2:08:58:f3:
+ 83:75:c5:72:d8:8d:78:f4:65:ea:8c:d5:e3:a5:0e:a9:ad:eb:
+ e3:a1:23:ae:93:b7:d8:75:75:4a:59:cb:f2:9e:db:40:bf:4e:
+ 89:fe:95:42:29:34:7b:f4:dd:6a:0d:74:5f:c7:11:13:2e:dd:
+ 11:6e:c6:e3:5b:b3:cf:a6:8d:e5:f7:67:7b:ba:b3:b3:69:70:
+ 14:b0:c2:99:b4:d2:76:5b:38:17:39:45:1b:82:f1:53:b8:3d:
+ 55:39:0b:7f:ff:98:ad:6e:96:9a:b6:6a:4c:7a:5e:bd:b1:86:
+ 12:9d:7c:2c:62:bb:09:93:5f:3f:d8:b5:8a:c3:49:28:0f:0b:
+ f9:39:22:1a:fe:5d:d3:e8:18:5f:9d:5f:b4:c0:20:c6:a9:49:
+ 0d:55:73:6a:09:7a:ff:a2:99:bf:d8:bb:91:dc:30:39:ae:28:
+ 4b:f6:c5:77:24:e8:d6:c6:a7:a0:4e:f2:a6:99:75:cd:dd:57:
+ dd:0a:47:92:cb:bb:b7:48:fa:21:f0:69:21:ff:e5:0c:aa:0c:
+ b1:ea:dd:05:1c:19:8e:d1:2a:79:68:02:5e:cc:38:e6:29:c4:
+ 77:f5:19:1c
+-----BEGIN CERTIFICATE-----
+MIIEmjCCA4KgAwIBAgIQCx2xqRnyTDxO/LV6ak5svzANBgkqhkiG9w0BAQUFADBY
+MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
+R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMjA4
+MjMwMDAwMDBaFw0yMjA4MjIyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBFeHRlbmRlZCBWYWxp
+ZGF0aW9uIFNTTCBDQSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAnsYhzS490LsqTaR7H6gawgOm/0NiW7+R0WZSqYGQaDGGFrsdhVipfpFqHkwx
+yiHEvnAbn4zkBS2c7RF5rY+cJYZMuvLlYnmOIl+FfCI1OCONgDyszC38WPI1v2Zb
+68Ek+HCAdDL5Rt4yGYCMt+caoapkmI3Kzg7ca/fikApsHKX0kDJS5fEAQjGRSEKJ
+qF1/Y40xstZIXEVFIsnFWRKrQZTq/pxGTZq8nODixkaz5n/c9Q+jE0WGbXl4/OFQ
+zwmG5Z+/yzrU4LHU/6g/fWIfwG14SMPXo6UjYcU+NU2y5fj9lEu8c1Ov45ppVb7L
+Z6vhvu8bwk2syylcvO24Yp0Q6QIDAQABo4IBXjCCAVowPQYIKwYBBQUHAQEEMTAv
+MC0GCCsGAQUFBzABhiFodHRwOi8vRVZTZWN1cmUtb2NzcC5nZW90cnVzdC5jb20w
+EgYDVR0TAQH/BAgwBgEB/wIBADBGBgNVHSAEPzA9MDsGBFUdIAAwMzAxBggrBgEF
+BQcCARYlaHR0cDovL3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2VzL2NwczBBBgNV
+HR8EOjA4MDagNKAyhjBodHRwOi8vRVZTZWN1cmUtY3JsLmdlb3RydXN0LmNvbS9H
+ZW9UcnVzdFBDQS5jcmwwDgYDVR0PAQH/BAQDAgEGMCoGA1UdEQQjMCGkHzAdMRsw
+GQYDVQQDExJWZXJpU2lnbk1QS0ktMi0yNTMwHQYDVR0OBBYEFG8mVtlc5/fJBCD4
+Hrp8kScvjPoHMB8GA1UdIwQYMBaAFCzVUEGXFYvwjzZhW0r7a9mZyTOSMA0GCSqG
+SIb3DQEBBQUAA4IBAQCSd+lXyevERW/JTG59ABJxpeM5/hOESWznSXH1LMfANsII
+WPODdcVy2I149GXqjNXjpQ6prevjoSOuk7fYdXVKWcvynttAv06J/pVCKTR79N1q
+DXRfxxETLt0RbsbjW7PPpo3l92d7urOzaXAUsMKZtNJ2WzgXOUUbgvFTuD1VOQt/
+/5itbpaatmpMel69sYYSnXwsYrsJk18/2LWKw0koDwv5OSIa/l3T6BhfnV+0wCDG
+qUkNVXNqCXr/opm/2LuR3DA5rihL9sV3JOjWxqegTvKmmXXN3VfdCkeSy7u3SPoh
+8Gkh/+UMqgyx6t0FHBmO0Sp5aAJezDjmKcR39Rkc
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert22[] = {
+ 0x30, 0x82, 0x04, 0x9a, 0x30, 0x82, 0x03, 0x82, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x0b, 0x1d, 0xb1, 0xa9, 0x19, 0xf2, 0x4c, 0x3c, 0x4e,
+ 0xfc, 0xb5, 0x7a, 0x6a, 0x4e, 0x6c, 0xbf, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x58,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d,
+ 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x28,
+ 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x38,
+ 0x32, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32,
+ 0x32, 0x30, 0x38, 0x32, 0x32, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a,
+ 0x30, 0x58, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+ 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x28, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45,
+ 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x56, 0x61, 0x6c, 0x69,
+ 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43,
+ 0x41, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+ 0x01, 0x01, 0x00, 0x9e, 0xc6, 0x21, 0xcd, 0x2e, 0x3d, 0xd0, 0xbb, 0x2a,
+ 0x4d, 0xa4, 0x7b, 0x1f, 0xa8, 0x1a, 0xc2, 0x03, 0xa6, 0xff, 0x43, 0x62,
+ 0x5b, 0xbf, 0x91, 0xd1, 0x66, 0x52, 0xa9, 0x81, 0x90, 0x68, 0x31, 0x86,
+ 0x16, 0xbb, 0x1d, 0x85, 0x58, 0xa9, 0x7e, 0x91, 0x6a, 0x1e, 0x4c, 0x31,
+ 0xca, 0x21, 0xc4, 0xbe, 0x70, 0x1b, 0x9f, 0x8c, 0xe4, 0x05, 0x2d, 0x9c,
+ 0xed, 0x11, 0x79, 0xad, 0x8f, 0x9c, 0x25, 0x86, 0x4c, 0xba, 0xf2, 0xe5,
+ 0x62, 0x79, 0x8e, 0x22, 0x5f, 0x85, 0x7c, 0x22, 0x35, 0x38, 0x23, 0x8d,
+ 0x80, 0x3c, 0xac, 0xcc, 0x2d, 0xfc, 0x58, 0xf2, 0x35, 0xbf, 0x66, 0x5b,
+ 0xeb, 0xc1, 0x24, 0xf8, 0x70, 0x80, 0x74, 0x32, 0xf9, 0x46, 0xde, 0x32,
+ 0x19, 0x80, 0x8c, 0xb7, 0xe7, 0x1a, 0xa1, 0xaa, 0x64, 0x98, 0x8d, 0xca,
+ 0xce, 0x0e, 0xdc, 0x6b, 0xf7, 0xe2, 0x90, 0x0a, 0x6c, 0x1c, 0xa5, 0xf4,
+ 0x90, 0x32, 0x52, 0xe5, 0xf1, 0x00, 0x42, 0x31, 0x91, 0x48, 0x42, 0x89,
+ 0xa8, 0x5d, 0x7f, 0x63, 0x8d, 0x31, 0xb2, 0xd6, 0x48, 0x5c, 0x45, 0x45,
+ 0x22, 0xc9, 0xc5, 0x59, 0x12, 0xab, 0x41, 0x94, 0xea, 0xfe, 0x9c, 0x46,
+ 0x4d, 0x9a, 0xbc, 0x9c, 0xe0, 0xe2, 0xc6, 0x46, 0xb3, 0xe6, 0x7f, 0xdc,
+ 0xf5, 0x0f, 0xa3, 0x13, 0x45, 0x86, 0x6d, 0x79, 0x78, 0xfc, 0xe1, 0x50,
+ 0xcf, 0x09, 0x86, 0xe5, 0x9f, 0xbf, 0xcb, 0x3a, 0xd4, 0xe0, 0xb1, 0xd4,
+ 0xff, 0xa8, 0x3f, 0x7d, 0x62, 0x1f, 0xc0, 0x6d, 0x78, 0x48, 0xc3, 0xd7,
+ 0xa3, 0xa5, 0x23, 0x61, 0xc5, 0x3e, 0x35, 0x4d, 0xb2, 0xe5, 0xf8, 0xfd,
+ 0x94, 0x4b, 0xbc, 0x73, 0x53, 0xaf, 0xe3, 0x9a, 0x69, 0x55, 0xbe, 0xcb,
+ 0x67, 0xab, 0xe1, 0xbe, 0xef, 0x1b, 0xc2, 0x4d, 0xac, 0xcb, 0x29, 0x5c,
+ 0xbc, 0xed, 0xb8, 0x62, 0x9d, 0x10, 0xe9, 0x02, 0x03, 0x01, 0x00, 0x01,
+ 0xa3, 0x82, 0x01, 0x5e, 0x30, 0x82, 0x01, 0x5a, 0x30, 0x3d, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x31, 0x30, 0x2f,
+ 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+ 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x45, 0x56, 0x53,
+ 0x65, 0x63, 0x75, 0x72, 0x65, 0x2d, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67,
+ 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+ 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30,
+ 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x46, 0x06, 0x03, 0x55,
+ 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d, 0x30, 0x3b, 0x06, 0x04, 0x55, 0x1d,
+ 0x20, 0x00, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73,
+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x41, 0x06, 0x03, 0x55,
+ 0x1d, 0x1f, 0x04, 0x3a, 0x30, 0x38, 0x30, 0x36, 0xa0, 0x34, 0xa0, 0x32,
+ 0x86, 0x30, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x45, 0x56, 0x53,
+ 0x65, 0x63, 0x75, 0x72, 0x65, 0x2d, 0x63, 0x72, 0x6c, 0x2e, 0x67, 0x65,
+ 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x50, 0x43, 0x41, 0x2e, 0x63,
+ 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+ 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2a, 0x06, 0x03, 0x55, 0x1d,
+ 0x11, 0x04, 0x23, 0x30, 0x21, 0xa4, 0x1f, 0x30, 0x1d, 0x31, 0x1b, 0x30,
+ 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x32,
+ 0x35, 0x33, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0x6f, 0x26, 0x56, 0xd9, 0x5c, 0xe7, 0xf7, 0xc9, 0x04, 0x20, 0xf8,
+ 0x1e, 0xba, 0x7c, 0x91, 0x27, 0x2f, 0x8c, 0xfa, 0x07, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x2c, 0xd5,
+ 0x50, 0x41, 0x97, 0x15, 0x8b, 0xf0, 0x8f, 0x36, 0x61, 0x5b, 0x4a, 0xfb,
+ 0x6b, 0xd9, 0x99, 0xc9, 0x33, 0x92, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x01, 0x00, 0x92, 0x77, 0xe9, 0x57, 0xc9, 0xeb, 0xc4, 0x45, 0x6f, 0xc9,
+ 0x4c, 0x6e, 0x7d, 0x00, 0x12, 0x71, 0xa5, 0xe3, 0x39, 0xfe, 0x13, 0x84,
+ 0x49, 0x6c, 0xe7, 0x49, 0x71, 0xf5, 0x2c, 0xc7, 0xc0, 0x36, 0xc2, 0x08,
+ 0x58, 0xf3, 0x83, 0x75, 0xc5, 0x72, 0xd8, 0x8d, 0x78, 0xf4, 0x65, 0xea,
+ 0x8c, 0xd5, 0xe3, 0xa5, 0x0e, 0xa9, 0xad, 0xeb, 0xe3, 0xa1, 0x23, 0xae,
+ 0x93, 0xb7, 0xd8, 0x75, 0x75, 0x4a, 0x59, 0xcb, 0xf2, 0x9e, 0xdb, 0x40,
+ 0xbf, 0x4e, 0x89, 0xfe, 0x95, 0x42, 0x29, 0x34, 0x7b, 0xf4, 0xdd, 0x6a,
+ 0x0d, 0x74, 0x5f, 0xc7, 0x11, 0x13, 0x2e, 0xdd, 0x11, 0x6e, 0xc6, 0xe3,
+ 0x5b, 0xb3, 0xcf, 0xa6, 0x8d, 0xe5, 0xf7, 0x67, 0x7b, 0xba, 0xb3, 0xb3,
+ 0x69, 0x70, 0x14, 0xb0, 0xc2, 0x99, 0xb4, 0xd2, 0x76, 0x5b, 0x38, 0x17,
+ 0x39, 0x45, 0x1b, 0x82, 0xf1, 0x53, 0xb8, 0x3d, 0x55, 0x39, 0x0b, 0x7f,
+ 0xff, 0x98, 0xad, 0x6e, 0x96, 0x9a, 0xb6, 0x6a, 0x4c, 0x7a, 0x5e, 0xbd,
+ 0xb1, 0x86, 0x12, 0x9d, 0x7c, 0x2c, 0x62, 0xbb, 0x09, 0x93, 0x5f, 0x3f,
+ 0xd8, 0xb5, 0x8a, 0xc3, 0x49, 0x28, 0x0f, 0x0b, 0xf9, 0x39, 0x22, 0x1a,
+ 0xfe, 0x5d, 0xd3, 0xe8, 0x18, 0x5f, 0x9d, 0x5f, 0xb4, 0xc0, 0x20, 0xc6,
+ 0xa9, 0x49, 0x0d, 0x55, 0x73, 0x6a, 0x09, 0x7a, 0xff, 0xa2, 0x99, 0xbf,
+ 0xd8, 0xbb, 0x91, 0xdc, 0x30, 0x39, 0xae, 0x28, 0x4b, 0xf6, 0xc5, 0x77,
+ 0x24, 0xe8, 0xd6, 0xc6, 0xa7, 0xa0, 0x4e, 0xf2, 0xa6, 0x99, 0x75, 0xcd,
+ 0xdd, 0x57, 0xdd, 0x0a, 0x47, 0x92, 0xcb, 0xbb, 0xb7, 0x48, 0xfa, 0x21,
+ 0xf0, 0x69, 0x21, 0xff, 0xe5, 0x0c, 0xaa, 0x0c, 0xb1, 0xea, 0xdd, 0x05,
+ 0x1c, 0x19, 0x8e, 0xd1, 0x2a, 0x79, 0x68, 0x02, 0x5e, 0xcc, 0x38, 0xe6,
+ 0x29, 0xc4, 0x77, 0xf5, 0x19, 0x1c,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 3740804 (0x391484)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=Starfield Technologies, Inc., OU=Starfield Class 2 Certification Authority
+ Validity
+ Not Before: Jan 1 07:00:00 2014 GMT
+ Not After : May 30 07:00:00 2031 GMT
+ Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Root Certificate Authority - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:bd:ed:c1:03:fc:f6:8f:fc:02:b1:6f:5b:9f:48:
+ d9:9d:79:e2:a2:b7:03:61:56:18:c3:47:b6:d7:ca:
+ 3d:35:2e:89:43:f7:a1:69:9b:de:8a:1a:fd:13:20:
+ 9c:b4:49:77:32:29:56:fd:b9:ec:8c:dd:22:fa:72:
+ dc:27:61:97:ee:f6:5a:84:ec:6e:19:b9:89:2c:dc:
+ 84:5b:d5:74:fb:6b:5f:c5:89:a5:10:52:89:46:55:
+ f4:b8:75:1c:e6:7f:e4:54:ae:4b:f8:55:72:57:02:
+ 19:f8:17:71:59:eb:1e:28:07:74:c5:9d:48:be:6c:
+ b4:f4:a4:b0:f3:64:37:79:92:c0:ec:46:5e:7f:e1:
+ 6d:53:4c:62:af:cd:1f:0b:63:bb:3a:9d:fb:fc:79:
+ 00:98:61:74:cf:26:82:40:63:f3:b2:72:6a:19:0d:
+ 99:ca:d4:0e:75:cc:37:fb:8b:89:c1:59:f1:62:7f:
+ 5f:b3:5f:65:30:f8:a7:b7:4d:76:5a:1e:76:5e:34:
+ c0:e8:96:56:99:8a:b3:f0:7f:a4:cd:bd:dc:32:31:
+ 7c:91:cf:e0:5f:11:f8:6b:aa:49:5c:d1:99:94:d1:
+ a2:e3:63:5b:09:76:b5:56:62:e1:4b:74:1d:96:d4:
+ 26:d4:08:04:59:d0:98:0e:0e:e6:de:fc:c3:ec:1f:
+ 90:f1
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 7C:0C:32:1F:A7:D9:30:7F:C4:7D:68:A3:62:A8:A1:CE:AB:07:5B:27
+ X509v3 Authority Key Identifier:
+ keyid:BF:5F:B7:D1:CE:DD:1F:86:F4:5B:55:AC:DC:D7:10:C2:0E:A9:88:E7
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.starfieldtech.com/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.starfieldtech.com/sfroot.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://certs.starfieldtech.com/repository/
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 85:63:c1:d9:dd:b9:ff:a9:bd:a6:19:dc:bf:13:3a:11:38:22:
+ 54:b1:ac:05:10:fb:7c:b3:96:3f:31:8b:66:ff:88:f3:e1:bf:
+ fb:c7:1f:00:ff:46:6a:8b:61:32:c9:01:51:76:fb:9a:c6:fa:
+ 20:51:c8:46:c4:98:d7:79:a3:e3:04:72:3f:8b:4d:34:53:67:
+ ec:33:2c:7b:e8:94:01:28:7c:3a:34:5b:02:77:16:8d:40:25:
+ 33:b0:bc:6c:97:d7:05:7a:ff:8c:85:ce:6f:a0:53:00:17:6e:
+ 1e:6c:bd:22:d7:0a:88:37:f6:7d:eb:99:41:ef:27:cb:8c:60:
+ 6b:4c:01:7e:65:50:0b:4f:b8:95:9a:9a:6e:34:fd:73:3a:33:
+ f1:91:d5:f3:4e:2d:74:e8:ef:d3:90:35:f1:06:68:64:d4:d0:
+ 13:fd:52:d3:c6:6d:c1:3a:8a:31:dd:05:26:35:4a:8c:65:b8:
+ 52:6b:81:ec:d2:9c:b5:34:10:97:9c:3e:c6:2f:ed:8e:42:42:
+ 24:2e:e9:73:9a:25:f9:11:f1:f2:23:69:cb:e5:94:69:a0:d2:
+ dc:b0:fc:44:89:ac:17:a8:cc:d5:37:77:16:c5:80:b9:0c:8f:
+ 57:02:55:99:85:7b:49:f0:2e:5b:a0:c2:57:53:5d:a2:e8:a6:
+ 37:c3:01:fa
+-----BEGIN CERTIFICATE-----
+MIIEoDCCA4igAwIBAgIDORSEMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYTAlVT
+MSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQL
+EylTdGFyZmllbGQgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
+NDAxMDEwNzAwMDBaFw0zMTA1MzAwNzAwMDBaMIGPMQswCQYDVQQGEwJVUzEQMA4G
+A1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTElMCMGA1UEChMcU3Rh
+cmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UEAxMpU3RhcmZpZWxkIFJv
+b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQC97cED/PaP/AKxb1ufSNmdeeKitwNhVhjDR7bXyj01LolD
+96Fpm96KGv0TIJy0SXcyKVb9ueyM3SL6ctwnYZfu9lqE7G4ZuYks3IRb1XT7a1/F
+iaUQUolGVfS4dRzmf+RUrkv4VXJXAhn4F3FZ6x4oB3TFnUi+bLT0pLDzZDd5ksDs
+Rl5/4W1TTGKvzR8LY7s6nfv8eQCYYXTPJoJAY/OycmoZDZnK1A51zDf7i4nBWfFi
+f1+zX2Uw+Ke3TXZaHnZeNMDollaZirPwf6TNvdwyMXyRz+BfEfhrqklc0ZmU0aLj
+Y1sJdrVWYuFLdB2W1CbUCARZ0JgODube/MPsH5DxAgMBAAGjggEpMIIBJTAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfAwyH6fZMH/E
+fWijYqihzqsHWycwHwYDVR0jBBgwFoAUv1+30c7dH4b0W1Ws3NcQwg6piOcwOgYI
+KwYBBQUHAQEELjAsMCoGCCsGAQUFBzABhh5odHRwOi8vb2NzcC5zdGFyZmllbGR0
+ZWNoLmNvbS8wOAYDVR0fBDEwLzAtoCugKYYnaHR0cDovL2NybC5zdGFyZmllbGR0
+ZWNoLmNvbS9zZnJvb3QuY3JsMEwGA1UdIARFMEMwQQYEVR0gADA5MDcGCCsGAQUF
+BwIBFitodHRwczovL2NlcnRzLnN0YXJmaWVsZHRlY2guY29tL3JlcG9zaXRvcnkv
+MA0GCSqGSIb3DQEBCwUAA4IBAQCFY8HZ3bn/qb2mGdy/EzoROCJUsawFEPt8s5Y/
+MYtm/4jz4b/7xx8A/0Zqi2EyyQFRdvuaxvogUchGxJjXeaPjBHI/i000U2fsMyx7
+6JQBKHw6NFsCdxaNQCUzsLxsl9cFev+Mhc5voFMAF24ebL0i1wqIN/Z965lB7yfL
+jGBrTAF+ZVALT7iVmppuNP1zOjPxkdXzTi106O/TkDXxBmhk1NAT/VLTxm3BOoox
+3QUmNUqMZbhSa4Hs0py1NBCXnD7GL+2OQkIkLulzmiX5EfHyI2nL5ZRpoNLcsPxE
+iawXqMzVN3cWxYC5DI9XAlWZhXtJ8C5boMJXU12i6KY3wwH6
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert23[] = {
+ 0x30, 0x82, 0x04, 0xa0, 0x30, 0x82, 0x03, 0x88, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x39, 0x14, 0x84, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x68, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53,
+ 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63,
+ 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x29, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20,
+ 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x32, 0x20, 0x43, 0x65, 0x72, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+ 0x34, 0x30, 0x31, 0x30, 0x31, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x5a,
+ 0x17, 0x0d, 0x33, 0x31, 0x30, 0x35, 0x33, 0x30, 0x30, 0x37, 0x30, 0x30,
+ 0x30, 0x30, 0x5a, 0x30, 0x81, 0x8f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
+ 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30, 0x0e, 0x06,
+ 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e,
+ 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a,
+ 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65, 0x31, 0x25,
+ 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53, 0x74, 0x61,
+ 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63, 0x68, 0x6e,
+ 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x29,
+ 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x52, 0x6f,
+ 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79,
+ 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+ 0x01, 0x00, 0xbd, 0xed, 0xc1, 0x03, 0xfc, 0xf6, 0x8f, 0xfc, 0x02, 0xb1,
+ 0x6f, 0x5b, 0x9f, 0x48, 0xd9, 0x9d, 0x79, 0xe2, 0xa2, 0xb7, 0x03, 0x61,
+ 0x56, 0x18, 0xc3, 0x47, 0xb6, 0xd7, 0xca, 0x3d, 0x35, 0x2e, 0x89, 0x43,
+ 0xf7, 0xa1, 0x69, 0x9b, 0xde, 0x8a, 0x1a, 0xfd, 0x13, 0x20, 0x9c, 0xb4,
+ 0x49, 0x77, 0x32, 0x29, 0x56, 0xfd, 0xb9, 0xec, 0x8c, 0xdd, 0x22, 0xfa,
+ 0x72, 0xdc, 0x27, 0x61, 0x97, 0xee, 0xf6, 0x5a, 0x84, 0xec, 0x6e, 0x19,
+ 0xb9, 0x89, 0x2c, 0xdc, 0x84, 0x5b, 0xd5, 0x74, 0xfb, 0x6b, 0x5f, 0xc5,
+ 0x89, 0xa5, 0x10, 0x52, 0x89, 0x46, 0x55, 0xf4, 0xb8, 0x75, 0x1c, 0xe6,
+ 0x7f, 0xe4, 0x54, 0xae, 0x4b, 0xf8, 0x55, 0x72, 0x57, 0x02, 0x19, 0xf8,
+ 0x17, 0x71, 0x59, 0xeb, 0x1e, 0x28, 0x07, 0x74, 0xc5, 0x9d, 0x48, 0xbe,
+ 0x6c, 0xb4, 0xf4, 0xa4, 0xb0, 0xf3, 0x64, 0x37, 0x79, 0x92, 0xc0, 0xec,
+ 0x46, 0x5e, 0x7f, 0xe1, 0x6d, 0x53, 0x4c, 0x62, 0xaf, 0xcd, 0x1f, 0x0b,
+ 0x63, 0xbb, 0x3a, 0x9d, 0xfb, 0xfc, 0x79, 0x00, 0x98, 0x61, 0x74, 0xcf,
+ 0x26, 0x82, 0x40, 0x63, 0xf3, 0xb2, 0x72, 0x6a, 0x19, 0x0d, 0x99, 0xca,
+ 0xd4, 0x0e, 0x75, 0xcc, 0x37, 0xfb, 0x8b, 0x89, 0xc1, 0x59, 0xf1, 0x62,
+ 0x7f, 0x5f, 0xb3, 0x5f, 0x65, 0x30, 0xf8, 0xa7, 0xb7, 0x4d, 0x76, 0x5a,
+ 0x1e, 0x76, 0x5e, 0x34, 0xc0, 0xe8, 0x96, 0x56, 0x99, 0x8a, 0xb3, 0xf0,
+ 0x7f, 0xa4, 0xcd, 0xbd, 0xdc, 0x32, 0x31, 0x7c, 0x91, 0xcf, 0xe0, 0x5f,
+ 0x11, 0xf8, 0x6b, 0xaa, 0x49, 0x5c, 0xd1, 0x99, 0x94, 0xd1, 0xa2, 0xe3,
+ 0x63, 0x5b, 0x09, 0x76, 0xb5, 0x56, 0x62, 0xe1, 0x4b, 0x74, 0x1d, 0x96,
+ 0xd4, 0x26, 0xd4, 0x08, 0x04, 0x59, 0xd0, 0x98, 0x0e, 0x0e, 0xe6, 0xde,
+ 0xfc, 0xc3, 0xec, 0x1f, 0x90, 0xf1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
+ 0x82, 0x01, 0x29, 0x30, 0x82, 0x01, 0x25, 0x30, 0x0f, 0x06, 0x03, 0x55,
+ 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff,
+ 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
+ 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+ 0x16, 0x04, 0x14, 0x7c, 0x0c, 0x32, 0x1f, 0xa7, 0xd9, 0x30, 0x7f, 0xc4,
+ 0x7d, 0x68, 0xa3, 0x62, 0xa8, 0xa1, 0xce, 0xab, 0x07, 0x5b, 0x27, 0x30,
+ 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+ 0xbf, 0x5f, 0xb7, 0xd1, 0xce, 0xdd, 0x1f, 0x86, 0xf4, 0x5b, 0x55, 0xac,
+ 0xdc, 0xd7, 0x10, 0xc2, 0x0e, 0xa9, 0x88, 0xe7, 0x30, 0x3a, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x2e, 0x30, 0x2c,
+ 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+ 0x86, 0x1e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+ 0x70, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74,
+ 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x38, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0xa0, 0x2b, 0xa0,
+ 0x29, 0x86, 0x27, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x6c, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74,
+ 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x72, 0x6f,
+ 0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d,
+ 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06, 0x04, 0x55, 0x1d, 0x20,
+ 0x00, 0x30, 0x39, 0x30, 0x37, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x2b, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+ 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x85, 0x63, 0xc1, 0xd9,
+ 0xdd, 0xb9, 0xff, 0xa9, 0xbd, 0xa6, 0x19, 0xdc, 0xbf, 0x13, 0x3a, 0x11,
+ 0x38, 0x22, 0x54, 0xb1, 0xac, 0x05, 0x10, 0xfb, 0x7c, 0xb3, 0x96, 0x3f,
+ 0x31, 0x8b, 0x66, 0xff, 0x88, 0xf3, 0xe1, 0xbf, 0xfb, 0xc7, 0x1f, 0x00,
+ 0xff, 0x46, 0x6a, 0x8b, 0x61, 0x32, 0xc9, 0x01, 0x51, 0x76, 0xfb, 0x9a,
+ 0xc6, 0xfa, 0x20, 0x51, 0xc8, 0x46, 0xc4, 0x98, 0xd7, 0x79, 0xa3, 0xe3,
+ 0x04, 0x72, 0x3f, 0x8b, 0x4d, 0x34, 0x53, 0x67, 0xec, 0x33, 0x2c, 0x7b,
+ 0xe8, 0x94, 0x01, 0x28, 0x7c, 0x3a, 0x34, 0x5b, 0x02, 0x77, 0x16, 0x8d,
+ 0x40, 0x25, 0x33, 0xb0, 0xbc, 0x6c, 0x97, 0xd7, 0x05, 0x7a, 0xff, 0x8c,
+ 0x85, 0xce, 0x6f, 0xa0, 0x53, 0x00, 0x17, 0x6e, 0x1e, 0x6c, 0xbd, 0x22,
+ 0xd7, 0x0a, 0x88, 0x37, 0xf6, 0x7d, 0xeb, 0x99, 0x41, 0xef, 0x27, 0xcb,
+ 0x8c, 0x60, 0x6b, 0x4c, 0x01, 0x7e, 0x65, 0x50, 0x0b, 0x4f, 0xb8, 0x95,
+ 0x9a, 0x9a, 0x6e, 0x34, 0xfd, 0x73, 0x3a, 0x33, 0xf1, 0x91, 0xd5, 0xf3,
+ 0x4e, 0x2d, 0x74, 0xe8, 0xef, 0xd3, 0x90, 0x35, 0xf1, 0x06, 0x68, 0x64,
+ 0xd4, 0xd0, 0x13, 0xfd, 0x52, 0xd3, 0xc6, 0x6d, 0xc1, 0x3a, 0x8a, 0x31,
+ 0xdd, 0x05, 0x26, 0x35, 0x4a, 0x8c, 0x65, 0xb8, 0x52, 0x6b, 0x81, 0xec,
+ 0xd2, 0x9c, 0xb5, 0x34, 0x10, 0x97, 0x9c, 0x3e, 0xc6, 0x2f, 0xed, 0x8e,
+ 0x42, 0x42, 0x24, 0x2e, 0xe9, 0x73, 0x9a, 0x25, 0xf9, 0x11, 0xf1, 0xf2,
+ 0x23, 0x69, 0xcb, 0xe5, 0x94, 0x69, 0xa0, 0xd2, 0xdc, 0xb0, 0xfc, 0x44,
+ 0x89, 0xac, 0x17, 0xa8, 0xcc, 0xd5, 0x37, 0x77, 0x16, 0xc5, 0x80, 0xb9,
+ 0x0c, 0x8f, 0x57, 0x02, 0x55, 0x99, 0x85, 0x7b, 0x49, 0xf0, 0x2e, 0x5b,
+ 0xa0, 0xc2, 0x57, 0x53, 0x5d, 0xa2, 0xe8, 0xa6, 0x37, 0xc3, 0x01, 0xfa,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 28:1c:89:29:66:14:43:80:42:63:55:3a:32:40:ae:b3
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., OU=(c) 2008 GeoTrust Inc. - For authorized use only, CN=GeoTrust Primary Certification Authority - G3
+ Validity
+ Not Before: Jun 30 00:00:00 2015 GMT
+ Not After : Jun 29 23:59:59 2025 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=RapidSSL SHA256 CA - G4
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:c0:9e:3a:0f:9a:b2:ba:d3:d2:dc:15:ec:d0:30:
+ 54:59:30:4d:40:51:ae:42:71:71:d2:8d:53:73:81:
+ fe:b8:e0:c4:96:c5:8e:7e:c2:f1:b7:63:4a:cf:a7:
+ 1e:3f:a8:e7:ce:53:a0:fa:2d:f7:d6:e6:ce:70:11:
+ a6:ee:e1:03:52:d2:68:de:3d:08:0d:87:fd:1c:d7:
+ 0b:97:62:6d:82:30:76:1b:47:3a:c4:f7:ce:ed:1d:
+ 7c:8c:b7:17:8e:53:80:1e:1d:0f:5d:8c:f9:90:e4:
+ 04:1e:02:7e:cb:b0:49:ef:da:52:25:fb:fb:67:ed:
+ dd:84:74:59:84:0e:f3:de:70:66:8d:e4:52:38:f7:
+ 53:5a:37:13:67:0b:3e:bb:a8:58:b7:2e:ed:ff:b7:
+ 5e:11:73:b9:77:45:52:67:46:ae:c4:dc:24:81:89:
+ 76:0a:ca:a1:6c:66:73:04:82:aa:f5:70:6c:5f:1b:
+ 9a:00:79:46:d6:7f:7a:26:17:30:cf:39:4b:2c:74:
+ d9:89:44:76:10:d0:ed:f7:8b:bb:89:05:75:4d:0b:
+ 0d:b3:da:e9:bf:f1:6a:7d:2a:11:db:1e:9f:8c:e3:
+ c4:06:69:e1:1d:88:45:39:d1:6e:55:d8:aa:b7:9b:
+ 6f:ea:f4:de:ac:17:11:92:5d:40:9b:83:7b:9a:e2:
+ f7:a9
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ Authority Information Access:
+ OCSP - URI:http://g.symcd.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 2.23.140.1.2.1
+ CPS: https://www.geotrust.com/resources/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g.symcb.com/GeoTrustPCA-G3.crl
+
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ F3:B5:56:0C:C4:09:B0:B4:CF:1F:AA:F9:DD:23:56:F0:77:E8:A1:F9
+ X509v3 Authority Key Identifier:
+ keyid:C4:79:CA:8E:A1:4E:03:1D:1C:DC:6B:DB:31:5B:94:3E:3F:30:7F:2D
+
+ Signature Algorithm: sha256WithRSAEncryption
+ c3:7e:d8:83:4b:04:4c:55:29:2a:4f:14:9d:9a:6e:de:90:70:
+ c1:a4:26:4c:88:8e:78:48:ef:bd:9c:b0:a0:f5:f0:66:fc:fe:
+ 59:26:e1:79:ef:c8:b7:60:64:a8:8b:47:ea:2f:e0:83:99:da:
+ 41:19:d7:c5:be:05:fa:f2:90:11:f0:0a:ff:6c:dc:05:b4:d8:
+ 06:6f:a4:6f:8d:be:20:2b:54:db:f9:a2:45:83:9a:1e:a5:21:
+ 89:35:1d:7c:20:5c:17:fd:04:2e:45:d8:b2:c6:f8:42:99:fc:
+ 54:08:4e:4b:80:5f:39:37:ba:95:4e:a6:37:0a:9e:93:5e:87:
+ 5b:e9:90:d6:a8:b6:65:08:8d:61:49:eb:83:20:a9:5d:1b:16:
+ 60:62:6b:2f:54:fb:5a:02:0d:7a:27:e2:4b:e1:05:14:c2:e4:
+ e9:f9:70:c0:d9:f7:34:65:0e:a2:91:4b:ac:28:f2:b7:08:0f:
+ 98:ca:d7:3e:70:b6:c8:0b:f1:8b:9c:51:f8:c6:10:6c:d2:53:
+ 4f:62:8c:11:00:3e:88:df:bf:e6:d2:cc:70:bd:ed:25:9c:fb:
+ dd:24:0a:bd:59:91:4a:42:03:38:12:71:32:88:76:a0:8e:7c:
+ bb:32:ef:88:2a:1b:d4:6a:6f:50:b9:52:67:8b:ab:30:fa:1f:
+ fd:e3:24:9a
+-----BEGIN CERTIFICATE-----
+MIIEpjCCA46gAwIBAgIQKByJKWYUQ4BCY1U6MkCuszANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
+MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEczMB4XDTE1MDYzMDAwMDAwMFoXDTI1MDYyOTIzNTk1OVowRzELMAkG
+A1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xIDAeBgNVBAMTF1JhcGlk
+U1NMIFNIQTI1NiBDQSAtIEc0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAwJ46D5qyutPS3BXs0DBUWTBNQFGuQnFx0o1Tc4H+uODElsWOfsLxt2NKz6ce
+P6jnzlOg+i331ubOcBGm7uEDUtJo3j0IDYf9HNcLl2JtgjB2G0c6xPfO7R18jLcX
+jlOAHh0PXYz5kOQEHgJ+y7BJ79pSJfv7Z+3dhHRZhA7z3nBmjeRSOPdTWjcTZws+
+u6hYty7t/7deEXO5d0VSZ0auxNwkgYl2CsqhbGZzBIKq9XBsXxuaAHlG1n96Jhcw
+zzlLLHTZiUR2ENDt94u7iQV1TQsNs9rpv/FqfSoR2x6fjOPEBmnhHYhFOdFuVdiq
+t5tv6vTerBcRkl1Am4N7muL3qQIDAQABo4IBOjCCATYwLgYIKwYBBQUHAQEEIjAg
+MB4GCCsGAQUFBzABhhJodHRwOi8vZy5zeW1jZC5jb20wEgYDVR0TAQH/BAgwBgEB
+/wIBADBJBgNVHSAEQjBAMD4GBmeBDAECATA0MDIGCCsGAQUFBwIBFiZodHRwczov
+L3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2VzL2NwczA2BgNVHR8ELzAtMCugKaAn
+hiVodHRwOi8vZy5zeW1jYi5jb20vR2VvVHJ1c3RQQ0EtRzMuY3JsMB0GA1UdJQQW
+MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FPO1VgzECbC0zx+q+d0jVvB36KH5MB8GA1UdIwQYMBaAFMR5yo6hTgMdHNxr2zFb
+lD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQDDftiDSwRMVSkqTxSdmm7ekHDBpCZM
+iI54SO+9nLCg9fBm/P5ZJuF578i3YGSoi0fqL+CDmdpBGdfFvgX68pAR8Ar/bNwF
+tNgGb6Rvjb4gK1Tb+aJFg5oepSGJNR18IFwX/QQuRdiyxvhCmfxUCE5LgF85N7qV
+TqY3Cp6TXodb6ZDWqLZlCI1hSeuDIKldGxZgYmsvVPtaAg16J+JL4QUUwuTp+XDA
+2fc0ZQ6ikUusKPK3CA+Yytc+cLbIC/GLnFH4xhBs0lNPYowRAD6I37/m0sxwve0l
+nPvdJAq9WZFKQgM4EnEyiHagjny7Mu+IKhvUam9QuVJni6sw+h/94ySa
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert24[] = {
+ 0x30, 0x82, 0x04, 0xa6, 0x30, 0x82, 0x03, 0x8e, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x28, 0x1c, 0x89, 0x29, 0x66, 0x14, 0x43, 0x80, 0x42,
+ 0x63, 0x55, 0x3a, 0x32, 0x40, 0xae, 0xb3, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0x98, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x38, 0x20, 0x47, 0x65,
+ 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20,
+ 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c,
+ 0x79, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d,
+ 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x35, 0x30, 0x36, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
+ 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x35, 0x30, 0x36, 0x32, 0x39, 0x32, 0x33,
+ 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72,
+ 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x52, 0x61, 0x70, 0x69, 0x64,
+ 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43,
+ 0x41, 0x20, 0x2d, 0x20, 0x47, 0x34, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+ 0x01, 0x01, 0x00, 0xc0, 0x9e, 0x3a, 0x0f, 0x9a, 0xb2, 0xba, 0xd3, 0xd2,
+ 0xdc, 0x15, 0xec, 0xd0, 0x30, 0x54, 0x59, 0x30, 0x4d, 0x40, 0x51, 0xae,
+ 0x42, 0x71, 0x71, 0xd2, 0x8d, 0x53, 0x73, 0x81, 0xfe, 0xb8, 0xe0, 0xc4,
+ 0x96, 0xc5, 0x8e, 0x7e, 0xc2, 0xf1, 0xb7, 0x63, 0x4a, 0xcf, 0xa7, 0x1e,
+ 0x3f, 0xa8, 0xe7, 0xce, 0x53, 0xa0, 0xfa, 0x2d, 0xf7, 0xd6, 0xe6, 0xce,
+ 0x70, 0x11, 0xa6, 0xee, 0xe1, 0x03, 0x52, 0xd2, 0x68, 0xde, 0x3d, 0x08,
+ 0x0d, 0x87, 0xfd, 0x1c, 0xd7, 0x0b, 0x97, 0x62, 0x6d, 0x82, 0x30, 0x76,
+ 0x1b, 0x47, 0x3a, 0xc4, 0xf7, 0xce, 0xed, 0x1d, 0x7c, 0x8c, 0xb7, 0x17,
+ 0x8e, 0x53, 0x80, 0x1e, 0x1d, 0x0f, 0x5d, 0x8c, 0xf9, 0x90, 0xe4, 0x04,
+ 0x1e, 0x02, 0x7e, 0xcb, 0xb0, 0x49, 0xef, 0xda, 0x52, 0x25, 0xfb, 0xfb,
+ 0x67, 0xed, 0xdd, 0x84, 0x74, 0x59, 0x84, 0x0e, 0xf3, 0xde, 0x70, 0x66,
+ 0x8d, 0xe4, 0x52, 0x38, 0xf7, 0x53, 0x5a, 0x37, 0x13, 0x67, 0x0b, 0x3e,
+ 0xbb, 0xa8, 0x58, 0xb7, 0x2e, 0xed, 0xff, 0xb7, 0x5e, 0x11, 0x73, 0xb9,
+ 0x77, 0x45, 0x52, 0x67, 0x46, 0xae, 0xc4, 0xdc, 0x24, 0x81, 0x89, 0x76,
+ 0x0a, 0xca, 0xa1, 0x6c, 0x66, 0x73, 0x04, 0x82, 0xaa, 0xf5, 0x70, 0x6c,
+ 0x5f, 0x1b, 0x9a, 0x00, 0x79, 0x46, 0xd6, 0x7f, 0x7a, 0x26, 0x17, 0x30,
+ 0xcf, 0x39, 0x4b, 0x2c, 0x74, 0xd9, 0x89, 0x44, 0x76, 0x10, 0xd0, 0xed,
+ 0xf7, 0x8b, 0xbb, 0x89, 0x05, 0x75, 0x4d, 0x0b, 0x0d, 0xb3, 0xda, 0xe9,
+ 0xbf, 0xf1, 0x6a, 0x7d, 0x2a, 0x11, 0xdb, 0x1e, 0x9f, 0x8c, 0xe3, 0xc4,
+ 0x06, 0x69, 0xe1, 0x1d, 0x88, 0x45, 0x39, 0xd1, 0x6e, 0x55, 0xd8, 0xaa,
+ 0xb7, 0x9b, 0x6f, 0xea, 0xf4, 0xde, 0xac, 0x17, 0x11, 0x92, 0x5d, 0x40,
+ 0x9b, 0x83, 0x7b, 0x9a, 0xe2, 0xf7, 0xa9, 0x02, 0x03, 0x01, 0x00, 0x01,
+ 0xa3, 0x82, 0x01, 0x3a, 0x30, 0x82, 0x01, 0x36, 0x30, 0x2e, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22, 0x30, 0x20,
+ 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+ 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73,
+ 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03,
+ 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+ 0xff, 0x02, 0x01, 0x00, 0x30, 0x49, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+ 0x42, 0x30, 0x40, 0x30, 0x3e, 0x06, 0x06, 0x67, 0x81, 0x0c, 0x01, 0x02,
+ 0x01, 0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+ 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73,
+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x36, 0x06, 0x03, 0x55,
+ 0x1d, 0x1f, 0x04, 0x2f, 0x30, 0x2d, 0x30, 0x2b, 0xa0, 0x29, 0xa0, 0x27,
+ 0x86, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73,
+ 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x6f,
+ 0x54, 0x72, 0x75, 0x73, 0x74, 0x50, 0x43, 0x41, 0x2d, 0x47, 0x33, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16,
+ 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x0e,
+ 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
+ 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0xf3, 0xb5, 0x56, 0x0c, 0xc4, 0x09, 0xb0, 0xb4, 0xcf, 0x1f, 0xaa,
+ 0xf9, 0xdd, 0x23, 0x56, 0xf0, 0x77, 0xe8, 0xa1, 0xf9, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xc4, 0x79,
+ 0xca, 0x8e, 0xa1, 0x4e, 0x03, 0x1d, 0x1c, 0xdc, 0x6b, 0xdb, 0x31, 0x5b,
+ 0x94, 0x3e, 0x3f, 0x30, 0x7f, 0x2d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x01, 0x00, 0xc3, 0x7e, 0xd8, 0x83, 0x4b, 0x04, 0x4c, 0x55, 0x29, 0x2a,
+ 0x4f, 0x14, 0x9d, 0x9a, 0x6e, 0xde, 0x90, 0x70, 0xc1, 0xa4, 0x26, 0x4c,
+ 0x88, 0x8e, 0x78, 0x48, 0xef, 0xbd, 0x9c, 0xb0, 0xa0, 0xf5, 0xf0, 0x66,
+ 0xfc, 0xfe, 0x59, 0x26, 0xe1, 0x79, 0xef, 0xc8, 0xb7, 0x60, 0x64, 0xa8,
+ 0x8b, 0x47, 0xea, 0x2f, 0xe0, 0x83, 0x99, 0xda, 0x41, 0x19, 0xd7, 0xc5,
+ 0xbe, 0x05, 0xfa, 0xf2, 0x90, 0x11, 0xf0, 0x0a, 0xff, 0x6c, 0xdc, 0x05,
+ 0xb4, 0xd8, 0x06, 0x6f, 0xa4, 0x6f, 0x8d, 0xbe, 0x20, 0x2b, 0x54, 0xdb,
+ 0xf9, 0xa2, 0x45, 0x83, 0x9a, 0x1e, 0xa5, 0x21, 0x89, 0x35, 0x1d, 0x7c,
+ 0x20, 0x5c, 0x17, 0xfd, 0x04, 0x2e, 0x45, 0xd8, 0xb2, 0xc6, 0xf8, 0x42,
+ 0x99, 0xfc, 0x54, 0x08, 0x4e, 0x4b, 0x80, 0x5f, 0x39, 0x37, 0xba, 0x95,
+ 0x4e, 0xa6, 0x37, 0x0a, 0x9e, 0x93, 0x5e, 0x87, 0x5b, 0xe9, 0x90, 0xd6,
+ 0xa8, 0xb6, 0x65, 0x08, 0x8d, 0x61, 0x49, 0xeb, 0x83, 0x20, 0xa9, 0x5d,
+ 0x1b, 0x16, 0x60, 0x62, 0x6b, 0x2f, 0x54, 0xfb, 0x5a, 0x02, 0x0d, 0x7a,
+ 0x27, 0xe2, 0x4b, 0xe1, 0x05, 0x14, 0xc2, 0xe4, 0xe9, 0xf9, 0x70, 0xc0,
+ 0xd9, 0xf7, 0x34, 0x65, 0x0e, 0xa2, 0x91, 0x4b, 0xac, 0x28, 0xf2, 0xb7,
+ 0x08, 0x0f, 0x98, 0xca, 0xd7, 0x3e, 0x70, 0xb6, 0xc8, 0x0b, 0xf1, 0x8b,
+ 0x9c, 0x51, 0xf8, 0xc6, 0x10, 0x6c, 0xd2, 0x53, 0x4f, 0x62, 0x8c, 0x11,
+ 0x00, 0x3e, 0x88, 0xdf, 0xbf, 0xe6, 0xd2, 0xcc, 0x70, 0xbd, 0xed, 0x25,
+ 0x9c, 0xfb, 0xdd, 0x24, 0x0a, 0xbd, 0x59, 0x91, 0x4a, 0x42, 0x03, 0x38,
+ 0x12, 0x71, 0x32, 0x88, 0x76, 0xa0, 0x8e, 0x7c, 0xbb, 0x32, 0xef, 0x88,
+ 0x2a, 0x1b, 0xd4, 0x6a, 0x6f, 0x50, 0xb9, 0x52, 0x67, 0x8b, 0xab, 0x30,
+ 0xfa, 0x1f, 0xfd, 0xe3, 0x24, 0x9a,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 5d:72:fb:33:76:20:f6:4c:72:80:db:e9:12:81:ff:6a
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+ Validity
+ Not Before: Oct 31 00:00:00 2013 GMT
+ Not After : Oct 30 23:59:59 2023 GMT
+ Subject: C=US, O=thawte, Inc., CN=thawte EV SSL CA - G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:c4:dd:da:94:1e:32:b2:2e:a0:83:c0:a6:7d:5f:
+ 65:2d:fd:27:b8:73:0e:f8:0b:a9:d4:56:26:69:98:
+ 67:35:39:64:58:ce:82:6f:98:94:d1:8f:e0:90:d6:
+ ed:55:4b:98:4b:d7:10:59:34:02:1b:e7:51:31:51:
+ c4:38:c2:bc:db:03:5c:ca:e1:7c:dc:4f:59:97:ea:
+ 07:7f:0f:85:3e:92:ea:aa:a7:d9:be:01:41:e4:62:
+ 56:47:36:bd:57:91:e6:21:d3:f8:41:0b:d8:ba:e8:
+ ed:81:ad:70:c0:8b:6e:f3:89:6e:27:9e:a6:a6:73:
+ 59:bb:71:00:d4:4f:4b:48:e9:d5:c9:27:36:9c:7c:
+ 1c:02:aa:ac:bd:3b:d1:53:83:6a:1f:e6:08:47:33:
+ a7:b1:9f:02:be:9b:47:ed:33:04:dc:1c:80:27:d1:
+ 4a:33:a0:8c:eb:01:47:a1:32:90:64:7b:c4:e0:84:
+ c9:32:e9:dd:34:1f:8a:68:67:f3:ad:10:63:eb:ee:
+ 8a:9a:b1:2a:1b:26:74:a1:2a:b0:8f:fe:52:98:46:
+ 97:cf:a3:56:1c:6f:6e:99:97:8d:26:0e:a9:ec:c2:
+ 53:70:fc:7a:a5:19:49:bd:b5:17:82:55:de:97:e0:
+ 5d:62:84:81:f0:70:a8:34:53:4f:14:fd:3d:5d:3d:
+ 6f:b9
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://t2.symcb.com
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.thawte.com/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://t1.symcb.com/ThawtePCA.crl
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-536
+ X509v3 Subject Key Identifier:
+ F0:70:51:DA:D3:2A:91:4F:52:77:D7:86:77:74:0F:CE:71:1A:6C:22
+ X509v3 Authority Key Identifier:
+ keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+ Signature Algorithm: sha256WithRSAEncryption
+ a1:2e:94:3e:9b:16:f4:58:1a:6f:c1:fa:c1:7e:43:93:b2:c3:
+ f7:89:eb:13:62:5d:dd:cc:61:13:2b:1d:4e:88:79:11:62:14:
+ 37:30:46:ff:89:62:10:85:2a:87:1e:f8:e2:af:fe:93:02:93:
+ ca:f2:e9:46:03:6b:a1:1a:ac:d5:f0:80:1b:98:6f:b8:3a:50:
+ f8:54:71:06:03:e7:84:cc:8e:61:d2:5f:4d:0c:97:02:65:b5:
+ 8c:26:bc:05:98:f4:dc:c6:af:e4:57:7f:e3:dc:a1:d7:27:47:
+ 2a:e0:2c:3f:09:74:dc:5a:e5:b5:7c:fa:82:9a:15:fa:74:2b:
+ 84:2e:6b:ac:ef:35:a6:30:fa:47:4a:aa:36:44:f6:5a:91:07:
+ d3:e4:4e:97:3f:a6:53:d8:29:33:32:6f:8b:3d:b5:a5:0d:e5:
+ e4:8a:e8:f5:c0:fa:af:d8:37:28:27:c3:ed:34:31:d9:7c:a6:
+ af:4d:12:4f:d0:2b:92:9c:69:95:f2:28:a6:fe:a8:c6:e0:2c:
+ 4d:36:eb:11:34:d6:e1:81:99:9d:41:f2:e7:c5:57:05:0e:19:
+ ca:af:42:39:1f:a7:27:5e:e0:0a:17:b8:ae:47:ab:92:f1:8a:
+ 04:df:30:e0:bb:4f:8a:f9:1b:88:4f:03:b4:25:7a:78:de:2e:
+ 7d:29:d1:31
+-----BEGIN CERTIFICATE-----
+MIIErzCCA5egAwIBAgIQXXL7M3Yg9kxygNvpEoH/ajANBgkqhkiG9w0BAQsFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTMxMDMxMDAwMDAwWhcNMjMx
+MDMwMjM1OTU5WjBEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
+MR4wHAYDVQQDExV0aGF3dGUgRVYgU1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQDE3dqUHjKyLqCDwKZ9X2Ut/Se4cw74C6nUViZpmGc1
+OWRYzoJvmJTRj+CQ1u1VS5hL1xBZNAIb51ExUcQ4wrzbA1zK4XzcT1mX6gd/D4U+
+kuqqp9m+AUHkYlZHNr1XkeYh0/hBC9i66O2BrXDAi27ziW4nnqamc1m7cQDUT0tI
+6dXJJzacfBwCqqy9O9FTg2of5ghHM6exnwK+m0ftMwTcHIAn0UozoIzrAUehMpBk
+e8TghMky6d00H4poZ/OtEGPr7oqasSobJnShKrCP/lKYRpfPo1Ycb26Zl40mDqns
+wlNw/HqlGUm9tReCVd6X4F1ihIHwcKg0U08U/T1dPW+5AgMBAAGjggE1MIIBMTAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAvBggrBgEFBQcBAQQj
+MCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly90Mi5zeW1jYi5jb20wOwYDVR0gBDQwMjAw
+BgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHBzOi8vd3d3LnRoYXd0ZS5jb20vY3Bz
+MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly90MS5zeW1jYi5jb20vVGhhd3RlUENB
+LmNybDApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0ktMS01MzYw
+HQYDVR0OBBYEFPBwUdrTKpFPUnfXhnd0D85xGmwiMB8GA1UdIwQYMBaAFHtbRc+v
+zst6/TGSGmq280brV0hQMA0GCSqGSIb3DQEBCwUAA4IBAQChLpQ+mxb0WBpvwfrB
+fkOTssP3iesTYl3dzGETKx1OiHkRYhQ3MEb/iWIQhSqHHvjir/6TApPK8ulGA2uh
+GqzV8IAbmG+4OlD4VHEGA+eEzI5h0l9NDJcCZbWMJrwFmPTcxq/kV3/j3KHXJ0cq
+4Cw/CXTcWuW1fPqCmhX6dCuELmus7zWmMPpHSqo2RPZakQfT5E6XP6ZT2CkzMm+L
+PbWlDeXkiuj1wPqv2DcoJ8PtNDHZfKavTRJP0CuSnGmV8iim/qjG4CxNNusRNNbh
+gZmdQfLnxVcFDhnKr0I5H6cnXuAKF7iuR6uS8YoE3zDgu0+K+RuITwO0JXp43i59
+KdEx
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert25[] = {
+ 0x30, 0x82, 0x04, 0xaf, 0x30, 0x82, 0x03, 0x97, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x5d, 0x72, 0xfb, 0x33, 0x76, 0x20, 0xf6, 0x4c, 0x72,
+ 0x80, 0xdb, 0xe9, 0x12, 0x81, 0xff, 0x6a, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+ 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+ 0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+ 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31,
+ 0x30, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x44,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x15, 0x74,
+ 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x45, 0x56, 0x20, 0x53, 0x53, 0x4c,
+ 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xc4, 0xdd, 0xda, 0x94, 0x1e, 0x32, 0xb2,
+ 0x2e, 0xa0, 0x83, 0xc0, 0xa6, 0x7d, 0x5f, 0x65, 0x2d, 0xfd, 0x27, 0xb8,
+ 0x73, 0x0e, 0xf8, 0x0b, 0xa9, 0xd4, 0x56, 0x26, 0x69, 0x98, 0x67, 0x35,
+ 0x39, 0x64, 0x58, 0xce, 0x82, 0x6f, 0x98, 0x94, 0xd1, 0x8f, 0xe0, 0x90,
+ 0xd6, 0xed, 0x55, 0x4b, 0x98, 0x4b, 0xd7, 0x10, 0x59, 0x34, 0x02, 0x1b,
+ 0xe7, 0x51, 0x31, 0x51, 0xc4, 0x38, 0xc2, 0xbc, 0xdb, 0x03, 0x5c, 0xca,
+ 0xe1, 0x7c, 0xdc, 0x4f, 0x59, 0x97, 0xea, 0x07, 0x7f, 0x0f, 0x85, 0x3e,
+ 0x92, 0xea, 0xaa, 0xa7, 0xd9, 0xbe, 0x01, 0x41, 0xe4, 0x62, 0x56, 0x47,
+ 0x36, 0xbd, 0x57, 0x91, 0xe6, 0x21, 0xd3, 0xf8, 0x41, 0x0b, 0xd8, 0xba,
+ 0xe8, 0xed, 0x81, 0xad, 0x70, 0xc0, 0x8b, 0x6e, 0xf3, 0x89, 0x6e, 0x27,
+ 0x9e, 0xa6, 0xa6, 0x73, 0x59, 0xbb, 0x71, 0x00, 0xd4, 0x4f, 0x4b, 0x48,
+ 0xe9, 0xd5, 0xc9, 0x27, 0x36, 0x9c, 0x7c, 0x1c, 0x02, 0xaa, 0xac, 0xbd,
+ 0x3b, 0xd1, 0x53, 0x83, 0x6a, 0x1f, 0xe6, 0x08, 0x47, 0x33, 0xa7, 0xb1,
+ 0x9f, 0x02, 0xbe, 0x9b, 0x47, 0xed, 0x33, 0x04, 0xdc, 0x1c, 0x80, 0x27,
+ 0xd1, 0x4a, 0x33, 0xa0, 0x8c, 0xeb, 0x01, 0x47, 0xa1, 0x32, 0x90, 0x64,
+ 0x7b, 0xc4, 0xe0, 0x84, 0xc9, 0x32, 0xe9, 0xdd, 0x34, 0x1f, 0x8a, 0x68,
+ 0x67, 0xf3, 0xad, 0x10, 0x63, 0xeb, 0xee, 0x8a, 0x9a, 0xb1, 0x2a, 0x1b,
+ 0x26, 0x74, 0xa1, 0x2a, 0xb0, 0x8f, 0xfe, 0x52, 0x98, 0x46, 0x97, 0xcf,
+ 0xa3, 0x56, 0x1c, 0x6f, 0x6e, 0x99, 0x97, 0x8d, 0x26, 0x0e, 0xa9, 0xec,
+ 0xc2, 0x53, 0x70, 0xfc, 0x7a, 0xa5, 0x19, 0x49, 0xbd, 0xb5, 0x17, 0x82,
+ 0x55, 0xde, 0x97, 0xe0, 0x5d, 0x62, 0x84, 0x81, 0xf0, 0x70, 0xa8, 0x34,
+ 0x53, 0x4f, 0x14, 0xfd, 0x3d, 0x5d, 0x3d, 0x6f, 0xb9, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x35, 0x30, 0x82, 0x01, 0x31, 0x30, 0x12,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06,
+ 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2f,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x23,
+ 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x74,
+ 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+ 0x3b, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30,
+ 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74,
+ 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68,
+ 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73,
+ 0x30, 0x32, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30,
+ 0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x74, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41,
+ 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04,
+ 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74,
+ 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x35, 0x33, 0x36, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xf0, 0x70,
+ 0x51, 0xda, 0xd3, 0x2a, 0x91, 0x4f, 0x52, 0x77, 0xd7, 0x86, 0x77, 0x74,
+ 0x0f, 0xce, 0x71, 0x1a, 0x6c, 0x22, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7b, 0x5b, 0x45, 0xcf, 0xaf,
+ 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a, 0x6a, 0xb6, 0xf3, 0x46, 0xeb,
+ 0x57, 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xa1,
+ 0x2e, 0x94, 0x3e, 0x9b, 0x16, 0xf4, 0x58, 0x1a, 0x6f, 0xc1, 0xfa, 0xc1,
+ 0x7e, 0x43, 0x93, 0xb2, 0xc3, 0xf7, 0x89, 0xeb, 0x13, 0x62, 0x5d, 0xdd,
+ 0xcc, 0x61, 0x13, 0x2b, 0x1d, 0x4e, 0x88, 0x79, 0x11, 0x62, 0x14, 0x37,
+ 0x30, 0x46, 0xff, 0x89, 0x62, 0x10, 0x85, 0x2a, 0x87, 0x1e, 0xf8, 0xe2,
+ 0xaf, 0xfe, 0x93, 0x02, 0x93, 0xca, 0xf2, 0xe9, 0x46, 0x03, 0x6b, 0xa1,
+ 0x1a, 0xac, 0xd5, 0xf0, 0x80, 0x1b, 0x98, 0x6f, 0xb8, 0x3a, 0x50, 0xf8,
+ 0x54, 0x71, 0x06, 0x03, 0xe7, 0x84, 0xcc, 0x8e, 0x61, 0xd2, 0x5f, 0x4d,
+ 0x0c, 0x97, 0x02, 0x65, 0xb5, 0x8c, 0x26, 0xbc, 0x05, 0x98, 0xf4, 0xdc,
+ 0xc6, 0xaf, 0xe4, 0x57, 0x7f, 0xe3, 0xdc, 0xa1, 0xd7, 0x27, 0x47, 0x2a,
+ 0xe0, 0x2c, 0x3f, 0x09, 0x74, 0xdc, 0x5a, 0xe5, 0xb5, 0x7c, 0xfa, 0x82,
+ 0x9a, 0x15, 0xfa, 0x74, 0x2b, 0x84, 0x2e, 0x6b, 0xac, 0xef, 0x35, 0xa6,
+ 0x30, 0xfa, 0x47, 0x4a, 0xaa, 0x36, 0x44, 0xf6, 0x5a, 0x91, 0x07, 0xd3,
+ 0xe4, 0x4e, 0x97, 0x3f, 0xa6, 0x53, 0xd8, 0x29, 0x33, 0x32, 0x6f, 0x8b,
+ 0x3d, 0xb5, 0xa5, 0x0d, 0xe5, 0xe4, 0x8a, 0xe8, 0xf5, 0xc0, 0xfa, 0xaf,
+ 0xd8, 0x37, 0x28, 0x27, 0xc3, 0xed, 0x34, 0x31, 0xd9, 0x7c, 0xa6, 0xaf,
+ 0x4d, 0x12, 0x4f, 0xd0, 0x2b, 0x92, 0x9c, 0x69, 0x95, 0xf2, 0x28, 0xa6,
+ 0xfe, 0xa8, 0xc6, 0xe0, 0x2c, 0x4d, 0x36, 0xeb, 0x11, 0x34, 0xd6, 0xe1,
+ 0x81, 0x99, 0x9d, 0x41, 0xf2, 0xe7, 0xc5, 0x57, 0x05, 0x0e, 0x19, 0xca,
+ 0xaf, 0x42, 0x39, 0x1f, 0xa7, 0x27, 0x5e, 0xe0, 0x0a, 0x17, 0xb8, 0xae,
+ 0x47, 0xab, 0x92, 0xf1, 0x8a, 0x04, 0xdf, 0x30, 0xe0, 0xbb, 0x4f, 0x8a,
+ 0xf9, 0x1b, 0x88, 0x4f, 0x03, 0xb4, 0x25, 0x7a, 0x78, 0xde, 0x2e, 0x7d,
+ 0x29, 0xd1, 0x31,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 04:e1:e7:a4:dc:5c:f2:f3:6d:c0:2b:42:b8:5d:15:9f
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
+ Validity
+ Not Before: Oct 22 12:00:00 2013 GMT
+ Not After : Oct 22 12:00:00 2028 GMT
+ Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 High Assurance Server CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b6:e0:2f:c2:24:06:c8:6d:04:5f:d7:ef:0a:64:
+ 06:b2:7d:22:26:65:16:ae:42:40:9b:ce:dc:9f:9f:
+ 76:07:3e:c3:30:55:87:19:b9:4f:94:0e:5a:94:1f:
+ 55:56:b4:c2:02:2a:af:d0:98:ee:0b:40:d7:c4:d0:
+ 3b:72:c8:14:9e:ef:90:b1:11:a9:ae:d2:c8:b8:43:
+ 3a:d9:0b:0b:d5:d5:95:f5:40:af:c8:1d:ed:4d:9c:
+ 5f:57:b7:86:50:68:99:f5:8a:da:d2:c7:05:1f:a8:
+ 97:c9:dc:a4:b1:82:84:2d:c6:ad:a5:9c:c7:19:82:
+ a6:85:0f:5e:44:58:2a:37:8f:fd:35:f1:0b:08:27:
+ 32:5a:f5:bb:8b:9e:a4:bd:51:d0:27:e2:dd:3b:42:
+ 33:a3:05:28:c4:bb:28:cc:9a:ac:2b:23:0d:78:c6:
+ 7b:e6:5e:71:b7:4a:3e:08:fb:81:b7:16:16:a1:9d:
+ 23:12:4d:e5:d7:92:08:ac:75:a4:9c:ba:cd:17:b2:
+ 1e:44:35:65:7f:53:25:39:d1:1c:0a:9a:63:1b:19:
+ 92:74:68:0a:37:c2:c2:52:48:cb:39:5a:a2:b6:e1:
+ 5d:c1:dd:a0:20:b8:21:a2:93:26:6f:14:4a:21:41:
+ c7:ed:6d:9b:f2:48:2f:f3:03:f5:a2:68:92:53:2f:
+ 5e:e3
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication
+ Authority Information Access:
+ OCSP - URI:http://ocsp.digicert.com
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl4.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.digicert.com/CPS
+
+ X509v3 Subject Key Identifier:
+ 51:68:FF:90:AF:02:07:75:3C:CC:D9:65:64:62:A2:12:B8:59:72:3B
+ X509v3 Authority Key Identifier:
+ keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 18:8a:95:89:03:e6:6d:df:5c:fc:1d:68:ea:4a:8f:83:d6:51:
+ 2f:8d:6b:44:16:9e:ac:63:f5:d2:6e:6c:84:99:8b:aa:81:71:
+ 84:5b:ed:34:4e:b0:b7:79:92:29:cc:2d:80:6a:f0:8e:20:e1:
+ 79:a4:fe:03:47:13:ea:f5:86:ca:59:71:7d:f4:04:96:6b:d3:
+ 59:58:3d:fe:d3:31:25:5c:18:38:84:a3:e6:9f:82:fd:8c:5b:
+ 98:31:4e:cd:78:9e:1a:fd:85:cb:49:aa:f2:27:8b:99:72:fc:
+ 3e:aa:d5:41:0b:da:d5:36:a1:bf:1c:6e:47:49:7f:5e:d9:48:
+ 7c:03:d9:fd:8b:49:a0:98:26:42:40:eb:d6:92:11:a4:64:0a:
+ 57:54:c4:f5:1d:d6:02:5e:6b:ac:ee:c4:80:9a:12:72:fa:56:
+ 93:d7:ff:bf:30:85:06:30:bf:0b:7f:4e:ff:57:05:9d:24:ed:
+ 85:c3:2b:fb:a6:75:a8:ac:2d:16:ef:7d:79:27:b2:eb:c2:9d:
+ 0b:07:ea:aa:85:d3:01:a3:20:28:41:59:43:28:d2:81:e3:aa:
+ f6:ec:7b:3b:77:b6:40:62:80:05:41:45:01:ef:17:06:3e:de:
+ c0:33:9b:67:d3:61:2e:72:87:e4:69:fc:12:00:57:40:1e:70:
+ f5:1e:c9:b4
+-----BEGIN CERTIFICATE-----
+MIIEsTCCA5mgAwIBAgIQBOHnpNxc8vNtwCtCuF0VnzANBgkqhkiG9w0BAQsFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowcDEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTEvMC0GA1UEAxMmRGlnaUNlcnQgU0hBMiBIaWdoIEFzc3Vy
+YW5jZSBTZXJ2ZXIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2
+4C/CJAbIbQRf1+8KZAayfSImZRauQkCbztyfn3YHPsMwVYcZuU+UDlqUH1VWtMIC
+Kq/QmO4LQNfE0DtyyBSe75CxEamu0si4QzrZCwvV1ZX1QK/IHe1NnF9Xt4ZQaJn1
+itrSxwUfqJfJ3KSxgoQtxq2lnMcZgqaFD15EWCo3j/018QsIJzJa9buLnqS9UdAn
+4t07QjOjBSjEuyjMmqwrIw14xnvmXnG3Sj4I+4G3FhahnSMSTeXXkgisdaScus0X
+sh5ENWV/UyU50RwKmmMbGZJ0aAo3wsJSSMs5WqK24V3B3aAguCGikyZvFEohQcft
+bZvySC/zA/WiaJJTL17jAgMBAAGjggFJMIIBRTASBgNVHRMBAf8ECDAGAQH/AgEA
+MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
+NAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy
+dC5jb20wSwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNlcnQuY29t
+L0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDA9BgNVHSAENjA0MDIG
+BFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQ
+UzAdBgNVHQ4EFgQUUWj/kK8CB3U8zNllZGKiErhZcjswHwYDVR0jBBgwFoAUsT7D
+aQP4v0cB1JgmGggC72NkK8MwDQYJKoZIhvcNAQELBQADggEBABiKlYkD5m3fXPwd
+aOpKj4PWUS+Na0QWnqxj9dJubISZi6qBcYRb7TROsLd5kinMLYBq8I4g4Xmk/gNH
+E+r1hspZcX30BJZr01lYPf7TMSVcGDiEo+afgv2MW5gxTs14nhr9hctJqvIni5ly
+/D6q1UEL2tU2ob8cbkdJf17ZSHwD2f2LSaCYJkJA69aSEaRkCldUxPUd1gJea6zu
+xICaEnL6VpPX/78whQYwvwt/Tv9XBZ0k7YXDK/umdaisLRbvfXknsuvCnQsH6qqF
+0wGjIChBWUMo0oHjqvbsezt3tkBigAVBRQHvFwY+3sAzm2fTYS5yh+Rp/BIAV0Ae
+cPUeybQ=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert26[] = {
+ 0x30, 0x82, 0x04, 0xb1, 0x30, 0x82, 0x03, 0x99, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x04, 0xe1, 0xe7, 0xa4, 0xdc, 0x5c, 0xf2, 0xf3, 0x6d,
+ 0xc0, 0x2b, 0x42, 0xb8, 0x5d, 0x15, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x6c,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+ 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+ 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x22, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48,
+ 0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63,
+ 0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+ 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x32, 0x32, 0x31, 0x32,
+ 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x38, 0x31, 0x30, 0x32,
+ 0x32, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x70, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44, 0x69,
+ 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x19,
+ 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77, 0x77, 0x77,
+ 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x31, 0x2f, 0x30, 0x2d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x26,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x48, 0x41,
+ 0x32, 0x20, 0x48, 0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72,
+ 0x61, 0x6e, 0x63, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20,
+ 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xb6,
+ 0xe0, 0x2f, 0xc2, 0x24, 0x06, 0xc8, 0x6d, 0x04, 0x5f, 0xd7, 0xef, 0x0a,
+ 0x64, 0x06, 0xb2, 0x7d, 0x22, 0x26, 0x65, 0x16, 0xae, 0x42, 0x40, 0x9b,
+ 0xce, 0xdc, 0x9f, 0x9f, 0x76, 0x07, 0x3e, 0xc3, 0x30, 0x55, 0x87, 0x19,
+ 0xb9, 0x4f, 0x94, 0x0e, 0x5a, 0x94, 0x1f, 0x55, 0x56, 0xb4, 0xc2, 0x02,
+ 0x2a, 0xaf, 0xd0, 0x98, 0xee, 0x0b, 0x40, 0xd7, 0xc4, 0xd0, 0x3b, 0x72,
+ 0xc8, 0x14, 0x9e, 0xef, 0x90, 0xb1, 0x11, 0xa9, 0xae, 0xd2, 0xc8, 0xb8,
+ 0x43, 0x3a, 0xd9, 0x0b, 0x0b, 0xd5, 0xd5, 0x95, 0xf5, 0x40, 0xaf, 0xc8,
+ 0x1d, 0xed, 0x4d, 0x9c, 0x5f, 0x57, 0xb7, 0x86, 0x50, 0x68, 0x99, 0xf5,
+ 0x8a, 0xda, 0xd2, 0xc7, 0x05, 0x1f, 0xa8, 0x97, 0xc9, 0xdc, 0xa4, 0xb1,
+ 0x82, 0x84, 0x2d, 0xc6, 0xad, 0xa5, 0x9c, 0xc7, 0x19, 0x82, 0xa6, 0x85,
+ 0x0f, 0x5e, 0x44, 0x58, 0x2a, 0x37, 0x8f, 0xfd, 0x35, 0xf1, 0x0b, 0x08,
+ 0x27, 0x32, 0x5a, 0xf5, 0xbb, 0x8b, 0x9e, 0xa4, 0xbd, 0x51, 0xd0, 0x27,
+ 0xe2, 0xdd, 0x3b, 0x42, 0x33, 0xa3, 0x05, 0x28, 0xc4, 0xbb, 0x28, 0xcc,
+ 0x9a, 0xac, 0x2b, 0x23, 0x0d, 0x78, 0xc6, 0x7b, 0xe6, 0x5e, 0x71, 0xb7,
+ 0x4a, 0x3e, 0x08, 0xfb, 0x81, 0xb7, 0x16, 0x16, 0xa1, 0x9d, 0x23, 0x12,
+ 0x4d, 0xe5, 0xd7, 0x92, 0x08, 0xac, 0x75, 0xa4, 0x9c, 0xba, 0xcd, 0x17,
+ 0xb2, 0x1e, 0x44, 0x35, 0x65, 0x7f, 0x53, 0x25, 0x39, 0xd1, 0x1c, 0x0a,
+ 0x9a, 0x63, 0x1b, 0x19, 0x92, 0x74, 0x68, 0x0a, 0x37, 0xc2, 0xc2, 0x52,
+ 0x48, 0xcb, 0x39, 0x5a, 0xa2, 0xb6, 0xe1, 0x5d, 0xc1, 0xdd, 0xa0, 0x20,
+ 0xb8, 0x21, 0xa2, 0x93, 0x26, 0x6f, 0x14, 0x4a, 0x21, 0x41, 0xc7, 0xed,
+ 0x6d, 0x9b, 0xf2, 0x48, 0x2f, 0xf3, 0x03, 0xf5, 0xa2, 0x68, 0x92, 0x53,
+ 0x2f, 0x5e, 0xe3, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x49,
+ 0x30, 0x82, 0x01, 0x45, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+ 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
+ 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
+ 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04,
+ 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03,
+ 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30,
+ 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72,
+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4b, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x44, 0x30, 0x42, 0x30, 0x40, 0xa0, 0x3e, 0xa0, 0x3c, 0x86, 0x3a,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x34, 0x2e,
+ 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x48, 0x69, 0x67,
+ 0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x56,
+ 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3d,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+ 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+ 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67,
+ 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x50,
+ 0x53, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x51, 0x68, 0xff, 0x90, 0xaf, 0x02, 0x07, 0x75, 0x3c, 0xcc, 0xd9, 0x65,
+ 0x64, 0x62, 0xa2, 0x12, 0xb8, 0x59, 0x72, 0x3b, 0x30, 0x1f, 0x06, 0x03,
+ 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb1, 0x3e, 0xc3,
+ 0x69, 0x03, 0xf8, 0xbf, 0x47, 0x01, 0xd4, 0x98, 0x26, 0x1a, 0x08, 0x02,
+ 0xef, 0x63, 0x64, 0x2b, 0xc3, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+ 0x00, 0x18, 0x8a, 0x95, 0x89, 0x03, 0xe6, 0x6d, 0xdf, 0x5c, 0xfc, 0x1d,
+ 0x68, 0xea, 0x4a, 0x8f, 0x83, 0xd6, 0x51, 0x2f, 0x8d, 0x6b, 0x44, 0x16,
+ 0x9e, 0xac, 0x63, 0xf5, 0xd2, 0x6e, 0x6c, 0x84, 0x99, 0x8b, 0xaa, 0x81,
+ 0x71, 0x84, 0x5b, 0xed, 0x34, 0x4e, 0xb0, 0xb7, 0x79, 0x92, 0x29, 0xcc,
+ 0x2d, 0x80, 0x6a, 0xf0, 0x8e, 0x20, 0xe1, 0x79, 0xa4, 0xfe, 0x03, 0x47,
+ 0x13, 0xea, 0xf5, 0x86, 0xca, 0x59, 0x71, 0x7d, 0xf4, 0x04, 0x96, 0x6b,
+ 0xd3, 0x59, 0x58, 0x3d, 0xfe, 0xd3, 0x31, 0x25, 0x5c, 0x18, 0x38, 0x84,
+ 0xa3, 0xe6, 0x9f, 0x82, 0xfd, 0x8c, 0x5b, 0x98, 0x31, 0x4e, 0xcd, 0x78,
+ 0x9e, 0x1a, 0xfd, 0x85, 0xcb, 0x49, 0xaa, 0xf2, 0x27, 0x8b, 0x99, 0x72,
+ 0xfc, 0x3e, 0xaa, 0xd5, 0x41, 0x0b, 0xda, 0xd5, 0x36, 0xa1, 0xbf, 0x1c,
+ 0x6e, 0x47, 0x49, 0x7f, 0x5e, 0xd9, 0x48, 0x7c, 0x03, 0xd9, 0xfd, 0x8b,
+ 0x49, 0xa0, 0x98, 0x26, 0x42, 0x40, 0xeb, 0xd6, 0x92, 0x11, 0xa4, 0x64,
+ 0x0a, 0x57, 0x54, 0xc4, 0xf5, 0x1d, 0xd6, 0x02, 0x5e, 0x6b, 0xac, 0xee,
+ 0xc4, 0x80, 0x9a, 0x12, 0x72, 0xfa, 0x56, 0x93, 0xd7, 0xff, 0xbf, 0x30,
+ 0x85, 0x06, 0x30, 0xbf, 0x0b, 0x7f, 0x4e, 0xff, 0x57, 0x05, 0x9d, 0x24,
+ 0xed, 0x85, 0xc3, 0x2b, 0xfb, 0xa6, 0x75, 0xa8, 0xac, 0x2d, 0x16, 0xef,
+ 0x7d, 0x79, 0x27, 0xb2, 0xeb, 0xc2, 0x9d, 0x0b, 0x07, 0xea, 0xaa, 0x85,
+ 0xd3, 0x01, 0xa3, 0x20, 0x28, 0x41, 0x59, 0x43, 0x28, 0xd2, 0x81, 0xe3,
+ 0xaa, 0xf6, 0xec, 0x7b, 0x3b, 0x77, 0xb6, 0x40, 0x62, 0x80, 0x05, 0x41,
+ 0x45, 0x01, 0xef, 0x17, 0x06, 0x3e, 0xde, 0xc0, 0x33, 0x9b, 0x67, 0xd3,
+ 0x61, 0x2e, 0x72, 0x87, 0xe4, 0x69, 0xfc, 0x12, 0x00, 0x57, 0x40, 0x1e,
+ 0x70, 0xf5, 0x1e, 0xc9, 0xb4,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 16:87:d6:88:6d:e2:30:06:85:23:3d:bf:11:bf:65:97
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+ Validity
+ Not Before: Oct 31 00:00:00 2013 GMT
+ Not After : Oct 30 23:59:59 2023 GMT
+ Subject: C=US, O=thawte, Inc., CN=thawte SSL CA - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b2:fc:06:fb:04:93:d2:ea:59:20:3b:44:85:97:
+ 52:39:e7:10:f0:7a:e0:b0:94:40:da:46:f8:0c:28:
+ bb:b9:ce:60:38:3f:d2:d8:11:42:1b:91:ad:49:ee:
+ 8f:c7:de:6c:de:37:6f:fd:8b:20:3c:6d:e7:74:d3:
+ dc:d5:24:88:41:80:89:ee:36:be:c4:d5:be:8d:53:
+ 13:aa:e4:a5:b8:93:0a:be:ec:da:cd:3c:d4:32:56:
+ ef:d0:4e:a0:b8:97:bb:39:50:1e:6e:65:c3:fd:b2:
+ ce:e0:59:a9:48:09:c6:fe:be:ae:fc:3e:3b:81:20:
+ 97:8b:8f:46:df:60:64:07:75:bb:1b:86:38:9f:47:
+ 7b:34:ce:a1:d1:97:ad:76:d8:9f:b7:26:db:79:80:
+ 36:48:f2:c5:37:f8:d9:32:ae:7c:a4:53:81:c7:99:
+ a1:54:38:2f:4f:75:a0:bb:5a:a5:bb:cd:ac:02:5b:
+ 19:02:d5:13:18:a7:ce:ac:74:55:12:05:8b:9b:a2:
+ 95:46:64:72:38:cd:5a:1b:3a:16:a7:be:71:99:8c:
+ 54:03:b8:96:6c:01:d3:3e:06:98:3f:21:81:3b:02:
+ 7e:00:47:53:01:1e:0e:46:43:fb:4b:2d:dc:0b:1a:
+ e8:2f:98:f8:7e:d1:99:ab:13:6c:a4:17:de:6f:f6:
+ 15:f5
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://t1.symcb.com/ThawtePCA.crl
+
+ Authority Information Access:
+ OCSP - URI:http://t2.symcb.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: https://www.thawte.com/cps
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-537
+ X509v3 Subject Key Identifier:
+ C2:4F:48:57:FC:D1:4F:9A:C0:5D:38:7D:0E:05:DB:D9:2E:B5:52:60
+ X509v3 Authority Key Identifier:
+ keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 8d:06:de:43:c9:76:02:ca:d9:23:97:5e:f3:63:d7:7d:44:c2:
+ 0f:6b:0a:f5:07:e5:8b:b8:fa:e0:a3:fa:6b:80:92:b5:03:2c:
+ c5:37:e0:c2:e5:95:b5:92:70:18:28:42:94:ee:4b:77:6a:01:
+ 0f:8b:23:ec:56:4d:f4:00:69:e5:84:c8:e2:ea:de:5b:3e:f6:
+ 3c:07:3a:94:ca:6c:27:b1:cc:83:1a:60:71:27:d2:bf:02:f5:
+ 1e:44:d3:48:d5:a6:d3:76:21:00:9c:fa:98:64:eb:17:36:3f:
+ eb:1b:3c:3e:a6:b1:d9:58:06:0e:72:d9:68:be:f1:a7:20:d7:
+ 52:e4:a4:77:1f:71:70:9d:55:35:85:37:e1:1d:4d:94:c2:70:
+ 7f:95:40:6e:4b:7d:b2:b4:29:2a:03:79:c8:b9:4c:67:61:04:
+ a0:8b:27:ff:59:00:eb:55:7f:c6:b7:33:35:2d:5e:4e:ac:b8:
+ ea:12:c5:e8:f7:b9:ab:be:74:92:2c:b7:d9:4d:ca:84:2f:1c:
+ c2:f0:72:7c:b2:31:6e:cf:80:e5:88:07:36:51:7b:ba:61:af:
+ 6d:8d:23:5b:34:a3:95:bc:a2:31:7f:f2:f5:e7:b7:e8:ef:c4:
+ b5:27:32:e9:f7:9e:69:c7:2b:e8:be:bb:0c:aa:e7:ea:60:12:
+ ea:26:8a:78
+-----BEGIN CERTIFICATE-----
+MIIEsjCCA5qgAwIBAgIQFofWiG3iMAaFIz2/Eb9llzANBgkqhkiG9w0BAQsFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTMxMDMxMDAwMDAwWhcNMjMx
+MDMwMjM1OTU5WjBBMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
+MRswGQYDVQQDExJ0aGF3dGUgU1NMIENBIC0gRzIwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCy/Ab7BJPS6lkgO0SFl1I55xDweuCwlEDaRvgMKLu5zmA4
+P9LYEUIbka1J7o/H3mzeN2/9iyA8bed009zVJIhBgInuNr7E1b6NUxOq5KW4kwq+
+7NrNPNQyVu/QTqC4l7s5UB5uZcP9ss7gWalICcb+vq78PjuBIJeLj0bfYGQHdbsb
+hjifR3s0zqHRl6122J+3Jtt5gDZI8sU3+NkyrnykU4HHmaFUOC9PdaC7WqW7zawC
+WxkC1RMYp86sdFUSBYubopVGZHI4zVobOhanvnGZjFQDuJZsAdM+Bpg/IYE7An4A
+R1MBHg5GQ/tLLdwLGugvmPh+0ZmrE2ykF95v9hX1AgMBAAGjggE7MIIBNzASBgNV
+HRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAyBgNVHR8EKzApMCegJaAj
+hiFodHRwOi8vdDEuc3ltY2IuY29tL1RoYXd0ZVBDQS5jcmwwLwYIKwYBBQUHAQEE
+IzAhMB8GCCsGAQUFBzABhhNodHRwOi8vdDIuc3ltY2IuY29tMEEGA1UdIAQ6MDgw
+NgYKYIZIAYb4RQEHNjAoMCYGCCsGAQUFBwIBFhpodHRwczovL3d3dy50aGF3dGUu
+Y29tL2NwczApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0ktMS01
+MzcwHQYDVR0OBBYEFMJPSFf80U+awF04fQ4F29kutVJgMB8GA1UdIwQYMBaAFHtb
+Rc+vzst6/TGSGmq280brV0hQMA0GCSqGSIb3DQEBCwUAA4IBAQCNBt5DyXYCytkj
+l17zY9d9RMIPawr1B+WLuPrgo/prgJK1AyzFN+DC5ZW1knAYKEKU7kt3agEPiyPs
+Vk30AGnlhMji6t5bPvY8BzqUymwnscyDGmBxJ9K/AvUeRNNI1abTdiEAnPqYZOsX
+Nj/rGzw+prHZWAYOctlovvGnINdS5KR3H3FwnVU1hTfhHU2UwnB/lUBuS32ytCkq
+A3nIuUxnYQSgiyf/WQDrVX/GtzM1LV5OrLjqEsXo97mrvnSSLLfZTcqELxzC8HJ8
+sjFuz4DliAc2UXu6Ya9tjSNbNKOVvKIxf/L157fo78S1JzLp955pxyvovrsMqufq
+YBLqJop4
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert27[] = {
+ 0x30, 0x82, 0x04, 0xb2, 0x30, 0x82, 0x03, 0x9a, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x16, 0x87, 0xd6, 0x88, 0x6d, 0xe2, 0x30, 0x06, 0x85,
+ 0x23, 0x3d, 0xbf, 0x11, 0xbf, 0x65, 0x97, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+ 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+ 0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+ 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31,
+ 0x30, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x41,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x74,
+ 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+ 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+ 0x01, 0x00, 0xb2, 0xfc, 0x06, 0xfb, 0x04, 0x93, 0xd2, 0xea, 0x59, 0x20,
+ 0x3b, 0x44, 0x85, 0x97, 0x52, 0x39, 0xe7, 0x10, 0xf0, 0x7a, 0xe0, 0xb0,
+ 0x94, 0x40, 0xda, 0x46, 0xf8, 0x0c, 0x28, 0xbb, 0xb9, 0xce, 0x60, 0x38,
+ 0x3f, 0xd2, 0xd8, 0x11, 0x42, 0x1b, 0x91, 0xad, 0x49, 0xee, 0x8f, 0xc7,
+ 0xde, 0x6c, 0xde, 0x37, 0x6f, 0xfd, 0x8b, 0x20, 0x3c, 0x6d, 0xe7, 0x74,
+ 0xd3, 0xdc, 0xd5, 0x24, 0x88, 0x41, 0x80, 0x89, 0xee, 0x36, 0xbe, 0xc4,
+ 0xd5, 0xbe, 0x8d, 0x53, 0x13, 0xaa, 0xe4, 0xa5, 0xb8, 0x93, 0x0a, 0xbe,
+ 0xec, 0xda, 0xcd, 0x3c, 0xd4, 0x32, 0x56, 0xef, 0xd0, 0x4e, 0xa0, 0xb8,
+ 0x97, 0xbb, 0x39, 0x50, 0x1e, 0x6e, 0x65, 0xc3, 0xfd, 0xb2, 0xce, 0xe0,
+ 0x59, 0xa9, 0x48, 0x09, 0xc6, 0xfe, 0xbe, 0xae, 0xfc, 0x3e, 0x3b, 0x81,
+ 0x20, 0x97, 0x8b, 0x8f, 0x46, 0xdf, 0x60, 0x64, 0x07, 0x75, 0xbb, 0x1b,
+ 0x86, 0x38, 0x9f, 0x47, 0x7b, 0x34, 0xce, 0xa1, 0xd1, 0x97, 0xad, 0x76,
+ 0xd8, 0x9f, 0xb7, 0x26, 0xdb, 0x79, 0x80, 0x36, 0x48, 0xf2, 0xc5, 0x37,
+ 0xf8, 0xd9, 0x32, 0xae, 0x7c, 0xa4, 0x53, 0x81, 0xc7, 0x99, 0xa1, 0x54,
+ 0x38, 0x2f, 0x4f, 0x75, 0xa0, 0xbb, 0x5a, 0xa5, 0xbb, 0xcd, 0xac, 0x02,
+ 0x5b, 0x19, 0x02, 0xd5, 0x13, 0x18, 0xa7, 0xce, 0xac, 0x74, 0x55, 0x12,
+ 0x05, 0x8b, 0x9b, 0xa2, 0x95, 0x46, 0x64, 0x72, 0x38, 0xcd, 0x5a, 0x1b,
+ 0x3a, 0x16, 0xa7, 0xbe, 0x71, 0x99, 0x8c, 0x54, 0x03, 0xb8, 0x96, 0x6c,
+ 0x01, 0xd3, 0x3e, 0x06, 0x98, 0x3f, 0x21, 0x81, 0x3b, 0x02, 0x7e, 0x00,
+ 0x47, 0x53, 0x01, 0x1e, 0x0e, 0x46, 0x43, 0xfb, 0x4b, 0x2d, 0xdc, 0x0b,
+ 0x1a, 0xe8, 0x2f, 0x98, 0xf8, 0x7e, 0xd1, 0x99, 0xab, 0x13, 0x6c, 0xa4,
+ 0x17, 0xde, 0x6f, 0xf6, 0x15, 0xf5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
+ 0x82, 0x01, 0x3b, 0x30, 0x82, 0x01, 0x37, 0x30, 0x12, 0x06, 0x03, 0x55,
+ 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+ 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x32, 0x06, 0x03, 0x55,
+ 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30, 0x27, 0xa0, 0x25, 0xa0, 0x23,
+ 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x74, 0x31, 0x2e,
+ 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x68,
+ 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+ 0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x74, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3a, 0x30, 0x38, 0x30,
+ 0x36, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07,
+ 0x36, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+ 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x29, 0x06, 0x03, 0x55,
+ 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a,
+ 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d,
+ 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x35,
+ 0x33, 0x37, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0xc2, 0x4f, 0x48, 0x57, 0xfc, 0xd1, 0x4f, 0x9a, 0xc0, 0x5d, 0x38,
+ 0x7d, 0x0e, 0x05, 0xdb, 0xd9, 0x2e, 0xb5, 0x52, 0x60, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7b, 0x5b,
+ 0x45, 0xcf, 0xaf, 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a, 0x6a, 0xb6,
+ 0xf3, 0x46, 0xeb, 0x57, 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x01, 0x00, 0x8d, 0x06, 0xde, 0x43, 0xc9, 0x76, 0x02, 0xca, 0xd9, 0x23,
+ 0x97, 0x5e, 0xf3, 0x63, 0xd7, 0x7d, 0x44, 0xc2, 0x0f, 0x6b, 0x0a, 0xf5,
+ 0x07, 0xe5, 0x8b, 0xb8, 0xfa, 0xe0, 0xa3, 0xfa, 0x6b, 0x80, 0x92, 0xb5,
+ 0x03, 0x2c, 0xc5, 0x37, 0xe0, 0xc2, 0xe5, 0x95, 0xb5, 0x92, 0x70, 0x18,
+ 0x28, 0x42, 0x94, 0xee, 0x4b, 0x77, 0x6a, 0x01, 0x0f, 0x8b, 0x23, 0xec,
+ 0x56, 0x4d, 0xf4, 0x00, 0x69, 0xe5, 0x84, 0xc8, 0xe2, 0xea, 0xde, 0x5b,
+ 0x3e, 0xf6, 0x3c, 0x07, 0x3a, 0x94, 0xca, 0x6c, 0x27, 0xb1, 0xcc, 0x83,
+ 0x1a, 0x60, 0x71, 0x27, 0xd2, 0xbf, 0x02, 0xf5, 0x1e, 0x44, 0xd3, 0x48,
+ 0xd5, 0xa6, 0xd3, 0x76, 0x21, 0x00, 0x9c, 0xfa, 0x98, 0x64, 0xeb, 0x17,
+ 0x36, 0x3f, 0xeb, 0x1b, 0x3c, 0x3e, 0xa6, 0xb1, 0xd9, 0x58, 0x06, 0x0e,
+ 0x72, 0xd9, 0x68, 0xbe, 0xf1, 0xa7, 0x20, 0xd7, 0x52, 0xe4, 0xa4, 0x77,
+ 0x1f, 0x71, 0x70, 0x9d, 0x55, 0x35, 0x85, 0x37, 0xe1, 0x1d, 0x4d, 0x94,
+ 0xc2, 0x70, 0x7f, 0x95, 0x40, 0x6e, 0x4b, 0x7d, 0xb2, 0xb4, 0x29, 0x2a,
+ 0x03, 0x79, 0xc8, 0xb9, 0x4c, 0x67, 0x61, 0x04, 0xa0, 0x8b, 0x27, 0xff,
+ 0x59, 0x00, 0xeb, 0x55, 0x7f, 0xc6, 0xb7, 0x33, 0x35, 0x2d, 0x5e, 0x4e,
+ 0xac, 0xb8, 0xea, 0x12, 0xc5, 0xe8, 0xf7, 0xb9, 0xab, 0xbe, 0x74, 0x92,
+ 0x2c, 0xb7, 0xd9, 0x4d, 0xca, 0x84, 0x2f, 0x1c, 0xc2, 0xf0, 0x72, 0x7c,
+ 0xb2, 0x31, 0x6e, 0xcf, 0x80, 0xe5, 0x88, 0x07, 0x36, 0x51, 0x7b, 0xba,
+ 0x61, 0xaf, 0x6d, 0x8d, 0x23, 0x5b, 0x34, 0xa3, 0x95, 0xbc, 0xa2, 0x31,
+ 0x7f, 0xf2, 0xf5, 0xe7, 0xb7, 0xe8, 0xef, 0xc4, 0xb5, 0x27, 0x32, 0xe9,
+ 0xf7, 0x9e, 0x69, 0xc7, 0x2b, 0xe8, 0xbe, 0xbb, 0x0c, 0xaa, 0xe7, 0xea,
+ 0x60, 0x12, 0xea, 0x26, 0x8a, 0x78,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 0c:79:a9:44:b0:8c:11:95:20:92:61:5f:e2:6b:1d:83
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
+ Validity
+ Not Before: Oct 22 12:00:00 2013 GMT
+ Not After : Oct 22 12:00:00 2028 GMT
+ Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 Extended Validation Server CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:d7:53:a4:04:51:f8:99:a6:16:48:4b:67:27:aa:
+ 93:49:d0:39:ed:0c:b0:b0:00:87:f1:67:28:86:85:
+ 8c:8e:63:da:bc:b1:40:38:e2:d3:f5:ec:a5:05:18:
+ b8:3d:3e:c5:99:17:32:ec:18:8c:fa:f1:0c:a6:64:
+ 21:85:cb:07:10:34:b0:52:88:2b:1f:68:9b:d2:b1:
+ 8f:12:b0:b3:d2:e7:88:1f:1f:ef:38:77:54:53:5f:
+ 80:79:3f:2e:1a:aa:a8:1e:4b:2b:0d:ab:b7:63:b9:
+ 35:b7:7d:14:bc:59:4b:df:51:4a:d2:a1:e2:0c:e2:
+ 90:82:87:6a:ae:ea:d7:64:d6:98:55:e8:fd:af:1a:
+ 50:6c:54:bc:11:f2:fd:4a:f2:9d:bb:7f:0e:f4:d5:
+ be:8e:16:89:12:55:d8:c0:71:34:ee:f6:dc:2d:ec:
+ c4:87:25:86:8d:d8:21:e4:b0:4d:0c:89:dc:39:26:
+ 17:dd:f6:d7:94:85:d8:04:21:70:9d:6f:6f:ff:5c:
+ ba:19:e1:45:cb:56:57:28:7e:1c:0d:41:57:aa:b7:
+ b8:27:bb:b1:e4:fa:2a:ef:21:23:75:1a:ad:2d:9b:
+ 86:35:8c:9c:77:b5:73:ad:d8:94:2d:e4:f3:0c:9d:
+ ee:c1:4e:62:7e:17:c0:71:9e:2c:de:f1:f9:10:28:
+ 19:33
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication
+ Authority Information Access:
+ OCSP - URI:http://ocsp.digicert.com
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl4.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.digicert.com/CPS
+
+ X509v3 Subject Key Identifier:
+ 3D:D3:50:A5:D6:A0:AD:EE:F3:4A:60:0A:65:D3:21:D4:F8:F8:D6:0F
+ X509v3 Authority Key Identifier:
+ keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 9d:b6:d0:90:86:e1:86:02:ed:c5:a0:f0:34:1c:74:c1:8d:76:
+ cc:86:0a:a8:f0:4a:8a:42:d6:3f:c8:a9:4d:ad:7c:08:ad:e6:
+ b6:50:b8:a2:1a:4d:88:07:b1:29:21:dc:e7:da:c6:3c:21:e0:
+ e3:11:49:70:ac:7a:1d:01:a4:ca:11:3a:57:ab:7d:57:2a:40:
+ 74:fd:d3:1d:85:18:50:df:57:47:75:a1:7d:55:20:2e:47:37:
+ 50:72:8c:7f:82:1b:d2:62:8f:2d:03:5a:da:c3:c8:a1:ce:2c:
+ 52:a2:00:63:eb:73:ba:71:c8:49:27:23:97:64:85:9e:38:0e:
+ ad:63:68:3c:ba:52:81:58:79:a3:2c:0c:df:de:6d:eb:31:f2:
+ ba:a0:7c:6c:f1:2c:d4:e1:bd:77:84:37:03:ce:32:b5:c8:9a:
+ 81:1a:4a:92:4e:3b:46:9a:85:fe:83:a2:f9:9e:8c:a3:cc:0d:
+ 5e:b3:3d:cf:04:78:8f:14:14:7b:32:9c:c7:00:a6:5c:c4:b5:
+ a1:55:8d:5a:56:68:a4:22:70:aa:3c:81:71:d9:9d:a8:45:3b:
+ f4:e5:f6:a2:51:dd:c7:7b:62:e8:6f:0c:74:eb:b8:da:f8:bf:
+ 87:0d:79:50:91:90:9b:18:3b:91:59:27:f1:35:28:13:ab:26:
+ 7e:d5:f7:7a
+-----BEGIN CERTIFICATE-----
+MIIEtjCCA56gAwIBAgIQDHmpRLCMEZUgkmFf4msdgzANBgkqhkiG9w0BAQsFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowdTEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTE0MDIGA1UEAxMrRGlnaUNlcnQgU0hBMiBFeHRlbmRlZCBW
+YWxpZGF0aW9uIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBANdTpARR+JmmFkhLZyeqk0nQOe0MsLAAh/FnKIaFjI5j2ryxQDji0/XspQUY
+uD0+xZkXMuwYjPrxDKZkIYXLBxA0sFKIKx9om9KxjxKws9LniB8f7zh3VFNfgHk/
+LhqqqB5LKw2rt2O5Nbd9FLxZS99RStKh4gzikIKHaq7q12TWmFXo/a8aUGxUvBHy
+/Urynbt/DvTVvo4WiRJV2MBxNO723C3sxIclho3YIeSwTQyJ3DkmF93215SF2AQh
+cJ1vb/9cuhnhRctWVyh+HA1BV6q3uCe7seT6Ku8hI3UarS2bhjWMnHe1c63YlC3k
+8wyd7sFOYn4XwHGeLN7x+RAoGTMCAwEAAaOCAUkwggFFMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
+BQcDAjA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp
+Z2ljZXJ0LmNvbTBLBgNVHR8ERDBCMECgPqA8hjpodHRwOi8vY3JsNC5kaWdpY2Vy
+dC5jb20vRGlnaUNlcnRIaWdoQXNzdXJhbmNlRVZSb290Q0EuY3JsMD0GA1UdIAQ2
+MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5j
+b20vQ1BTMB0GA1UdDgQWBBQ901Cl1qCt7vNKYApl0yHU+PjWDzAfBgNVHSMEGDAW
+gBSxPsNpA/i/RwHUmCYaCALvY2QrwzANBgkqhkiG9w0BAQsFAAOCAQEAnbbQkIbh
+hgLtxaDwNBx0wY12zIYKqPBKikLWP8ipTa18CK3mtlC4ohpNiAexKSHc59rGPCHg
+4xFJcKx6HQGkyhE6V6t9VypAdP3THYUYUN9XR3WhfVUgLkc3UHKMf4Ib0mKPLQNa
+2sPIoc4sUqIAY+tzunHISScjl2SFnjgOrWNoPLpSgVh5oywM395t6zHyuqB8bPEs
+1OG9d4Q3A84ytciagRpKkk47RpqF/oOi+Z6Mo8wNXrM9zwR4jxQUezKcxwCmXMS1
+oVWNWlZopCJwqjyBcdmdqEU79OX2olHdx3ti6G8MdOu42vi/hw15UJGQmxg7kVkn
+8TUoE6smftX3eg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert28[] = {
+ 0x30, 0x82, 0x04, 0xb6, 0x30, 0x82, 0x03, 0x9e, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x0c, 0x79, 0xa9, 0x44, 0xb0, 0x8c, 0x11, 0x95, 0x20,
+ 0x92, 0x61, 0x5f, 0xe2, 0x6b, 0x1d, 0x83, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x6c,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+ 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+ 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x22, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48,
+ 0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63,
+ 0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+ 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x32, 0x32, 0x31, 0x32,
+ 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x38, 0x31, 0x30, 0x32,
+ 0x32, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x75, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44, 0x69,
+ 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x19,
+ 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77, 0x77, 0x77,
+ 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x31, 0x34, 0x30, 0x32, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2b,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x48, 0x41,
+ 0x32, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x56,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+ 0x82, 0x01, 0x01, 0x00, 0xd7, 0x53, 0xa4, 0x04, 0x51, 0xf8, 0x99, 0xa6,
+ 0x16, 0x48, 0x4b, 0x67, 0x27, 0xaa, 0x93, 0x49, 0xd0, 0x39, 0xed, 0x0c,
+ 0xb0, 0xb0, 0x00, 0x87, 0xf1, 0x67, 0x28, 0x86, 0x85, 0x8c, 0x8e, 0x63,
+ 0xda, 0xbc, 0xb1, 0x40, 0x38, 0xe2, 0xd3, 0xf5, 0xec, 0xa5, 0x05, 0x18,
+ 0xb8, 0x3d, 0x3e, 0xc5, 0x99, 0x17, 0x32, 0xec, 0x18, 0x8c, 0xfa, 0xf1,
+ 0x0c, 0xa6, 0x64, 0x21, 0x85, 0xcb, 0x07, 0x10, 0x34, 0xb0, 0x52, 0x88,
+ 0x2b, 0x1f, 0x68, 0x9b, 0xd2, 0xb1, 0x8f, 0x12, 0xb0, 0xb3, 0xd2, 0xe7,
+ 0x88, 0x1f, 0x1f, 0xef, 0x38, 0x77, 0x54, 0x53, 0x5f, 0x80, 0x79, 0x3f,
+ 0x2e, 0x1a, 0xaa, 0xa8, 0x1e, 0x4b, 0x2b, 0x0d, 0xab, 0xb7, 0x63, 0xb9,
+ 0x35, 0xb7, 0x7d, 0x14, 0xbc, 0x59, 0x4b, 0xdf, 0x51, 0x4a, 0xd2, 0xa1,
+ 0xe2, 0x0c, 0xe2, 0x90, 0x82, 0x87, 0x6a, 0xae, 0xea, 0xd7, 0x64, 0xd6,
+ 0x98, 0x55, 0xe8, 0xfd, 0xaf, 0x1a, 0x50, 0x6c, 0x54, 0xbc, 0x11, 0xf2,
+ 0xfd, 0x4a, 0xf2, 0x9d, 0xbb, 0x7f, 0x0e, 0xf4, 0xd5, 0xbe, 0x8e, 0x16,
+ 0x89, 0x12, 0x55, 0xd8, 0xc0, 0x71, 0x34, 0xee, 0xf6, 0xdc, 0x2d, 0xec,
+ 0xc4, 0x87, 0x25, 0x86, 0x8d, 0xd8, 0x21, 0xe4, 0xb0, 0x4d, 0x0c, 0x89,
+ 0xdc, 0x39, 0x26, 0x17, 0xdd, 0xf6, 0xd7, 0x94, 0x85, 0xd8, 0x04, 0x21,
+ 0x70, 0x9d, 0x6f, 0x6f, 0xff, 0x5c, 0xba, 0x19, 0xe1, 0x45, 0xcb, 0x56,
+ 0x57, 0x28, 0x7e, 0x1c, 0x0d, 0x41, 0x57, 0xaa, 0xb7, 0xb8, 0x27, 0xbb,
+ 0xb1, 0xe4, 0xfa, 0x2a, 0xef, 0x21, 0x23, 0x75, 0x1a, 0xad, 0x2d, 0x9b,
+ 0x86, 0x35, 0x8c, 0x9c, 0x77, 0xb5, 0x73, 0xad, 0xd8, 0x94, 0x2d, 0xe4,
+ 0xf3, 0x0c, 0x9d, 0xee, 0xc1, 0x4e, 0x62, 0x7e, 0x17, 0xc0, 0x71, 0x9e,
+ 0x2c, 0xde, 0xf1, 0xf9, 0x10, 0x28, 0x19, 0x33, 0x02, 0x03, 0x01, 0x00,
+ 0x01, 0xa3, 0x82, 0x01, 0x49, 0x30, 0x82, 0x01, 0x45, 0x30, 0x12, 0x06,
+ 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01,
+ 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f,
+ 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06,
+ 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x03, 0x02, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x64, 0x69,
+ 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4b,
+ 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x44, 0x30, 0x42, 0x30, 0x40, 0xa0,
+ 0x3e, 0xa0, 0x3c, 0x86, 0x3a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x63, 0x72, 0x6c, 0x34, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72,
+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65,
+ 0x72, 0x74, 0x48, 0x69, 0x67, 0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61,
+ 0x6e, 0x63, 0x65, 0x45, 0x56, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36,
+ 0x30, 0x34, 0x30, 0x32, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a,
+ 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01,
+ 0x16, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+ 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+ 0x0e, 0x04, 0x16, 0x04, 0x14, 0x3d, 0xd3, 0x50, 0xa5, 0xd6, 0xa0, 0xad,
+ 0xee, 0xf3, 0x4a, 0x60, 0x0a, 0x65, 0xd3, 0x21, 0xd4, 0xf8, 0xf8, 0xd6,
+ 0x0f, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0xb1, 0x3e, 0xc3, 0x69, 0x03, 0xf8, 0xbf, 0x47, 0x01, 0xd4,
+ 0x98, 0x26, 0x1a, 0x08, 0x02, 0xef, 0x63, 0x64, 0x2b, 0xc3, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x9d, 0xb6, 0xd0, 0x90, 0x86, 0xe1,
+ 0x86, 0x02, 0xed, 0xc5, 0xa0, 0xf0, 0x34, 0x1c, 0x74, 0xc1, 0x8d, 0x76,
+ 0xcc, 0x86, 0x0a, 0xa8, 0xf0, 0x4a, 0x8a, 0x42, 0xd6, 0x3f, 0xc8, 0xa9,
+ 0x4d, 0xad, 0x7c, 0x08, 0xad, 0xe6, 0xb6, 0x50, 0xb8, 0xa2, 0x1a, 0x4d,
+ 0x88, 0x07, 0xb1, 0x29, 0x21, 0xdc, 0xe7, 0xda, 0xc6, 0x3c, 0x21, 0xe0,
+ 0xe3, 0x11, 0x49, 0x70, 0xac, 0x7a, 0x1d, 0x01, 0xa4, 0xca, 0x11, 0x3a,
+ 0x57, 0xab, 0x7d, 0x57, 0x2a, 0x40, 0x74, 0xfd, 0xd3, 0x1d, 0x85, 0x18,
+ 0x50, 0xdf, 0x57, 0x47, 0x75, 0xa1, 0x7d, 0x55, 0x20, 0x2e, 0x47, 0x37,
+ 0x50, 0x72, 0x8c, 0x7f, 0x82, 0x1b, 0xd2, 0x62, 0x8f, 0x2d, 0x03, 0x5a,
+ 0xda, 0xc3, 0xc8, 0xa1, 0xce, 0x2c, 0x52, 0xa2, 0x00, 0x63, 0xeb, 0x73,
+ 0xba, 0x71, 0xc8, 0x49, 0x27, 0x23, 0x97, 0x64, 0x85, 0x9e, 0x38, 0x0e,
+ 0xad, 0x63, 0x68, 0x3c, 0xba, 0x52, 0x81, 0x58, 0x79, 0xa3, 0x2c, 0x0c,
+ 0xdf, 0xde, 0x6d, 0xeb, 0x31, 0xf2, 0xba, 0xa0, 0x7c, 0x6c, 0xf1, 0x2c,
+ 0xd4, 0xe1, 0xbd, 0x77, 0x84, 0x37, 0x03, 0xce, 0x32, 0xb5, 0xc8, 0x9a,
+ 0x81, 0x1a, 0x4a, 0x92, 0x4e, 0x3b, 0x46, 0x9a, 0x85, 0xfe, 0x83, 0xa2,
+ 0xf9, 0x9e, 0x8c, 0xa3, 0xcc, 0x0d, 0x5e, 0xb3, 0x3d, 0xcf, 0x04, 0x78,
+ 0x8f, 0x14, 0x14, 0x7b, 0x32, 0x9c, 0xc7, 0x00, 0xa6, 0x5c, 0xc4, 0xb5,
+ 0xa1, 0x55, 0x8d, 0x5a, 0x56, 0x68, 0xa4, 0x22, 0x70, 0xaa, 0x3c, 0x81,
+ 0x71, 0xd9, 0x9d, 0xa8, 0x45, 0x3b, 0xf4, 0xe5, 0xf6, 0xa2, 0x51, 0xdd,
+ 0xc7, 0x7b, 0x62, 0xe8, 0x6f, 0x0c, 0x74, 0xeb, 0xb8, 0xda, 0xf8, 0xbf,
+ 0x87, 0x0d, 0x79, 0x50, 0x91, 0x90, 0x9b, 0x18, 0x3b, 0x91, 0x59, 0x27,
+ 0xf1, 0x35, 0x28, 0x13, 0xab, 0x26, 0x7e, 0xd5, 0xf7, 0x7a,
+};
--- /dev/null
+/* Copyright (c) 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.
+ */
+
+/* This file contains common certificates. It's designed to be #included in
+ * another file, in a namespace. */
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 36:34:9e:18:c9:9c:26:69:b6:56:2e:6c:e5:ad:71:32
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2008 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA - G3
+ Validity
+ Not Before: May 23 00:00:00 2013 GMT
+ Not After : May 22 23:59:59 2023 GMT
+ Subject: C=US, O=thawte, Inc., CN=thawte SHA256 SSL CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:a3:63:2b:d4:ba:5d:38:ae:b0:cf:b9:4c:38:df:
+ 20:7d:f1:2b:47:71:1d:8b:68:f3:56:f9:9c:da:aa:
+ e5:84:26:de:a5:71:30:bc:f3:31:23:9d:e8:3b:80:
+ c8:66:57:75:b6:57:0e:db:93:f5:26:8e:70:ba:64:
+ 52:66:8a:2a:88:5c:44:18:4d:a8:a2:7c:bd:56:61:
+ 32:90:12:f9:35:87:48:60:b0:6e:90:67:44:01:8d:
+ e7:c9:0d:63:68:72:72:ab:63:3c:86:b8:1f:7d:ad:
+ 88:25:a7:6a:88:29:fb:59:c6:78:71:5f:2c:ba:89:
+ e6:d3:80:fd:57:ec:b9:51:5f:43:33:2e:7e:25:3b:
+ a4:04:d1:60:8c:b3:44:33:93:0c:ad:2a:b6:44:a2:
+ 19:3b:af:c4:90:6f:7b:05:87:86:9b:2c:6a:9d:2b:
+ 6c:77:c9:00:9f:c9:cf:ac:ed:3e:1b:f7:c3:f3:d9:
+ f8:6c:d4:a0:57:c4:fb:28:32:aa:33:f0:e6:ba:98:
+ df:e5:c2:4e:9c:74:bf:8a:48:c2:f2:1b:f0:77:40:
+ 41:07:04:b2:3a:d5:4c:c4:29:a9:11:40:3f:02:46:
+ f0:91:d5:d2:81:83:86:13:b3:31:ed:46:ab:a8:87:
+ 76:a9:99:7d:bc:cd:31:50:f4:a5:b5:dc:a5:32:b3:
+ 8b:8b
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ Authority Information Access:
+ OCSP - URI:http://ocsp.thawte.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: https://www.thawte.com/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.thawte.com/ThawtePCA-G3.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Alternative Name:
+ DirName:/CN=VeriSignMPKI-2-415
+ X509v3 Subject Key Identifier:
+ 2B:9A:35:AE:01:18:38:30:E1:70:7A:05:E0:11:76:A3:CE:BD:90:14
+ X509v3 Authority Key Identifier:
+ keyid:AD:6C:AA:94:60:9C:ED:E4:FF:FA:3E:0A:74:2B:63:03:F7:B6:59:BF
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 74:a6:56:e8:af:93:96:19:fb:26:f9:0d:b0:44:a5:cd:e9:7a:
+ 48:03:74:01:6c:13:71:b7:e0:82:90:99:62:23:e3:d6:99:af:
+ f0:c7:1e:9e:a8:18:21:db:b4:94:3f:34:56:1b:99:55:2f:8e:
+ f0:45:33:32:b7:72:c1:13:5b:34:d3:f5:60:e5:2e:18:d1:5c:
+ c5:6a:c1:aa:87:50:0c:1c:9d:64:2b:ff:1b:dc:d5:2e:61:0b:
+ e7:b9:b6:91:53:86:d9:03:2a:d1:3d:7b:4a:da:2b:07:be:29:
+ f2:60:42:a9:91:1a:0e:2e:3c:d1:7d:a5:13:14:02:fa:ee:8b:
+ 8d:b6:c8:b8:3e:56:81:57:21:24:3f:65:c3:b4:c9:ce:5c:8d:
+ 46:ac:53:f3:f9:55:74:c8:2b:fd:d2:78:70:f5:f8:11:e5:f4:
+ a7:ad:20:f5:9d:f1:ec:70:f6:13:ac:e6:8c:8d:db:3f:c6:f2:
+ 79:0e:ab:52:f2:cc:1b:79:27:cf:16:b3:d6:f3:c6:36:80:43:
+ ec:c5:94:f0:dd:90:8d:f8:c6:52:46:56:eb:74:47:be:a6:f3:
+ 19:ae:71:4c:c0:e1:e7:d4:cf:ed:d4:06:28:2a:11:3c:ba:d9:
+ 41:6e:00:e7:81:37:93:e4:da:62:c6:1d:67:6f:63:b4:14:86:
+ d9:a6:62:f0
+-----BEGIN CERTIFICATE-----
+MIIEwjCCA6qgAwIBAgIQNjSeGMmcJmm2Vi5s5a1xMjANBgkqhkiG9w0BAQsFADCB
+rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
+BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0xMzA1MjMwMDAwMDBa
+Fw0yMzA1MjIyMzU5NTlaMEMxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUs
+IEluYy4xHTAbBgNVBAMTFHRoYXd0ZSBTSEEyNTYgU1NMIENBMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo2Mr1LpdOK6wz7lMON8gffErR3Edi2jzVvmc
+2qrlhCbepXEwvPMxI53oO4DIZld1tlcO25P1Jo5wumRSZooqiFxEGE2oony9VmEy
+kBL5NYdIYLBukGdEAY3nyQ1jaHJyq2M8hrgffa2IJadqiCn7WcZ4cV8suonm04D9
+V+y5UV9DMy5+JTukBNFgjLNEM5MMrSq2RKIZO6/EkG97BYeGmyxqnStsd8kAn8nP
+rO0+G/fD89n4bNSgV8T7KDKqM/Dmupjf5cJOnHS/ikjC8hvwd0BBBwSyOtVMxCmp
+EUA/AkbwkdXSgYOGE7Mx7UarqId2qZl9vM0xUPSltdylMrOLiwIDAQABo4IBRDCC
+AUAwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC50aGF3
+dGUuY29tMBIGA1UdEwEB/wQIMAYBAf8CAQAwQQYDVR0gBDowODA2BgpghkgBhvhF
+AQc2MCgwJgYIKwYBBQUHAgEWGmh0dHBzOi8vd3d3LnRoYXd0ZS5jb20vY3BzMDcG
+A1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVQQ0Et
+RzMuY3JsMA4GA1UdDwEB/wQEAwIBBjAqBgNVHREEIzAhpB8wHTEbMBkGA1UEAxMS
+VmVyaVNpZ25NUEtJLTItNDE1MB0GA1UdDgQWBBQrmjWuARg4MOFwegXgEXajzr2Q
+FDAfBgNVHSMEGDAWgBStbKqUYJzt5P/6Pgp0K2MD97ZZvzANBgkqhkiG9w0BAQsF
+AAOCAQEAdKZW6K+Tlhn7JvkNsESlzel6SAN0AWwTcbfggpCZYiPj1pmv8McenqgY
+Idu0lD80VhuZVS+O8EUzMrdywRNbNNP1YOUuGNFcxWrBqodQDBydZCv/G9zVLmEL
+57m2kVOG2QMq0T17StorB74p8mBCqZEaDi480X2lExQC+u6LjbbIuD5WgVchJD9l
+w7TJzlyNRqxT8/lVdMgr/dJ4cPX4EeX0p60g9Z3x7HD2E6zmjI3bP8byeQ6rUvLM
+G3knzxaz1vPGNoBD7MWU8N2QjfjGUkZW63RHvqbzGa5xTMDh59TP7dQGKCoRPLrZ
+QW4A54E3k+TaYsYdZ29jtBSG2aZi8A==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert29[] = {
+ 0x30, 0x82, 0x04, 0xc2, 0x30, 0x82, 0x03, 0xaa, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x36, 0x34, 0x9e, 0x18, 0xc9, 0x9c, 0x26, 0x69, 0xb6,
+ 0x56, 0x2e, 0x6c, 0xe5, 0xad, 0x71, 0x32, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xae, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+ 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+ 0x30, 0x38, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x1b, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+ 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+ 0x33, 0x30, 0x35, 0x32, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a,
+ 0x17, 0x0d, 0x32, 0x33, 0x30, 0x35, 0x32, 0x32, 0x32, 0x33, 0x35, 0x39,
+ 0x35, 0x39, 0x5a, 0x30, 0x43, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03,
+ 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c,
+ 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x14, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53,
+ 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+ 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+ 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x63, 0x2b,
+ 0xd4, 0xba, 0x5d, 0x38, 0xae, 0xb0, 0xcf, 0xb9, 0x4c, 0x38, 0xdf, 0x20,
+ 0x7d, 0xf1, 0x2b, 0x47, 0x71, 0x1d, 0x8b, 0x68, 0xf3, 0x56, 0xf9, 0x9c,
+ 0xda, 0xaa, 0xe5, 0x84, 0x26, 0xde, 0xa5, 0x71, 0x30, 0xbc, 0xf3, 0x31,
+ 0x23, 0x9d, 0xe8, 0x3b, 0x80, 0xc8, 0x66, 0x57, 0x75, 0xb6, 0x57, 0x0e,
+ 0xdb, 0x93, 0xf5, 0x26, 0x8e, 0x70, 0xba, 0x64, 0x52, 0x66, 0x8a, 0x2a,
+ 0x88, 0x5c, 0x44, 0x18, 0x4d, 0xa8, 0xa2, 0x7c, 0xbd, 0x56, 0x61, 0x32,
+ 0x90, 0x12, 0xf9, 0x35, 0x87, 0x48, 0x60, 0xb0, 0x6e, 0x90, 0x67, 0x44,
+ 0x01, 0x8d, 0xe7, 0xc9, 0x0d, 0x63, 0x68, 0x72, 0x72, 0xab, 0x63, 0x3c,
+ 0x86, 0xb8, 0x1f, 0x7d, 0xad, 0x88, 0x25, 0xa7, 0x6a, 0x88, 0x29, 0xfb,
+ 0x59, 0xc6, 0x78, 0x71, 0x5f, 0x2c, 0xba, 0x89, 0xe6, 0xd3, 0x80, 0xfd,
+ 0x57, 0xec, 0xb9, 0x51, 0x5f, 0x43, 0x33, 0x2e, 0x7e, 0x25, 0x3b, 0xa4,
+ 0x04, 0xd1, 0x60, 0x8c, 0xb3, 0x44, 0x33, 0x93, 0x0c, 0xad, 0x2a, 0xb6,
+ 0x44, 0xa2, 0x19, 0x3b, 0xaf, 0xc4, 0x90, 0x6f, 0x7b, 0x05, 0x87, 0x86,
+ 0x9b, 0x2c, 0x6a, 0x9d, 0x2b, 0x6c, 0x77, 0xc9, 0x00, 0x9f, 0xc9, 0xcf,
+ 0xac, 0xed, 0x3e, 0x1b, 0xf7, 0xc3, 0xf3, 0xd9, 0xf8, 0x6c, 0xd4, 0xa0,
+ 0x57, 0xc4, 0xfb, 0x28, 0x32, 0xaa, 0x33, 0xf0, 0xe6, 0xba, 0x98, 0xdf,
+ 0xe5, 0xc2, 0x4e, 0x9c, 0x74, 0xbf, 0x8a, 0x48, 0xc2, 0xf2, 0x1b, 0xf0,
+ 0x77, 0x40, 0x41, 0x07, 0x04, 0xb2, 0x3a, 0xd5, 0x4c, 0xc4, 0x29, 0xa9,
+ 0x11, 0x40, 0x3f, 0x02, 0x46, 0xf0, 0x91, 0xd5, 0xd2, 0x81, 0x83, 0x86,
+ 0x13, 0xb3, 0x31, 0xed, 0x46, 0xab, 0xa8, 0x87, 0x76, 0xa9, 0x99, 0x7d,
+ 0xbc, 0xcd, 0x31, 0x50, 0xf4, 0xa5, 0xb5, 0xdc, 0xa5, 0x32, 0xb3, 0x8b,
+ 0x8b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x44, 0x30, 0x82,
+ 0x01, 0x40, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x01, 0x01, 0x04, 0x26, 0x30, 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77,
+ 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+ 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+ 0x01, 0x00, 0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3a, 0x30,
+ 0x38, 0x30, 0x36, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45,
+ 0x01, 0x07, 0x36, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73,
+ 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74,
+ 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x37, 0x06,
+ 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x30, 0x30, 0x2e, 0x30, 0x2c, 0xa0, 0x2a,
+ 0xa0, 0x28, 0x86, 0x26, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+ 0x72, 0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41, 0x2d,
+ 0x47, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2a,
+ 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x23, 0x30, 0x21, 0xa4, 0x1f, 0x30,
+ 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12,
+ 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49,
+ 0x2d, 0x32, 0x2d, 0x34, 0x31, 0x35, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+ 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2b, 0x9a, 0x35, 0xae, 0x01, 0x18, 0x38,
+ 0x30, 0xe1, 0x70, 0x7a, 0x05, 0xe0, 0x11, 0x76, 0xa3, 0xce, 0xbd, 0x90,
+ 0x14, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0xad, 0x6c, 0xaa, 0x94, 0x60, 0x9c, 0xed, 0xe4, 0xff, 0xfa,
+ 0x3e, 0x0a, 0x74, 0x2b, 0x63, 0x03, 0xf7, 0xb6, 0x59, 0xbf, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x74, 0xa6, 0x56, 0xe8, 0xaf, 0x93,
+ 0x96, 0x19, 0xfb, 0x26, 0xf9, 0x0d, 0xb0, 0x44, 0xa5, 0xcd, 0xe9, 0x7a,
+ 0x48, 0x03, 0x74, 0x01, 0x6c, 0x13, 0x71, 0xb7, 0xe0, 0x82, 0x90, 0x99,
+ 0x62, 0x23, 0xe3, 0xd6, 0x99, 0xaf, 0xf0, 0xc7, 0x1e, 0x9e, 0xa8, 0x18,
+ 0x21, 0xdb, 0xb4, 0x94, 0x3f, 0x34, 0x56, 0x1b, 0x99, 0x55, 0x2f, 0x8e,
+ 0xf0, 0x45, 0x33, 0x32, 0xb7, 0x72, 0xc1, 0x13, 0x5b, 0x34, 0xd3, 0xf5,
+ 0x60, 0xe5, 0x2e, 0x18, 0xd1, 0x5c, 0xc5, 0x6a, 0xc1, 0xaa, 0x87, 0x50,
+ 0x0c, 0x1c, 0x9d, 0x64, 0x2b, 0xff, 0x1b, 0xdc, 0xd5, 0x2e, 0x61, 0x0b,
+ 0xe7, 0xb9, 0xb6, 0x91, 0x53, 0x86, 0xd9, 0x03, 0x2a, 0xd1, 0x3d, 0x7b,
+ 0x4a, 0xda, 0x2b, 0x07, 0xbe, 0x29, 0xf2, 0x60, 0x42, 0xa9, 0x91, 0x1a,
+ 0x0e, 0x2e, 0x3c, 0xd1, 0x7d, 0xa5, 0x13, 0x14, 0x02, 0xfa, 0xee, 0x8b,
+ 0x8d, 0xb6, 0xc8, 0xb8, 0x3e, 0x56, 0x81, 0x57, 0x21, 0x24, 0x3f, 0x65,
+ 0xc3, 0xb4, 0xc9, 0xce, 0x5c, 0x8d, 0x46, 0xac, 0x53, 0xf3, 0xf9, 0x55,
+ 0x74, 0xc8, 0x2b, 0xfd, 0xd2, 0x78, 0x70, 0xf5, 0xf8, 0x11, 0xe5, 0xf4,
+ 0xa7, 0xad, 0x20, 0xf5, 0x9d, 0xf1, 0xec, 0x70, 0xf6, 0x13, 0xac, 0xe6,
+ 0x8c, 0x8d, 0xdb, 0x3f, 0xc6, 0xf2, 0x79, 0x0e, 0xab, 0x52, 0xf2, 0xcc,
+ 0x1b, 0x79, 0x27, 0xcf, 0x16, 0xb3, 0xd6, 0xf3, 0xc6, 0x36, 0x80, 0x43,
+ 0xec, 0xc5, 0x94, 0xf0, 0xdd, 0x90, 0x8d, 0xf8, 0xc6, 0x52, 0x46, 0x56,
+ 0xeb, 0x74, 0x47, 0xbe, 0xa6, 0xf3, 0x19, 0xae, 0x71, 0x4c, 0xc0, 0xe1,
+ 0xe7, 0xd4, 0xcf, 0xed, 0xd4, 0x06, 0x28, 0x2a, 0x11, 0x3c, 0xba, 0xd9,
+ 0x41, 0x6e, 0x00, 0xe7, 0x81, 0x37, 0x93, 0xe4, 0xda, 0x62, 0xc6, 0x1d,
+ 0x67, 0x6f, 0x63, 0xb4, 0x14, 0x86, 0xd9, 0xa6, 0x62, 0xf0,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 35:97:31:87:f3:87:3a:07:32:7e:ce:58:0c:9b:7e:da
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
+ Validity
+ Not Before: Nov 8 00:00:00 2006 GMT
+ Not After : Nov 7 23:59:59 2021 GMT
+ Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:af:24:08:08:29:7a:35:9e:60:0c:aa:e7:4b:3b:
+ 4e:dc:7c:bc:3c:45:1c:bb:2b:e0:fe:29:02:f9:57:
+ 08:a3:64:85:15:27:f5:f1:ad:c8:31:89:5d:22:e8:
+ 2a:aa:a6:42:b3:8f:f8:b9:55:b7:b1:b7:4b:b3:fe:
+ 8f:7e:07:57:ec:ef:43:db:66:62:15:61:cf:60:0d:
+ a4:d8:de:f8:e0:c3:62:08:3d:54:13:eb:49:ca:59:
+ 54:85:26:e5:2b:8f:1b:9f:eb:f5:a1:91:c2:33:49:
+ d8:43:63:6a:52:4b:d2:8f:e8:70:51:4d:d1:89:69:
+ 7b:c7:70:f6:b3:dc:12:74:db:7b:5d:4b:56:d3:96:
+ bf:15:77:a1:b0:f4:a2:25:f2:af:1c:92:67:18:e5:
+ f4:06:04:ef:90:b9:e4:00:e4:dd:3a:b5:19:ff:02:
+ ba:f4:3c:ee:e0:8b:eb:37:8b:ec:f4:d7:ac:f2:f6:
+ f0:3d:af:dd:75:91:33:19:1d:1c:40:cb:74:24:19:
+ 21:93:d9:14:fe:ac:2a:52:c7:8f:d5:04:49:e4:8d:
+ 63:47:88:3c:69:83:cb:fe:47:bd:2b:7e:4f:c5:95:
+ ae:0e:9d:d4:d1:43:c0:67:73:e3:14:08:7e:e5:3f:
+ 9f:73:b8:33:0a:cf:5d:3f:34:87:96:8a:ee:53:e8:
+ 25:15
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.verisign.com/pca3.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.verisign.com/cps
+
+ X509v3 Subject Key Identifier:
+ 7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+ X509v3 Extended Key Usage:
+ Netscape Server Gated Crypto, 2.16.840.1.113733.1.8.1, TLS Web Server Authentication, TLS Web Client Authentication
+ 1.3.6.1.5.5.7.1.12:
+ 0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+ Authority Information Access:
+ OCSP - URI:http://ocsp.verisign.com
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 0f:25:ae:48:ed:1b:33:85:4c:0c:b5:c2:d7:fe:4d:d6:83:28:
+ 4c:41:65:60:00:0b:77:48:71:82:fe:7f:db:5a:0e:20:cc:d2:
+ ea:47:bc:64:42:61:44:34:74:30:81:81:26:8a:4a:f7:44:5d:
+ 7e:34:80:a8:b8:83:e2:09:d7:6d:23:dd:89:ed:28:08:bd:63:
+ 5a:11:57:08:c4:9e:da:e2:68:28:af:dd:50:3c:ec:82:21:d8:
+ 00:c2:55:44:50:70:41:ad:83:17:79:ba:08:f3:2b:de:ed:34:
+ 1d:44:9e:d2:04:93:f4:cb:05:17:2d:09:2d:2d:63:ef:f6:26:
+ 0b:7b
+-----BEGIN CERTIFICATE-----
+MIIExjCCBC+gAwIBAgIQNZcxh/OHOgcyfs5YDJt+2jANBgkqhkiG9w0BAQUFADBf
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
+LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv
+ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8
+RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb
+ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR
+TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH
+iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB
+AAGjggGRMIIBjTAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0
+dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjA9
+BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVy
+aXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwNAYD
+VR0lBC0wKwYJYIZIAYb4QgQBBgpghkgBhvhFAQgBBggrBgEFBQcDAQYIKwYBBQUH
+AwIwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUr
+DgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNp
+Z24uY29tL3ZzbG9nby5naWYwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhho
+dHRwOi8vb2NzcC52ZXJpc2lnbi5jb20wDQYJKoZIhvcNAQEFBQADgYEADyWuSO0b
+M4VMDLXC1/5N1oMoTEFlYAALd0hxgv5/21oOIMzS6ke8ZEJhRDR0MIGBJopK90Rd
+fjSAqLiD4gnXbSPdie0oCL1jWhFXCMSe2uJoKK/dUDzsgiHYAMJVRFBwQa2DF3m6
+CPMr3u00HUSe0gST9MsFFy0JLS1j7/YmC3s=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert30[] = {
+ 0x30, 0x82, 0x04, 0xc6, 0x30, 0x82, 0x04, 0x2f, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x35, 0x97, 0x31, 0x87, 0xf3, 0x87, 0x3a, 0x07, 0x32,
+ 0x7e, 0xce, 0x58, 0x0c, 0x9b, 0x7e, 0xda, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e,
+ 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x37, 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62,
+ 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30,
+ 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x30, 0x38, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31, 0x30, 0x37,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xca, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+ 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3a, 0x30,
+ 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28, 0x63, 0x29, 0x20,
+ 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+ 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f,
+ 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64,
+ 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x45, 0x30,
+ 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
+ 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xaf, 0x24, 0x08, 0x08, 0x29, 0x7a, 0x35,
+ 0x9e, 0x60, 0x0c, 0xaa, 0xe7, 0x4b, 0x3b, 0x4e, 0xdc, 0x7c, 0xbc, 0x3c,
+ 0x45, 0x1c, 0xbb, 0x2b, 0xe0, 0xfe, 0x29, 0x02, 0xf9, 0x57, 0x08, 0xa3,
+ 0x64, 0x85, 0x15, 0x27, 0xf5, 0xf1, 0xad, 0xc8, 0x31, 0x89, 0x5d, 0x22,
+ 0xe8, 0x2a, 0xaa, 0xa6, 0x42, 0xb3, 0x8f, 0xf8, 0xb9, 0x55, 0xb7, 0xb1,
+ 0xb7, 0x4b, 0xb3, 0xfe, 0x8f, 0x7e, 0x07, 0x57, 0xec, 0xef, 0x43, 0xdb,
+ 0x66, 0x62, 0x15, 0x61, 0xcf, 0x60, 0x0d, 0xa4, 0xd8, 0xde, 0xf8, 0xe0,
+ 0xc3, 0x62, 0x08, 0x3d, 0x54, 0x13, 0xeb, 0x49, 0xca, 0x59, 0x54, 0x85,
+ 0x26, 0xe5, 0x2b, 0x8f, 0x1b, 0x9f, 0xeb, 0xf5, 0xa1, 0x91, 0xc2, 0x33,
+ 0x49, 0xd8, 0x43, 0x63, 0x6a, 0x52, 0x4b, 0xd2, 0x8f, 0xe8, 0x70, 0x51,
+ 0x4d, 0xd1, 0x89, 0x69, 0x7b, 0xc7, 0x70, 0xf6, 0xb3, 0xdc, 0x12, 0x74,
+ 0xdb, 0x7b, 0x5d, 0x4b, 0x56, 0xd3, 0x96, 0xbf, 0x15, 0x77, 0xa1, 0xb0,
+ 0xf4, 0xa2, 0x25, 0xf2, 0xaf, 0x1c, 0x92, 0x67, 0x18, 0xe5, 0xf4, 0x06,
+ 0x04, 0xef, 0x90, 0xb9, 0xe4, 0x00, 0xe4, 0xdd, 0x3a, 0xb5, 0x19, 0xff,
+ 0x02, 0xba, 0xf4, 0x3c, 0xee, 0xe0, 0x8b, 0xeb, 0x37, 0x8b, 0xec, 0xf4,
+ 0xd7, 0xac, 0xf2, 0xf6, 0xf0, 0x3d, 0xaf, 0xdd, 0x75, 0x91, 0x33, 0x19,
+ 0x1d, 0x1c, 0x40, 0xcb, 0x74, 0x24, 0x19, 0x21, 0x93, 0xd9, 0x14, 0xfe,
+ 0xac, 0x2a, 0x52, 0xc7, 0x8f, 0xd5, 0x04, 0x49, 0xe4, 0x8d, 0x63, 0x47,
+ 0x88, 0x3c, 0x69, 0x83, 0xcb, 0xfe, 0x47, 0xbd, 0x2b, 0x7e, 0x4f, 0xc5,
+ 0x95, 0xae, 0x0e, 0x9d, 0xd4, 0xd1, 0x43, 0xc0, 0x67, 0x73, 0xe3, 0x14,
+ 0x08, 0x7e, 0xe5, 0x3f, 0x9f, 0x73, 0xb8, 0x33, 0x0a, 0xcf, 0x5d, 0x3f,
+ 0x34, 0x87, 0x96, 0x8a, 0xee, 0x53, 0xe8, 0x25, 0x15, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x91, 0x30, 0x82, 0x01, 0x8d, 0x30, 0x0f,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+ 0x01, 0x01, 0xff, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a,
+ 0x30, 0x28, 0x30, 0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72,
+ 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63,
+ 0x61, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3d,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+ 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+ 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72,
+ 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70,
+ 0x73, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+ 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x34, 0x06, 0x03,
+ 0x55, 0x1d, 0x25, 0x04, 0x2d, 0x30, 0x2b, 0x06, 0x09, 0x60, 0x86, 0x48,
+ 0x01, 0x86, 0xf8, 0x42, 0x04, 0x01, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01,
+ 0x86, 0xf8, 0x45, 0x01, 0x08, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x03, 0x02, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f, 0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59,
+ 0x30, 0x57, 0x30, 0x55, 0x16, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
+ 0x67, 0x69, 0x66, 0x30, 0x21, 0x30, 0x1f, 0x30, 0x07, 0x06, 0x05, 0x2b,
+ 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14, 0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac,
+ 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80, 0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b,
+ 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69,
+ 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67,
+ 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76,
+ 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05,
+ 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x0f, 0x25, 0xae, 0x48, 0xed, 0x1b,
+ 0x33, 0x85, 0x4c, 0x0c, 0xb5, 0xc2, 0xd7, 0xfe, 0x4d, 0xd6, 0x83, 0x28,
+ 0x4c, 0x41, 0x65, 0x60, 0x00, 0x0b, 0x77, 0x48, 0x71, 0x82, 0xfe, 0x7f,
+ 0xdb, 0x5a, 0x0e, 0x20, 0xcc, 0xd2, 0xea, 0x47, 0xbc, 0x64, 0x42, 0x61,
+ 0x44, 0x34, 0x74, 0x30, 0x81, 0x81, 0x26, 0x8a, 0x4a, 0xf7, 0x44, 0x5d,
+ 0x7e, 0x34, 0x80, 0xa8, 0xb8, 0x83, 0xe2, 0x09, 0xd7, 0x6d, 0x23, 0xdd,
+ 0x89, 0xed, 0x28, 0x08, 0xbd, 0x63, 0x5a, 0x11, 0x57, 0x08, 0xc4, 0x9e,
+ 0xda, 0xe2, 0x68, 0x28, 0xaf, 0xdd, 0x50, 0x3c, 0xec, 0x82, 0x21, 0xd8,
+ 0x00, 0xc2, 0x55, 0x44, 0x50, 0x70, 0x41, 0xad, 0x83, 0x17, 0x79, 0xba,
+ 0x08, 0xf3, 0x2b, 0xde, 0xed, 0x34, 0x1d, 0x44, 0x9e, 0xd2, 0x04, 0x93,
+ 0xf4, 0xcb, 0x05, 0x17, 0x2d, 0x09, 0x2d, 0x2d, 0x63, 0xef, 0xf6, 0x26,
+ 0x0b, 0x7b,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 7 (0x7)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2
+ Validity
+ Not Before: May 3 07:00:00 2011 GMT
+ Not After : May 3 07:00:00 2031 GMT
+ Subject: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certs.godaddy.com/repository/, CN=Go Daddy Secure Certificate Authority - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b9:e0:cb:10:d4:af:76:bd:d4:93:62:eb:30:64:
+ b8:81:08:6c:c3:04:d9:62:17:8e:2f:ff:3e:65:cf:
+ 8f:ce:62:e6:3c:52:1c:da:16:45:4b:55:ab:78:6b:
+ 63:83:62:90:ce:0f:69:6c:99:c8:1a:14:8b:4c:cc:
+ 45:33:ea:88:dc:9e:a3:af:2b:fe:80:61:9d:79:57:
+ c4:cf:2e:f4:3f:30:3c:5d:47:fc:9a:16:bc:c3:37:
+ 96:41:51:8e:11:4b:54:f8:28:be:d0:8c:be:f0:30:
+ 38:1e:f3:b0:26:f8:66:47:63:6d:de:71:26:47:8f:
+ 38:47:53:d1:46:1d:b4:e3:dc:00:ea:45:ac:bd:bc:
+ 71:d9:aa:6f:00:db:db:cd:30:3a:79:4f:5f:4c:47:
+ f8:1d:ef:5b:c2:c4:9d:60:3b:b1:b2:43:91:d8:a4:
+ 33:4e:ea:b3:d6:27:4f:ad:25:8a:a5:c6:f4:d5:d0:
+ a6:ae:74:05:64:57:88:b5:44:55:d4:2d:2a:3a:3e:
+ f8:b8:bd:e9:32:0a:02:94:64:c4:16:3a:50:f1:4a:
+ ae:e7:79:33:af:0c:20:07:7f:e8:df:04:39:c2:69:
+ 02:6c:63:52:fa:77:c1:1b:c8:74:87:c8:b9:93:18:
+ 50:54:35:4b:69:4e:bc:3b:d3:49:2e:1f:dc:c1:d2:
+ 52:fb
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 40:C2:BD:27:8E:CC:34:83:30:A2:33:D7:FB:6C:B3:F0:B4:2C:80:CE
+ X509v3 Authority Key Identifier:
+ keyid:3A:9A:85:07:10:67:28:B6:EF:F6:BD:05:41:6E:20:C1:94:DA:0F:DE
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.godaddy.com/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.godaddy.com/gdroot-g2.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://certs.godaddy.com/repository/
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 08:7e:6c:93:10:c8:38:b8:96:a9:90:4b:ff:a1:5f:4f:04:ef:
+ 6c:3e:9c:88:06:c9:50:8f:a6:73:f7:57:31:1b:be:bc:e4:2f:
+ db:f8:ba:d3:5b:e0:b4:e7:e6:79:62:0e:0c:a2:d7:6a:63:73:
+ 31:b5:f5:a8:48:a4:3b:08:2d:a2:5d:90:d7:b4:7c:25:4f:11:
+ 56:30:c4:b6:44:9d:7b:2c:9d:e5:5e:e6:ef:0c:61:aa:bf:e4:
+ 2a:1b:ee:84:9e:b8:83:7d:c1:43:ce:44:a7:13:70:0d:91:1f:
+ f4:c8:13:ad:83:60:d9:d8:72:a8:73:24:1e:b5:ac:22:0e:ca:
+ 17:89:62:58:44:1b:ab:89:25:01:00:0f:cd:c4:1b:62:db:51:
+ b4:d3:0f:51:2a:9b:f4:bc:73:fc:76:ce:36:a4:cd:d9:d8:2c:
+ ea:ae:9b:f5:2a:b2:90:d1:4d:75:18:8a:3f:8a:41:90:23:7d:
+ 5b:4b:fe:a4:03:58:9b:46:b2:c3:60:60:83:f8:7d:50:41:ce:
+ c2:a1:90:c3:bb:ef:02:2f:d2:15:54:ee:44:15:d9:0a:ae:a7:
+ 8a:33:ed:b1:2d:76:36:26:dc:04:eb:9f:f7:61:1f:15:dc:87:
+ 6f:ee:46:96:28:ad:a1:26:7d:0a:09:a7:2e:04:a3:8d:bc:f8:
+ bc:04:30:01
+-----BEGIN CERTIFICATE-----
+MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
+EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
+ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3
+MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
+EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE
+CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD
+EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD
+BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv
+K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e
+cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY
+pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n
+eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB
+AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
+HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv
+9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
+b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n
+b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG
+CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv
+MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz
+91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2
+RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi
+DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11
+GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x
+LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert31[] = {
+ 0x30, 0x82, 0x04, 0xd0, 0x30, 0x82, 0x03, 0xb8, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x01, 0x07, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x83, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72,
+ 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
+ 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61,
+ 0x6c, 0x65, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x11, 0x47, 0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x28, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64,
+ 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37, 0x30, 0x30, 0x30,
+ 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37,
+ 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x81, 0xb4, 0x31, 0x0b, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a,
+ 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07,
+ 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65,
+ 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x47,
+ 0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2c, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x65,
+ 0x72, 0x74, 0x73, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
+ 0x72, 0x79, 0x2f, 0x31, 0x33, 0x30, 0x31, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x2a, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20, 0x53,
+ 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+ 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xb9, 0xe0, 0xcb, 0x10, 0xd4, 0xaf, 0x76,
+ 0xbd, 0xd4, 0x93, 0x62, 0xeb, 0x30, 0x64, 0xb8, 0x81, 0x08, 0x6c, 0xc3,
+ 0x04, 0xd9, 0x62, 0x17, 0x8e, 0x2f, 0xff, 0x3e, 0x65, 0xcf, 0x8f, 0xce,
+ 0x62, 0xe6, 0x3c, 0x52, 0x1c, 0xda, 0x16, 0x45, 0x4b, 0x55, 0xab, 0x78,
+ 0x6b, 0x63, 0x83, 0x62, 0x90, 0xce, 0x0f, 0x69, 0x6c, 0x99, 0xc8, 0x1a,
+ 0x14, 0x8b, 0x4c, 0xcc, 0x45, 0x33, 0xea, 0x88, 0xdc, 0x9e, 0xa3, 0xaf,
+ 0x2b, 0xfe, 0x80, 0x61, 0x9d, 0x79, 0x57, 0xc4, 0xcf, 0x2e, 0xf4, 0x3f,
+ 0x30, 0x3c, 0x5d, 0x47, 0xfc, 0x9a, 0x16, 0xbc, 0xc3, 0x37, 0x96, 0x41,
+ 0x51, 0x8e, 0x11, 0x4b, 0x54, 0xf8, 0x28, 0xbe, 0xd0, 0x8c, 0xbe, 0xf0,
+ 0x30, 0x38, 0x1e, 0xf3, 0xb0, 0x26, 0xf8, 0x66, 0x47, 0x63, 0x6d, 0xde,
+ 0x71, 0x26, 0x47, 0x8f, 0x38, 0x47, 0x53, 0xd1, 0x46, 0x1d, 0xb4, 0xe3,
+ 0xdc, 0x00, 0xea, 0x45, 0xac, 0xbd, 0xbc, 0x71, 0xd9, 0xaa, 0x6f, 0x00,
+ 0xdb, 0xdb, 0xcd, 0x30, 0x3a, 0x79, 0x4f, 0x5f, 0x4c, 0x47, 0xf8, 0x1d,
+ 0xef, 0x5b, 0xc2, 0xc4, 0x9d, 0x60, 0x3b, 0xb1, 0xb2, 0x43, 0x91, 0xd8,
+ 0xa4, 0x33, 0x4e, 0xea, 0xb3, 0xd6, 0x27, 0x4f, 0xad, 0x25, 0x8a, 0xa5,
+ 0xc6, 0xf4, 0xd5, 0xd0, 0xa6, 0xae, 0x74, 0x05, 0x64, 0x57, 0x88, 0xb5,
+ 0x44, 0x55, 0xd4, 0x2d, 0x2a, 0x3a, 0x3e, 0xf8, 0xb8, 0xbd, 0xe9, 0x32,
+ 0x0a, 0x02, 0x94, 0x64, 0xc4, 0x16, 0x3a, 0x50, 0xf1, 0x4a, 0xae, 0xe7,
+ 0x79, 0x33, 0xaf, 0x0c, 0x20, 0x07, 0x7f, 0xe8, 0xdf, 0x04, 0x39, 0xc2,
+ 0x69, 0x02, 0x6c, 0x63, 0x52, 0xfa, 0x77, 0xc1, 0x1b, 0xc8, 0x74, 0x87,
+ 0xc8, 0xb9, 0x93, 0x18, 0x50, 0x54, 0x35, 0x4b, 0x69, 0x4e, 0xbc, 0x3b,
+ 0xd3, 0x49, 0x2e, 0x1f, 0xdc, 0xc1, 0xd2, 0x52, 0xfb, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x1a, 0x30, 0x82, 0x01, 0x16, 0x30, 0x0f,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+ 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x40, 0xc2, 0xbd, 0x27, 0x8e, 0xcc,
+ 0x34, 0x83, 0x30, 0xa2, 0x33, 0xd7, 0xfb, 0x6c, 0xb3, 0xf0, 0xb4, 0x2c,
+ 0x80, 0xce, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0x3a, 0x9a, 0x85, 0x07, 0x10, 0x67, 0x28, 0xb6, 0xef,
+ 0xf6, 0xbd, 0x05, 0x41, 0x6e, 0x20, 0xc1, 0x94, 0xda, 0x0f, 0xde, 0x30,
+ 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x35, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67,
+ 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67,
+ 0x64, 0x72, 0x6f, 0x6f, 0x74, 0x2d, 0x67, 0x32, 0x2e, 0x63, 0x72, 0x6c,
+ 0x30, 0x46, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d, 0x30,
+ 0x3b, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x33, 0x30, 0x31, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68,
+ 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73,
+ 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x08, 0x7e, 0x6c, 0x93,
+ 0x10, 0xc8, 0x38, 0xb8, 0x96, 0xa9, 0x90, 0x4b, 0xff, 0xa1, 0x5f, 0x4f,
+ 0x04, 0xef, 0x6c, 0x3e, 0x9c, 0x88, 0x06, 0xc9, 0x50, 0x8f, 0xa6, 0x73,
+ 0xf7, 0x57, 0x31, 0x1b, 0xbe, 0xbc, 0xe4, 0x2f, 0xdb, 0xf8, 0xba, 0xd3,
+ 0x5b, 0xe0, 0xb4, 0xe7, 0xe6, 0x79, 0x62, 0x0e, 0x0c, 0xa2, 0xd7, 0x6a,
+ 0x63, 0x73, 0x31, 0xb5, 0xf5, 0xa8, 0x48, 0xa4, 0x3b, 0x08, 0x2d, 0xa2,
+ 0x5d, 0x90, 0xd7, 0xb4, 0x7c, 0x25, 0x4f, 0x11, 0x56, 0x30, 0xc4, 0xb6,
+ 0x44, 0x9d, 0x7b, 0x2c, 0x9d, 0xe5, 0x5e, 0xe6, 0xef, 0x0c, 0x61, 0xaa,
+ 0xbf, 0xe4, 0x2a, 0x1b, 0xee, 0x84, 0x9e, 0xb8, 0x83, 0x7d, 0xc1, 0x43,
+ 0xce, 0x44, 0xa7, 0x13, 0x70, 0x0d, 0x91, 0x1f, 0xf4, 0xc8, 0x13, 0xad,
+ 0x83, 0x60, 0xd9, 0xd8, 0x72, 0xa8, 0x73, 0x24, 0x1e, 0xb5, 0xac, 0x22,
+ 0x0e, 0xca, 0x17, 0x89, 0x62, 0x58, 0x44, 0x1b, 0xab, 0x89, 0x25, 0x01,
+ 0x00, 0x0f, 0xcd, 0xc4, 0x1b, 0x62, 0xdb, 0x51, 0xb4, 0xd3, 0x0f, 0x51,
+ 0x2a, 0x9b, 0xf4, 0xbc, 0x73, 0xfc, 0x76, 0xce, 0x36, 0xa4, 0xcd, 0xd9,
+ 0xd8, 0x2c, 0xea, 0xae, 0x9b, 0xf5, 0x2a, 0xb2, 0x90, 0xd1, 0x4d, 0x75,
+ 0x18, 0x8a, 0x3f, 0x8a, 0x41, 0x90, 0x23, 0x7d, 0x5b, 0x4b, 0xfe, 0xa4,
+ 0x03, 0x58, 0x9b, 0x46, 0xb2, 0xc3, 0x60, 0x60, 0x83, 0xf8, 0x7d, 0x50,
+ 0x41, 0xce, 0xc2, 0xa1, 0x90, 0xc3, 0xbb, 0xef, 0x02, 0x2f, 0xd2, 0x15,
+ 0x54, 0xee, 0x44, 0x15, 0xd9, 0x0a, 0xae, 0xa7, 0x8a, 0x33, 0xed, 0xb1,
+ 0x2d, 0x76, 0x36, 0x26, 0xdc, 0x04, 0xeb, 0x9f, 0xf7, 0x61, 0x1f, 0x15,
+ 0xdc, 0x87, 0x6f, 0xee, 0x46, 0x96, 0x28, 0xad, 0xa1, 0x26, 0x7d, 0x0a,
+ 0x09, 0xa7, 0x2e, 0x04, 0xa3, 0x8d, 0xbc, 0xf8, 0xbc, 0x04, 0x30, 0x01,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 0a:48:9e:88:53:7e:8a:a6:45:4d:6e:2c:4b:2a:eb:20
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2008 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA - G3
+ Validity
+ Not Before: Apr 9 00:00:00 2013 GMT
+ Not After : Apr 8 23:59:59 2023 GMT
+ Subject: C=US, O=thawte, Inc., CN=thawte Extended Validation SHA256 SSL CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:f2:c4:bc:74:e8:25:f6:00:62:28:e3:4c:e8:b8:
+ df:13:9f:8b:07:37:ef:62:4a:f1:57:09:f6:82:e8:
+ 75:f0:0a:a9:27:cf:93:3b:ec:36:89:a5:6e:1d:d6:
+ 54:f3:b8:04:97:72:b4:69:25:cc:d1:42:0e:5b:d5:
+ 1c:7f:a2:60:6e:b1:52:1a:db:93:2f:bb:0b:0d:64:
+ 53:16:cb:1c:09:24:95:29:22:b4:8a:18:00:89:fe:
+ f7:1f:72:c8:e8:5c:2f:1a:1b:a2:18:b8:ef:18:5c:
+ cb:b5:db:3a:4e:db:0f:ae:df:c4:79:e3:1e:aa:5c:
+ a3:a4:e5:ac:61:9b:37:85:8f:48:75:1b:b9:d5:68:
+ 96:e9:27:79:70:57:23:1a:bb:6c:93:90:c7:45:d7:
+ 17:d2:37:2a:76:b3:cd:82:a9:4f:c0:03:7b:e1:3d:
+ 7a:7e:5b:b8:85:f2:f5:15:fb:70:a9:bd:f5:50:65:
+ 16:9d:e3:b6:6b:61:6e:a1:7a:9e:e8:0d:1c:f7:2a:
+ 8e:69:7e:43:30:8e:78:ce:ee:65:1e:3b:9b:87:1e:
+ 49:1c:f8:32:46:5d:28:46:79:2a:4e:27:5d:17:58:
+ a8:37:fe:a8:13:a9:69:15:df:36:22:89:75:ba:ca:
+ 01:40:2e:ed:9d:d7:0c:aa:31:ce:27:ae:57:d5:d2:
+ 51:fb
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://ocsp.thawte.com
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.thawte.com/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.thawte.com/ThawtePCA-G3.crl
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=VeriSignMPKI-2-374
+ X509v3 Subject Key Identifier:
+ 3B:24:C8:31:A0:B7:5A:D0:6A:B8:D2:CA:07:74:CC:1E:24:D4:C4:DC
+ X509v3 Authority Key Identifier:
+ keyid:AD:6C:AA:94:60:9C:ED:E4:FF:FA:3E:0A:74:2B:63:03:F7:B6:59:BF
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 68:98:26:aa:d4:33:c9:ba:75:70:d4:9f:49:ad:d6:c1:54:dc:
+ ee:aa:56:1f:78:a7:f0:a1:a4:ee:0b:f9:12:af:df:a6:b8:ee:
+ c3:cb:35:13:6a:59:2a:f8:c9:e9:4c:2f:bc:b1:bc:2b:c2:02:
+ 30:e1:c3:be:c2:f0:81:8c:99:77:89:58:00:a3:cc:7f:a3:02:
+ 4c:53:b2:6e:36:4f:fe:df:87:76:b3:3f:ec:5a:62:50:b6:00:
+ 45:58:f2:87:ac:77:e6:d0:20:50:63:c5:e4:b2:70:15:18:90:
+ 05:7b:7b:af:2b:46:be:6b:4e:1f:53:fc:84:27:ae:83:d2:8d:
+ 47:53:a7:0e:1f:63:b5:ba:db:16:d8:6a:09:25:55:7d:8f:3d:
+ 4a:c1:83:f9:b3:b9:a7:04:5a:c8:f3:11:04:91:53:30:d9:52:
+ 87:cb:39:00:9c:ec:53:c3:02:09:7e:a7:36:8e:72:21:2f:23:
+ bb:4c:c6:47:a5:a1:ee:67:c4:2f:5c:3a:47:38:61:e2:c3:1e:
+ 37:92:9e:c8:2f:6b:fa:ef:d2:c3:cd:29:8d:98:f8:52:17:ed:
+ b5:53:3c:df:af:c9:1b:62:ad:df:02:ee:5d:34:f6:41:4b:cb:
+ c3:55:af:b1:cb:da:9c:73:d5:02:a8:2d:a7:ac:fc:e1:e5:07:
+ d0:51:e8:35
+-----BEGIN CERTIFICATE-----
+MIIE0DCCA7igAwIBAgIQCkieiFN+iqZFTW4sSyrrIDANBgkqhkiG9w0BAQsFADCB
+rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
+BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0xMzA0MDkwMDAwMDBa
+Fw0yMzA0MDgyMzU5NTlaMFcxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUs
+IEluYy4xMTAvBgNVBAMTKHRoYXd0ZSBFeHRlbmRlZCBWYWxpZGF0aW9uIFNIQTI1
+NiBTU0wgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDyxLx06CX2
+AGIo40zouN8Tn4sHN+9iSvFXCfaC6HXwCqknz5M77DaJpW4d1lTzuASXcrRpJczR
+Qg5b1Rx/omBusVIa25MvuwsNZFMWyxwJJJUpIrSKGACJ/vcfcsjoXC8aG6IYuO8Y
+XMu12zpO2w+u38R54x6qXKOk5axhmzeFj0h1G7nVaJbpJ3lwVyMau2yTkMdF1xfS
+Nyp2s82CqU/AA3vhPXp+W7iF8vUV+3CpvfVQZRad47ZrYW6hep7oDRz3Ko5pfkMw
+jnjO7mUeO5uHHkkc+DJGXShGeSpOJ10XWKg3/qgTqWkV3zYiiXW6ygFALu2d1wyq
+Mc4nrlfV0lH7AgMBAAGjggE+MIIBOjASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud
+DwEB/wQEAwIBBjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9v
+Y3NwLnRoYXd0ZS5jb20wOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEW
+Gmh0dHBzOi8vd3d3LnRoYXd0ZS5jb20vY3BzMDcGA1UdHwQwMC4wLKAqoCiGJmh0
+dHA6Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVQQ0EtRzMuY3JsMCoGA1UdEQQjMCGk
+HzAdMRswGQYDVQQDExJWZXJpU2lnbk1QS0ktMi0zNzQwHQYDVR0OBBYEFDskyDGg
+t1rQarjSygd0zB4k1MTcMB8GA1UdIwQYMBaAFK1sqpRgnO3k//o+CnQrYwP3tlm/
+MA0GCSqGSIb3DQEBCwUAA4IBAQBomCaq1DPJunVw1J9JrdbBVNzuqlYfeKfwoaTu
+C/kSr9+muO7DyzUTalkq+MnpTC+8sbwrwgIw4cO+wvCBjJl3iVgAo8x/owJMU7Ju
+Nk/+34d2sz/sWmJQtgBFWPKHrHfm0CBQY8XksnAVGJAFe3uvK0a+a04fU/yEJ66D
+0o1HU6cOH2O1utsW2GoJJVV9jz1KwYP5s7mnBFrI8xEEkVMw2VKHyzkAnOxTwwIJ
+fqc2jnIhLyO7TMZHpaHuZ8QvXDpHOGHiwx43kp7IL2v679LDzSmNmPhSF+21Uzzf
+r8kbYq3fAu5dNPZBS8vDVa+xy9qcc9UCqC2nrPzh5QfQUeg1
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert32[] = {
+ 0x30, 0x82, 0x04, 0xd0, 0x30, 0x82, 0x03, 0xb8, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x0a, 0x48, 0x9e, 0x88, 0x53, 0x7e, 0x8a, 0xa6, 0x45,
+ 0x4d, 0x6e, 0x2c, 0x4b, 0x2a, 0xeb, 0x20, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xae, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+ 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+ 0x30, 0x38, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x1b, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+ 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+ 0x33, 0x30, 0x34, 0x30, 0x39, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a,
+ 0x17, 0x0d, 0x32, 0x33, 0x30, 0x34, 0x30, 0x38, 0x32, 0x33, 0x35, 0x39,
+ 0x35, 0x39, 0x5a, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03,
+ 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c,
+ 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x28, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x45,
+ 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x56, 0x61, 0x6c, 0x69,
+ 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35,
+ 0x36, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xf2, 0xc4, 0xbc, 0x74, 0xe8, 0x25, 0xf6,
+ 0x00, 0x62, 0x28, 0xe3, 0x4c, 0xe8, 0xb8, 0xdf, 0x13, 0x9f, 0x8b, 0x07,
+ 0x37, 0xef, 0x62, 0x4a, 0xf1, 0x57, 0x09, 0xf6, 0x82, 0xe8, 0x75, 0xf0,
+ 0x0a, 0xa9, 0x27, 0xcf, 0x93, 0x3b, 0xec, 0x36, 0x89, 0xa5, 0x6e, 0x1d,
+ 0xd6, 0x54, 0xf3, 0xb8, 0x04, 0x97, 0x72, 0xb4, 0x69, 0x25, 0xcc, 0xd1,
+ 0x42, 0x0e, 0x5b, 0xd5, 0x1c, 0x7f, 0xa2, 0x60, 0x6e, 0xb1, 0x52, 0x1a,
+ 0xdb, 0x93, 0x2f, 0xbb, 0x0b, 0x0d, 0x64, 0x53, 0x16, 0xcb, 0x1c, 0x09,
+ 0x24, 0x95, 0x29, 0x22, 0xb4, 0x8a, 0x18, 0x00, 0x89, 0xfe, 0xf7, 0x1f,
+ 0x72, 0xc8, 0xe8, 0x5c, 0x2f, 0x1a, 0x1b, 0xa2, 0x18, 0xb8, 0xef, 0x18,
+ 0x5c, 0xcb, 0xb5, 0xdb, 0x3a, 0x4e, 0xdb, 0x0f, 0xae, 0xdf, 0xc4, 0x79,
+ 0xe3, 0x1e, 0xaa, 0x5c, 0xa3, 0xa4, 0xe5, 0xac, 0x61, 0x9b, 0x37, 0x85,
+ 0x8f, 0x48, 0x75, 0x1b, 0xb9, 0xd5, 0x68, 0x96, 0xe9, 0x27, 0x79, 0x70,
+ 0x57, 0x23, 0x1a, 0xbb, 0x6c, 0x93, 0x90, 0xc7, 0x45, 0xd7, 0x17, 0xd2,
+ 0x37, 0x2a, 0x76, 0xb3, 0xcd, 0x82, 0xa9, 0x4f, 0xc0, 0x03, 0x7b, 0xe1,
+ 0x3d, 0x7a, 0x7e, 0x5b, 0xb8, 0x85, 0xf2, 0xf5, 0x15, 0xfb, 0x70, 0xa9,
+ 0xbd, 0xf5, 0x50, 0x65, 0x16, 0x9d, 0xe3, 0xb6, 0x6b, 0x61, 0x6e, 0xa1,
+ 0x7a, 0x9e, 0xe8, 0x0d, 0x1c, 0xf7, 0x2a, 0x8e, 0x69, 0x7e, 0x43, 0x30,
+ 0x8e, 0x78, 0xce, 0xee, 0x65, 0x1e, 0x3b, 0x9b, 0x87, 0x1e, 0x49, 0x1c,
+ 0xf8, 0x32, 0x46, 0x5d, 0x28, 0x46, 0x79, 0x2a, 0x4e, 0x27, 0x5d, 0x17,
+ 0x58, 0xa8, 0x37, 0xfe, 0xa8, 0x13, 0xa9, 0x69, 0x15, 0xdf, 0x36, 0x22,
+ 0x89, 0x75, 0xba, 0xca, 0x01, 0x40, 0x2e, 0xed, 0x9d, 0xd7, 0x0c, 0xaa,
+ 0x31, 0xce, 0x27, 0xae, 0x57, 0xd5, 0xd2, 0x51, 0xfb, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x3e, 0x30, 0x82, 0x01, 0x3a, 0x30, 0x12,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06,
+ 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x32,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x26,
+ 0x30, 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x01, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f,
+ 0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30,
+ 0x32, 0x30, 0x30, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30,
+ 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16,
+ 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
+ 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x63, 0x70, 0x73, 0x30, 0x37, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x30,
+ 0x30, 0x2e, 0x30, 0x2c, 0xa0, 0x2a, 0xa0, 0x28, 0x86, 0x26, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x74, 0x68, 0x61,
+ 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77,
+ 0x74, 0x65, 0x50, 0x43, 0x41, 0x2d, 0x47, 0x33, 0x2e, 0x63, 0x72, 0x6c,
+ 0x30, 0x2a, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x23, 0x30, 0x21, 0xa4,
+ 0x1f, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x12, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50,
+ 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x33, 0x37, 0x34, 0x30, 0x1d, 0x06, 0x03,
+ 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x3b, 0x24, 0xc8, 0x31, 0xa0,
+ 0xb7, 0x5a, 0xd0, 0x6a, 0xb8, 0xd2, 0xca, 0x07, 0x74, 0xcc, 0x1e, 0x24,
+ 0xd4, 0xc4, 0xdc, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
+ 0x30, 0x16, 0x80, 0x14, 0xad, 0x6c, 0xaa, 0x94, 0x60, 0x9c, 0xed, 0xe4,
+ 0xff, 0xfa, 0x3e, 0x0a, 0x74, 0x2b, 0x63, 0x03, 0xf7, 0xb6, 0x59, 0xbf,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x68, 0x98, 0x26, 0xaa,
+ 0xd4, 0x33, 0xc9, 0xba, 0x75, 0x70, 0xd4, 0x9f, 0x49, 0xad, 0xd6, 0xc1,
+ 0x54, 0xdc, 0xee, 0xaa, 0x56, 0x1f, 0x78, 0xa7, 0xf0, 0xa1, 0xa4, 0xee,
+ 0x0b, 0xf9, 0x12, 0xaf, 0xdf, 0xa6, 0xb8, 0xee, 0xc3, 0xcb, 0x35, 0x13,
+ 0x6a, 0x59, 0x2a, 0xf8, 0xc9, 0xe9, 0x4c, 0x2f, 0xbc, 0xb1, 0xbc, 0x2b,
+ 0xc2, 0x02, 0x30, 0xe1, 0xc3, 0xbe, 0xc2, 0xf0, 0x81, 0x8c, 0x99, 0x77,
+ 0x89, 0x58, 0x00, 0xa3, 0xcc, 0x7f, 0xa3, 0x02, 0x4c, 0x53, 0xb2, 0x6e,
+ 0x36, 0x4f, 0xfe, 0xdf, 0x87, 0x76, 0xb3, 0x3f, 0xec, 0x5a, 0x62, 0x50,
+ 0xb6, 0x00, 0x45, 0x58, 0xf2, 0x87, 0xac, 0x77, 0xe6, 0xd0, 0x20, 0x50,
+ 0x63, 0xc5, 0xe4, 0xb2, 0x70, 0x15, 0x18, 0x90, 0x05, 0x7b, 0x7b, 0xaf,
+ 0x2b, 0x46, 0xbe, 0x6b, 0x4e, 0x1f, 0x53, 0xfc, 0x84, 0x27, 0xae, 0x83,
+ 0xd2, 0x8d, 0x47, 0x53, 0xa7, 0x0e, 0x1f, 0x63, 0xb5, 0xba, 0xdb, 0x16,
+ 0xd8, 0x6a, 0x09, 0x25, 0x55, 0x7d, 0x8f, 0x3d, 0x4a, 0xc1, 0x83, 0xf9,
+ 0xb3, 0xb9, 0xa7, 0x04, 0x5a, 0xc8, 0xf3, 0x11, 0x04, 0x91, 0x53, 0x30,
+ 0xd9, 0x52, 0x87, 0xcb, 0x39, 0x00, 0x9c, 0xec, 0x53, 0xc3, 0x02, 0x09,
+ 0x7e, 0xa7, 0x36, 0x8e, 0x72, 0x21, 0x2f, 0x23, 0xbb, 0x4c, 0xc6, 0x47,
+ 0xa5, 0xa1, 0xee, 0x67, 0xc4, 0x2f, 0x5c, 0x3a, 0x47, 0x38, 0x61, 0xe2,
+ 0xc3, 0x1e, 0x37, 0x92, 0x9e, 0xc8, 0x2f, 0x6b, 0xfa, 0xef, 0xd2, 0xc3,
+ 0xcd, 0x29, 0x8d, 0x98, 0xf8, 0x52, 0x17, 0xed, 0xb5, 0x53, 0x3c, 0xdf,
+ 0xaf, 0xc9, 0x1b, 0x62, 0xad, 0xdf, 0x02, 0xee, 0x5d, 0x34, 0xf6, 0x41,
+ 0x4b, 0xcb, 0xc3, 0x55, 0xaf, 0xb1, 0xcb, 0xda, 0x9c, 0x73, 0xd5, 0x02,
+ 0xa8, 0x2d, 0xa7, 0xac, 0xfc, 0xe1, 0xe5, 0x07, 0xd0, 0x51, 0xe8, 0x35,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 25:0c:e8:e0:30:61:2e:9f:2b:89:f7:05:4d:7c:f8:fd
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
+ Validity
+ Not Before: Nov 8 00:00:00 2006 GMT
+ Not After : Nov 7 23:59:59 2021 GMT
+ Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:af:24:08:08:29:7a:35:9e:60:0c:aa:e7:4b:3b:
+ 4e:dc:7c:bc:3c:45:1c:bb:2b:e0:fe:29:02:f9:57:
+ 08:a3:64:85:15:27:f5:f1:ad:c8:31:89:5d:22:e8:
+ 2a:aa:a6:42:b3:8f:f8:b9:55:b7:b1:b7:4b:b3:fe:
+ 8f:7e:07:57:ec:ef:43:db:66:62:15:61:cf:60:0d:
+ a4:d8:de:f8:e0:c3:62:08:3d:54:13:eb:49:ca:59:
+ 54:85:26:e5:2b:8f:1b:9f:eb:f5:a1:91:c2:33:49:
+ d8:43:63:6a:52:4b:d2:8f:e8:70:51:4d:d1:89:69:
+ 7b:c7:70:f6:b3:dc:12:74:db:7b:5d:4b:56:d3:96:
+ bf:15:77:a1:b0:f4:a2:25:f2:af:1c:92:67:18:e5:
+ f4:06:04:ef:90:b9:e4:00:e4:dd:3a:b5:19:ff:02:
+ ba:f4:3c:ee:e0:8b:eb:37:8b:ec:f4:d7:ac:f2:f6:
+ f0:3d:af:dd:75:91:33:19:1d:1c:40:cb:74:24:19:
+ 21:93:d9:14:fe:ac:2a:52:c7:8f:d5:04:49:e4:8d:
+ 63:47:88:3c:69:83:cb:fe:47:bd:2b:7e:4f:c5:95:
+ ae:0e:9d:d4:d1:43:c0:67:73:e3:14:08:7e:e5:3f:
+ 9f:73:b8:33:0a:cf:5d:3f:34:87:96:8a:ee:53:e8:
+ 25:15
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.verisign.com/pca3.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.verisign.com/cps
+
+ X509v3 Subject Key Identifier:
+ 7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+ 1.3.6.1.5.5.7.1.12:
+ 0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+ Authority Information Access:
+ OCSP - URI:http://ocsp.verisign.com
+
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication, Code Signing, Netscape Server Gated Crypto, 2.16.840.1.113733.1.8.1
+ Signature Algorithm: sha1WithRSAEncryption
+ 13:02:dd:f8:e8:86:00:f2:5a:f8:f8:20:0c:59:88:62:07:ce:
+ ce:f7:4e:f9:bb:59:a1:98:e5:e1:38:dd:4e:bc:66:18:d3:ad:
+ eb:18:f2:0d:c9:6d:3e:4a:94:20:c3:3c:ba:bd:65:54:c6:af:
+ 44:b3:10:ad:2c:6b:3e:ab:d7:07:b6:b8:81:63:c5:f9:5e:2e:
+ e5:2a:67:ce:cd:33:0c:2a:d7:89:56:03:23:1f:b3:be:e8:3a:
+ 08:59:b4:ec:45:35:f7:8a:5b:ff:66:cf:50:af:c6:6d:57:8d:
+ 19:78:b7:b9:a2:d1:57:ea:1f:9a:4b:af:ba:c9:8e:12:7e:c6:
+ bd:ff
+-----BEGIN CERTIFICATE-----
+MIIE0DCCBDmgAwIBAgIQJQzo4DBhLp8rifcFTXz4/TANBgkqhkiG9w0BAQUFADBf
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
+LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv
+ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8
+RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb
+ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR
+TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH
+iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB
+AAGjggGbMIIBlzAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0
+dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjA9
+BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVy
+aXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwbQYI
+KwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQU
+j+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29t
+L3ZzbG9nby5naWYwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
+b2NzcC52ZXJpc2lnbi5jb20wPgYDVR0lBDcwNQYIKwYBBQUHAwEGCCsGAQUFBwMC
+BggrBgEFBQcDAwYJYIZIAYb4QgQBBgpghkgBhvhFAQgBMA0GCSqGSIb3DQEBBQUA
+A4GBABMC3fjohgDyWvj4IAxZiGIHzs73Tvm7WaGY5eE43U68ZhjTresY8g3JbT5K
+lCDDPLq9ZVTGr0SzEK0saz6r1we2uIFjxfleLuUqZ87NMwwq14lWAyMfs77oOghZ
+tOxFNfeKW/9mz1Cvxm1XjRl4t7mi0VfqH5pLr7rJjhJ+xr3/
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert33[] = {
+ 0x30, 0x82, 0x04, 0xd0, 0x30, 0x82, 0x04, 0x39, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x25, 0x0c, 0xe8, 0xe0, 0x30, 0x61, 0x2e, 0x9f, 0x2b,
+ 0x89, 0xf7, 0x05, 0x4d, 0x7c, 0xf8, 0xfd, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e,
+ 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x37, 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62,
+ 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30,
+ 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x30, 0x38, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31, 0x30, 0x37,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xca, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+ 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3a, 0x30,
+ 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28, 0x63, 0x29, 0x20,
+ 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+ 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f,
+ 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64,
+ 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x45, 0x30,
+ 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
+ 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xaf, 0x24, 0x08, 0x08, 0x29, 0x7a, 0x35,
+ 0x9e, 0x60, 0x0c, 0xaa, 0xe7, 0x4b, 0x3b, 0x4e, 0xdc, 0x7c, 0xbc, 0x3c,
+ 0x45, 0x1c, 0xbb, 0x2b, 0xe0, 0xfe, 0x29, 0x02, 0xf9, 0x57, 0x08, 0xa3,
+ 0x64, 0x85, 0x15, 0x27, 0xf5, 0xf1, 0xad, 0xc8, 0x31, 0x89, 0x5d, 0x22,
+ 0xe8, 0x2a, 0xaa, 0xa6, 0x42, 0xb3, 0x8f, 0xf8, 0xb9, 0x55, 0xb7, 0xb1,
+ 0xb7, 0x4b, 0xb3, 0xfe, 0x8f, 0x7e, 0x07, 0x57, 0xec, 0xef, 0x43, 0xdb,
+ 0x66, 0x62, 0x15, 0x61, 0xcf, 0x60, 0x0d, 0xa4, 0xd8, 0xde, 0xf8, 0xe0,
+ 0xc3, 0x62, 0x08, 0x3d, 0x54, 0x13, 0xeb, 0x49, 0xca, 0x59, 0x54, 0x85,
+ 0x26, 0xe5, 0x2b, 0x8f, 0x1b, 0x9f, 0xeb, 0xf5, 0xa1, 0x91, 0xc2, 0x33,
+ 0x49, 0xd8, 0x43, 0x63, 0x6a, 0x52, 0x4b, 0xd2, 0x8f, 0xe8, 0x70, 0x51,
+ 0x4d, 0xd1, 0x89, 0x69, 0x7b, 0xc7, 0x70, 0xf6, 0xb3, 0xdc, 0x12, 0x74,
+ 0xdb, 0x7b, 0x5d, 0x4b, 0x56, 0xd3, 0x96, 0xbf, 0x15, 0x77, 0xa1, 0xb0,
+ 0xf4, 0xa2, 0x25, 0xf2, 0xaf, 0x1c, 0x92, 0x67, 0x18, 0xe5, 0xf4, 0x06,
+ 0x04, 0xef, 0x90, 0xb9, 0xe4, 0x00, 0xe4, 0xdd, 0x3a, 0xb5, 0x19, 0xff,
+ 0x02, 0xba, 0xf4, 0x3c, 0xee, 0xe0, 0x8b, 0xeb, 0x37, 0x8b, 0xec, 0xf4,
+ 0xd7, 0xac, 0xf2, 0xf6, 0xf0, 0x3d, 0xaf, 0xdd, 0x75, 0x91, 0x33, 0x19,
+ 0x1d, 0x1c, 0x40, 0xcb, 0x74, 0x24, 0x19, 0x21, 0x93, 0xd9, 0x14, 0xfe,
+ 0xac, 0x2a, 0x52, 0xc7, 0x8f, 0xd5, 0x04, 0x49, 0xe4, 0x8d, 0x63, 0x47,
+ 0x88, 0x3c, 0x69, 0x83, 0xcb, 0xfe, 0x47, 0xbd, 0x2b, 0x7e, 0x4f, 0xc5,
+ 0x95, 0xae, 0x0e, 0x9d, 0xd4, 0xd1, 0x43, 0xc0, 0x67, 0x73, 0xe3, 0x14,
+ 0x08, 0x7e, 0xe5, 0x3f, 0x9f, 0x73, 0xb8, 0x33, 0x0a, 0xcf, 0x5d, 0x3f,
+ 0x34, 0x87, 0x96, 0x8a, 0xee, 0x53, 0xe8, 0x25, 0x15, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x9b, 0x30, 0x82, 0x01, 0x97, 0x30, 0x0f,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+ 0x01, 0x01, 0xff, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a,
+ 0x30, 0x28, 0x30, 0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72,
+ 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63,
+ 0x61, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3d,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+ 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+ 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72,
+ 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70,
+ 0x73, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+ 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x6d, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f,
+ 0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09,
+ 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30,
+ 0x1f, 0x30, 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14,
+ 0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80,
+ 0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e,
+ 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30,
+ 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67,
+ 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x3e, 0x06, 0x03, 0x55, 0x1d, 0x25,
+ 0x04, 0x37, 0x30, 0x35, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03, 0x06, 0x09,
+ 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x04, 0x01, 0x06, 0x0a, 0x60,
+ 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x08, 0x01, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00,
+ 0x03, 0x81, 0x81, 0x00, 0x13, 0x02, 0xdd, 0xf8, 0xe8, 0x86, 0x00, 0xf2,
+ 0x5a, 0xf8, 0xf8, 0x20, 0x0c, 0x59, 0x88, 0x62, 0x07, 0xce, 0xce, 0xf7,
+ 0x4e, 0xf9, 0xbb, 0x59, 0xa1, 0x98, 0xe5, 0xe1, 0x38, 0xdd, 0x4e, 0xbc,
+ 0x66, 0x18, 0xd3, 0xad, 0xeb, 0x18, 0xf2, 0x0d, 0xc9, 0x6d, 0x3e, 0x4a,
+ 0x94, 0x20, 0xc3, 0x3c, 0xba, 0xbd, 0x65, 0x54, 0xc6, 0xaf, 0x44, 0xb3,
+ 0x10, 0xad, 0x2c, 0x6b, 0x3e, 0xab, 0xd7, 0x07, 0xb6, 0xb8, 0x81, 0x63,
+ 0xc5, 0xf9, 0x5e, 0x2e, 0xe5, 0x2a, 0x67, 0xce, 0xcd, 0x33, 0x0c, 0x2a,
+ 0xd7, 0x89, 0x56, 0x03, 0x23, 0x1f, 0xb3, 0xbe, 0xe8, 0x3a, 0x08, 0x59,
+ 0xb4, 0xec, 0x45, 0x35, 0xf7, 0x8a, 0x5b, 0xff, 0x66, 0xcf, 0x50, 0xaf,
+ 0xc6, 0x6d, 0x57, 0x8d, 0x19, 0x78, 0xb7, 0xb9, 0xa2, 0xd1, 0x57, 0xea,
+ 0x1f, 0x9a, 0x4b, 0xaf, 0xba, 0xc9, 0x8e, 0x12, 0x7e, 0xc6, 0xbd, 0xff,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 2c:69:e1:2f:6a:67:0b:d9:9d:d2:0f:91:9e:f0:9e:51
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+ Validity
+ Not Before: Jun 10 00:00:00 2014 GMT
+ Not After : Jun 9 23:59:59 2024 GMT
+ Subject: C=US, O=thawte, Inc., OU=Domain Validated SSL, CN=thawte DV SSL CA - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:ea:94:07:85:c8:41:2c:f6:83:12:6c:92:5f:ab:
+ 1f:00:d4:96:6f:74:cd:2e:11:e9:6c:0f:39:01:b9:
+ 48:90:40:39:4d:c4:a2:c8:79:6a:a5:9a:bd:91:44:
+ 65:77:54:ad:ff:25:5f:ee:42:fb:b3:02:0f:ea:5d:
+ 7a:dd:1a:54:9e:d7:73:42:9b:cc:79:5f:c5:4d:f4:
+ b7:0b:18:39:20:7a:dd:50:01:5d:34:45:5f:4c:11:
+ 0e:f5:87:26:26:b4:b0:f3:7e:71:a0:31:71:50:89:
+ 68:5a:63:8a:14:62:e5:8c:3a:16:55:0d:3e:eb:aa:
+ 80:1d:71:7a:e3:87:07:ab:bd:a2:74:cd:da:08:01:
+ 9d:1b:cc:27:88:8c:47:d4:69:25:42:d6:bb:50:6d:
+ 85:50:d0:48:82:0d:08:9f:e9:23:e3:42:c6:3c:98:
+ b8:bb:6e:c5:70:13:df:19:1d:01:fd:d2:b5:4e:e6:
+ 62:f4:07:fa:6b:7d:11:77:c4:62:4f:40:4e:a5:78:
+ 97:ab:2c:4d:0c:a7:7c:c3:c4:50:32:9f:d0:70:9b:
+ 0f:ff:ff:75:59:34:85:ad:49:d5:35:ee:4f:5b:d4:
+ d4:36:95:a0:7e:e8:c5:a1:1c:bd:13:4e:7d:ee:63:
+ 6a:96:19:99:c8:a7:2a:00:e6:51:8d:46:eb:30:58:
+ e8:2d
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: https://www.thawte.com/cps
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://t.symcd.com
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://t.symcb.com/ThawtePCA.crl
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-698
+ X509v3 Subject Key Identifier:
+ 9F:B8:C1:A9:6C:F2:F5:C0:22:2A:94:ED:5C:99:AC:D4:EC:D7:C6:07
+ X509v3 Authority Key Identifier:
+ keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 53:54:f2:47:a8:02:d7:ef:aa:35:78:be:4a:08:0d:90:18:4b:
+ 6d:9e:2a:53:2b:e9:54:17:77:74:29:7e:d0:37:07:05:b8:e4:
+ fa:b8:b4:63:98:44:dc:c6:4f:81:06:8c:3a:be:c7:30:57:c6:
+ 70:fc:d6:93:19:9f:c3:55:d7:3e:1f:72:8a:9d:30:5a:35:97:
+ 32:cb:63:e4:c6:72:df:fb:68:ca:69:2f:db:cd:50:38:3e:2b:
+ bb:ab:3b:82:c7:fd:4b:9b:bd:7c:41:98:ef:01:53:d8:35:8f:
+ 25:c9:03:06:e6:9c:57:c1:51:0f:9e:f6:7d:93:4d:f8:76:c8:
+ 3a:6b:f4:c4:8f:33:32:7f:9d:21:84:34:d9:a7:f9:92:fa:41:
+ 91:61:84:05:9d:a3:79:46:ce:67:e7:81:f2:5e:ac:4c:bc:a8:
+ ab:6a:6d:15:e2:9c:4e:5a:d9:63:80:bc:f7:42:eb:9a:44:c6:
+ 8c:6b:06:36:b4:8b:32:89:de:c2:f1:a8:26:aa:a9:ac:ff:ea:
+ 71:a6:e7:8c:41:fa:17:35:bb:b3:87:31:a9:93:c2:c8:58:e1:
+ 0a:4e:95:83:9c:b9:ed:3b:a5:ef:08:e0:74:f9:c3:1b:e6:07:
+ a3:ee:07:d7:42:22:79:21:a0:a1:d4:1d:26:d3:d0:d6:a6:5d:
+ 2b:41:c0:79
+-----BEGIN CERTIFICATE-----
+MIIE0jCCA7qgAwIBAgIQLGnhL2pnC9md0g+RnvCeUTANBgkqhkiG9w0BAQsFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTQwNjEwMDAwMDAwWhcNMjQw
+NjA5MjM1OTU5WjBjMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
+MR0wGwYDVQQLExREb21haW4gVmFsaWRhdGVkIFNTTDEeMBwGA1UEAxMVdGhhd3Rl
+IERWIFNTTCBDQSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+6pQHhchBLPaDEmySX6sfANSWb3TNLhHpbA85AblIkEA5TcSiyHlqpZq9kURld1St
+/yVf7kL7swIP6l163RpUntdzQpvMeV/FTfS3Cxg5IHrdUAFdNEVfTBEO9YcmJrSw
+835xoDFxUIloWmOKFGLljDoWVQ0+66qAHXF644cHq72idM3aCAGdG8wniIxH1Gkl
+Qta7UG2FUNBIgg0In+kj40LGPJi4u27FcBPfGR0B/dK1TuZi9Af6a30Rd8RiT0BO
+pXiXqyxNDKd8w8RQMp/QcJsP//91WTSFrUnVNe5PW9TUNpWgfujFoRy9E0597mNq
+lhmZyKcqAOZRjUbrMFjoLQIDAQABo4IBOTCCATUwEgYDVR0TAQH/BAgwBgEB/wIB
+ADBBBgNVHSAEOjA4MDYGCmCGSAGG+EUBBzYwKDAmBggrBgEFBQcCARYaaHR0cHM6
+Ly93d3cudGhhd3RlLmNvbS9jcHMwDgYDVR0PAQH/BAQDAgEGMC4GCCsGAQUFBwEB
+BCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL3Quc3ltY2QuY29tMDEGA1UdHwQqMCgw
+JqAkoCKGIGh0dHA6Ly90LnN5bWNiLmNvbS9UaGF3dGVQQ0EuY3JsMCkGA1UdEQQi
+MCCkHjAcMRowGAYDVQQDExFTeW1hbnRlY1BLSS0xLTY5ODAdBgNVHQ4EFgQUn7jB
+qWzy9cAiKpTtXJms1OzXxgcwHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutX
+SFAwDQYJKoZIhvcNAQELBQADggEBAFNU8keoAtfvqjV4vkoIDZAYS22eKlMr6VQX
+d3QpftA3BwW45Pq4tGOYRNzGT4EGjDq+xzBXxnD81pMZn8NV1z4fcoqdMFo1lzLL
+Y+TGct/7aMppL9vNUDg+K7urO4LH/UubvXxBmO8BU9g1jyXJAwbmnFfBUQ+e9n2T
+Tfh2yDpr9MSPMzJ/nSGENNmn+ZL6QZFhhAWdo3lGzmfngfJerEy8qKtqbRXinE5a
+2WOAvPdC65pExoxrBja0izKJ3sLxqCaqqaz/6nGm54xB+hc1u7OHMamTwshY4QpO
+lYOcue07pe8I4HT5wxvmB6PuB9dCInkhoKHUHSbT0NamXStBwHk=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert34[] = {
+ 0x30, 0x82, 0x04, 0xd2, 0x30, 0x82, 0x03, 0xba, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x2c, 0x69, 0xe1, 0x2f, 0x6a, 0x67, 0x0b, 0xd9, 0x9d,
+ 0xd2, 0x0f, 0x91, 0x9e, 0xf0, 0x9e, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+ 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+ 0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+ 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x36, 0x31, 0x30,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30,
+ 0x36, 0x30, 0x39, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x63,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x14, 0x44,
+ 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x20, 0x53, 0x53, 0x4c, 0x31, 0x1e, 0x30, 0x1c, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x15, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+ 0x20, 0x44, 0x56, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d,
+ 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xea, 0x94, 0x07, 0x85, 0xc8, 0x41, 0x2c, 0xf6, 0x83, 0x12, 0x6c, 0x92,
+ 0x5f, 0xab, 0x1f, 0x00, 0xd4, 0x96, 0x6f, 0x74, 0xcd, 0x2e, 0x11, 0xe9,
+ 0x6c, 0x0f, 0x39, 0x01, 0xb9, 0x48, 0x90, 0x40, 0x39, 0x4d, 0xc4, 0xa2,
+ 0xc8, 0x79, 0x6a, 0xa5, 0x9a, 0xbd, 0x91, 0x44, 0x65, 0x77, 0x54, 0xad,
+ 0xff, 0x25, 0x5f, 0xee, 0x42, 0xfb, 0xb3, 0x02, 0x0f, 0xea, 0x5d, 0x7a,
+ 0xdd, 0x1a, 0x54, 0x9e, 0xd7, 0x73, 0x42, 0x9b, 0xcc, 0x79, 0x5f, 0xc5,
+ 0x4d, 0xf4, 0xb7, 0x0b, 0x18, 0x39, 0x20, 0x7a, 0xdd, 0x50, 0x01, 0x5d,
+ 0x34, 0x45, 0x5f, 0x4c, 0x11, 0x0e, 0xf5, 0x87, 0x26, 0x26, 0xb4, 0xb0,
+ 0xf3, 0x7e, 0x71, 0xa0, 0x31, 0x71, 0x50, 0x89, 0x68, 0x5a, 0x63, 0x8a,
+ 0x14, 0x62, 0xe5, 0x8c, 0x3a, 0x16, 0x55, 0x0d, 0x3e, 0xeb, 0xaa, 0x80,
+ 0x1d, 0x71, 0x7a, 0xe3, 0x87, 0x07, 0xab, 0xbd, 0xa2, 0x74, 0xcd, 0xda,
+ 0x08, 0x01, 0x9d, 0x1b, 0xcc, 0x27, 0x88, 0x8c, 0x47, 0xd4, 0x69, 0x25,
+ 0x42, 0xd6, 0xbb, 0x50, 0x6d, 0x85, 0x50, 0xd0, 0x48, 0x82, 0x0d, 0x08,
+ 0x9f, 0xe9, 0x23, 0xe3, 0x42, 0xc6, 0x3c, 0x98, 0xb8, 0xbb, 0x6e, 0xc5,
+ 0x70, 0x13, 0xdf, 0x19, 0x1d, 0x01, 0xfd, 0xd2, 0xb5, 0x4e, 0xe6, 0x62,
+ 0xf4, 0x07, 0xfa, 0x6b, 0x7d, 0x11, 0x77, 0xc4, 0x62, 0x4f, 0x40, 0x4e,
+ 0xa5, 0x78, 0x97, 0xab, 0x2c, 0x4d, 0x0c, 0xa7, 0x7c, 0xc3, 0xc4, 0x50,
+ 0x32, 0x9f, 0xd0, 0x70, 0x9b, 0x0f, 0xff, 0xff, 0x75, 0x59, 0x34, 0x85,
+ 0xad, 0x49, 0xd5, 0x35, 0xee, 0x4f, 0x5b, 0xd4, 0xd4, 0x36, 0x95, 0xa0,
+ 0x7e, 0xe8, 0xc5, 0xa1, 0x1c, 0xbd, 0x13, 0x4e, 0x7d, 0xee, 0x63, 0x6a,
+ 0x96, 0x19, 0x99, 0xc8, 0xa7, 0x2a, 0x00, 0xe6, 0x51, 0x8d, 0x46, 0xeb,
+ 0x30, 0x58, 0xe8, 0x2d, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
+ 0x39, 0x30, 0x82, 0x01, 0x35, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+ 0x00, 0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3a, 0x30, 0x38,
+ 0x30, 0x36, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01,
+ 0x07, 0x36, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a,
+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0e, 0x06, 0x03,
+ 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+ 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+ 0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x74, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a, 0x30, 0x28, 0x30,
+ 0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x74, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22,
+ 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65,
+ 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x36, 0x39, 0x38, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x9f, 0xb8, 0xc1,
+ 0xa9, 0x6c, 0xf2, 0xf5, 0xc0, 0x22, 0x2a, 0x94, 0xed, 0x5c, 0x99, 0xac,
+ 0xd4, 0xec, 0xd7, 0xc6, 0x07, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+ 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7b, 0x5b, 0x45, 0xcf, 0xaf, 0xce,
+ 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a, 0x6a, 0xb6, 0xf3, 0x46, 0xeb, 0x57,
+ 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x53, 0x54,
+ 0xf2, 0x47, 0xa8, 0x02, 0xd7, 0xef, 0xaa, 0x35, 0x78, 0xbe, 0x4a, 0x08,
+ 0x0d, 0x90, 0x18, 0x4b, 0x6d, 0x9e, 0x2a, 0x53, 0x2b, 0xe9, 0x54, 0x17,
+ 0x77, 0x74, 0x29, 0x7e, 0xd0, 0x37, 0x07, 0x05, 0xb8, 0xe4, 0xfa, 0xb8,
+ 0xb4, 0x63, 0x98, 0x44, 0xdc, 0xc6, 0x4f, 0x81, 0x06, 0x8c, 0x3a, 0xbe,
+ 0xc7, 0x30, 0x57, 0xc6, 0x70, 0xfc, 0xd6, 0x93, 0x19, 0x9f, 0xc3, 0x55,
+ 0xd7, 0x3e, 0x1f, 0x72, 0x8a, 0x9d, 0x30, 0x5a, 0x35, 0x97, 0x32, 0xcb,
+ 0x63, 0xe4, 0xc6, 0x72, 0xdf, 0xfb, 0x68, 0xca, 0x69, 0x2f, 0xdb, 0xcd,
+ 0x50, 0x38, 0x3e, 0x2b, 0xbb, 0xab, 0x3b, 0x82, 0xc7, 0xfd, 0x4b, 0x9b,
+ 0xbd, 0x7c, 0x41, 0x98, 0xef, 0x01, 0x53, 0xd8, 0x35, 0x8f, 0x25, 0xc9,
+ 0x03, 0x06, 0xe6, 0x9c, 0x57, 0xc1, 0x51, 0x0f, 0x9e, 0xf6, 0x7d, 0x93,
+ 0x4d, 0xf8, 0x76, 0xc8, 0x3a, 0x6b, 0xf4, 0xc4, 0x8f, 0x33, 0x32, 0x7f,
+ 0x9d, 0x21, 0x84, 0x34, 0xd9, 0xa7, 0xf9, 0x92, 0xfa, 0x41, 0x91, 0x61,
+ 0x84, 0x05, 0x9d, 0xa3, 0x79, 0x46, 0xce, 0x67, 0xe7, 0x81, 0xf2, 0x5e,
+ 0xac, 0x4c, 0xbc, 0xa8, 0xab, 0x6a, 0x6d, 0x15, 0xe2, 0x9c, 0x4e, 0x5a,
+ 0xd9, 0x63, 0x80, 0xbc, 0xf7, 0x42, 0xeb, 0x9a, 0x44, 0xc6, 0x8c, 0x6b,
+ 0x06, 0x36, 0xb4, 0x8b, 0x32, 0x89, 0xde, 0xc2, 0xf1, 0xa8, 0x26, 0xaa,
+ 0xa9, 0xac, 0xff, 0xea, 0x71, 0xa6, 0xe7, 0x8c, 0x41, 0xfa, 0x17, 0x35,
+ 0xbb, 0xb3, 0x87, 0x31, 0xa9, 0x93, 0xc2, 0xc8, 0x58, 0xe1, 0x0a, 0x4e,
+ 0x95, 0x83, 0x9c, 0xb9, 0xed, 0x3b, 0xa5, 0xef, 0x08, 0xe0, 0x74, 0xf9,
+ 0xc3, 0x1b, 0xe6, 0x07, 0xa3, 0xee, 0x07, 0xd7, 0x42, 0x22, 0x79, 0x21,
+ 0xa0, 0xa1, 0xd4, 0x1d, 0x26, 0xd3, 0xd0, 0xd6, 0xa6, 0x5d, 0x2b, 0x41,
+ 0xc0, 0x79,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 4f:e3:e2:65:21:07:ab:20:37:41:6e:48:70:ce:d2:c2
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root
+ Validity
+ Not Before: May 25 00:00:00 2010 GMT
+ Not After : May 30 10:48:38 2020 GMT
+ Subject: C=US, O=Trusted Secure Certificate Authority, CN=Trusted Secure Certificate Authority
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:80:0b:42:c6:06:6c:cf:22:b3:1a:9e:11:2e:42:
+ 6e:39:bf:e8:12:af:3c:42:21:12:95:40:5d:32:b1:
+ 6d:1c:21:d1:34:e5:4f:a8:d1:43:a2:26:4e:30:7d:
+ 73:44:2c:73:aa:c5:4d:66:01:19:d2:ea:50:59:65:
+ d0:68:9d:05:a0:7c:a1:79:53:d0:21:90:59:0e:37:
+ db:1e:dc:92:a7:8b:0d:c4:f5:f8:e6:ff:b5:35:1a:
+ da:a8:b6:9b:20:85:65:c4:a2:4d:df:f3:94:4d:63:
+ 7e:ee:89:07:af:fe:e1:ba:00:15:2d:c6:77:8e:a3:
+ fe:ad:cf:26:54:5a:df:fc:d2:de:c2:ad:f6:b2:23:
+ fd:a8:83:e5:65:bd:27:f7:27:1a:18:59:6a:9e:14:
+ f6:b4:86:ff:1c:58:14:43:73:96:24:bf:10:43:d5:
+ 5c:89:f0:ce:f7:e1:96:16:5e:18:4a:27:28:90:80:
+ 18:fc:32:fe:f4:c7:b8:d6:82:3d:35:af:bb:4a:1c:
+ 5b:05:78:f6:fd:55:3e:82:74:b2:73:b8:89:4e:f7:
+ 1b:85:9a:d8:ca:b1:5a:b1:00:20:41:14:30:2b:14:
+ 24:ed:37:0e:32:3e:23:88:39:7e:b9:d9:38:03:e2:
+ 4c:d9:0d:43:41:33:10:eb:30:72:53:88:f7:52:9b:
+ 4f:81
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A
+
+ X509v3 Subject Key Identifier:
+ CC:03:5B:96:5A:9E:16:CC:26:1E:BD:A3:70:FB:E3:CB:79:19:FC:4D
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.6449.1.2.2.8
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.usertrust.com/AddTrustExternalCARoot.crl
+
+ Authority Information Access:
+ CA Issuers - URI:http://crt.usertrust.com/AddTrustExternalCARoot.p7c
+ CA Issuers - URI:http://crt.usertrust.com/AddTrustUTNSGCCA.crt
+ OCSP - URI:http://ocsp.usertrust.com
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 7b:f0:fc:a1:28:47:bc:2b:b4:04:73:3f:4b:dd:1e:d1:b9:cd:
+ 1c:ed:7d:e5:e8:cb:51:f4:92:bf:dd:9c:0d:5c:6e:1d:95:ed:
+ 5b:70:50:89:d4:67:9a:15:54:d1:90:0a:fa:09:68:06:18:bb:
+ d7:27:e4:93:ff:43:48:81:3b:c8:59:49:35:ea:ac:b6:ae:46:
+ b5:d4:f3:b8:c3:c6:e4:91:bf:c9:34:fd:7e:d0:59:6e:61:a1:
+ 1f:48:63:54:b2:7d:46:bf:c8:fa:c3:bf:48:58:98:f6:69:84:
+ a7:16:69:08:27:a4:22:cb:a2:2c:c8:df:6e:a9:ee:f8:41:df:
+ 1b:a8:b7:f3:e3:ae:ce:a3:fe:d9:27:60:50:3f:04:7d:7a:44:
+ ea:76:42:5c:d3:55:46:ef:27:c5:6a:4a:80:e7:35:a0:91:c6:
+ 1b:a6:86:9c:5a:3b:04:83:54:34:d7:d1:88:a6:36:e9:7f:40:
+ 27:da:56:0a:50:21:9d:29:8b:a0:84:ec:fe:71:23:53:04:18:
+ 19:70:67:86:44:95:72:40:55:f6:dd:a3:b4:3d:2d:09:60:a5:
+ e7:5f:fc:ac:3b:ec:0c:91:9f:f8:ee:6a:ba:b2:3c:fd:95:7d:
+ 9a:07:f4:b0:65:43:a2:f6:df:7d:b8:21:49:84:04:ee:bd:ce:
+ 53:8f:0f:29
+-----BEGIN CERTIFICATE-----
+MIIE5DCCA8ygAwIBAgIQT+PiZSEHqyA3QW5IcM7SwjANBgkqhkiG9w0BAQUFADBv
+MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
+ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
+eHRlcm5hbCBDQSBSb290MB4XDTEwMDUyNTAwMDAwMFoXDTIwMDUzMDEwNDgzOFow
+azELMAkGA1UEBhMCVVMxLTArBgNVBAoTJFRydXN0ZWQgU2VjdXJlIENlcnRpZmlj
+YXRlIEF1dGhvcml0eTEtMCsGA1UEAxMkVHJ1c3RlZCBTZWN1cmUgQ2VydGlmaWNh
+dGUgQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgAtC
+xgZszyKzGp4RLkJuOb/oEq88QiESlUBdMrFtHCHRNOVPqNFDoiZOMH1zRCxzqsVN
+ZgEZ0upQWWXQaJ0FoHyheVPQIZBZDjfbHtySp4sNxPX45v+1NRraqLabIIVlxKJN
+3/OUTWN+7okHr/7hugAVLcZ3jqP+rc8mVFrf/NLewq32siP9qIPlZb0n9ycaGFlq
+nhT2tIb/HFgUQ3OWJL8QQ9VcifDO9+GWFl4YSicokIAY/DL+9Me41oI9Na+7Shxb
+BXj2/VU+gnSyc7iJTvcbhZrYyrFasQAgQRQwKxQk7TcOMj4jiDl+udk4A+JM2Q1D
+QTMQ6zByU4j3UptPgQIDAQABo4IBfjCCAXowHwYDVR0jBBgwFoAUrb2YejS0Jvf6
+xCZU7wO94CTLVBowHQYDVR0OBBYEFMwDW5ZanhbMJh69o3D748t5GfxNMA4GA1Ud
+DwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMBgGA1UdIAQRMA8wDQYLKwYB
+BAGyMQECAggwRAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC51c2VydHJ1c3Qu
+Y29tL0FkZFRydXN0RXh0ZXJuYWxDQVJvb3QuY3JsMIGzBggrBgEFBQcBAQSBpjCB
+ozA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL0FkZFRydXN0
+RXh0ZXJuYWxDQVJvb3QucDdjMDkGCCsGAQUFBzAChi1odHRwOi8vY3J0LnVzZXJ0
+cnVzdC5jb20vQWRkVHJ1c3RVVE5TR0NDQS5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6
+Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEFBQADggEBAHvw/KEoR7wr
+tARzP0vdHtG5zRztfeXoy1H0kr/dnA1cbh2V7VtwUInUZ5oVVNGQCvoJaAYYu9cn
+5JP/Q0iBO8hZSTXqrLauRrXU87jDxuSRv8k0/X7QWW5hoR9IY1SyfUa/yPrDv0hY
+mPZphKcWaQgnpCLLoizI326p7vhB3xuot/Pjrs6j/tknYFA/BH16ROp2QlzTVUbv
+J8VqSoDnNaCRxhumhpxaOwSDVDTX0YimNul/QCfaVgpQIZ0pi6CE7P5xI1MEGBlw
+Z4ZElXJAVfbdo7Q9LQlgpedf/Kw77AyRn/juarqyPP2VfZoH9LBlQ6L23324IUmE
+BO69zlOPDyk=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert35[] = {
+ 0x30, 0x82, 0x04, 0xe4, 0x30, 0x82, 0x03, 0xcc, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x4f, 0xe3, 0xe2, 0x65, 0x21, 0x07, 0xab, 0x20, 0x37,
+ 0x41, 0x6e, 0x48, 0x70, 0xce, 0xd2, 0xc2, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x6f,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x53,
+ 0x45, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0b,
+ 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x41, 0x42, 0x31,
+ 0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1d, 0x41, 0x64,
+ 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45, 0x78, 0x74, 0x65, 0x72,
+ 0x6e, 0x61, 0x6c, 0x20, 0x54, 0x54, 0x50, 0x20, 0x4e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x19, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45,
+ 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x43, 0x41, 0x20, 0x52,
+ 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x35, 0x32,
+ 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30,
+ 0x30, 0x35, 0x33, 0x30, 0x31, 0x30, 0x34, 0x38, 0x33, 0x38, 0x5a, 0x30,
+ 0x6b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x24, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x20, 0x53, 0x65, 0x63,
+ 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
+ 0x79, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x24,
+ 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x20, 0x53, 0x65, 0x63, 0x75,
+ 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79,
+ 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+ 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x80, 0x0b, 0x42,
+ 0xc6, 0x06, 0x6c, 0xcf, 0x22, 0xb3, 0x1a, 0x9e, 0x11, 0x2e, 0x42, 0x6e,
+ 0x39, 0xbf, 0xe8, 0x12, 0xaf, 0x3c, 0x42, 0x21, 0x12, 0x95, 0x40, 0x5d,
+ 0x32, 0xb1, 0x6d, 0x1c, 0x21, 0xd1, 0x34, 0xe5, 0x4f, 0xa8, 0xd1, 0x43,
+ 0xa2, 0x26, 0x4e, 0x30, 0x7d, 0x73, 0x44, 0x2c, 0x73, 0xaa, 0xc5, 0x4d,
+ 0x66, 0x01, 0x19, 0xd2, 0xea, 0x50, 0x59, 0x65, 0xd0, 0x68, 0x9d, 0x05,
+ 0xa0, 0x7c, 0xa1, 0x79, 0x53, 0xd0, 0x21, 0x90, 0x59, 0x0e, 0x37, 0xdb,
+ 0x1e, 0xdc, 0x92, 0xa7, 0x8b, 0x0d, 0xc4, 0xf5, 0xf8, 0xe6, 0xff, 0xb5,
+ 0x35, 0x1a, 0xda, 0xa8, 0xb6, 0x9b, 0x20, 0x85, 0x65, 0xc4, 0xa2, 0x4d,
+ 0xdf, 0xf3, 0x94, 0x4d, 0x63, 0x7e, 0xee, 0x89, 0x07, 0xaf, 0xfe, 0xe1,
+ 0xba, 0x00, 0x15, 0x2d, 0xc6, 0x77, 0x8e, 0xa3, 0xfe, 0xad, 0xcf, 0x26,
+ 0x54, 0x5a, 0xdf, 0xfc, 0xd2, 0xde, 0xc2, 0xad, 0xf6, 0xb2, 0x23, 0xfd,
+ 0xa8, 0x83, 0xe5, 0x65, 0xbd, 0x27, 0xf7, 0x27, 0x1a, 0x18, 0x59, 0x6a,
+ 0x9e, 0x14, 0xf6, 0xb4, 0x86, 0xff, 0x1c, 0x58, 0x14, 0x43, 0x73, 0x96,
+ 0x24, 0xbf, 0x10, 0x43, 0xd5, 0x5c, 0x89, 0xf0, 0xce, 0xf7, 0xe1, 0x96,
+ 0x16, 0x5e, 0x18, 0x4a, 0x27, 0x28, 0x90, 0x80, 0x18, 0xfc, 0x32, 0xfe,
+ 0xf4, 0xc7, 0xb8, 0xd6, 0x82, 0x3d, 0x35, 0xaf, 0xbb, 0x4a, 0x1c, 0x5b,
+ 0x05, 0x78, 0xf6, 0xfd, 0x55, 0x3e, 0x82, 0x74, 0xb2, 0x73, 0xb8, 0x89,
+ 0x4e, 0xf7, 0x1b, 0x85, 0x9a, 0xd8, 0xca, 0xb1, 0x5a, 0xb1, 0x00, 0x20,
+ 0x41, 0x14, 0x30, 0x2b, 0x14, 0x24, 0xed, 0x37, 0x0e, 0x32, 0x3e, 0x23,
+ 0x88, 0x39, 0x7e, 0xb9, 0xd9, 0x38, 0x03, 0xe2, 0x4c, 0xd9, 0x0d, 0x43,
+ 0x41, 0x33, 0x10, 0xeb, 0x30, 0x72, 0x53, 0x88, 0xf7, 0x52, 0x9b, 0x4f,
+ 0x81, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x7e, 0x30, 0x82,
+ 0x01, 0x7a, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0xad, 0xbd, 0x98, 0x7a, 0x34, 0xb4, 0x26, 0xf7, 0xfa,
+ 0xc4, 0x26, 0x54, 0xef, 0x03, 0xbd, 0xe0, 0x24, 0xcb, 0x54, 0x1a, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xcc, 0x03,
+ 0x5b, 0x96, 0x5a, 0x9e, 0x16, 0xcc, 0x26, 0x1e, 0xbd, 0xa3, 0x70, 0xfb,
+ 0xe3, 0xcb, 0x79, 0x19, 0xfc, 0x4d, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06,
+ 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x18, 0x06, 0x03, 0x55, 0x1d,
+ 0x20, 0x04, 0x11, 0x30, 0x0f, 0x30, 0x0d, 0x06, 0x0b, 0x2b, 0x06, 0x01,
+ 0x04, 0x01, 0xb2, 0x31, 0x01, 0x02, 0x02, 0x08, 0x30, 0x44, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x3d, 0x30, 0x3b, 0x30, 0x39, 0xa0, 0x37, 0xa0,
+ 0x35, 0x86, 0x33, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x6c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74,
+ 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x41, 0x52, 0x6f,
+ 0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x81, 0xb3, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x81, 0xa6, 0x30, 0x81,
+ 0xa3, 0x30, 0x3f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+ 0x02, 0x86, 0x33, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74,
+ 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x41, 0x52, 0x6f,
+ 0x6f, 0x74, 0x2e, 0x70, 0x37, 0x63, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x64, 0x64,
+ 0x54, 0x72, 0x75, 0x73, 0x74, 0x55, 0x54, 0x4e, 0x53, 0x47, 0x43, 0x43,
+ 0x41, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x25, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x19, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x01, 0x00, 0x7b, 0xf0, 0xfc, 0xa1, 0x28, 0x47, 0xbc, 0x2b,
+ 0xb4, 0x04, 0x73, 0x3f, 0x4b, 0xdd, 0x1e, 0xd1, 0xb9, 0xcd, 0x1c, 0xed,
+ 0x7d, 0xe5, 0xe8, 0xcb, 0x51, 0xf4, 0x92, 0xbf, 0xdd, 0x9c, 0x0d, 0x5c,
+ 0x6e, 0x1d, 0x95, 0xed, 0x5b, 0x70, 0x50, 0x89, 0xd4, 0x67, 0x9a, 0x15,
+ 0x54, 0xd1, 0x90, 0x0a, 0xfa, 0x09, 0x68, 0x06, 0x18, 0xbb, 0xd7, 0x27,
+ 0xe4, 0x93, 0xff, 0x43, 0x48, 0x81, 0x3b, 0xc8, 0x59, 0x49, 0x35, 0xea,
+ 0xac, 0xb6, 0xae, 0x46, 0xb5, 0xd4, 0xf3, 0xb8, 0xc3, 0xc6, 0xe4, 0x91,
+ 0xbf, 0xc9, 0x34, 0xfd, 0x7e, 0xd0, 0x59, 0x6e, 0x61, 0xa1, 0x1f, 0x48,
+ 0x63, 0x54, 0xb2, 0x7d, 0x46, 0xbf, 0xc8, 0xfa, 0xc3, 0xbf, 0x48, 0x58,
+ 0x98, 0xf6, 0x69, 0x84, 0xa7, 0x16, 0x69, 0x08, 0x27, 0xa4, 0x22, 0xcb,
+ 0xa2, 0x2c, 0xc8, 0xdf, 0x6e, 0xa9, 0xee, 0xf8, 0x41, 0xdf, 0x1b, 0xa8,
+ 0xb7, 0xf3, 0xe3, 0xae, 0xce, 0xa3, 0xfe, 0xd9, 0x27, 0x60, 0x50, 0x3f,
+ 0x04, 0x7d, 0x7a, 0x44, 0xea, 0x76, 0x42, 0x5c, 0xd3, 0x55, 0x46, 0xef,
+ 0x27, 0xc5, 0x6a, 0x4a, 0x80, 0xe7, 0x35, 0xa0, 0x91, 0xc6, 0x1b, 0xa6,
+ 0x86, 0x9c, 0x5a, 0x3b, 0x04, 0x83, 0x54, 0x34, 0xd7, 0xd1, 0x88, 0xa6,
+ 0x36, 0xe9, 0x7f, 0x40, 0x27, 0xda, 0x56, 0x0a, 0x50, 0x21, 0x9d, 0x29,
+ 0x8b, 0xa0, 0x84, 0xec, 0xfe, 0x71, 0x23, 0x53, 0x04, 0x18, 0x19, 0x70,
+ 0x67, 0x86, 0x44, 0x95, 0x72, 0x40, 0x55, 0xf6, 0xdd, 0xa3, 0xb4, 0x3d,
+ 0x2d, 0x09, 0x60, 0xa5, 0xe7, 0x5f, 0xfc, 0xac, 0x3b, 0xec, 0x0c, 0x91,
+ 0x9f, 0xf8, 0xee, 0x6a, 0xba, 0xb2, 0x3c, 0xfd, 0x95, 0x7d, 0x9a, 0x07,
+ 0xf4, 0xb0, 0x65, 0x43, 0xa2, 0xf6, 0xdf, 0x7d, 0xb8, 0x21, 0x49, 0x84,
+ 0x04, 0xee, 0xbd, 0xce, 0x53, 0x8f, 0x0f, 0x29,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 946072060 (0x3863e9fc)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: O=Entrust.net, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), OU=(c) 1999 Entrust.net Limited, CN=Entrust.net Certification Authority (2048)
+ Validity
+ Not Before: Dec 10 20:43:54 2009 GMT
+ Not After : Dec 10 21:13:54 2019 GMT
+ Subject: C=US, O=Entrust, Inc., OU=www.entrust.net/rpa is incorporated by reference, OU=(c) 2009 Entrust, Inc., CN=Entrust Certification Authority - L1C
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:97:a3:2d:3c:9e:de:05:da:13:c2:11:8d:9d:8e:
+ e3:7f:c7:4b:7e:5a:9f:b3:ff:62:ab:73:c8:28:6b:
+ ba:10:64:82:87:13:cd:57:18:ff:28:ce:c0:e6:0e:
+ 06:91:50:29:83:d1:f2:c3:2a:db:d8:db:4e:04:cc:
+ 00:eb:8b:b6:96:dc:bc:aa:fa:52:77:04:c1:db:19:
+ e4:ae:9c:fd:3c:8b:03:ef:4d:bc:1a:03:65:f9:c1:
+ b1:3f:72:86:f2:38:aa:19:ae:10:88:78:28:da:75:
+ c3:3d:02:82:02:9c:b9:c1:65:77:76:24:4c:98:f7:
+ 6d:31:38:fb:db:fe:db:37:02:76:a1:18:97:a6:cc:
+ de:20:09:49:36:24:69:42:f6:e4:37:62:f1:59:6d:
+ a9:3c:ed:34:9c:a3:8e:db:dc:3a:d7:f7:0a:6f:ef:
+ 2e:d8:d5:93:5a:7a:ed:08:49:68:e2:41:e3:5a:90:
+ c1:86:55:fc:51:43:9d:e0:b2:c4:67:b4:cb:32:31:
+ 25:f0:54:9f:4b:d1:6f:db:d4:dd:fc:af:5e:6c:78:
+ 90:95:de:ca:3a:48:b9:79:3c:9b:19:d6:75:05:a0:
+ f9:88:d7:c1:e8:a5:09:e4:1a:15:dc:87:23:aa:b2:
+ 75:8c:63:25:87:d8:f8:3d:a6:c2:cc:66:ff:a5:66:
+ 68:55
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ Authority Information Access:
+ OCSP - URI:http://ocsp.entrust.net
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.entrust.net/2048ca.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.entrust.net/rpa
+
+ X509v3 Subject Key Identifier:
+ 1E:F1:AB:89:06:F8:49:0F:01:33:77:EE:14:7A:EE:19:7C:93:28:4D
+ X509v3 Authority Key Identifier:
+ keyid:55:E4:81:D1:11:80:BE:D8:89:B9:08:A3:31:F9:A1:24:09:16:B9:70
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 07:f6:5f:82:84:7f:80:40:c7:90:34:46:42:24:03:ce:2f:ab:
+ ba:83:9e:25:73:0d:ed:ac:05:69:c6:87:ed:a3:5c:f2:57:c1:
+ b1:49:76:9a:4d:f2:3f:dd:e4:0e:fe:0b:3e:b9:98:d9:32:95:
+ 1d:32:f4:01:ee:9c:c8:c8:e5:3f:e0:53:76:62:fc:dd:ab:6d:
+ 3d:94:90:f2:c0:b3:3c:98:27:36:5e:28:97:22:fc:1b:40:d3:
+ 2b:0d:ad:b5:57:6d:df:0f:e3:4b:ef:73:02:10:65:fa:1b:d0:
+ ac:31:d5:e3:0f:e8:ba:32:30:83:ee:4a:d0:bf:df:22:90:7a:
+ be:ec:3a:1b:c4:49:04:1d:f1:ae:80:77:3c:42:08:db:a7:3b:
+ 28:a6:80:01:03:e6:39:a3:eb:df:80:59:1b:f3:2c:be:dc:72:
+ 44:79:a0:6c:07:a5:6d:4d:44:8e:42:68:ca:94:7c:2e:36:ba:
+ 85:9e:cd:aa:c4:5e:3c:54:be:fe:2f:ea:69:9d:1c:1e:29:9b:
+ 96:d8:c8:fe:51:90:f1:24:a6:90:06:b3:f0:29:a2:ff:78:2e:
+ 77:5c:45:21:d9:44:00:31:f3:be:32:4f:f5:0a:32:0d:fc:fc:
+ ba:16:76:56:b2:d6:48:92:f2:8b:a6:3e:b7:ac:5c:69:ea:0b:
+ 3f:66:45:b9
+-----BEGIN CERTIFICATE-----
+MIIE8jCCA9qgAwIBAgIEOGPp/DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
+RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
+bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
+IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw0wOTEyMTAyMDQzNTRaFw0xOTEy
+MTAyMTEzNTRaMIGxMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5j
+LjE5MDcGA1UECxMwd3d3LmVudHJ1c3QubmV0L3JwYSBpcyBpbmNvcnBvcmF0ZWQg
+YnkgcmVmZXJlbmNlMR8wHQYDVQQLExYoYykgMjAwOSBFbnRydXN0LCBJbmMuMS4w
+LAYDVQQDEyVFbnRydXN0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gTDFDMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl6MtPJ7eBdoTwhGNnY7jf8dL
+flqfs/9iq3PIKGu6EGSChxPNVxj/KM7A5g4GkVApg9Hywyrb2NtOBMwA64u2lty8
+qvpSdwTB2xnkrpz9PIsD7028GgNl+cGxP3KG8jiqGa4QiHgo2nXDPQKCApy5wWV3
+diRMmPdtMTj72/7bNwJ2oRiXpszeIAlJNiRpQvbkN2LxWW2pPO00nKOO29w61/cK
+b+8u2NWTWnrtCElo4kHjWpDBhlX8UUOd4LLEZ7TLMjEl8FSfS9Fv29Td/K9ebHiQ
+ld7KOki5eTybGdZ1BaD5iNfB6KUJ5BoV3IcjqrJ1jGMlh9j4PabCzGb/pWZoVQID
+AQABo4IBCzCCAQcwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wMwYI
+KwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5lbnRydXN0Lm5l
+dDAyBgNVHR8EKzApMCegJaAjhiFodHRwOi8vY3JsLmVudHJ1c3QubmV0LzIwNDhj
+YS5jcmwwOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly93
+d3cuZW50cnVzdC5uZXQvcnBhMB0GA1UdDgQWBBQe8auJBvhJDwEzd+4Ueu4ZfJMo
+TTAfBgNVHSMEGDAWgBRV5IHREYC+2Im5CKMx+aEkCRa5cDANBgkqhkiG9w0BAQUF
+AAOCAQEAB/ZfgoR/gEDHkDRGQiQDzi+ruoOeJXMN7awFacaH7aNc8lfBsUl2mk3y
+P93kDv4LPrmY2TKVHTL0Ae6cyMjlP+BTdmL83attPZSQ8sCzPJgnNl4olyL8G0DT
+Kw2ttVdt3w/jS+9zAhBl+hvQrDHV4w/oujIwg+5K0L/fIpB6vuw6G8RJBB3xroB3
+PEII26c7KKaAAQPmOaPr34BZG/MsvtxyRHmgbAelbU1EjkJoypR8Lja6hZ7NqsRe
+PFS+/i/qaZ0cHimbltjI/lGQ8SSmkAaz8Cmi/3gud1xFIdlEADHzvjJP9QoyDfz8
+uhZ2VrLWSJLyi6Y+t6xcaeoLP2ZFuQ==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert36[] = {
+ 0x30, 0x82, 0x04, 0xf2, 0x30, 0x82, 0x03, 0xda, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x38, 0x63, 0xe9, 0xfc, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+ 0xb4, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0b,
+ 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x31,
+ 0x40, 0x30, 0x3e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x14, 0x37, 0x77, 0x77,
+ 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+ 0x74, 0x2f, 0x43, 0x50, 0x53, 0x5f, 0x32, 0x30, 0x34, 0x38, 0x20, 0x69,
+ 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x72, 0x65,
+ 0x66, 0x2e, 0x20, 0x28, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x20, 0x6c,
+ 0x69, 0x61, 0x62, 0x2e, 0x29, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x1c, 0x28, 0x63, 0x29, 0x20, 0x31, 0x39, 0x39, 0x39,
+ 0x20, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74,
+ 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x31, 0x33, 0x30, 0x31,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2a, 0x45, 0x6e, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x28, 0x32, 0x30, 0x34, 0x38,
+ 0x29, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x39, 0x31, 0x32, 0x31, 0x30, 0x32,
+ 0x30, 0x34, 0x33, 0x35, 0x34, 0x5a, 0x17, 0x0d, 0x31, 0x39, 0x31, 0x32,
+ 0x31, 0x30, 0x32, 0x31, 0x31, 0x33, 0x35, 0x34, 0x5a, 0x30, 0x81, 0xb1,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d,
+ 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x30,
+ 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x70, 0x61, 0x20, 0x69, 0x73, 0x20, 0x69,
+ 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20,
+ 0x62, 0x79, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+ 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x28,
+ 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x39, 0x20, 0x45, 0x6e, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x2e, 0x30,
+ 0x2c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x25, 0x45, 0x6e, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x4c, 0x31, 0x43, 0x30, 0x82, 0x01,
+ 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+ 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x97, 0xa3, 0x2d, 0x3c, 0x9e, 0xde,
+ 0x05, 0xda, 0x13, 0xc2, 0x11, 0x8d, 0x9d, 0x8e, 0xe3, 0x7f, 0xc7, 0x4b,
+ 0x7e, 0x5a, 0x9f, 0xb3, 0xff, 0x62, 0xab, 0x73, 0xc8, 0x28, 0x6b, 0xba,
+ 0x10, 0x64, 0x82, 0x87, 0x13, 0xcd, 0x57, 0x18, 0xff, 0x28, 0xce, 0xc0,
+ 0xe6, 0x0e, 0x06, 0x91, 0x50, 0x29, 0x83, 0xd1, 0xf2, 0xc3, 0x2a, 0xdb,
+ 0xd8, 0xdb, 0x4e, 0x04, 0xcc, 0x00, 0xeb, 0x8b, 0xb6, 0x96, 0xdc, 0xbc,
+ 0xaa, 0xfa, 0x52, 0x77, 0x04, 0xc1, 0xdb, 0x19, 0xe4, 0xae, 0x9c, 0xfd,
+ 0x3c, 0x8b, 0x03, 0xef, 0x4d, 0xbc, 0x1a, 0x03, 0x65, 0xf9, 0xc1, 0xb1,
+ 0x3f, 0x72, 0x86, 0xf2, 0x38, 0xaa, 0x19, 0xae, 0x10, 0x88, 0x78, 0x28,
+ 0xda, 0x75, 0xc3, 0x3d, 0x02, 0x82, 0x02, 0x9c, 0xb9, 0xc1, 0x65, 0x77,
+ 0x76, 0x24, 0x4c, 0x98, 0xf7, 0x6d, 0x31, 0x38, 0xfb, 0xdb, 0xfe, 0xdb,
+ 0x37, 0x02, 0x76, 0xa1, 0x18, 0x97, 0xa6, 0xcc, 0xde, 0x20, 0x09, 0x49,
+ 0x36, 0x24, 0x69, 0x42, 0xf6, 0xe4, 0x37, 0x62, 0xf1, 0x59, 0x6d, 0xa9,
+ 0x3c, 0xed, 0x34, 0x9c, 0xa3, 0x8e, 0xdb, 0xdc, 0x3a, 0xd7, 0xf7, 0x0a,
+ 0x6f, 0xef, 0x2e, 0xd8, 0xd5, 0x93, 0x5a, 0x7a, 0xed, 0x08, 0x49, 0x68,
+ 0xe2, 0x41, 0xe3, 0x5a, 0x90, 0xc1, 0x86, 0x55, 0xfc, 0x51, 0x43, 0x9d,
+ 0xe0, 0xb2, 0xc4, 0x67, 0xb4, 0xcb, 0x32, 0x31, 0x25, 0xf0, 0x54, 0x9f,
+ 0x4b, 0xd1, 0x6f, 0xdb, 0xd4, 0xdd, 0xfc, 0xaf, 0x5e, 0x6c, 0x78, 0x90,
+ 0x95, 0xde, 0xca, 0x3a, 0x48, 0xb9, 0x79, 0x3c, 0x9b, 0x19, 0xd6, 0x75,
+ 0x05, 0xa0, 0xf9, 0x88, 0xd7, 0xc1, 0xe8, 0xa5, 0x09, 0xe4, 0x1a, 0x15,
+ 0xdc, 0x87, 0x23, 0xaa, 0xb2, 0x75, 0x8c, 0x63, 0x25, 0x87, 0xd8, 0xf8,
+ 0x3d, 0xa6, 0xc2, 0xcc, 0x66, 0xff, 0xa5, 0x66, 0x68, 0x55, 0x02, 0x03,
+ 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x0b, 0x30, 0x82, 0x01, 0x07, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+ 0x02, 0x01, 0x06, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x33, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x27, 0x30, 0x25,
+ 0x30, 0x23, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+ 0x86, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+ 0x70, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+ 0x74, 0x30, 0x32, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29,
+ 0x30, 0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x32, 0x30, 0x34, 0x38, 0x63,
+ 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d, 0x20,
+ 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00,
+ 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
+ 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e,
+ 0x65, 0x74, 0x2f, 0x72, 0x70, 0x61, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+ 0x0e, 0x04, 0x16, 0x04, 0x14, 0x1e, 0xf1, 0xab, 0x89, 0x06, 0xf8, 0x49,
+ 0x0f, 0x01, 0x33, 0x77, 0xee, 0x14, 0x7a, 0xee, 0x19, 0x7c, 0x93, 0x28,
+ 0x4d, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0x55, 0xe4, 0x81, 0xd1, 0x11, 0x80, 0xbe, 0xd8, 0x89, 0xb9,
+ 0x08, 0xa3, 0x31, 0xf9, 0xa1, 0x24, 0x09, 0x16, 0xb9, 0x70, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x07, 0xf6, 0x5f, 0x82, 0x84, 0x7f,
+ 0x80, 0x40, 0xc7, 0x90, 0x34, 0x46, 0x42, 0x24, 0x03, 0xce, 0x2f, 0xab,
+ 0xba, 0x83, 0x9e, 0x25, 0x73, 0x0d, 0xed, 0xac, 0x05, 0x69, 0xc6, 0x87,
+ 0xed, 0xa3, 0x5c, 0xf2, 0x57, 0xc1, 0xb1, 0x49, 0x76, 0x9a, 0x4d, 0xf2,
+ 0x3f, 0xdd, 0xe4, 0x0e, 0xfe, 0x0b, 0x3e, 0xb9, 0x98, 0xd9, 0x32, 0x95,
+ 0x1d, 0x32, 0xf4, 0x01, 0xee, 0x9c, 0xc8, 0xc8, 0xe5, 0x3f, 0xe0, 0x53,
+ 0x76, 0x62, 0xfc, 0xdd, 0xab, 0x6d, 0x3d, 0x94, 0x90, 0xf2, 0xc0, 0xb3,
+ 0x3c, 0x98, 0x27, 0x36, 0x5e, 0x28, 0x97, 0x22, 0xfc, 0x1b, 0x40, 0xd3,
+ 0x2b, 0x0d, 0xad, 0xb5, 0x57, 0x6d, 0xdf, 0x0f, 0xe3, 0x4b, 0xef, 0x73,
+ 0x02, 0x10, 0x65, 0xfa, 0x1b, 0xd0, 0xac, 0x31, 0xd5, 0xe3, 0x0f, 0xe8,
+ 0xba, 0x32, 0x30, 0x83, 0xee, 0x4a, 0xd0, 0xbf, 0xdf, 0x22, 0x90, 0x7a,
+ 0xbe, 0xec, 0x3a, 0x1b, 0xc4, 0x49, 0x04, 0x1d, 0xf1, 0xae, 0x80, 0x77,
+ 0x3c, 0x42, 0x08, 0xdb, 0xa7, 0x3b, 0x28, 0xa6, 0x80, 0x01, 0x03, 0xe6,
+ 0x39, 0xa3, 0xeb, 0xdf, 0x80, 0x59, 0x1b, 0xf3, 0x2c, 0xbe, 0xdc, 0x72,
+ 0x44, 0x79, 0xa0, 0x6c, 0x07, 0xa5, 0x6d, 0x4d, 0x44, 0x8e, 0x42, 0x68,
+ 0xca, 0x94, 0x7c, 0x2e, 0x36, 0xba, 0x85, 0x9e, 0xcd, 0xaa, 0xc4, 0x5e,
+ 0x3c, 0x54, 0xbe, 0xfe, 0x2f, 0xea, 0x69, 0x9d, 0x1c, 0x1e, 0x29, 0x9b,
+ 0x96, 0xd8, 0xc8, 0xfe, 0x51, 0x90, 0xf1, 0x24, 0xa6, 0x90, 0x06, 0xb3,
+ 0xf0, 0x29, 0xa2, 0xff, 0x78, 0x2e, 0x77, 0x5c, 0x45, 0x21, 0xd9, 0x44,
+ 0x00, 0x31, 0xf3, 0xbe, 0x32, 0x4f, 0xf5, 0x0a, 0x32, 0x0d, 0xfc, 0xfc,
+ 0xba, 0x16, 0x76, 0x56, 0xb2, 0xd6, 0x48, 0x92, 0xf2, 0x8b, 0xa6, 0x3e,
+ 0xb7, 0xac, 0x5c, 0x69, 0xea, 0x0b, 0x3f, 0x66, 0x45, 0xb9,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 16:90:c3:29:b6:78:06:07:51:1f:05:b0:34:48:46:cb
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root
+ Validity
+ Not Before: Apr 16 00:00:00 2010 GMT
+ Not After : May 30 10:48:38 2020 GMT
+ Subject: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO High-Assurance Secure Server CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:e7:87:da:c0:77:e4:bb:3a:fa:6a:24:c8:80:41:
+ ac:d2:16:13:15:3d:fa:f7:f8:2a:76:dc:a8:2d:39:
+ 08:ce:48:4a:be:0f:7d:f0:de:ba:bb:47:d5:bd:2d:
+ d7:1b:ab:0f:20:81:23:08:72:b1:c0:11:95:0d:e6:
+ ea:a9:87:ff:c7:6e:1e:4f:66:32:ba:53:bc:05:aa:
+ 1c:2c:0c:ef:4d:37:47:6b:10:0c:db:c5:a0:98:7e:
+ 58:db:37:d6:ae:e9:06:bd:d7:a8:65:f3:37:b9:c7:
+ 6d:ce:77:c7:26:e0:d7:74:1f:a6:98:16:bb:0c:6b:
+ c8:be:77:d0:ef:58:a7:29:a0:b9:b8:69:05:36:cb:
+ b2:da:58:a3:0b:75:ad:3d:8b:22:82:20:3e:70:86:
+ 99:1c:b9:4f:cf:77:a4:07:1a:23:63:d1:38:56:84:
+ ec:bf:8f:c5:4e:f4:18:96:9b:1a:e8:93:ec:8d:af:
+ 15:9c:24:f0:5a:3b:e8:0f:b9:a8:5a:01:d3:b2:1c:
+ 60:c9:9c:52:04:dd:92:a7:fe:0c:ac:e2:45:8d:03:
+ 61:bc:79:e0:77:2e:87:41:3c:58:5f:cb:f5:c5:77:
+ f2:58:c8:4d:28:d0:9a:fa:f3:73:09:24:68:74:bc:
+ 20:4c:d8:2c:b0:aa:e8:d9:4e:6d:f2:8c:24:d3:93:
+ 5d:91
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A
+
+ X509v3 Subject Key Identifier:
+ 3F:D5:B5:D0:D6:44:79:50:4A:17:A3:9B:8C:4A:DC:B8:B0:22:64:6B
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.usertrust.com/AddTrustExternalCARoot.crl
+
+ Authority Information Access:
+ CA Issuers - URI:http://crt.usertrust.com/AddTrustExternalCARoot.p7c
+ CA Issuers - URI:http://crt.usertrust.com/AddTrustUTNSGCCA.crt
+ OCSP - URI:http://ocsp.usertrust.com
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 13:85:1f:52:80:18:c9:53:f7:fe:2e:1a:af:cc:d9:0b:3c:c2:
+ d3:85:81:10:f0:28:8d:b9:40:7e:2c:9e:8f:d6:36:86:0a:4c:
+ 14:2d:d6:97:43:92:41:19:37:4b:96:9e:eb:a9:30:79:12:95:
+ b3:02:36:57:ed:2b:b9:1d:98:1a:a3:18:0a:3f:9b:39:8b:cd:
+ a1:49:29:4c:2f:f9:d0:95:8c:c8:4d:95:ba:a8:43:cf:33:aa:
+ 25:2a:5a:0e:aa:27:c9:4e:6b:b1:e6:73:1f:b3:74:04:c3:f3:
+ 4c:e2:a8:eb:67:b7:5d:b8:08:05:1a:56:9a:54:29:85:f5:29:
+ 4e:80:3b:95:d0:7b:53:96:11:56:c1:02:d3:ea:b2:7f:ca:8f:
+ 9c:70:4a:14:8d:5a:b9:16:60:75:d6:cd:27:1e:16:cd:5b:33:
+ 8e:79:40:cf:28:48:e7:dc:71:16:4e:74:91:75:b9:2a:8c:f1:
+ 70:ac:26:dd:04:b9:40:c2:85:de:1c:93:40:d0:cc:6e:c3:9b:
+ aa:ef:60:65:df:60:22:f0:5a:a5:7a:a2:2f:e4:70:73:ee:3c:
+ d4:26:2b:68:07:c1:20:7a:e8:98:5a:3e:7b:9f:02:8b:62:c0:
+ 85:81:80:60:35:7e:a5:1d:0c:d2:9c:df:62:45:0d:db:fc:37:
+ fb:f5:25:22
+-----BEGIN CERTIFICATE-----
+MIIE/DCCA+SgAwIBAgIQFpDDKbZ4BgdRHwWwNEhGyzANBgkqhkiG9w0BAQUFADBv
+MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
+ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
+eHRlcm5hbCBDQSBSb290MB4XDTEwMDQxNjAwMDAwMFoXDTIwMDUzMDEwNDgzOFow
+gYkxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
+BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMS8wLQYD
+VQQDEyZDT01PRE8gSGlnaC1Bc3N1cmFuY2UgU2VjdXJlIFNlcnZlciBDQTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOeH2sB35Ls6+mokyIBBrNIWExU9
++vf4KnbcqC05CM5ISr4PffDeurtH1b0t1xurDyCBIwhyscARlQ3m6qmH/8duHk9m
+MrpTvAWqHCwM7003R2sQDNvFoJh+WNs31q7pBr3XqGXzN7nHbc53xybg13QfppgW
+uwxryL530O9YpymgubhpBTbLstpYowt1rT2LIoIgPnCGmRy5T893pAcaI2PROFaE
+7L+PxU70GJabGuiT7I2vFZwk8Fo76A+5qFoB07IcYMmcUgTdkqf+DKziRY0DYbx5
+4Hcuh0E8WF/L9cV38ljITSjQmvrzcwkkaHS8IEzYLLCq6NlObfKMJNOTXZECAwEA
+AaOCAXcwggFzMB8GA1UdIwQYMBaAFK29mHo0tCb3+sQmVO8DveAky1QaMB0GA1Ud
+DgQWBBQ/1bXQ1kR5UEoXo5uMSty4sCJkazAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0T
+AQH/BAgwBgEB/wIBADARBgNVHSAECjAIMAYGBFUdIAAwRAYDVR0fBD0wOzA5oDeg
+NYYzaHR0cDovL2NybC51c2VydHJ1c3QuY29tL0FkZFRydXN0RXh0ZXJuYWxDQVJv
+b3QuY3JsMIGzBggrBgEFBQcBAQSBpjCBozA/BggrBgEFBQcwAoYzaHR0cDovL2Ny
+dC51c2VydHJ1c3QuY29tL0FkZFRydXN0RXh0ZXJuYWxDQVJvb3QucDdjMDkGCCsG
+AQUFBzAChi1odHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vQWRkVHJ1c3RVVE5TR0ND
+QS5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJ
+KoZIhvcNAQEFBQADggEBABOFH1KAGMlT9/4uGq/M2Qs8wtOFgRDwKI25QH4sno/W
+NoYKTBQt1pdDkkEZN0uWnuupMHkSlbMCNlftK7kdmBqjGAo/mzmLzaFJKUwv+dCV
+jMhNlbqoQ88zqiUqWg6qJ8lOa7Hmcx+zdATD80ziqOtnt124CAUaVppUKYX1KU6A
+O5XQe1OWEVbBAtPqsn/Kj5xwShSNWrkWYHXWzSceFs1bM455QM8oSOfccRZOdJF1
+uSqM8XCsJt0EuUDChd4ck0DQzG7Dm6rvYGXfYCLwWqV6oi/kcHPuPNQmK2gHwSB6
+6JhaPnufAotiwIWBgGA1fqUdDNKc32JFDdv8N/v1JSI=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert37[] = {
+ 0x30, 0x82, 0x04, 0xfc, 0x30, 0x82, 0x03, 0xe4, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x16, 0x90, 0xc3, 0x29, 0xb6, 0x78, 0x06, 0x07, 0x51,
+ 0x1f, 0x05, 0xb0, 0x34, 0x48, 0x46, 0xcb, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x6f,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x53,
+ 0x45, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0b,
+ 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x41, 0x42, 0x31,
+ 0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1d, 0x41, 0x64,
+ 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45, 0x78, 0x74, 0x65, 0x72,
+ 0x6e, 0x61, 0x6c, 0x20, 0x54, 0x54, 0x50, 0x20, 0x4e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x19, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45,
+ 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x43, 0x41, 0x20, 0x52,
+ 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x34, 0x31,
+ 0x36, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30,
+ 0x30, 0x35, 0x33, 0x30, 0x31, 0x30, 0x34, 0x38, 0x33, 0x38, 0x5a, 0x30,
+ 0x81, 0x89, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+ 0x02, 0x47, 0x42, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x08,
+ 0x13, 0x12, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x4d, 0x61,
+ 0x6e, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0e,
+ 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x53, 0x61, 0x6c, 0x66, 0x6f,
+ 0x72, 0x64, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x11, 0x43, 0x4f, 0x4d, 0x4f, 0x44, 0x4f, 0x20, 0x43, 0x41, 0x20, 0x4c,
+ 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2f, 0x30, 0x2d, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x26, 0x43, 0x4f, 0x4d, 0x4f, 0x44, 0x4f, 0x20,
+ 0x48, 0x69, 0x67, 0x68, 0x2d, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e,
+ 0x63, 0x65, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+ 0x82, 0x01, 0x01, 0x00, 0xe7, 0x87, 0xda, 0xc0, 0x77, 0xe4, 0xbb, 0x3a,
+ 0xfa, 0x6a, 0x24, 0xc8, 0x80, 0x41, 0xac, 0xd2, 0x16, 0x13, 0x15, 0x3d,
+ 0xfa, 0xf7, 0xf8, 0x2a, 0x76, 0xdc, 0xa8, 0x2d, 0x39, 0x08, 0xce, 0x48,
+ 0x4a, 0xbe, 0x0f, 0x7d, 0xf0, 0xde, 0xba, 0xbb, 0x47, 0xd5, 0xbd, 0x2d,
+ 0xd7, 0x1b, 0xab, 0x0f, 0x20, 0x81, 0x23, 0x08, 0x72, 0xb1, 0xc0, 0x11,
+ 0x95, 0x0d, 0xe6, 0xea, 0xa9, 0x87, 0xff, 0xc7, 0x6e, 0x1e, 0x4f, 0x66,
+ 0x32, 0xba, 0x53, 0xbc, 0x05, 0xaa, 0x1c, 0x2c, 0x0c, 0xef, 0x4d, 0x37,
+ 0x47, 0x6b, 0x10, 0x0c, 0xdb, 0xc5, 0xa0, 0x98, 0x7e, 0x58, 0xdb, 0x37,
+ 0xd6, 0xae, 0xe9, 0x06, 0xbd, 0xd7, 0xa8, 0x65, 0xf3, 0x37, 0xb9, 0xc7,
+ 0x6d, 0xce, 0x77, 0xc7, 0x26, 0xe0, 0xd7, 0x74, 0x1f, 0xa6, 0x98, 0x16,
+ 0xbb, 0x0c, 0x6b, 0xc8, 0xbe, 0x77, 0xd0, 0xef, 0x58, 0xa7, 0x29, 0xa0,
+ 0xb9, 0xb8, 0x69, 0x05, 0x36, 0xcb, 0xb2, 0xda, 0x58, 0xa3, 0x0b, 0x75,
+ 0xad, 0x3d, 0x8b, 0x22, 0x82, 0x20, 0x3e, 0x70, 0x86, 0x99, 0x1c, 0xb9,
+ 0x4f, 0xcf, 0x77, 0xa4, 0x07, 0x1a, 0x23, 0x63, 0xd1, 0x38, 0x56, 0x84,
+ 0xec, 0xbf, 0x8f, 0xc5, 0x4e, 0xf4, 0x18, 0x96, 0x9b, 0x1a, 0xe8, 0x93,
+ 0xec, 0x8d, 0xaf, 0x15, 0x9c, 0x24, 0xf0, 0x5a, 0x3b, 0xe8, 0x0f, 0xb9,
+ 0xa8, 0x5a, 0x01, 0xd3, 0xb2, 0x1c, 0x60, 0xc9, 0x9c, 0x52, 0x04, 0xdd,
+ 0x92, 0xa7, 0xfe, 0x0c, 0xac, 0xe2, 0x45, 0x8d, 0x03, 0x61, 0xbc, 0x79,
+ 0xe0, 0x77, 0x2e, 0x87, 0x41, 0x3c, 0x58, 0x5f, 0xcb, 0xf5, 0xc5, 0x77,
+ 0xf2, 0x58, 0xc8, 0x4d, 0x28, 0xd0, 0x9a, 0xfa, 0xf3, 0x73, 0x09, 0x24,
+ 0x68, 0x74, 0xbc, 0x20, 0x4c, 0xd8, 0x2c, 0xb0, 0xaa, 0xe8, 0xd9, 0x4e,
+ 0x6d, 0xf2, 0x8c, 0x24, 0xd3, 0x93, 0x5d, 0x91, 0x02, 0x03, 0x01, 0x00,
+ 0x01, 0xa3, 0x82, 0x01, 0x77, 0x30, 0x82, 0x01, 0x73, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xad, 0xbd,
+ 0x98, 0x7a, 0x34, 0xb4, 0x26, 0xf7, 0xfa, 0xc4, 0x26, 0x54, 0xef, 0x03,
+ 0xbd, 0xe0, 0x24, 0xcb, 0x54, 0x1a, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+ 0x0e, 0x04, 0x16, 0x04, 0x14, 0x3f, 0xd5, 0xb5, 0xd0, 0xd6, 0x44, 0x79,
+ 0x50, 0x4a, 0x17, 0xa3, 0x9b, 0x8c, 0x4a, 0xdc, 0xb8, 0xb0, 0x22, 0x64,
+ 0x6b, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+ 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+ 0x00, 0x30, 0x11, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x0a, 0x30, 0x08,
+ 0x30, 0x06, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x44, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x3d, 0x30, 0x3b, 0x30, 0x39, 0xa0, 0x37, 0xa0,
+ 0x35, 0x86, 0x33, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x6c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74,
+ 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x41, 0x52, 0x6f,
+ 0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x81, 0xb3, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x81, 0xa6, 0x30, 0x81,
+ 0xa3, 0x30, 0x3f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+ 0x02, 0x86, 0x33, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74,
+ 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x41, 0x52, 0x6f,
+ 0x6f, 0x74, 0x2e, 0x70, 0x37, 0x63, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x64, 0x64,
+ 0x54, 0x72, 0x75, 0x73, 0x74, 0x55, 0x54, 0x4e, 0x53, 0x47, 0x43, 0x43,
+ 0x41, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x25, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x19, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x01, 0x00, 0x13, 0x85, 0x1f, 0x52, 0x80, 0x18, 0xc9, 0x53,
+ 0xf7, 0xfe, 0x2e, 0x1a, 0xaf, 0xcc, 0xd9, 0x0b, 0x3c, 0xc2, 0xd3, 0x85,
+ 0x81, 0x10, 0xf0, 0x28, 0x8d, 0xb9, 0x40, 0x7e, 0x2c, 0x9e, 0x8f, 0xd6,
+ 0x36, 0x86, 0x0a, 0x4c, 0x14, 0x2d, 0xd6, 0x97, 0x43, 0x92, 0x41, 0x19,
+ 0x37, 0x4b, 0x96, 0x9e, 0xeb, 0xa9, 0x30, 0x79, 0x12, 0x95, 0xb3, 0x02,
+ 0x36, 0x57, 0xed, 0x2b, 0xb9, 0x1d, 0x98, 0x1a, 0xa3, 0x18, 0x0a, 0x3f,
+ 0x9b, 0x39, 0x8b, 0xcd, 0xa1, 0x49, 0x29, 0x4c, 0x2f, 0xf9, 0xd0, 0x95,
+ 0x8c, 0xc8, 0x4d, 0x95, 0xba, 0xa8, 0x43, 0xcf, 0x33, 0xaa, 0x25, 0x2a,
+ 0x5a, 0x0e, 0xaa, 0x27, 0xc9, 0x4e, 0x6b, 0xb1, 0xe6, 0x73, 0x1f, 0xb3,
+ 0x74, 0x04, 0xc3, 0xf3, 0x4c, 0xe2, 0xa8, 0xeb, 0x67, 0xb7, 0x5d, 0xb8,
+ 0x08, 0x05, 0x1a, 0x56, 0x9a, 0x54, 0x29, 0x85, 0xf5, 0x29, 0x4e, 0x80,
+ 0x3b, 0x95, 0xd0, 0x7b, 0x53, 0x96, 0x11, 0x56, 0xc1, 0x02, 0xd3, 0xea,
+ 0xb2, 0x7f, 0xca, 0x8f, 0x9c, 0x70, 0x4a, 0x14, 0x8d, 0x5a, 0xb9, 0x16,
+ 0x60, 0x75, 0xd6, 0xcd, 0x27, 0x1e, 0x16, 0xcd, 0x5b, 0x33, 0x8e, 0x79,
+ 0x40, 0xcf, 0x28, 0x48, 0xe7, 0xdc, 0x71, 0x16, 0x4e, 0x74, 0x91, 0x75,
+ 0xb9, 0x2a, 0x8c, 0xf1, 0x70, 0xac, 0x26, 0xdd, 0x04, 0xb9, 0x40, 0xc2,
+ 0x85, 0xde, 0x1c, 0x93, 0x40, 0xd0, 0xcc, 0x6e, 0xc3, 0x9b, 0xaa, 0xef,
+ 0x60, 0x65, 0xdf, 0x60, 0x22, 0xf0, 0x5a, 0xa5, 0x7a, 0xa2, 0x2f, 0xe4,
+ 0x70, 0x73, 0xee, 0x3c, 0xd4, 0x26, 0x2b, 0x68, 0x07, 0xc1, 0x20, 0x7a,
+ 0xe8, 0x98, 0x5a, 0x3e, 0x7b, 0x9f, 0x02, 0x8b, 0x62, 0xc0, 0x85, 0x81,
+ 0x80, 0x60, 0x35, 0x7e, 0xa5, 0x1d, 0x0c, 0xd2, 0x9c, 0xdf, 0x62, 0x45,
+ 0x0d, 0xdb, 0xfc, 0x37, 0xfb, 0xf5, 0x25, 0x22,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 1372799044 (0x51d34044)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=Entrust, Inc., OU=www.entrust.net/CPS is incorporated by reference, OU=(c) 2006 Entrust, Inc., CN=Entrust Root Certification Authority
+ Validity
+ Not Before: Sep 22 17:14:57 2014 GMT
+ Not After : Sep 23 01:31:53 2024 GMT
+ Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:ba:84:b6:72:db:9e:0c:6b:e2:99:e9:30:01:a7:
+ 76:ea:32:b8:95:41:1a:c9:da:61:4e:58:72:cf:fe:
+ f6:82:79:bf:73:61:06:0a:a5:27:d8:b3:5f:d3:45:
+ 4e:1c:72:d6:4e:32:f2:72:8a:0f:f7:83:19:d0:6a:
+ 80:80:00:45:1e:b0:c7:e7:9a:bf:12:57:27:1c:a3:
+ 68:2f:0a:87:bd:6a:6b:0e:5e:65:f3:1c:77:d5:d4:
+ 85:8d:70:21:b4:b3:32:e7:8b:a2:d5:86:39:02:b1:
+ b8:d2:47:ce:e4:c9:49:c4:3b:a7:de:fb:54:7d:57:
+ be:f0:e8:6e:c2:79:b2:3a:0b:55:e2:50:98:16:32:
+ 13:5c:2f:78:56:c1:c2:94:b3:f2:5a:e4:27:9a:9f:
+ 24:d7:c6:ec:d0:9b:25:82:e3:cc:c2:c4:45:c5:8c:
+ 97:7a:06:6b:2a:11:9f:a9:0a:6e:48:3b:6f:db:d4:
+ 11:19:42:f7:8f:07:bf:f5:53:5f:9c:3e:f4:17:2c:
+ e6:69:ac:4e:32:4c:62:77:ea:b7:e8:e5:bb:34:bc:
+ 19:8b:ae:9c:51:e7:b7:7e:b5:53:b1:33:22:e5:6d:
+ cf:70:3c:1a:fa:e2:9b:67:b6:83:f4:8d:a5:af:62:
+ 4c:4d:e0:58:ac:64:34:12:03:f8:b6:8d:94:63:24:
+ a4:71
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:1
+ Authority Information Access:
+ OCSP - URI:http://ocsp.entrust.net
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.entrust.net/rootca1.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.entrust.net/CPS
+
+ X509v3 Subject Key Identifier:
+ 6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
+ X509v3 Authority Key Identifier:
+ keyid:68:90:E4:67:A4:A6:53:80:C7:86:66:A4:F1:F7:4B:43:FB:84:BD:6D
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 69:33:83:fc:28:7a:6f:7d:ef:9d:55:eb:c5:3e:7a:9d:75:b3:
+ cc:c3:38:36:d9:34:a2:28:68:18:ea:1e:69:d3:bd:e7:d0:77:
+ da:b8:00:83:4e:4a:cf:6f:d1:f1:c1:22:3f:74:e4:f7:98:49:
+ 9e:9b:b6:9e:e1:db:98:77:2d:56:34:b1:a8:3c:d9:fd:c0:cd:
+ c7:bf:05:03:d4:02:c5:f1:e5:c6:da:08:a5:13:c7:62:23:11:
+ d1:61:30:1d:60:84:45:ef:79:a8:c6:26:93:a4:b7:cd:34:b8:
+ 69:c5:13:f6:91:b3:c9:45:73:76:b6:92:f6:76:0a:5b:e1:03:
+ 47:b7:e9:29:4c:91:32:23:37:4a:9c:35:d8:78:fd:1d:1f:e4:
+ 83:89:24:80:ad:b7:f9:cf:e4:5d:a5:d4:71:c4:85:5b:70:1f:
+ db:3f:1c:01:eb:1a:45:26:31:14:cc:65:bf:67:de:ca:cc:33:
+ 65:e5:41:91:d7:37:be:41:1a:96:9d:e6:8a:97:9d:a7:ce:ac:
+ 4e:9a:3d:bd:01:a0:6a:d9:4f:22:00:8b:44:d5:69:62:7b:2e:
+ eb:cc:ba:e7:92:7d:69:67:3d:fc:b8:7c:de:41:87:d0:69:ea:
+ ba:0a:18:7a:1a:95:43:b3:79:71:28:76:6d:a1:fb:57:4a:ec:
+ 4d:c8:0e:10
+-----BEGIN CERTIFICATE-----
+MIIE/zCCA+egAwIBAgIEUdNARDANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
+Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
+KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE0MDkyMjE3MTQ1N1oXDTI0MDkyMzAx
+MzE1M1owgb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgw
+JgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQL
+EzAoYykgMjAwOSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9u
+bHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuoS2ctueDGvi
+mekwAad26jK4lUEaydphTlhyz/72gnm/c2EGCqUn2LNf00VOHHLWTjLycooP94MZ
+0GqAgABFHrDH55q/ElcnHKNoLwqHvWprDl5l8xx31dSFjXAhtLMy54ui1YY5ArG4
+0kfO5MlJxDun3vtUfVe+8OhuwnmyOgtV4lCYFjITXC94VsHClLPyWuQnmp8k18bs
+0JslguPMwsRFxYyXegZrKhGfqQpuSDtv29QRGUL3jwe/9VNfnD70FyzmaaxOMkxi
+d+q36OW7NLwZi66cUee3frVTsTMi5W3PcDwa+uKbZ7aD9I2lr2JMTeBYrGQ0EgP4
+to2UYySkcQIDAQABo4IBDzCCAQswDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI
+MAYBAf8CAQEwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2Nz
+cC5lbnRydXN0Lm5ldDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmVudHJ1
+c3QubmV0L3Jvb3RjYTEuY3JsMDsGA1UdIAQ0MDIwMAYEVR0gADAoMCYGCCsGAQUF
+BwIBFhpodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NQUzAdBgNVHQ4EFgQUanImetAe
+733nO2lR1GyNn5ASZqswHwYDVR0jBBgwFoAUaJDkZ6SmU4DHhmak8fdLQ/uEvW0w
+DQYJKoZIhvcNAQELBQADggEBAGkzg/woem99751V68U+ep11s8zDODbZNKIoaBjq
+HmnTvefQd9q4AINOSs9v0fHBIj905PeYSZ6btp7h25h3LVY0sag82f3Azce/BQPU
+AsXx5cbaCKUTx2IjEdFhMB1ghEXveajGJpOkt800uGnFE/aRs8lFc3a2kvZ2Clvh
+A0e36SlMkTIjN0qcNdh4/R0f5IOJJICtt/nP5F2l1HHEhVtwH9s/HAHrGkUmMRTM
+Zb9n3srMM2XlQZHXN75BGpad5oqXnafOrE6aPb0BoGrZTyIAi0TVaWJ7LuvMuueS
+fWlnPfy4fN5Bh9Bp6roKGHoalUOzeXEodm2h+1dK7E3IDhA=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert38[] = {
+ 0x30, 0x82, 0x04, 0xff, 0x30, 0x82, 0x03, 0xe7, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x51, 0xd3, 0x40, 0x44, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xb0, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0d, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x30, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74,
+ 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x43, 0x50, 0x53, 0x20, 0x69, 0x73, 0x20,
+ 0x69, 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64,
+ 0x20, 0x62, 0x79, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
+ 0x65, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16,
+ 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x45, 0x6e, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x2d,
+ 0x30, 0x2b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x24, 0x45, 0x6e, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65,
+ 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+ 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x34, 0x30, 0x39, 0x32, 0x32, 0x31, 0x37, 0x31, 0x34, 0x35,
+ 0x37, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x39, 0x32, 0x33, 0x30, 0x31,
+ 0x33, 0x31, 0x35, 0x33, 0x5a, 0x30, 0x81, 0xbe, 0x31, 0x0b, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30,
+ 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x45, 0x6e, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x28, 0x30,
+ 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f, 0x53, 0x65, 0x65, 0x20,
+ 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d, 0x74, 0x65,
+ 0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x39, 0x20, 0x45,
+ 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e,
+ 0x6c, 0x79, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x29, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f,
+ 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
+ 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+ 0x01, 0x01, 0x00, 0xba, 0x84, 0xb6, 0x72, 0xdb, 0x9e, 0x0c, 0x6b, 0xe2,
+ 0x99, 0xe9, 0x30, 0x01, 0xa7, 0x76, 0xea, 0x32, 0xb8, 0x95, 0x41, 0x1a,
+ 0xc9, 0xda, 0x61, 0x4e, 0x58, 0x72, 0xcf, 0xfe, 0xf6, 0x82, 0x79, 0xbf,
+ 0x73, 0x61, 0x06, 0x0a, 0xa5, 0x27, 0xd8, 0xb3, 0x5f, 0xd3, 0x45, 0x4e,
+ 0x1c, 0x72, 0xd6, 0x4e, 0x32, 0xf2, 0x72, 0x8a, 0x0f, 0xf7, 0x83, 0x19,
+ 0xd0, 0x6a, 0x80, 0x80, 0x00, 0x45, 0x1e, 0xb0, 0xc7, 0xe7, 0x9a, 0xbf,
+ 0x12, 0x57, 0x27, 0x1c, 0xa3, 0x68, 0x2f, 0x0a, 0x87, 0xbd, 0x6a, 0x6b,
+ 0x0e, 0x5e, 0x65, 0xf3, 0x1c, 0x77, 0xd5, 0xd4, 0x85, 0x8d, 0x70, 0x21,
+ 0xb4, 0xb3, 0x32, 0xe7, 0x8b, 0xa2, 0xd5, 0x86, 0x39, 0x02, 0xb1, 0xb8,
+ 0xd2, 0x47, 0xce, 0xe4, 0xc9, 0x49, 0xc4, 0x3b, 0xa7, 0xde, 0xfb, 0x54,
+ 0x7d, 0x57, 0xbe, 0xf0, 0xe8, 0x6e, 0xc2, 0x79, 0xb2, 0x3a, 0x0b, 0x55,
+ 0xe2, 0x50, 0x98, 0x16, 0x32, 0x13, 0x5c, 0x2f, 0x78, 0x56, 0xc1, 0xc2,
+ 0x94, 0xb3, 0xf2, 0x5a, 0xe4, 0x27, 0x9a, 0x9f, 0x24, 0xd7, 0xc6, 0xec,
+ 0xd0, 0x9b, 0x25, 0x82, 0xe3, 0xcc, 0xc2, 0xc4, 0x45, 0xc5, 0x8c, 0x97,
+ 0x7a, 0x06, 0x6b, 0x2a, 0x11, 0x9f, 0xa9, 0x0a, 0x6e, 0x48, 0x3b, 0x6f,
+ 0xdb, 0xd4, 0x11, 0x19, 0x42, 0xf7, 0x8f, 0x07, 0xbf, 0xf5, 0x53, 0x5f,
+ 0x9c, 0x3e, 0xf4, 0x17, 0x2c, 0xe6, 0x69, 0xac, 0x4e, 0x32, 0x4c, 0x62,
+ 0x77, 0xea, 0xb7, 0xe8, 0xe5, 0xbb, 0x34, 0xbc, 0x19, 0x8b, 0xae, 0x9c,
+ 0x51, 0xe7, 0xb7, 0x7e, 0xb5, 0x53, 0xb1, 0x33, 0x22, 0xe5, 0x6d, 0xcf,
+ 0x70, 0x3c, 0x1a, 0xfa, 0xe2, 0x9b, 0x67, 0xb6, 0x83, 0xf4, 0x8d, 0xa5,
+ 0xaf, 0x62, 0x4c, 0x4d, 0xe0, 0x58, 0xac, 0x64, 0x34, 0x12, 0x03, 0xf8,
+ 0xb6, 0x8d, 0x94, 0x63, 0x24, 0xa4, 0x71, 0x02, 0x03, 0x01, 0x00, 0x01,
+ 0xa3, 0x82, 0x01, 0x0f, 0x30, 0x82, 0x01, 0x0b, 0x30, 0x0e, 0x06, 0x03,
+ 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+ 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+ 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x01, 0x30, 0x33, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x27, 0x30, 0x25,
+ 0x30, 0x23, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+ 0x86, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+ 0x70, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+ 0x74, 0x30, 0x33, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2c, 0x30, 0x2a,
+ 0x30, 0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x63,
+ 0x61, 0x31, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d,
+ 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06, 0x04, 0x55, 0x1d, 0x20,
+ 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x6e, 0x65, 0x74, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x6a, 0x72, 0x26, 0x7a, 0xd0, 0x1e,
+ 0xef, 0x7d, 0xe7, 0x3b, 0x69, 0x51, 0xd4, 0x6c, 0x8d, 0x9f, 0x90, 0x12,
+ 0x66, 0xab, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0x68, 0x90, 0xe4, 0x67, 0xa4, 0xa6, 0x53, 0x80, 0xc7,
+ 0x86, 0x66, 0xa4, 0xf1, 0xf7, 0x4b, 0x43, 0xfb, 0x84, 0xbd, 0x6d, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x69, 0x33, 0x83, 0xfc, 0x28,
+ 0x7a, 0x6f, 0x7d, 0xef, 0x9d, 0x55, 0xeb, 0xc5, 0x3e, 0x7a, 0x9d, 0x75,
+ 0xb3, 0xcc, 0xc3, 0x38, 0x36, 0xd9, 0x34, 0xa2, 0x28, 0x68, 0x18, 0xea,
+ 0x1e, 0x69, 0xd3, 0xbd, 0xe7, 0xd0, 0x77, 0xda, 0xb8, 0x00, 0x83, 0x4e,
+ 0x4a, 0xcf, 0x6f, 0xd1, 0xf1, 0xc1, 0x22, 0x3f, 0x74, 0xe4, 0xf7, 0x98,
+ 0x49, 0x9e, 0x9b, 0xb6, 0x9e, 0xe1, 0xdb, 0x98, 0x77, 0x2d, 0x56, 0x34,
+ 0xb1, 0xa8, 0x3c, 0xd9, 0xfd, 0xc0, 0xcd, 0xc7, 0xbf, 0x05, 0x03, 0xd4,
+ 0x02, 0xc5, 0xf1, 0xe5, 0xc6, 0xda, 0x08, 0xa5, 0x13, 0xc7, 0x62, 0x23,
+ 0x11, 0xd1, 0x61, 0x30, 0x1d, 0x60, 0x84, 0x45, 0xef, 0x79, 0xa8, 0xc6,
+ 0x26, 0x93, 0xa4, 0xb7, 0xcd, 0x34, 0xb8, 0x69, 0xc5, 0x13, 0xf6, 0x91,
+ 0xb3, 0xc9, 0x45, 0x73, 0x76, 0xb6, 0x92, 0xf6, 0x76, 0x0a, 0x5b, 0xe1,
+ 0x03, 0x47, 0xb7, 0xe9, 0x29, 0x4c, 0x91, 0x32, 0x23, 0x37, 0x4a, 0x9c,
+ 0x35, 0xd8, 0x78, 0xfd, 0x1d, 0x1f, 0xe4, 0x83, 0x89, 0x24, 0x80, 0xad,
+ 0xb7, 0xf9, 0xcf, 0xe4, 0x5d, 0xa5, 0xd4, 0x71, 0xc4, 0x85, 0x5b, 0x70,
+ 0x1f, 0xdb, 0x3f, 0x1c, 0x01, 0xeb, 0x1a, 0x45, 0x26, 0x31, 0x14, 0xcc,
+ 0x65, 0xbf, 0x67, 0xde, 0xca, 0xcc, 0x33, 0x65, 0xe5, 0x41, 0x91, 0xd7,
+ 0x37, 0xbe, 0x41, 0x1a, 0x96, 0x9d, 0xe6, 0x8a, 0x97, 0x9d, 0xa7, 0xce,
+ 0xac, 0x4e, 0x9a, 0x3d, 0xbd, 0x01, 0xa0, 0x6a, 0xd9, 0x4f, 0x22, 0x00,
+ 0x8b, 0x44, 0xd5, 0x69, 0x62, 0x7b, 0x2e, 0xeb, 0xcc, 0xba, 0xe7, 0x92,
+ 0x7d, 0x69, 0x67, 0x3d, 0xfc, 0xb8, 0x7c, 0xde, 0x41, 0x87, 0xd0, 0x69,
+ 0xea, 0xba, 0x0a, 0x18, 0x7a, 0x1a, 0x95, 0x43, 0xb3, 0x79, 0x71, 0x28,
+ 0x76, 0x6d, 0xa1, 0xfb, 0x57, 0x4a, 0xec, 0x4d, 0xc8, 0x0e, 0x10,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 7 (0x7)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Root Certificate Authority - G2
+ Validity
+ Not Before: May 3 07:00:00 2011 GMT
+ Not After : May 3 07:00:00 2031 GMT
+ Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., OU=http://certs.starfieldtech.com/repository/, CN=Starfield Secure Certificate Authority - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:e5:90:66:4b:ec:f9:46:71:a9:20:83:be:e9:6c:
+ bf:4a:c9:48:69:81:75:4e:6d:24:f6:cb:17:13:f8:
+ b0:71:59:84:7a:6b:2b:85:a4:34:b5:16:e5:cb:cc:
+ e9:41:70:2c:a4:2e:d6:fa:32:7d:e1:a8:de:94:10:
+ ac:31:c1:c0:d8:6a:ff:59:27:ab:76:d6:fc:0b:74:
+ 6b:b8:a7:ae:3f:c4:54:f4:b4:31:44:dd:93:56:8c:
+ a4:4c:5e:9b:89:cb:24:83:9b:e2:57:7d:b7:d8:12:
+ 1f:c9:85:6d:f4:d1:80:f1:50:9b:87:ae:d4:0b:10:
+ 05:fb:27:ba:28:6d:17:e9:0e:d6:4d:b9:39:55:06:
+ ff:0a:24:05:7e:2f:c6:1d:72:6c:d4:8b:29:8c:57:
+ 7d:da:d9:eb:66:1a:d3:4f:a7:df:7f:52:c4:30:c5:
+ a5:c9:0e:02:c5:53:bf:77:38:68:06:24:c3:66:c8:
+ 37:7e:30:1e:45:71:23:35:ff:90:d8:2a:9d:8d:e7:
+ b0:92:4d:3c:7f:2a:0a:93:dc:cd:16:46:65:f7:60:
+ 84:8b:76:4b:91:27:73:14:92:e0:ea:ee:8f:16:ea:
+ 8d:0e:3e:76:17:bf:7d:89:80:80:44:43:e7:2d:e0:
+ 43:09:75:da:36:e8:ad:db:89:3a:f5:5d:12:8e:23:
+ 04:83
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 25:45:81:68:50:26:38:3D:3B:2D:2C:BE:CD:6A:D9:B6:3D:B3:66:63
+ X509v3 Authority Key Identifier:
+ keyid:7C:0C:32:1F:A7:D9:30:7F:C4:7D:68:A3:62:A8:A1:CE:AB:07:5B:27
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.starfieldtech.com/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.starfieldtech.com/sfroot-g2.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://certs.starfieldtech.com/repository/
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 56:65:ca:fe:f3:3f:0a:a8:93:8b:18:c7:de:43:69:13:34:20:
+ be:4e:5f:78:a8:6b:9c:db:6a:4d:41:db:c1:13:ec:dc:31:00:
+ 22:5e:f7:00:9e:0c:e0:34:65:34:f9:b1:3a:4e:48:c8:12:81:
+ 88:5c:5b:3e:08:53:7a:f7:1a:64:df:b8:50:61:cc:53:51:40:
+ 29:4b:c2:f4:ae:3a:5f:e4:ca:ad:26:cc:4e:61:43:e5:fd:57:
+ a6:37:70:ce:43:2b:b0:94:c3:92:e9:e1:5f:aa:10:49:b7:69:
+ e4:e0:d0:1f:64:a4:2b:cd:1f:6f:a0:f8:84:24:18:ce:79:3d:
+ a9:91:bf:54:18:13:89:99:54:11:0d:55:c5:26:0b:79:4f:5a:
+ 1c:6e:f9:63:db:14:80:a4:07:ab:fa:b2:a5:b9:88:dd:91:fe:
+ 65:3b:a4:a3:79:be:89:4d:e1:d0:b0:f4:c8:17:0c:0a:96:14:
+ 7c:09:b7:6c:e1:c2:d8:55:d4:18:a0:aa:41:69:70:24:a3:b9:
+ ef:e9:5a:dc:3e:eb:94:4a:f0:b7:de:5f:0e:76:fa:fb:fb:69:
+ 03:45:40:50:ee:72:0c:a4:12:86:81:cd:13:d1:4e:c4:3c:ca:
+ 4e:0d:d2:26:f1:00:b7:b4:a6:a2:e1:6e:7a:81:fd:30:ac:7a:
+ 1f:c7:59:7b
+-----BEGIN CERTIFICATE-----
+MIIFADCCA+igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
+HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
+ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAw
+MFoXDTMxMDUwMzA3MDAwMFowgcYxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
+b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
+aG5vbG9naWVzLCBJbmMuMTMwMQYDVQQLEypodHRwOi8vY2VydHMuc3RhcmZpZWxk
+dGVjaC5jb20vcmVwb3NpdG9yeS8xNDAyBgNVBAMTK1N0YXJmaWVsZCBTZWN1cmUg
+Q2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDlkGZL7PlGcakgg77pbL9KyUhpgXVObST2yxcT+LBxWYR6ayuF
+pDS1FuXLzOlBcCykLtb6Mn3hqN6UEKwxwcDYav9ZJ6t21vwLdGu4p64/xFT0tDFE
+3ZNWjKRMXpuJyySDm+JXfbfYEh/JhW300YDxUJuHrtQLEAX7J7oobRfpDtZNuTlV
+Bv8KJAV+L8YdcmzUiymMV33a2etmGtNPp99/UsQwxaXJDgLFU793OGgGJMNmyDd+
+MB5FcSM1/5DYKp2N57CSTTx/KgqT3M0WRmX3YISLdkuRJ3MUkuDq7o8W6o0OPnYX
+v32JgIBEQ+ct4EMJddo26K3biTr1XRKOIwSDAgMBAAGjggEsMIIBKDAPBgNVHRMB
+Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUJUWBaFAmOD07LSy+
+zWrZtj2zZmMwHwYDVR0jBBgwFoAUfAwyH6fZMH/EfWijYqihzqsHWycwOgYIKwYB
+BQUHAQEELjAsMCoGCCsGAQUFBzABhh5odHRwOi8vb2NzcC5zdGFyZmllbGR0ZWNo
+LmNvbS8wOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL2NybC5zdGFyZmllbGR0ZWNo
+LmNvbS9zZnJvb3QtZzIuY3JsMEwGA1UdIARFMEMwQQYEVR0gADA5MDcGCCsGAQUF
+BwIBFitodHRwczovL2NlcnRzLnN0YXJmaWVsZHRlY2guY29tL3JlcG9zaXRvcnkv
+MA0GCSqGSIb3DQEBCwUAA4IBAQBWZcr+8z8KqJOLGMfeQ2kTNCC+Tl94qGuc22pN
+QdvBE+zcMQAiXvcAngzgNGU0+bE6TkjIEoGIXFs+CFN69xpk37hQYcxTUUApS8L0
+rjpf5MqtJsxOYUPl/VemN3DOQyuwlMOS6eFfqhBJt2nk4NAfZKQrzR9voPiEJBjO
+eT2pkb9UGBOJmVQRDVXFJgt5T1ocbvlj2xSApAer+rKluYjdkf5lO6Sjeb6JTeHQ
+sPTIFwwKlhR8Cbds4cLYVdQYoKpBaXAko7nv6VrcPuuUSvC33l8Odvr7+2kDRUBQ
+7nIMpBKGgc0T0U7EPMpODdIm8QC3tKai4W56gf0wrHofx1l7
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert39[] = {
+ 0x30, 0x82, 0x05, 0x00, 0x30, 0x82, 0x03, 0xe8, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x01, 0x07, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x8f, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72,
+ 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
+ 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61,
+ 0x6c, 0x65, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x1c, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54,
+ 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c,
+ 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x29, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c,
+ 0x64, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37, 0x30, 0x30, 0x30,
+ 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37,
+ 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x81, 0xc6, 0x31, 0x0b, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a,
+ 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07,
+ 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65,
+ 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53,
+ 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63,
+ 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x33, 0x30, 0x31, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x2a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72,
+ 0x74, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64,
+ 0x74, 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x31, 0x34, 0x30, 0x32,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2b, 0x53, 0x74, 0x61, 0x72, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20,
+ 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20,
+ 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe5,
+ 0x90, 0x66, 0x4b, 0xec, 0xf9, 0x46, 0x71, 0xa9, 0x20, 0x83, 0xbe, 0xe9,
+ 0x6c, 0xbf, 0x4a, 0xc9, 0x48, 0x69, 0x81, 0x75, 0x4e, 0x6d, 0x24, 0xf6,
+ 0xcb, 0x17, 0x13, 0xf8, 0xb0, 0x71, 0x59, 0x84, 0x7a, 0x6b, 0x2b, 0x85,
+ 0xa4, 0x34, 0xb5, 0x16, 0xe5, 0xcb, 0xcc, 0xe9, 0x41, 0x70, 0x2c, 0xa4,
+ 0x2e, 0xd6, 0xfa, 0x32, 0x7d, 0xe1, 0xa8, 0xde, 0x94, 0x10, 0xac, 0x31,
+ 0xc1, 0xc0, 0xd8, 0x6a, 0xff, 0x59, 0x27, 0xab, 0x76, 0xd6, 0xfc, 0x0b,
+ 0x74, 0x6b, 0xb8, 0xa7, 0xae, 0x3f, 0xc4, 0x54, 0xf4, 0xb4, 0x31, 0x44,
+ 0xdd, 0x93, 0x56, 0x8c, 0xa4, 0x4c, 0x5e, 0x9b, 0x89, 0xcb, 0x24, 0x83,
+ 0x9b, 0xe2, 0x57, 0x7d, 0xb7, 0xd8, 0x12, 0x1f, 0xc9, 0x85, 0x6d, 0xf4,
+ 0xd1, 0x80, 0xf1, 0x50, 0x9b, 0x87, 0xae, 0xd4, 0x0b, 0x10, 0x05, 0xfb,
+ 0x27, 0xba, 0x28, 0x6d, 0x17, 0xe9, 0x0e, 0xd6, 0x4d, 0xb9, 0x39, 0x55,
+ 0x06, 0xff, 0x0a, 0x24, 0x05, 0x7e, 0x2f, 0xc6, 0x1d, 0x72, 0x6c, 0xd4,
+ 0x8b, 0x29, 0x8c, 0x57, 0x7d, 0xda, 0xd9, 0xeb, 0x66, 0x1a, 0xd3, 0x4f,
+ 0xa7, 0xdf, 0x7f, 0x52, 0xc4, 0x30, 0xc5, 0xa5, 0xc9, 0x0e, 0x02, 0xc5,
+ 0x53, 0xbf, 0x77, 0x38, 0x68, 0x06, 0x24, 0xc3, 0x66, 0xc8, 0x37, 0x7e,
+ 0x30, 0x1e, 0x45, 0x71, 0x23, 0x35, 0xff, 0x90, 0xd8, 0x2a, 0x9d, 0x8d,
+ 0xe7, 0xb0, 0x92, 0x4d, 0x3c, 0x7f, 0x2a, 0x0a, 0x93, 0xdc, 0xcd, 0x16,
+ 0x46, 0x65, 0xf7, 0x60, 0x84, 0x8b, 0x76, 0x4b, 0x91, 0x27, 0x73, 0x14,
+ 0x92, 0xe0, 0xea, 0xee, 0x8f, 0x16, 0xea, 0x8d, 0x0e, 0x3e, 0x76, 0x17,
+ 0xbf, 0x7d, 0x89, 0x80, 0x80, 0x44, 0x43, 0xe7, 0x2d, 0xe0, 0x43, 0x09,
+ 0x75, 0xda, 0x36, 0xe8, 0xad, 0xdb, 0x89, 0x3a, 0xf5, 0x5d, 0x12, 0x8e,
+ 0x23, 0x04, 0x83, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x2c,
+ 0x30, 0x82, 0x01, 0x28, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+ 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06,
+ 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+ 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x25, 0x45, 0x81, 0x68, 0x50, 0x26, 0x38, 0x3d, 0x3b, 0x2d, 0x2c, 0xbe,
+ 0xcd, 0x6a, 0xd9, 0xb6, 0x3d, 0xb3, 0x66, 0x63, 0x30, 0x1f, 0x06, 0x03,
+ 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7c, 0x0c, 0x32,
+ 0x1f, 0xa7, 0xd9, 0x30, 0x7f, 0xc4, 0x7d, 0x68, 0xa3, 0x62, 0xa8, 0xa1,
+ 0xce, 0xab, 0x07, 0x5b, 0x27, 0x30, 0x3a, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1e, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x73,
+ 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0xa0, 0x2e, 0xa0, 0x2c, 0x86, 0x2a,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x73,
+ 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x72, 0x6f, 0x6f, 0x74, 0x2d,
+ 0x67, 0x32, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d,
+ 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06, 0x04, 0x55, 0x1d, 0x20,
+ 0x00, 0x30, 0x39, 0x30, 0x37, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x2b, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+ 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x56, 0x65, 0xca, 0xfe,
+ 0xf3, 0x3f, 0x0a, 0xa8, 0x93, 0x8b, 0x18, 0xc7, 0xde, 0x43, 0x69, 0x13,
+ 0x34, 0x20, 0xbe, 0x4e, 0x5f, 0x78, 0xa8, 0x6b, 0x9c, 0xdb, 0x6a, 0x4d,
+ 0x41, 0xdb, 0xc1, 0x13, 0xec, 0xdc, 0x31, 0x00, 0x22, 0x5e, 0xf7, 0x00,
+ 0x9e, 0x0c, 0xe0, 0x34, 0x65, 0x34, 0xf9, 0xb1, 0x3a, 0x4e, 0x48, 0xc8,
+ 0x12, 0x81, 0x88, 0x5c, 0x5b, 0x3e, 0x08, 0x53, 0x7a, 0xf7, 0x1a, 0x64,
+ 0xdf, 0xb8, 0x50, 0x61, 0xcc, 0x53, 0x51, 0x40, 0x29, 0x4b, 0xc2, 0xf4,
+ 0xae, 0x3a, 0x5f, 0xe4, 0xca, 0xad, 0x26, 0xcc, 0x4e, 0x61, 0x43, 0xe5,
+ 0xfd, 0x57, 0xa6, 0x37, 0x70, 0xce, 0x43, 0x2b, 0xb0, 0x94, 0xc3, 0x92,
+ 0xe9, 0xe1, 0x5f, 0xaa, 0x10, 0x49, 0xb7, 0x69, 0xe4, 0xe0, 0xd0, 0x1f,
+ 0x64, 0xa4, 0x2b, 0xcd, 0x1f, 0x6f, 0xa0, 0xf8, 0x84, 0x24, 0x18, 0xce,
+ 0x79, 0x3d, 0xa9, 0x91, 0xbf, 0x54, 0x18, 0x13, 0x89, 0x99, 0x54, 0x11,
+ 0x0d, 0x55, 0xc5, 0x26, 0x0b, 0x79, 0x4f, 0x5a, 0x1c, 0x6e, 0xf9, 0x63,
+ 0xdb, 0x14, 0x80, 0xa4, 0x07, 0xab, 0xfa, 0xb2, 0xa5, 0xb9, 0x88, 0xdd,
+ 0x91, 0xfe, 0x65, 0x3b, 0xa4, 0xa3, 0x79, 0xbe, 0x89, 0x4d, 0xe1, 0xd0,
+ 0xb0, 0xf4, 0xc8, 0x17, 0x0c, 0x0a, 0x96, 0x14, 0x7c, 0x09, 0xb7, 0x6c,
+ 0xe1, 0xc2, 0xd8, 0x55, 0xd4, 0x18, 0xa0, 0xaa, 0x41, 0x69, 0x70, 0x24,
+ 0xa3, 0xb9, 0xef, 0xe9, 0x5a, 0xdc, 0x3e, 0xeb, 0x94, 0x4a, 0xf0, 0xb7,
+ 0xde, 0x5f, 0x0e, 0x76, 0xfa, 0xfb, 0xfb, 0x69, 0x03, 0x45, 0x40, 0x50,
+ 0xee, 0x72, 0x0c, 0xa4, 0x12, 0x86, 0x81, 0xcd, 0x13, 0xd1, 0x4e, 0xc4,
+ 0x3c, 0xca, 0x4e, 0x0d, 0xd2, 0x26, 0xf1, 0x00, 0xb7, 0xb4, 0xa6, 0xa2,
+ 0xe1, 0x6e, 0x7a, 0x81, 0xfd, 0x30, 0xac, 0x7a, 0x1f, 0xc7, 0x59, 0x7b,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 1372807406 (0x51d360ee)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
+ Validity
+ Not Before: Oct 22 17:05:14 2014 GMT
+ Not After : Oct 23 07:33:22 2024 GMT
+ Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2012 Entrust, Inc. - for authorized use only, CN=Entrust Certification Authority - L1K
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:da:3f:96:d0:4d:b9:2f:44:e7:db:39:5e:9b:50:
+ ee:5c:a5:61:da:41:67:53:09:aa:00:9a:8e:57:7f:
+ 29:6b:db:c7:e1:21:24:aa:3a:d0:8d:47:23:d2:ed:
+ 72:16:f0:91:21:d2:5d:b7:b8:4b:a8:83:8f:b7:91:
+ 32:68:cf:ce:25:93:2c:b2:7d:97:c8:fe:c1:b4:17:
+ ba:09:9e:03:90:93:7b:7c:49:83:22:68:8a:9b:de:
+ 47:c3:31:98:7a:2e:7d:40:0b:d2:ef:3e:d3:b2:8c:
+ aa:8f:48:a9:ff:00:e8:29:58:06:f7:b6:93:5a:94:
+ 73:26:26:ad:58:0e:e5:42:b8:d5:ea:73:79:64:68:
+ 53:25:b8:84:cf:94:7a:ae:06:45:0c:a3:6b:4d:d0:
+ c6:be:ea:18:a4:36:f0:92:b2:ba:1c:88:8f:3a:52:
+ 7f:f7:5e:6d:83:1c:9d:f0:1f:e5:c3:d6:dd:a5:78:
+ 92:3d:b0:6d:2c:ea:c9:cf:94:41:19:71:44:68:ba:
+ 47:3c:04:e9:5d:ba:3e:f0:35:f7:15:b6:9e:f2:2e:
+ 15:1e:3f:47:c8:c8:38:a7:73:45:5d:4d:b0:3b:b1:
+ 8e:17:29:37:ea:dd:05:01:22:bb:94:36:2a:8d:5b:
+ 35:fe:53:19:2f:08:46:c1:2a:b3:1a:62:1d:4e:2b:
+ d9:1b
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints:
+ CA:TRUE, pathlen:0
+ Authority Information Access:
+ OCSP - URI:http://ocsp.entrust.net
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.entrust.net/g2ca.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.entrust.net/rpa
+
+ X509v3 Subject Key Identifier:
+ 82:A2:70:74:DD:BC:53:3F:CF:7B:D4:F7:CD:7F:A7:60:C6:0A:4C:BF
+ X509v3 Authority Key Identifier:
+ keyid:6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 3f:1c:1a:5b:ff:40:22:1d:8f:35:0c:2d:aa:99:27:ab:c0:11:
+ 32:70:d7:36:28:69:a5:8d:b1:27:99:42:be:c4:93:eb:48:57:
+ 43:71:23:c4:e5:4e:ad:ae:43:6f:92:76:c5:19:ef:ca:bc:6f:
+ 42:4c:16:9a:86:a9:04:38:c7:65:f0:f5:0c:e0:4a:df:a2:fa:
+ ce:1a:11:a8:9c:69:2f:1b:df:ea:e2:32:f3:ce:4c:bc:46:0c:
+ c0:89:80:d1:87:6b:a2:cf:6b:d4:7f:fd:f5:60:52:67:57:a0:
+ 6d:d1:64:41:14:6d:34:62:ed:06:6c:24:f2:06:bc:28:02:af:
+ 03:2d:c2:33:05:fb:cb:aa:16:e8:65:10:43:f5:69:5c:e3:81:
+ 58:99:cd:6b:d3:b8:c7:7b:19:55:c9:40:ce:79:55:b8:73:89:
+ e9:5c:40:66:43:12:7f:07:b8:65:56:d5:8d:c3:a7:f5:b1:b6:
+ 65:9e:c0:83:36:7f:16:45:3c:74:4b:93:8a:3c:f1:2b:f5:35:
+ 70:73:7b:e7:82:04:b1:18:98:0e:d4:9c:6f:1a:fc:fc:a7:33:
+ a5:bb:bb:18:f3:6b:7a:5d:32:87:f7:6d:25:e4:e2:76:86:21:
+ 1e:11:46:cd:76:0e:6f:4f:a4:21:71:0a:84:a7:2d:36:a9:48:
+ 22:51:7e:82
+-----BEGIN CERTIFICATE-----
+MIIFAzCCA+ugAwIBAgIEUdNg7jANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50
+cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs
+IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz
+dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMTQxMDIyMTcw
+NTE0WhcNMjQxMDIzMDczMzIyWjCBujELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu
+dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt
+dGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0
+aG9yaXplZCB1c2Ugb25seTEuMCwGA1UEAxMlRW50cnVzdCBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eSAtIEwxSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANo/ltBNuS9E59s5XptQ7lylYdpBZ1MJqgCajld/KWvbx+EhJKo60I1HI9Ltchbw
+kSHSXbe4S6iDj7eRMmjPziWTLLJ9l8j+wbQXugmeA5CTe3xJgyJoipveR8MxmHou
+fUAL0u8+07KMqo9Iqf8A6ClYBve2k1qUcyYmrVgO5UK41epzeWRoUyW4hM+Ueq4G
+RQyja03Qxr7qGKQ28JKyuhyIjzpSf/debYMcnfAf5cPW3aV4kj2wbSzqyc+UQRlx
+RGi6RzwE6V26PvA19xW2nvIuFR4/R8jIOKdzRV1NsDuxjhcpN+rdBQEiu5Q2Ko1b
+Nf5TGS8IRsEqsxpiHU4r2RsCAwEAAaOCAQkwggEFMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMECDAGAQH/AgEAMDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcwAYYXaHR0
+cDovL29jc3AuZW50cnVzdC5uZXQwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL2Ny
+bC5lbnRydXN0Lm5ldC9nMmNhLmNybDA7BgNVHSAENDAyMDAGBFUdIAAwKDAmBggr
+BgEFBQcCARYaaHR0cDovL3d3dy5lbnRydXN0Lm5ldC9ycGEwHQYDVR0OBBYEFIKi
+cHTdvFM/z3vU981/p2DGCky/MB8GA1UdIwQYMBaAFGpyJnrQHu995ztpUdRsjZ+Q
+EmarMA0GCSqGSIb3DQEBCwUAA4IBAQA/HBpb/0AiHY81DC2qmSerwBEycNc2KGml
+jbEnmUK+xJPrSFdDcSPE5U6trkNvknbFGe/KvG9CTBaahqkEOMdl8PUM4ErfovrO
+GhGonGkvG9/q4jLzzky8RgzAiYDRh2uiz2vUf/31YFJnV6Bt0WRBFG00Yu0GbCTy
+BrwoAq8DLcIzBfvLqhboZRBD9Wlc44FYmc1r07jHexlVyUDOeVW4c4npXEBmQxJ/
+B7hlVtWNw6f1sbZlnsCDNn8WRTx0S5OKPPEr9TVwc3vnggSxGJgO1JxvGvz8pzOl
+u7sY82t6XTKH920l5OJ2hiEeEUbNdg5vT6QhcQqEpy02qUgiUX6C
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert40[] = {
+ 0x30, 0x82, 0x05, 0x03, 0x30, 0x82, 0x03, 0xeb, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x51, 0xd3, 0x60, 0xee, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xbe, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0d, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x1f, 0x53, 0x65, 0x65, 0x20, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67,
+ 0x61, 0x6c, 0x2d, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37,
+ 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32,
+ 0x30, 0x30, 0x39, 0x20, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c,
+ 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20,
+ 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75,
+ 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x32, 0x30, 0x30, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x29, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30,
+ 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x31, 0x30, 0x32, 0x32, 0x31, 0x37, 0x30,
+ 0x35, 0x31, 0x34, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x31, 0x30, 0x32, 0x33,
+ 0x30, 0x37, 0x33, 0x33, 0x32, 0x32, 0x5a, 0x30, 0x81, 0xba, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x45, 0x6e,
+ 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31,
+ 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f, 0x53, 0x65,
+ 0x65, 0x20, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73,
+ 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d,
+ 0x74, 0x65, 0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x32,
+ 0x20, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20,
+ 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x2e, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x25, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x43,
+ 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d,
+ 0x20, 0x4c, 0x31, 0x4b, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+ 0x00, 0xda, 0x3f, 0x96, 0xd0, 0x4d, 0xb9, 0x2f, 0x44, 0xe7, 0xdb, 0x39,
+ 0x5e, 0x9b, 0x50, 0xee, 0x5c, 0xa5, 0x61, 0xda, 0x41, 0x67, 0x53, 0x09,
+ 0xaa, 0x00, 0x9a, 0x8e, 0x57, 0x7f, 0x29, 0x6b, 0xdb, 0xc7, 0xe1, 0x21,
+ 0x24, 0xaa, 0x3a, 0xd0, 0x8d, 0x47, 0x23, 0xd2, 0xed, 0x72, 0x16, 0xf0,
+ 0x91, 0x21, 0xd2, 0x5d, 0xb7, 0xb8, 0x4b, 0xa8, 0x83, 0x8f, 0xb7, 0x91,
+ 0x32, 0x68, 0xcf, 0xce, 0x25, 0x93, 0x2c, 0xb2, 0x7d, 0x97, 0xc8, 0xfe,
+ 0xc1, 0xb4, 0x17, 0xba, 0x09, 0x9e, 0x03, 0x90, 0x93, 0x7b, 0x7c, 0x49,
+ 0x83, 0x22, 0x68, 0x8a, 0x9b, 0xde, 0x47, 0xc3, 0x31, 0x98, 0x7a, 0x2e,
+ 0x7d, 0x40, 0x0b, 0xd2, 0xef, 0x3e, 0xd3, 0xb2, 0x8c, 0xaa, 0x8f, 0x48,
+ 0xa9, 0xff, 0x00, 0xe8, 0x29, 0x58, 0x06, 0xf7, 0xb6, 0x93, 0x5a, 0x94,
+ 0x73, 0x26, 0x26, 0xad, 0x58, 0x0e, 0xe5, 0x42, 0xb8, 0xd5, 0xea, 0x73,
+ 0x79, 0x64, 0x68, 0x53, 0x25, 0xb8, 0x84, 0xcf, 0x94, 0x7a, 0xae, 0x06,
+ 0x45, 0x0c, 0xa3, 0x6b, 0x4d, 0xd0, 0xc6, 0xbe, 0xea, 0x18, 0xa4, 0x36,
+ 0xf0, 0x92, 0xb2, 0xba, 0x1c, 0x88, 0x8f, 0x3a, 0x52, 0x7f, 0xf7, 0x5e,
+ 0x6d, 0x83, 0x1c, 0x9d, 0xf0, 0x1f, 0xe5, 0xc3, 0xd6, 0xdd, 0xa5, 0x78,
+ 0x92, 0x3d, 0xb0, 0x6d, 0x2c, 0xea, 0xc9, 0xcf, 0x94, 0x41, 0x19, 0x71,
+ 0x44, 0x68, 0xba, 0x47, 0x3c, 0x04, 0xe9, 0x5d, 0xba, 0x3e, 0xf0, 0x35,
+ 0xf7, 0x15, 0xb6, 0x9e, 0xf2, 0x2e, 0x15, 0x1e, 0x3f, 0x47, 0xc8, 0xc8,
+ 0x38, 0xa7, 0x73, 0x45, 0x5d, 0x4d, 0xb0, 0x3b, 0xb1, 0x8e, 0x17, 0x29,
+ 0x37, 0xea, 0xdd, 0x05, 0x01, 0x22, 0xbb, 0x94, 0x36, 0x2a, 0x8d, 0x5b,
+ 0x35, 0xfe, 0x53, 0x19, 0x2f, 0x08, 0x46, 0xc1, 0x2a, 0xb3, 0x1a, 0x62,
+ 0x1d, 0x4e, 0x2b, 0xd9, 0x1b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+ 0x01, 0x09, 0x30, 0x82, 0x01, 0x05, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x0f,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+ 0x02, 0x01, 0x00, 0x30, 0x33, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x01, 0x01, 0x04, 0x27, 0x30, 0x25, 0x30, 0x23, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x17, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x65, 0x6e, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x30, 0x30, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x29, 0x30, 0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0,
+ 0x21, 0x86, 0x1f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x6c, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+ 0x74, 0x2f, 0x67, 0x32, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06,
+ 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x70, 0x61, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x82, 0xa2,
+ 0x70, 0x74, 0xdd, 0xbc, 0x53, 0x3f, 0xcf, 0x7b, 0xd4, 0xf7, 0xcd, 0x7f,
+ 0xa7, 0x60, 0xc6, 0x0a, 0x4c, 0xbf, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x6a, 0x72, 0x26, 0x7a, 0xd0,
+ 0x1e, 0xef, 0x7d, 0xe7, 0x3b, 0x69, 0x51, 0xd4, 0x6c, 0x8d, 0x9f, 0x90,
+ 0x12, 0x66, 0xab, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x3f,
+ 0x1c, 0x1a, 0x5b, 0xff, 0x40, 0x22, 0x1d, 0x8f, 0x35, 0x0c, 0x2d, 0xaa,
+ 0x99, 0x27, 0xab, 0xc0, 0x11, 0x32, 0x70, 0xd7, 0x36, 0x28, 0x69, 0xa5,
+ 0x8d, 0xb1, 0x27, 0x99, 0x42, 0xbe, 0xc4, 0x93, 0xeb, 0x48, 0x57, 0x43,
+ 0x71, 0x23, 0xc4, 0xe5, 0x4e, 0xad, 0xae, 0x43, 0x6f, 0x92, 0x76, 0xc5,
+ 0x19, 0xef, 0xca, 0xbc, 0x6f, 0x42, 0x4c, 0x16, 0x9a, 0x86, 0xa9, 0x04,
+ 0x38, 0xc7, 0x65, 0xf0, 0xf5, 0x0c, 0xe0, 0x4a, 0xdf, 0xa2, 0xfa, 0xce,
+ 0x1a, 0x11, 0xa8, 0x9c, 0x69, 0x2f, 0x1b, 0xdf, 0xea, 0xe2, 0x32, 0xf3,
+ 0xce, 0x4c, 0xbc, 0x46, 0x0c, 0xc0, 0x89, 0x80, 0xd1, 0x87, 0x6b, 0xa2,
+ 0xcf, 0x6b, 0xd4, 0x7f, 0xfd, 0xf5, 0x60, 0x52, 0x67, 0x57, 0xa0, 0x6d,
+ 0xd1, 0x64, 0x41, 0x14, 0x6d, 0x34, 0x62, 0xed, 0x06, 0x6c, 0x24, 0xf2,
+ 0x06, 0xbc, 0x28, 0x02, 0xaf, 0x03, 0x2d, 0xc2, 0x33, 0x05, 0xfb, 0xcb,
+ 0xaa, 0x16, 0xe8, 0x65, 0x10, 0x43, 0xf5, 0x69, 0x5c, 0xe3, 0x81, 0x58,
+ 0x99, 0xcd, 0x6b, 0xd3, 0xb8, 0xc7, 0x7b, 0x19, 0x55, 0xc9, 0x40, 0xce,
+ 0x79, 0x55, 0xb8, 0x73, 0x89, 0xe9, 0x5c, 0x40, 0x66, 0x43, 0x12, 0x7f,
+ 0x07, 0xb8, 0x65, 0x56, 0xd5, 0x8d, 0xc3, 0xa7, 0xf5, 0xb1, 0xb6, 0x65,
+ 0x9e, 0xc0, 0x83, 0x36, 0x7f, 0x16, 0x45, 0x3c, 0x74, 0x4b, 0x93, 0x8a,
+ 0x3c, 0xf1, 0x2b, 0xf5, 0x35, 0x70, 0x73, 0x7b, 0xe7, 0x82, 0x04, 0xb1,
+ 0x18, 0x98, 0x0e, 0xd4, 0x9c, 0x6f, 0x1a, 0xfc, 0xfc, 0xa7, 0x33, 0xa5,
+ 0xbb, 0xbb, 0x18, 0xf3, 0x6b, 0x7a, 0x5d, 0x32, 0x87, 0xf7, 0x6d, 0x25,
+ 0xe4, 0xe2, 0x76, 0x86, 0x21, 0x1e, 0x11, 0x46, 0xcd, 0x76, 0x0e, 0x6f,
+ 0x4f, 0xa4, 0x21, 0x71, 0x0a, 0x84, 0xa7, 0x2d, 0x36, 0xa9, 0x48, 0x22,
+ 0x51, 0x7e, 0x82,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 120038507 (0x727a46b)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+ Validity
+ Not Before: Apr 2 14:36:10 2014 GMT
+ Not After : Apr 2 14:35:52 2021 GMT
+ Subject: C=NL, L=Amsterdam, O=Verizon Enterprise Solutions, OU=Cybertrust, CN=Verizon Akamai SureServer CA G14-SHA2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:dd:6e:9e:02:69:02:b5:a3:99:2e:08:64:32:6a:
+ 59:f3:c6:9e:a6:20:07:d2:48:d1:a8:93:c7:ea:47:
+ 8f:83:39:40:d7:20:5d:8d:9a:ba:ab:d8:70:ec:9d:
+ 88:d1:bd:62:f6:db:ec:9d:5e:35:01:76:03:23:e5:
+ 6f:d2:af:46:35:59:5a:5c:d1:a8:23:c1:eb:e9:20:
+ d4:49:d6:3f:00:d8:a8:22:de:43:79:81:ac:e9:a4:
+ 92:f5:77:70:05:1e:5c:b6:a0:f7:90:a4:cd:ab:28:
+ 2c:90:c2:e7:0f:c3:af:1c:47:59:d5:84:2e:df:26:
+ 07:45:23:5a:c6:e8:90:c8:85:4b:8c:16:1e:60:f9:
+ 01:13:f1:14:1f:e6:e8:14:ed:c5:d2:6f:63:28:6e:
+ 72:8c:49:ae:08:72:c7:93:95:b4:0b:0c:ae:8f:9a:
+ 67:84:f5:57:1b:db:81:d7:17:9d:41:11:43:19:bd:
+ 6d:4a:85:ed:8f:70:25:ab:66:ab:f6:fa:6d:1c:3c:
+ ab:ed:17:bd:56:84:e1:db:75:33:b2:28:4b:99:8e:
+ f9:4b:82:33:50:9f:92:53:ed:fa:ad:0f:95:9c:a3:
+ f2:cb:60:f0:77:1d:c9:01:8b:5f:2d:86:be:bf:36:
+ b8:24:96:13:7c:c1:86:5a:6c:c1:48:2a:7f:3e:93:
+ 60:c5
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:2
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.6334.1.50
+ CPS: https://secure.omniroot.com/repository
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.omniroot.com/baltimoreroot
+ CA Issuers - URI:https://cacert.omniroot.com/baltimoreroot.crt
+ CA Issuers - URI:https://cacert.omniroot.com/baltimoreroot.der
+
+ X509v3 Key Usage: critical
+ Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
+ X509v3 Authority Key Identifier:
+ keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+ X509v3 Subject Key Identifier:
+ F8:BD:FA:AF:73:77:C6:C7:1B:F9:4B:4D:11:A7:D1:33:AF:AF:72:11
+ Signature Algorithm: sha256WithRSAEncryption
+ 80:d9:7a:ed:72:05:37:8f:61:aa:73:7c:9a:6a:fc:fe:01:e2:
+ 19:81:70:07:25:32:b0:f0:6f:3b:c7:6a:28:3d:e4:51:87:e6:
+ 7e:82:ec:ae:48:a7:b1:77:38:c2:d6:56:af:8f:f2:01:fc:65:
+ 65:10:09:f7:74:29:b5:0e:92:ee:90:98:d1:88:a2:65:b7:cd:
+ 9c:0e:a7:86:98:28:bc:ae:15:83:b6:1a:d7:1d:ec:19:da:7a:
+ 8e:40:f9:99:15:d5:7d:a5:ba:ab:fd:26:98:6e:9c:41:3b:b6:
+ 81:18:ec:70:48:d7:6e:7f:a6:e1:77:25:d6:dd:62:e8:52:f3:
+ 8c:16:39:67:e2:22:0d:77:2e:fb:11:6c:e4:dd:38:b4:27:5f:
+ 03:a8:3d:44:e2:f2:84:4b:84:fd:56:a6:9e:4d:7b:a2:16:4f:
+ 07:f5:34:24:72:a5:a2:fa:16:66:2a:a4:4a:0e:c8:0d:27:44:
+ 9c:77:d4:12:10:87:d2:00:2c:7a:bb:8e:88:22:91:15:be:a2:
+ 59:ca:34:e0:1c:61:94:86:20:33:cd:e7:4c:5d:3b:92:3e:cb:
+ d6:2d:ea:54:fa:fb:af:54:f5:a8:c5:0b:ca:8b:87:00:e6:9f:
+ e6:95:bf:b7:c4:a3:59:f5:16:6c:5f:3e:69:55:80:39:f6:75:
+ 50:14:3e:32
+-----BEGIN CERTIFICATE-----
+MIIFHzCCBAegAwIBAgIEByekazANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE0MDQwMjE0MzYxMFoX
+DTIxMDQwMjE0MzU1MlowgY0xCzAJBgNVBAYTAk5MMRIwEAYDVQQHEwlBbXN0ZXJk
+YW0xJTAjBgNVBAoTHFZlcml6b24gRW50ZXJwcmlzZSBTb2x1dGlvbnMxEzARBgNV
+BAsTCkN5YmVydHJ1c3QxLjAsBgNVBAMTJVZlcml6b24gQWthbWFpIFN1cmVTZXJ2
+ZXIgQ0EgRzE0LVNIQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDd
+bp4CaQK1o5kuCGQyalnzxp6mIAfSSNGok8fqR4+DOUDXIF2Nmrqr2HDsnYjRvWL2
+2+ydXjUBdgMj5W/Sr0Y1WVpc0agjwevpINRJ1j8A2Kgi3kN5gazppJL1d3AFHly2
+oPeQpM2rKCyQwucPw68cR1nVhC7fJgdFI1rG6JDIhUuMFh5g+QET8RQf5ugU7cXS
+b2MobnKMSa4IcseTlbQLDK6PmmeE9Vcb24HXF51BEUMZvW1Khe2PcCWrZqv2+m0c
+PKvtF71WhOHbdTOyKEuZjvlLgjNQn5JT7fqtD5Wco/LLYPB3HckBi18thr6/Nrgk
+lhN8wYZabMFIKn8+k2DFAgMBAAGjggG3MIIBszASBgNVHRMBAf8ECDAGAQH/AgEC
+MEwGA1UdIARFMEMwQQYJKwYBBAGxPgEyMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8v
+c2VjdXJlLm9tbmlyb290LmNvbS9yZXBvc2l0b3J5MIG6BggrBgEFBQcBAQSBrTCB
+qjAyBggrBgEFBQcwAYYmaHR0cDovL29jc3Aub21uaXJvb3QuY29tL2JhbHRpbW9y
+ZXJvb3QwOQYIKwYBBQUHMAKGLWh0dHBzOi8vY2FjZXJ0Lm9tbmlyb290LmNvbS9i
+YWx0aW1vcmVyb290LmNydDA5BggrBgEFBQcwAoYtaHR0cHM6Ly9jYWNlcnQub21u
+aXJvb3QuY29tL2JhbHRpbW9yZXJvb3QuZGVyMA4GA1UdDwEB/wQEAwIBxjAfBgNV
+HSMEGDAWgBTlnVkwgkdYzKz6CFQ2hns6tQRN8DBCBgNVHR8EOzA5MDegNaAzhjFo
+dHRwOi8vY2RwMS5wdWJsaWMtdHJ1c3QuY29tL0NSTC9PbW5pcm9vdDIwMjUuY3Js
+MB0GA1UdDgQWBBT4vfqvc3fGxxv5S00Rp9Ezr69yETANBgkqhkiG9w0BAQsFAAOC
+AQEAgNl67XIFN49hqnN8mmr8/gHiGYFwByUysPBvO8dqKD3kUYfmfoLsrkinsXc4
+wtZWr4/yAfxlZRAJ93QptQ6S7pCY0YiiZbfNnA6nhpgovK4Vg7Ya1x3sGdp6jkD5
+mRXVfaW6q/0mmG6cQTu2gRjscEjXbn+m4Xcl1t1i6FLzjBY5Z+IiDXcu+xFs5N04
+tCdfA6g9ROLyhEuE/Vamnk17ohZPB/U0JHKlovoWZiqkSg7IDSdEnHfUEhCH0gAs
+eruOiCKRFb6iWco04BxhlIYgM83nTF07kj7L1i3qVPr7r1T1qMULyouHAOaf5pW/
+t8SjWfUWbF8+aVWAOfZ1UBQ+Mg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert41[] = {
+ 0x30, 0x82, 0x05, 0x1f, 0x30, 0x82, 0x04, 0x07, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x07, 0x27, 0xa4, 0x6b, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+ 0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+ 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+ 0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+ 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+ 0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34,
+ 0x30, 0x34, 0x30, 0x32, 0x31, 0x34, 0x33, 0x36, 0x31, 0x30, 0x5a, 0x17,
+ 0x0d, 0x32, 0x31, 0x30, 0x34, 0x30, 0x32, 0x31, 0x34, 0x33, 0x35, 0x35,
+ 0x32, 0x5a, 0x30, 0x81, 0x8d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03,
+ 0x55, 0x04, 0x07, 0x13, 0x09, 0x41, 0x6d, 0x73, 0x74, 0x65, 0x72, 0x64,
+ 0x61, 0x6d, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x1c, 0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x20, 0x45, 0x6e, 0x74,
+ 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x20, 0x53, 0x6f, 0x6c, 0x75,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x31, 0x2e, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x25, 0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x20, 0x41, 0x6b, 0x61,
+ 0x6d, 0x61, 0x69, 0x20, 0x53, 0x75, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x47, 0x31, 0x34, 0x2d, 0x53, 0x48,
+ 0x41, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xdd,
+ 0x6e, 0x9e, 0x02, 0x69, 0x02, 0xb5, 0xa3, 0x99, 0x2e, 0x08, 0x64, 0x32,
+ 0x6a, 0x59, 0xf3, 0xc6, 0x9e, 0xa6, 0x20, 0x07, 0xd2, 0x48, 0xd1, 0xa8,
+ 0x93, 0xc7, 0xea, 0x47, 0x8f, 0x83, 0x39, 0x40, 0xd7, 0x20, 0x5d, 0x8d,
+ 0x9a, 0xba, 0xab, 0xd8, 0x70, 0xec, 0x9d, 0x88, 0xd1, 0xbd, 0x62, 0xf6,
+ 0xdb, 0xec, 0x9d, 0x5e, 0x35, 0x01, 0x76, 0x03, 0x23, 0xe5, 0x6f, 0xd2,
+ 0xaf, 0x46, 0x35, 0x59, 0x5a, 0x5c, 0xd1, 0xa8, 0x23, 0xc1, 0xeb, 0xe9,
+ 0x20, 0xd4, 0x49, 0xd6, 0x3f, 0x00, 0xd8, 0xa8, 0x22, 0xde, 0x43, 0x79,
+ 0x81, 0xac, 0xe9, 0xa4, 0x92, 0xf5, 0x77, 0x70, 0x05, 0x1e, 0x5c, 0xb6,
+ 0xa0, 0xf7, 0x90, 0xa4, 0xcd, 0xab, 0x28, 0x2c, 0x90, 0xc2, 0xe7, 0x0f,
+ 0xc3, 0xaf, 0x1c, 0x47, 0x59, 0xd5, 0x84, 0x2e, 0xdf, 0x26, 0x07, 0x45,
+ 0x23, 0x5a, 0xc6, 0xe8, 0x90, 0xc8, 0x85, 0x4b, 0x8c, 0x16, 0x1e, 0x60,
+ 0xf9, 0x01, 0x13, 0xf1, 0x14, 0x1f, 0xe6, 0xe8, 0x14, 0xed, 0xc5, 0xd2,
+ 0x6f, 0x63, 0x28, 0x6e, 0x72, 0x8c, 0x49, 0xae, 0x08, 0x72, 0xc7, 0x93,
+ 0x95, 0xb4, 0x0b, 0x0c, 0xae, 0x8f, 0x9a, 0x67, 0x84, 0xf5, 0x57, 0x1b,
+ 0xdb, 0x81, 0xd7, 0x17, 0x9d, 0x41, 0x11, 0x43, 0x19, 0xbd, 0x6d, 0x4a,
+ 0x85, 0xed, 0x8f, 0x70, 0x25, 0xab, 0x66, 0xab, 0xf6, 0xfa, 0x6d, 0x1c,
+ 0x3c, 0xab, 0xed, 0x17, 0xbd, 0x56, 0x84, 0xe1, 0xdb, 0x75, 0x33, 0xb2,
+ 0x28, 0x4b, 0x99, 0x8e, 0xf9, 0x4b, 0x82, 0x33, 0x50, 0x9f, 0x92, 0x53,
+ 0xed, 0xfa, 0xad, 0x0f, 0x95, 0x9c, 0xa3, 0xf2, 0xcb, 0x60, 0xf0, 0x77,
+ 0x1d, 0xc9, 0x01, 0x8b, 0x5f, 0x2d, 0x86, 0xbe, 0xbf, 0x36, 0xb8, 0x24,
+ 0x96, 0x13, 0x7c, 0xc1, 0x86, 0x5a, 0x6c, 0xc1, 0x48, 0x2a, 0x7f, 0x3e,
+ 0x93, 0x60, 0xc5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xb7,
+ 0x30, 0x82, 0x01, 0xb3, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+ 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x02,
+ 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30,
+ 0x41, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e, 0x01, 0x32,
+ 0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
+ 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72,
+ 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x30, 0x81, 0xba, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x81, 0xad, 0x30, 0x81,
+ 0xaa, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+ 0x01, 0x86, 0x26, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63,
+ 0x73, 0x70, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72,
+ 0x65, 0x72, 0x6f, 0x6f, 0x74, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x73,
+ 0x3a, 0x2f, 0x2f, 0x63, 0x61, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x6f, 0x6d,
+ 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62,
+ 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x6f, 0x6f, 0x74,
+ 0x2e, 0x63, 0x72, 0x74, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x30, 0x02, 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a,
+ 0x2f, 0x2f, 0x63, 0x61, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x6f, 0x6d, 0x6e,
+ 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61,
+ 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x6f, 0x6f, 0x74, 0x2e,
+ 0x64, 0x65, 0x72, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0xc6, 0x30, 0x1f, 0x06, 0x03, 0x55,
+ 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe5, 0x9d, 0x59, 0x30,
+ 0x82, 0x47, 0x58, 0xcc, 0xac, 0xfa, 0x08, 0x54, 0x36, 0x86, 0x7b, 0x3a,
+ 0xb5, 0x04, 0x4d, 0xf0, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
+ 0x3b, 0x30, 0x39, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x64, 0x70, 0x31, 0x2e, 0x70,
+ 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x4f, 0x6d, 0x6e, 0x69,
+ 0x72, 0x6f, 0x6f, 0x74, 0x32, 0x30, 0x32, 0x35, 0x2e, 0x63, 0x72, 0x6c,
+ 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xf8,
+ 0xbd, 0xfa, 0xaf, 0x73, 0x77, 0xc6, 0xc7, 0x1b, 0xf9, 0x4b, 0x4d, 0x11,
+ 0xa7, 0xd1, 0x33, 0xaf, 0xaf, 0x72, 0x11, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x01, 0x00, 0x80, 0xd9, 0x7a, 0xed, 0x72, 0x05, 0x37, 0x8f, 0x61,
+ 0xaa, 0x73, 0x7c, 0x9a, 0x6a, 0xfc, 0xfe, 0x01, 0xe2, 0x19, 0x81, 0x70,
+ 0x07, 0x25, 0x32, 0xb0, 0xf0, 0x6f, 0x3b, 0xc7, 0x6a, 0x28, 0x3d, 0xe4,
+ 0x51, 0x87, 0xe6, 0x7e, 0x82, 0xec, 0xae, 0x48, 0xa7, 0xb1, 0x77, 0x38,
+ 0xc2, 0xd6, 0x56, 0xaf, 0x8f, 0xf2, 0x01, 0xfc, 0x65, 0x65, 0x10, 0x09,
+ 0xf7, 0x74, 0x29, 0xb5, 0x0e, 0x92, 0xee, 0x90, 0x98, 0xd1, 0x88, 0xa2,
+ 0x65, 0xb7, 0xcd, 0x9c, 0x0e, 0xa7, 0x86, 0x98, 0x28, 0xbc, 0xae, 0x15,
+ 0x83, 0xb6, 0x1a, 0xd7, 0x1d, 0xec, 0x19, 0xda, 0x7a, 0x8e, 0x40, 0xf9,
+ 0x99, 0x15, 0xd5, 0x7d, 0xa5, 0xba, 0xab, 0xfd, 0x26, 0x98, 0x6e, 0x9c,
+ 0x41, 0x3b, 0xb6, 0x81, 0x18, 0xec, 0x70, 0x48, 0xd7, 0x6e, 0x7f, 0xa6,
+ 0xe1, 0x77, 0x25, 0xd6, 0xdd, 0x62, 0xe8, 0x52, 0xf3, 0x8c, 0x16, 0x39,
+ 0x67, 0xe2, 0x22, 0x0d, 0x77, 0x2e, 0xfb, 0x11, 0x6c, 0xe4, 0xdd, 0x38,
+ 0xb4, 0x27, 0x5f, 0x03, 0xa8, 0x3d, 0x44, 0xe2, 0xf2, 0x84, 0x4b, 0x84,
+ 0xfd, 0x56, 0xa6, 0x9e, 0x4d, 0x7b, 0xa2, 0x16, 0x4f, 0x07, 0xf5, 0x34,
+ 0x24, 0x72, 0xa5, 0xa2, 0xfa, 0x16, 0x66, 0x2a, 0xa4, 0x4a, 0x0e, 0xc8,
+ 0x0d, 0x27, 0x44, 0x9c, 0x77, 0xd4, 0x12, 0x10, 0x87, 0xd2, 0x00, 0x2c,
+ 0x7a, 0xbb, 0x8e, 0x88, 0x22, 0x91, 0x15, 0xbe, 0xa2, 0x59, 0xca, 0x34,
+ 0xe0, 0x1c, 0x61, 0x94, 0x86, 0x20, 0x33, 0xcd, 0xe7, 0x4c, 0x5d, 0x3b,
+ 0x92, 0x3e, 0xcb, 0xd6, 0x2d, 0xea, 0x54, 0xfa, 0xfb, 0xaf, 0x54, 0xf5,
+ 0xa8, 0xc5, 0x0b, 0xca, 0x8b, 0x87, 0x00, 0xe6, 0x9f, 0xe6, 0x95, 0xbf,
+ 0xb7, 0xc4, 0xa3, 0x59, 0xf5, 0x16, 0x6c, 0x5f, 0x3e, 0x69, 0x55, 0x80,
+ 0x39, 0xf6, 0x75, 0x50, 0x14, 0x3e, 0x32,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 7e:e1:4a:6f:6f:ef:f2:d3:7f:3f:ad:65:4d:3a:da:b4
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+ Validity
+ Not Before: Oct 31 00:00:00 2013 GMT
+ Not After : Oct 30 23:59:59 2023 GMT
+ Subject: C=US, O=Symantec Corporation, OU=Symantec Trust Network, CN=Symantec Class 3 EV SSL CA - G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:d8:a1:65:74:23:e8:2b:64:e2:32:d7:33:37:3d:
+ 8e:f5:34:16:48:dd:4f:7f:87:1c:f8:44:23:13:8e:
+ fb:11:d8:44:5a:18:71:8e:60:16:26:92:9b:fd:17:
+ 0b:e1:71:70:42:fe:bf:fa:1c:c0:aa:a3:a7:b5:71:
+ e8:ff:18:83:f6:df:10:0a:13:62:c8:3d:9c:a7:de:
+ 2e:3f:0c:d9:1d:e7:2e:fb:2a:ce:c8:9a:7f:87:bf:
+ d8:4c:04:15:32:c9:d1:cc:95:71:a0:4e:28:4f:84:
+ d9:35:fb:e3:86:6f:94:53:e6:72:8a:63:67:2e:be:
+ 69:f6:f7:6e:8e:9c:60:04:eb:29:fa:c4:47:42:d2:
+ 78:98:e3:ec:0b:a5:92:dc:b7:9a:bd:80:64:2b:38:
+ 7c:38:09:5b:66:f6:2d:95:7a:86:b2:34:2e:85:9e:
+ 90:0e:5f:b7:5d:a4:51:72:46:70:13:bf:67:f2:b6:
+ a7:4d:14:1e:6c:b9:53:ee:23:1a:4e:8d:48:55:43:
+ 41:b1:89:75:6a:40:28:c5:7d:dd:d2:6e:d2:02:19:
+ 2f:7b:24:94:4b:eb:f1:1a:a9:9b:e3:23:9a:ea:fa:
+ 33:ab:0a:2c:b7:f4:60:08:dd:9f:1c:cd:dd:2d:01:
+ 66:80:af:b3:2f:29:1d:23:b8:8a:e1:a1:70:07:0c:
+ 34:0f
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ Authority Information Access:
+ OCSP - URI:http://s2.symcb.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.symauth.com/cps
+ User Notice:
+ Explicit Text: http://www.symauth.com/rpa
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://s1.symcb.com/pca3-g5.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-533
+ X509v3 Subject Key Identifier:
+ 01:59:AB:E7:DD:3A:0B:59:A6:64:63:D6:CF:20:07:57:D5:91:E7:6A
+ X509v3 Authority Key Identifier:
+ keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 42:01:55:7b:d0:16:1a:5d:58:e8:bb:9b:a8:4d:d7:f3:d7:eb:
+ 13:94:86:d6:7f:21:0b:47:bc:57:9b:92:5d:4f:05:9f:38:a4:
+ 10:7c:cf:83:be:06:43:46:8d:08:bc:6a:d7:10:a6:fa:ab:af:
+ 2f:61:a8:63:f2:65:df:7f:4c:88:12:88:4f:b3:69:d9:ff:27:
+ c0:0a:97:91:8f:56:fb:89:c4:a8:bb:92:2d:1b:73:b0:c6:ab:
+ 36:f4:96:6c:20:08:ef:0a:1e:66:24:45:4f:67:00:40:c8:07:
+ 54:74:33:3b:a6:ad:bb:23:9f:66:ed:a2:44:70:34:fb:0e:ea:
+ 01:fd:cf:78:74:df:a7:ad:55:b7:5f:4d:f6:d6:3f:e0:86:ce:
+ 24:c7:42:a9:13:14:44:35:4b:b6:df:c9:60:ac:0c:7f:d9:93:
+ 21:4b:ee:9c:e4:49:02:98:d3:60:7b:5c:bc:d5:30:2f:07:ce:
+ 44:42:c4:0b:99:fe:e6:9f:fc:b0:78:86:51:6d:d1:2c:9d:c6:
+ 96:fb:85:82:bb:04:2f:f7:62:80:ef:62:da:7f:f6:0e:ac:90:
+ b8:56:bd:79:3f:f2:80:6e:a3:d9:b9:0f:5d:3a:07:1d:91:93:
+ 86:4b:29:4c:e1:dc:b5:e1:e0:33:9d:b3:cb:36:91:4b:fe:a1:
+ b4:ee:f0:f9
+-----BEGIN CERTIFICATE-----
+MIIFKzCCBBOgAwIBAgIQfuFKb2/v8tN/P61lTTratDANBgkqhkiG9w0BAQsFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMTMxMDMxMDAwMDAwWhcNMjMxMDMwMjM1OTU5WjB3MQsw
+CQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNV
+BAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMTH1N5bWFudGVjIENs
+YXNzIDMgRVYgU1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDYoWV0I+grZOIy1zM3PY71NBZI3U9/hxz4RCMTjvsR2ERaGHGOYBYmkpv9
+FwvhcXBC/r/6HMCqo6e1cej/GIP23xAKE2LIPZyn3i4/DNkd5y77Ks7Imn+Hv9hM
+BBUyydHMlXGgTihPhNk1++OGb5RT5nKKY2cuvmn2926OnGAE6yn6xEdC0niY4+wL
+pZLct5q9gGQrOHw4CVtm9i2VeoayNC6FnpAOX7ddpFFyRnATv2fytqdNFB5suVPu
+IxpOjUhVQ0GxiXVqQCjFfd3SbtICGS97JJRL6/EaqZvjI5rq+jOrCiy39GAI3Z8c
+zd0tAWaAr7MvKR0juIrhoXAHDDQPAgMBAAGjggFdMIIBWTAvBggrBgEFBQcBAQQj
+MCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9zMi5zeW1jYi5jb20wEgYDVR0TAQH/BAgw
+BgEB/wIBADBlBgNVHSAEXjBcMFoGBFUdIAAwUjAmBggrBgEFBQcCARYaaHR0cDov
+L3d3dy5zeW1hdXRoLmNvbS9jcHMwKAYIKwYBBQUHAgIwHBoaaHR0cDovL3d3dy5z
+eW1hdXRoLmNvbS9ycGEwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3MxLnN5bWNi
+LmNvbS9wY2EzLWc1LmNybDAOBgNVHQ8BAf8EBAMCAQYwKQYDVR0RBCIwIKQeMBwx
+GjAYBgNVBAMTEVN5bWFudGVjUEtJLTEtNTMzMB0GA1UdDgQWBBQBWavn3ToLWaZk
+Y9bPIAdX1ZHnajAfBgNVHSMEGDAWgBR/02Wnwt3su/AwCfNDOfoCrzMxMzANBgkq
+hkiG9w0BAQsFAAOCAQEAQgFVe9AWGl1Y6LubqE3X89frE5SG1n8hC0e8V5uSXU8F
+nzikEHzPg74GQ0aNCLxq1xCm+quvL2GoY/Jl339MiBKIT7Np2f8nwAqXkY9W+4nE
+qLuSLRtzsMarNvSWbCAI7woeZiRFT2cAQMgHVHQzO6atuyOfZu2iRHA0+w7qAf3P
+eHTfp61Vt19N9tY/4IbOJMdCqRMURDVLtt/JYKwMf9mTIUvunORJApjTYHtcvNUw
+LwfORELEC5n+5p/8sHiGUW3RLJ3GlvuFgrsEL/digO9i2n/2DqyQuFa9eT/ygG6j
+2bkPXToHHZGThkspTOHcteHgM52zyzaRS/6htO7w+Q==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert42[] = {
+ 0x30, 0x82, 0x05, 0x2b, 0x30, 0x82, 0x04, 0x13, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x7e, 0xe1, 0x4a, 0x6f, 0x6f, 0xef, 0xf2, 0xd3, 0x7f,
+ 0x3f, 0xad, 0x65, 0x4d, 0x3a, 0xda, 0xb4, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+ 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+ 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+ 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+ 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31, 0x30, 0x33, 0x30,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x77, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1d,
+ 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x53, 0x79, 0x6d,
+ 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x16, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63,
+ 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x1f, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6c,
+ 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x45, 0x56, 0x20, 0x53, 0x53, 0x4c,
+ 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xd8, 0xa1, 0x65, 0x74, 0x23, 0xe8, 0x2b,
+ 0x64, 0xe2, 0x32, 0xd7, 0x33, 0x37, 0x3d, 0x8e, 0xf5, 0x34, 0x16, 0x48,
+ 0xdd, 0x4f, 0x7f, 0x87, 0x1c, 0xf8, 0x44, 0x23, 0x13, 0x8e, 0xfb, 0x11,
+ 0xd8, 0x44, 0x5a, 0x18, 0x71, 0x8e, 0x60, 0x16, 0x26, 0x92, 0x9b, 0xfd,
+ 0x17, 0x0b, 0xe1, 0x71, 0x70, 0x42, 0xfe, 0xbf, 0xfa, 0x1c, 0xc0, 0xaa,
+ 0xa3, 0xa7, 0xb5, 0x71, 0xe8, 0xff, 0x18, 0x83, 0xf6, 0xdf, 0x10, 0x0a,
+ 0x13, 0x62, 0xc8, 0x3d, 0x9c, 0xa7, 0xde, 0x2e, 0x3f, 0x0c, 0xd9, 0x1d,
+ 0xe7, 0x2e, 0xfb, 0x2a, 0xce, 0xc8, 0x9a, 0x7f, 0x87, 0xbf, 0xd8, 0x4c,
+ 0x04, 0x15, 0x32, 0xc9, 0xd1, 0xcc, 0x95, 0x71, 0xa0, 0x4e, 0x28, 0x4f,
+ 0x84, 0xd9, 0x35, 0xfb, 0xe3, 0x86, 0x6f, 0x94, 0x53, 0xe6, 0x72, 0x8a,
+ 0x63, 0x67, 0x2e, 0xbe, 0x69, 0xf6, 0xf7, 0x6e, 0x8e, 0x9c, 0x60, 0x04,
+ 0xeb, 0x29, 0xfa, 0xc4, 0x47, 0x42, 0xd2, 0x78, 0x98, 0xe3, 0xec, 0x0b,
+ 0xa5, 0x92, 0xdc, 0xb7, 0x9a, 0xbd, 0x80, 0x64, 0x2b, 0x38, 0x7c, 0x38,
+ 0x09, 0x5b, 0x66, 0xf6, 0x2d, 0x95, 0x7a, 0x86, 0xb2, 0x34, 0x2e, 0x85,
+ 0x9e, 0x90, 0x0e, 0x5f, 0xb7, 0x5d, 0xa4, 0x51, 0x72, 0x46, 0x70, 0x13,
+ 0xbf, 0x67, 0xf2, 0xb6, 0xa7, 0x4d, 0x14, 0x1e, 0x6c, 0xb9, 0x53, 0xee,
+ 0x23, 0x1a, 0x4e, 0x8d, 0x48, 0x55, 0x43, 0x41, 0xb1, 0x89, 0x75, 0x6a,
+ 0x40, 0x28, 0xc5, 0x7d, 0xdd, 0xd2, 0x6e, 0xd2, 0x02, 0x19, 0x2f, 0x7b,
+ 0x24, 0x94, 0x4b, 0xeb, 0xf1, 0x1a, 0xa9, 0x9b, 0xe3, 0x23, 0x9a, 0xea,
+ 0xfa, 0x33, 0xab, 0x0a, 0x2c, 0xb7, 0xf4, 0x60, 0x08, 0xdd, 0x9f, 0x1c,
+ 0xcd, 0xdd, 0x2d, 0x01, 0x66, 0x80, 0xaf, 0xb3, 0x2f, 0x29, 0x1d, 0x23,
+ 0xb8, 0x8a, 0xe1, 0xa1, 0x70, 0x07, 0x0c, 0x34, 0x0f, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x5d, 0x30, 0x82, 0x01, 0x59, 0x30, 0x2f,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x23,
+ 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73,
+ 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+ 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30,
+ 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x65, 0x06, 0x03, 0x55,
+ 0x1d, 0x20, 0x04, 0x5e, 0x30, 0x5c, 0x30, 0x5a, 0x06, 0x04, 0x55, 0x1d,
+ 0x20, 0x00, 0x30, 0x52, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x79, 0x6d, 0x61, 0x75, 0x74, 0x68,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x28, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 0x1c, 0x1a, 0x1a,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73,
+ 0x79, 0x6d, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72,
+ 0x70, 0x61, 0x30, 0x30, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x29, 0x30,
+ 0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21, 0x86, 0x1f, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35,
+ 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+ 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x29, 0x06, 0x03,
+ 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31,
+ 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79,
+ 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d,
+ 0x35, 0x33, 0x33, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16,
+ 0x04, 0x14, 0x01, 0x59, 0xab, 0xe7, 0xdd, 0x3a, 0x0b, 0x59, 0xa6, 0x64,
+ 0x63, 0xd6, 0xcf, 0x20, 0x07, 0x57, 0xd5, 0x91, 0xe7, 0x6a, 0x30, 0x1f,
+ 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7f,
+ 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3, 0x43,
+ 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x01, 0x00, 0x42, 0x01, 0x55, 0x7b, 0xd0, 0x16, 0x1a, 0x5d, 0x58,
+ 0xe8, 0xbb, 0x9b, 0xa8, 0x4d, 0xd7, 0xf3, 0xd7, 0xeb, 0x13, 0x94, 0x86,
+ 0xd6, 0x7f, 0x21, 0x0b, 0x47, 0xbc, 0x57, 0x9b, 0x92, 0x5d, 0x4f, 0x05,
+ 0x9f, 0x38, 0xa4, 0x10, 0x7c, 0xcf, 0x83, 0xbe, 0x06, 0x43, 0x46, 0x8d,
+ 0x08, 0xbc, 0x6a, 0xd7, 0x10, 0xa6, 0xfa, 0xab, 0xaf, 0x2f, 0x61, 0xa8,
+ 0x63, 0xf2, 0x65, 0xdf, 0x7f, 0x4c, 0x88, 0x12, 0x88, 0x4f, 0xb3, 0x69,
+ 0xd9, 0xff, 0x27, 0xc0, 0x0a, 0x97, 0x91, 0x8f, 0x56, 0xfb, 0x89, 0xc4,
+ 0xa8, 0xbb, 0x92, 0x2d, 0x1b, 0x73, 0xb0, 0xc6, 0xab, 0x36, 0xf4, 0x96,
+ 0x6c, 0x20, 0x08, 0xef, 0x0a, 0x1e, 0x66, 0x24, 0x45, 0x4f, 0x67, 0x00,
+ 0x40, 0xc8, 0x07, 0x54, 0x74, 0x33, 0x3b, 0xa6, 0xad, 0xbb, 0x23, 0x9f,
+ 0x66, 0xed, 0xa2, 0x44, 0x70, 0x34, 0xfb, 0x0e, 0xea, 0x01, 0xfd, 0xcf,
+ 0x78, 0x74, 0xdf, 0xa7, 0xad, 0x55, 0xb7, 0x5f, 0x4d, 0xf6, 0xd6, 0x3f,
+ 0xe0, 0x86, 0xce, 0x24, 0xc7, 0x42, 0xa9, 0x13, 0x14, 0x44, 0x35, 0x4b,
+ 0xb6, 0xdf, 0xc9, 0x60, 0xac, 0x0c, 0x7f, 0xd9, 0x93, 0x21, 0x4b, 0xee,
+ 0x9c, 0xe4, 0x49, 0x02, 0x98, 0xd3, 0x60, 0x7b, 0x5c, 0xbc, 0xd5, 0x30,
+ 0x2f, 0x07, 0xce, 0x44, 0x42, 0xc4, 0x0b, 0x99, 0xfe, 0xe6, 0x9f, 0xfc,
+ 0xb0, 0x78, 0x86, 0x51, 0x6d, 0xd1, 0x2c, 0x9d, 0xc6, 0x96, 0xfb, 0x85,
+ 0x82, 0xbb, 0x04, 0x2f, 0xf7, 0x62, 0x80, 0xef, 0x62, 0xda, 0x7f, 0xf6,
+ 0x0e, 0xac, 0x90, 0xb8, 0x56, 0xbd, 0x79, 0x3f, 0xf2, 0x80, 0x6e, 0xa3,
+ 0xd9, 0xb9, 0x0f, 0x5d, 0x3a, 0x07, 0x1d, 0x91, 0x93, 0x86, 0x4b, 0x29,
+ 0x4c, 0xe1, 0xdc, 0xb5, 0xe1, 0xe0, 0x33, 0x9d, 0xb3, 0xcb, 0x36, 0x91,
+ 0x4b, 0xfe, 0xa1, 0xb4, 0xee, 0xf0, 0xf9,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 51:3f:b9:74:38:70:b7:34:40:41:8d:30:93:06:99:ff
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+ Validity
+ Not Before: Oct 31 00:00:00 2013 GMT
+ Not After : Oct 30 23:59:59 2023 GMT
+ Subject: C=US, O=Symantec Corporation, OU=Symantec Trust Network, CN=Symantec Class 3 Secure Server CA - G4
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b2:d8:05:ca:1c:74:2d:b5:17:56:39:c5:4a:52:
+ 09:96:e8:4b:d8:0c:f1:68:9f:9a:42:28:62:c3:a5:
+ 30:53:7e:55:11:82:5b:03:7a:0d:2f:e1:79:04:c9:
+ b4:96:77:19:81:01:94:59:f9:bc:f7:7a:99:27:82:
+ 2d:b7:83:dd:5a:27:7f:b2:03:7a:9c:53:25:e9:48:
+ 1f:46:4f:c8:9d:29:f8:be:79:56:f6:f7:fd:d9:3a:
+ 68:da:8b:4b:82:33:41:12:c3:c8:3c:cc:d6:96:7a:
+ 84:21:1a:22:04:03:27:17:8b:1c:68:61:93:0f:0e:
+ 51:80:33:1d:b4:b5:ce:eb:7e:d0:62:ac:ee:b3:7b:
+ 01:74:ef:69:35:eb:ca:d5:3d:a9:ee:97:98:ca:8d:
+ aa:44:0e:25:99:4a:15:96:a4:ce:6d:02:54:1f:2a:
+ 6a:26:e2:06:3a:63:48:ac:b4:4c:d1:75:93:50:ff:
+ 13:2f:d6:da:e1:c6:18:f5:9f:c9:25:5d:f3:00:3a:
+ de:26:4d:b4:29:09:cd:0f:3d:23:6f:16:4a:81:16:
+ fb:f2:83:10:c3:b8:d6:d8:55:32:3d:f1:bd:0f:bd:
+ 8c:52:95:4a:16:97:7a:52:21:63:75:2f:16:f9:c4:
+ 66:be:f5:b5:09:d8:ff:27:00:cd:44:7c:6f:4b:3f:
+ b0:f7
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://s1.symcb.com/pca3-g5.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://s2.symcb.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.symauth.com/cps
+ User Notice:
+ Explicit Text: http://www.symauth.com/rpa
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-534
+ X509v3 Subject Key Identifier:
+ 5F:60:CF:61:90:55:DF:84:43:14:8A:60:2A:B2:F5:7A:F4:43:18:EF
+ X509v3 Authority Key Identifier:
+ keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 5e:94:56:49:dd:8e:2d:65:f5:c1:36:51:b6:03:e3:da:9e:73:
+ 19:f2:1f:59:ab:58:7e:6c:26:05:2c:fa:81:d7:5c:23:17:22:
+ 2c:37:93:f7:86:ec:85:e6:b0:a3:fd:1f:e2:32:a8:45:6f:e1:
+ d9:fb:b9:af:d2:70:a0:32:42:65:bf:84:fe:16:2a:8f:3f:c5:
+ a6:d6:a3:93:7d:43:e9:74:21:91:35:28:f4:63:e9:2e:ed:f7:
+ f5:5c:7f:4b:9a:b5:20:e9:0a:bd:e0:45:10:0c:14:94:9a:5d:
+ a5:e3:4b:91:e8:24:9b:46:40:65:f4:22:72:cd:99:f8:88:11:
+ f5:f3:7f:e6:33:82:e6:a8:c5:7e:fe:d0:08:e2:25:58:08:71:
+ 68:e6:cd:a2:e6:14:de:4e:52:24:2d:fd:e5:79:13:53:e7:5e:
+ 2f:2d:4d:1b:6d:40:15:52:2b:f7:87:89:78:12:81:6e:d9:4d:
+ aa:2d:78:d4:c2:2c:3d:08:5f:87:91:9e:1f:0e:b0:de:30:52:
+ 64:86:89:aa:9d:66:9c:0e:76:0c:80:f2:74:d8:2a:f8:b8:3a:
+ ce:d7:d6:0f:11:be:6b:ab:14:f5:bd:41:a0:22:63:89:f1:ba:
+ 0f:6f:29:63:66:2d:3f:ac:8c:72:c5:fb:c7:e4:d4:0f:f2:3b:
+ 4f:8c:29:c7
+-----BEGIN CERTIFICATE-----
+MIIFODCCBCCgAwIBAgIQUT+5dDhwtzRAQY0wkwaZ/zANBgkqhkiG9w0BAQsFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMTMxMDMxMDAwMDAwWhcNMjMxMDMwMjM1OTU5WjB+MQsw
+CQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNV
+BAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxLzAtBgNVBAMTJlN5bWFudGVjIENs
+YXNzIDMgU2VjdXJlIFNlcnZlciBDQSAtIEc0MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAstgFyhx0LbUXVjnFSlIJluhL2AzxaJ+aQihiw6UwU35VEYJb
+A3oNL+F5BMm0lncZgQGUWfm893qZJ4Itt4PdWid/sgN6nFMl6UgfRk/InSn4vnlW
+9vf92Tpo2otLgjNBEsPIPMzWlnqEIRoiBAMnF4scaGGTDw5RgDMdtLXO637QYqzu
+s3sBdO9pNevK1T2p7peYyo2qRA4lmUoVlqTObQJUHypqJuIGOmNIrLRM0XWTUP8T
+L9ba4cYY9Z/JJV3zADreJk20KQnNDz0jbxZKgRb78oMQw7jW2FUyPfG9D72MUpVK
+Fpd6UiFjdS8W+cRmvvW1Cdj/JwDNRHxvSz+w9wIDAQABo4IBYzCCAV8wEgYDVR0T
+AQH/BAgwBgEB/wIBADAwBgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vczEuc3ltY2Iu
+Y29tL3BjYTMtZzUuY3JsMA4GA1UdDwEB/wQEAwIBBjAvBggrBgEFBQcBAQQjMCEw
+HwYIKwYBBQUHMAGGE2h0dHA6Ly9zMi5zeW1jYi5jb20wawYDVR0gBGQwYjBgBgpg
+hkgBhvhFAQc2MFIwJgYIKwYBBQUHAgEWGmh0dHA6Ly93d3cuc3ltYXV0aC5jb20v
+Y3BzMCgGCCsGAQUFBwICMBwaGmh0dHA6Ly93d3cuc3ltYXV0aC5jb20vcnBhMCkG
+A1UdEQQiMCCkHjAcMRowGAYDVQQDExFTeW1hbnRlY1BLSS0xLTUzNDAdBgNVHQ4E
+FgQUX2DPYZBV34RDFIpgKrL1evRDGO8wHwYDVR0jBBgwFoAUf9Nlp8Ld7LvwMAnz
+Qzn6Aq8zMTMwDQYJKoZIhvcNAQELBQADggEBAF6UVkndji1l9cE2UbYD49qecxny
+H1mrWH5sJgUs+oHXXCMXIiw3k/eG7IXmsKP9H+IyqEVv4dn7ua/ScKAyQmW/hP4W
+Ko8/xabWo5N9Q+l0IZE1KPRj6S7t9/Vcf0uatSDpCr3gRRAMFJSaXaXjS5HoJJtG
+QGX0InLNmfiIEfXzf+YzguaoxX7+0AjiJVgIcWjmzaLmFN5OUiQt/eV5E1PnXi8t
+TRttQBVSK/eHiXgSgW7ZTaoteNTCLD0IX4eRnh8OsN4wUmSGiaqdZpwOdgyA8nTY
+Kvi4Os7X1g8RvmurFPW9QaAiY4nxug9vKWNmLT+sjHLF+8fk1A/yO0+MKcc=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert43[] = {
+ 0x30, 0x82, 0x05, 0x38, 0x30, 0x82, 0x04, 0x20, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x51, 0x3f, 0xb9, 0x74, 0x38, 0x70, 0xb7, 0x34, 0x40,
+ 0x41, 0x8d, 0x30, 0x93, 0x06, 0x99, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+ 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+ 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+ 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+ 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31, 0x30, 0x33, 0x30,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x7e, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1d,
+ 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x53, 0x79, 0x6d,
+ 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x16, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63,
+ 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x31, 0x2f, 0x30, 0x2d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x26, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6c,
+ 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65,
+ 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x2d,
+ 0x20, 0x47, 0x34, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xb2, 0xd8, 0x05, 0xca, 0x1c, 0x74, 0x2d, 0xb5, 0x17, 0x56, 0x39, 0xc5,
+ 0x4a, 0x52, 0x09, 0x96, 0xe8, 0x4b, 0xd8, 0x0c, 0xf1, 0x68, 0x9f, 0x9a,
+ 0x42, 0x28, 0x62, 0xc3, 0xa5, 0x30, 0x53, 0x7e, 0x55, 0x11, 0x82, 0x5b,
+ 0x03, 0x7a, 0x0d, 0x2f, 0xe1, 0x79, 0x04, 0xc9, 0xb4, 0x96, 0x77, 0x19,
+ 0x81, 0x01, 0x94, 0x59, 0xf9, 0xbc, 0xf7, 0x7a, 0x99, 0x27, 0x82, 0x2d,
+ 0xb7, 0x83, 0xdd, 0x5a, 0x27, 0x7f, 0xb2, 0x03, 0x7a, 0x9c, 0x53, 0x25,
+ 0xe9, 0x48, 0x1f, 0x46, 0x4f, 0xc8, 0x9d, 0x29, 0xf8, 0xbe, 0x79, 0x56,
+ 0xf6, 0xf7, 0xfd, 0xd9, 0x3a, 0x68, 0xda, 0x8b, 0x4b, 0x82, 0x33, 0x41,
+ 0x12, 0xc3, 0xc8, 0x3c, 0xcc, 0xd6, 0x96, 0x7a, 0x84, 0x21, 0x1a, 0x22,
+ 0x04, 0x03, 0x27, 0x17, 0x8b, 0x1c, 0x68, 0x61, 0x93, 0x0f, 0x0e, 0x51,
+ 0x80, 0x33, 0x1d, 0xb4, 0xb5, 0xce, 0xeb, 0x7e, 0xd0, 0x62, 0xac, 0xee,
+ 0xb3, 0x7b, 0x01, 0x74, 0xef, 0x69, 0x35, 0xeb, 0xca, 0xd5, 0x3d, 0xa9,
+ 0xee, 0x97, 0x98, 0xca, 0x8d, 0xaa, 0x44, 0x0e, 0x25, 0x99, 0x4a, 0x15,
+ 0x96, 0xa4, 0xce, 0x6d, 0x02, 0x54, 0x1f, 0x2a, 0x6a, 0x26, 0xe2, 0x06,
+ 0x3a, 0x63, 0x48, 0xac, 0xb4, 0x4c, 0xd1, 0x75, 0x93, 0x50, 0xff, 0x13,
+ 0x2f, 0xd6, 0xda, 0xe1, 0xc6, 0x18, 0xf5, 0x9f, 0xc9, 0x25, 0x5d, 0xf3,
+ 0x00, 0x3a, 0xde, 0x26, 0x4d, 0xb4, 0x29, 0x09, 0xcd, 0x0f, 0x3d, 0x23,
+ 0x6f, 0x16, 0x4a, 0x81, 0x16, 0xfb, 0xf2, 0x83, 0x10, 0xc3, 0xb8, 0xd6,
+ 0xd8, 0x55, 0x32, 0x3d, 0xf1, 0xbd, 0x0f, 0xbd, 0x8c, 0x52, 0x95, 0x4a,
+ 0x16, 0x97, 0x7a, 0x52, 0x21, 0x63, 0x75, 0x2f, 0x16, 0xf9, 0xc4, 0x66,
+ 0xbe, 0xf5, 0xb5, 0x09, 0xd8, 0xff, 0x27, 0x00, 0xcd, 0x44, 0x7c, 0x6f,
+ 0x4b, 0x3f, 0xb0, 0xf7, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
+ 0x63, 0x30, 0x82, 0x01, 0x5f, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+ 0x00, 0x30, 0x30, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x29, 0x30, 0x27,
+ 0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21, 0x86, 0x1f, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x73, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2f, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x23, 0x30, 0x21, 0x30,
+ 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86,
+ 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x32, 0x2e, 0x73,
+ 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x6b, 0x06, 0x03,
+ 0x55, 0x1d, 0x20, 0x04, 0x64, 0x30, 0x62, 0x30, 0x60, 0x06, 0x0a, 0x60,
+ 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30, 0x52, 0x30,
+ 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16,
+ 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+ 0x73, 0x79, 0x6d, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x63, 0x70, 0x73, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x02, 0x30, 0x1c, 0x1a, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x79, 0x6d, 0x61, 0x75, 0x74,
+ 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x70, 0x61, 0x30, 0x29, 0x06,
+ 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c,
+ 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53,
+ 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31,
+ 0x2d, 0x35, 0x33, 0x34, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+ 0x16, 0x04, 0x14, 0x5f, 0x60, 0xcf, 0x61, 0x90, 0x55, 0xdf, 0x84, 0x43,
+ 0x14, 0x8a, 0x60, 0x2a, 0xb2, 0xf5, 0x7a, 0xf4, 0x43, 0x18, 0xef, 0x30,
+ 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+ 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+ 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x01, 0x00, 0x5e, 0x94, 0x56, 0x49, 0xdd, 0x8e, 0x2d, 0x65,
+ 0xf5, 0xc1, 0x36, 0x51, 0xb6, 0x03, 0xe3, 0xda, 0x9e, 0x73, 0x19, 0xf2,
+ 0x1f, 0x59, 0xab, 0x58, 0x7e, 0x6c, 0x26, 0x05, 0x2c, 0xfa, 0x81, 0xd7,
+ 0x5c, 0x23, 0x17, 0x22, 0x2c, 0x37, 0x93, 0xf7, 0x86, 0xec, 0x85, 0xe6,
+ 0xb0, 0xa3, 0xfd, 0x1f, 0xe2, 0x32, 0xa8, 0x45, 0x6f, 0xe1, 0xd9, 0xfb,
+ 0xb9, 0xaf, 0xd2, 0x70, 0xa0, 0x32, 0x42, 0x65, 0xbf, 0x84, 0xfe, 0x16,
+ 0x2a, 0x8f, 0x3f, 0xc5, 0xa6, 0xd6, 0xa3, 0x93, 0x7d, 0x43, 0xe9, 0x74,
+ 0x21, 0x91, 0x35, 0x28, 0xf4, 0x63, 0xe9, 0x2e, 0xed, 0xf7, 0xf5, 0x5c,
+ 0x7f, 0x4b, 0x9a, 0xb5, 0x20, 0xe9, 0x0a, 0xbd, 0xe0, 0x45, 0x10, 0x0c,
+ 0x14, 0x94, 0x9a, 0x5d, 0xa5, 0xe3, 0x4b, 0x91, 0xe8, 0x24, 0x9b, 0x46,
+ 0x40, 0x65, 0xf4, 0x22, 0x72, 0xcd, 0x99, 0xf8, 0x88, 0x11, 0xf5, 0xf3,
+ 0x7f, 0xe6, 0x33, 0x82, 0xe6, 0xa8, 0xc5, 0x7e, 0xfe, 0xd0, 0x08, 0xe2,
+ 0x25, 0x58, 0x08, 0x71, 0x68, 0xe6, 0xcd, 0xa2, 0xe6, 0x14, 0xde, 0x4e,
+ 0x52, 0x24, 0x2d, 0xfd, 0xe5, 0x79, 0x13, 0x53, 0xe7, 0x5e, 0x2f, 0x2d,
+ 0x4d, 0x1b, 0x6d, 0x40, 0x15, 0x52, 0x2b, 0xf7, 0x87, 0x89, 0x78, 0x12,
+ 0x81, 0x6e, 0xd9, 0x4d, 0xaa, 0x2d, 0x78, 0xd4, 0xc2, 0x2c, 0x3d, 0x08,
+ 0x5f, 0x87, 0x91, 0x9e, 0x1f, 0x0e, 0xb0, 0xde, 0x30, 0x52, 0x64, 0x86,
+ 0x89, 0xaa, 0x9d, 0x66, 0x9c, 0x0e, 0x76, 0x0c, 0x80, 0xf2, 0x74, 0xd8,
+ 0x2a, 0xf8, 0xb8, 0x3a, 0xce, 0xd7, 0xd6, 0x0f, 0x11, 0xbe, 0x6b, 0xab,
+ 0x14, 0xf5, 0xbd, 0x41, 0xa0, 0x22, 0x63, 0x89, 0xf1, 0xba, 0x0f, 0x6f,
+ 0x29, 0x63, 0x66, 0x2d, 0x3f, 0xac, 0x8c, 0x72, 0xc5, 0xfb, 0xc7, 0xe4,
+ 0xd4, 0x0f, 0xf2, 0x3b, 0x4f, 0x8c, 0x29, 0xc7,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 120036009 (0x7279aa9)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+ Validity
+ Not Before: Dec 19 20:07:32 2013 GMT
+ Not After : Dec 19 20:06:55 2017 GMT
+ Subject: C=US, ST=Washington, L=Redmond, O=Microsoft Corporation, OU=Microsoft IT, CN=Microsoft IT SSL SHA2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (4096 bit)
+ Modulus:
+ 00:d1:e8:37:a7:76:8a:70:4b:19:f0:20:37:09:24:
+ 37:7f:ea:fb:78:e6:05:ba:6a:ad:4e:27:0d:fc:72:
+ 6a:d9:6c:21:c4:64:11:95:73:10:0a:5c:25:7b:88:
+ 6c:94:04:fd:c7:db:ae:7b:dc:4a:08:b3:3e:16:f1:
+ d0:ad:db:30:6d:d7:1a:1e:52:b5:3d:f0:47:19:03:
+ e2:7d:a6:bd:57:13:3f:54:ea:3a:a3:b1:77:fc:42:
+ f0:63:49:6a:91:80:2e:30:49:c0:8a:eb:2b:af:fe:
+ 3a:eb:07:5d:06:f7:e9:fd:84:0e:91:bd:09:20:29:
+ e8:6e:5d:09:ce:15:d3:e7:ef:db:50:eb:44:ef:18:
+ 57:ab:04:1d:bc:31:f9:f7:7b:2a:13:cf:d1:3d:51:
+ af:1b:c5:b5:7b:e7:b0:fc:53:bb:9a:e7:63:de:41:
+ 33:b6:47:24:69:5d:b8:46:a7:ff:ad:ab:df:4f:7a:
+ 78:25:27:21:26:34:ca:02:6e:37:51:f0:ed:58:1a:
+ 60:94:f6:c4:93:d8:dd:30:24:25:d7:1c:eb:19:94:
+ 35:5d:93:b2:ae:aa:29:83:73:c4:74:59:05:52:67:
+ 9d:da:67:51:39:05:3a:36:ea:f2:1e:76:2b:14:ae:
+ ec:3d:f9:14:99:8b:07:6e:bc:e7:0c:56:de:ac:be:
+ ae:db:75:32:90:9e:63:bd:74:bf:e0:0a:ca:f8:34:
+ 96:67:84:cd:d1:42:38:78:c7:99:b6:0c:ce:b6:0f:
+ e9:1b:cb:f4:59:be:11:0e:cb:2c:32:c8:fa:83:29:
+ 64:79:3c:8b:4b:f0:32:74:6c:f3:93:b8:96:6b:5d:
+ 57:5a:68:c1:cc:0c:79:8a:19:de:f5:49:02:5e:08:
+ 80:01:89:0c:32:cd:d2:d6:96:d5:4b:a0:f3:ec:bf:
+ ab:f4:7d:b3:a1:b9:7c:da:4e:d7:e5:b7:ac:b9:f2:
+ 25:5f:01:cb:8c:96:a8:28:ae:c1:33:5a:f6:3f:08:
+ 90:dc:eb:ff:39:d8:26:c8:12:9d:1c:9a:aa:a9:c0:
+ 16:8e:86:ed:67:52:96:00:7f:0d:92:3d:3d:d9:70:
+ 36:e5:ea:42:6f:1f:ae:95:e5:5b:5d:f8:d0:3a:c7:
+ d4:de:77:86:d0:fc:9e:4e:e2:e2:b8:a9:68:37:09:
+ c4:39:e3:85:b8:89:f3:1f:6e:b7:6d:1f:4a:2f:18:
+ 09:6f:de:4a:01:8f:14:c9:b7:a6:ee:a7:63:9f:33:
+ a4:54:7c:42:83:68:b8:a5:df:bf:ec:b9:1a:5d:13:
+ 3b:d9:ad:68:fd:20:0a:55:91:21:64:f9:d7:13:01:
+ a0:08:5d:59:89:1b:44:af:a4:ac:c7:05:10:fa:41:
+ 4a:a8:fb
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.6334.1.0
+ CPS: http://cybertrust.omniroot.com/repository.cfm
+
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication
+ X509v3 Authority Key Identifier:
+ keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+ X509v3 Subject Key Identifier:
+ 51:AF:24:26:9C:F4:68:22:57:80:26:2B:3B:46:62:15:7B:1E:CC:A5
+ Signature Algorithm: sha256WithRSAEncryption
+ 76:85:c5:23:31:1f:b4:73:ea:a0:bc:a5:ed:df:45:43:6a:7f:
+ 69:20:1b:80:b2:fb:1c:dd:aa:7f:88:d3:31:41:36:f7:fb:fb:
+ 6b:ad:98:8c:78:1f:9d:11:67:3a:cd:4b:ec:a8:bc:9d:15:19:
+ c4:3b:0b:a7:93:ce:e8:fc:9d:5b:e8:1f:cb:56:ae:76:43:2b:
+ c7:13:51:77:41:a8:66:4c:5f:a7:d1:d7:aa:75:c5:1b:29:4c:
+ c9:f4:6d:a1:5e:a1:85:93:16:c2:cb:3b:ab:14:7d:44:fd:da:
+ 25:29:86:2a:fe:63:20:ca:d2:0b:c2:34:15:bb:af:5b:7f:8a:
+ e0:aa:ed:45:a6:ea:79:db:d8:35:66:54:43:de:37:33:d1:e4:
+ e0:cd:57:ca:71:b0:7d:e9:16:77:64:e8:59:97:b9:d5:2e:d1:
+ b4:91:da:77:71:f3:4a:0f:48:d2:34:99:60:95:37:ac:1f:01:
+ cd:10:9d:e8:2a:a5:20:c7:50:9b:b3:6c:49:78:2b:58:92:64:
+ 89:b8:95:36:a8:34:aa:f0:41:d2:95:5a:24:54:97:4d:6e:05:
+ c4:95:ad:c4:7a:a3:39:fb:79:06:8a:9b:a6:4f:d9:22:fa:44:
+ 4e:36:f3:c9:0f:a6:39:e7:80:b2:5e:bf:bd:39:d1:46:e5:55:
+ 47:db:bc:6e
+-----BEGIN CERTIFICATE-----
+MIIFhjCCBG6gAwIBAgIEByeaqTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTEzMTIxOTIwMDczMloX
+DTE3MTIxOTIwMDY1NVowgYsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
+dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
+YXRpb24xFTATBgNVBAsTDE1pY3Jvc29mdCBJVDEeMBwGA1UEAxMVTWljcm9zb2Z0
+IElUIFNTTCBTSEEyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0eg3
+p3aKcEsZ8CA3CSQ3f+r7eOYFumqtTicN/HJq2WwhxGQRlXMQClwle4hslAT9x9uu
+e9xKCLM+FvHQrdswbdcaHlK1PfBHGQPifaa9VxM/VOo6o7F3/ELwY0lqkYAuMEnA
+iusrr/466wddBvfp/YQOkb0JICnobl0JzhXT5+/bUOtE7xhXqwQdvDH593sqE8/R
+PVGvG8W1e+ew/FO7mudj3kEztkckaV24Rqf/ravfT3p4JSchJjTKAm43UfDtWBpg
+lPbEk9jdMCQl1xzrGZQ1XZOyrqopg3PEdFkFUmed2mdROQU6NuryHnYrFK7sPfkU
+mYsHbrznDFberL6u23UykJ5jvXS/4ArK+DSWZ4TN0UI4eMeZtgzOtg/pG8v0Wb4R
+DsssMsj6gylkeTyLS/AydGzzk7iWa11XWmjBzAx5ihne9UkCXgiAAYkMMs3S1pbV
+S6Dz7L+r9H2zobl82k7X5besufIlXwHLjJaoKK7BM1r2PwiQ3Ov/OdgmyBKdHJqq
+qcAWjobtZ1KWAH8Nkj092XA25epCbx+uleVbXfjQOsfU3neG0PyeTuLiuKloNwnE
+OeOFuInzH263bR9KLxgJb95KAY8Uybem7qdjnzOkVHxCg2i4pd+/7LkaXRM72a1o
+/SAKVZEhZPnXEwGgCF1ZiRtEr6SsxwUQ+kFKqPsCAwEAAaOCASAwggEcMBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwUwYDVR0gBEwwSjBIBgkrBgEEAbE+AQAwOzA5BggrBgEF
+BQcCARYtaHR0cDovL2N5YmVydHJ1c3Qub21uaXJvb3QuY29tL3JlcG9zaXRvcnku
+Y2ZtMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH
+AwIwHwYDVR0jBBgwFoAU5Z1ZMIJHWMys+ghUNoZ7OrUETfAwQgYDVR0fBDswOTA3
+oDWgM4YxaHR0cDovL2NkcDEucHVibGljLXRydXN0LmNvbS9DUkwvT21uaXJvb3Qy
+MDI1LmNybDAdBgNVHQ4EFgQUUa8kJpz0aCJXgCYrO0ZiFXsezKUwDQYJKoZIhvcN
+AQELBQADggEBAHaFxSMxH7Rz6qC8pe3fRUNqf2kgG4Cy+xzdqn+I0zFBNvf7+2ut
+mIx4H50RZzrNS+yovJ0VGcQ7C6eTzuj8nVvoH8tWrnZDK8cTUXdBqGZMX6fR16p1
+xRspTMn0baFeoYWTFsLLO6sUfUT92iUphir+YyDK0gvCNBW7r1t/iuCq7UWm6nnb
+2DVmVEPeNzPR5ODNV8pxsH3pFndk6FmXudUu0bSR2ndx80oPSNI0mWCVN6wfAc0Q
+negqpSDHUJuzbEl4K1iSZIm4lTaoNKrwQdKVWiRUl01uBcSVrcR6ozn7eQaKm6ZP
+2SL6RE4288kPpjnngLJev7050UblVUfbvG4=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert44[] = {
+ 0x30, 0x82, 0x05, 0x86, 0x30, 0x82, 0x04, 0x6e, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x07, 0x27, 0x9a, 0xa9, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+ 0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+ 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+ 0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+ 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+ 0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33,
+ 0x31, 0x32, 0x31, 0x39, 0x32, 0x30, 0x30, 0x37, 0x33, 0x32, 0x5a, 0x17,
+ 0x0d, 0x31, 0x37, 0x31, 0x32, 0x31, 0x39, 0x32, 0x30, 0x30, 0x36, 0x35,
+ 0x35, 0x5a, 0x30, 0x81, 0x8b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
+ 0x55, 0x04, 0x08, 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67,
+ 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07,
+ 0x13, 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30,
+ 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72,
+ 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x0c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66,
+ 0x74, 0x20, 0x49, 0x54, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
+ 0x20, 0x49, 0x54, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32,
+ 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00,
+ 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xd1, 0xe8, 0x37,
+ 0xa7, 0x76, 0x8a, 0x70, 0x4b, 0x19, 0xf0, 0x20, 0x37, 0x09, 0x24, 0x37,
+ 0x7f, 0xea, 0xfb, 0x78, 0xe6, 0x05, 0xba, 0x6a, 0xad, 0x4e, 0x27, 0x0d,
+ 0xfc, 0x72, 0x6a, 0xd9, 0x6c, 0x21, 0xc4, 0x64, 0x11, 0x95, 0x73, 0x10,
+ 0x0a, 0x5c, 0x25, 0x7b, 0x88, 0x6c, 0x94, 0x04, 0xfd, 0xc7, 0xdb, 0xae,
+ 0x7b, 0xdc, 0x4a, 0x08, 0xb3, 0x3e, 0x16, 0xf1, 0xd0, 0xad, 0xdb, 0x30,
+ 0x6d, 0xd7, 0x1a, 0x1e, 0x52, 0xb5, 0x3d, 0xf0, 0x47, 0x19, 0x03, 0xe2,
+ 0x7d, 0xa6, 0xbd, 0x57, 0x13, 0x3f, 0x54, 0xea, 0x3a, 0xa3, 0xb1, 0x77,
+ 0xfc, 0x42, 0xf0, 0x63, 0x49, 0x6a, 0x91, 0x80, 0x2e, 0x30, 0x49, 0xc0,
+ 0x8a, 0xeb, 0x2b, 0xaf, 0xfe, 0x3a, 0xeb, 0x07, 0x5d, 0x06, 0xf7, 0xe9,
+ 0xfd, 0x84, 0x0e, 0x91, 0xbd, 0x09, 0x20, 0x29, 0xe8, 0x6e, 0x5d, 0x09,
+ 0xce, 0x15, 0xd3, 0xe7, 0xef, 0xdb, 0x50, 0xeb, 0x44, 0xef, 0x18, 0x57,
+ 0xab, 0x04, 0x1d, 0xbc, 0x31, 0xf9, 0xf7, 0x7b, 0x2a, 0x13, 0xcf, 0xd1,
+ 0x3d, 0x51, 0xaf, 0x1b, 0xc5, 0xb5, 0x7b, 0xe7, 0xb0, 0xfc, 0x53, 0xbb,
+ 0x9a, 0xe7, 0x63, 0xde, 0x41, 0x33, 0xb6, 0x47, 0x24, 0x69, 0x5d, 0xb8,
+ 0x46, 0xa7, 0xff, 0xad, 0xab, 0xdf, 0x4f, 0x7a, 0x78, 0x25, 0x27, 0x21,
+ 0x26, 0x34, 0xca, 0x02, 0x6e, 0x37, 0x51, 0xf0, 0xed, 0x58, 0x1a, 0x60,
+ 0x94, 0xf6, 0xc4, 0x93, 0xd8, 0xdd, 0x30, 0x24, 0x25, 0xd7, 0x1c, 0xeb,
+ 0x19, 0x94, 0x35, 0x5d, 0x93, 0xb2, 0xae, 0xaa, 0x29, 0x83, 0x73, 0xc4,
+ 0x74, 0x59, 0x05, 0x52, 0x67, 0x9d, 0xda, 0x67, 0x51, 0x39, 0x05, 0x3a,
+ 0x36, 0xea, 0xf2, 0x1e, 0x76, 0x2b, 0x14, 0xae, 0xec, 0x3d, 0xf9, 0x14,
+ 0x99, 0x8b, 0x07, 0x6e, 0xbc, 0xe7, 0x0c, 0x56, 0xde, 0xac, 0xbe, 0xae,
+ 0xdb, 0x75, 0x32, 0x90, 0x9e, 0x63, 0xbd, 0x74, 0xbf, 0xe0, 0x0a, 0xca,
+ 0xf8, 0x34, 0x96, 0x67, 0x84, 0xcd, 0xd1, 0x42, 0x38, 0x78, 0xc7, 0x99,
+ 0xb6, 0x0c, 0xce, 0xb6, 0x0f, 0xe9, 0x1b, 0xcb, 0xf4, 0x59, 0xbe, 0x11,
+ 0x0e, 0xcb, 0x2c, 0x32, 0xc8, 0xfa, 0x83, 0x29, 0x64, 0x79, 0x3c, 0x8b,
+ 0x4b, 0xf0, 0x32, 0x74, 0x6c, 0xf3, 0x93, 0xb8, 0x96, 0x6b, 0x5d, 0x57,
+ 0x5a, 0x68, 0xc1, 0xcc, 0x0c, 0x79, 0x8a, 0x19, 0xde, 0xf5, 0x49, 0x02,
+ 0x5e, 0x08, 0x80, 0x01, 0x89, 0x0c, 0x32, 0xcd, 0xd2, 0xd6, 0x96, 0xd5,
+ 0x4b, 0xa0, 0xf3, 0xec, 0xbf, 0xab, 0xf4, 0x7d, 0xb3, 0xa1, 0xb9, 0x7c,
+ 0xda, 0x4e, 0xd7, 0xe5, 0xb7, 0xac, 0xb9, 0xf2, 0x25, 0x5f, 0x01, 0xcb,
+ 0x8c, 0x96, 0xa8, 0x28, 0xae, 0xc1, 0x33, 0x5a, 0xf6, 0x3f, 0x08, 0x90,
+ 0xdc, 0xeb, 0xff, 0x39, 0xd8, 0x26, 0xc8, 0x12, 0x9d, 0x1c, 0x9a, 0xaa,
+ 0xa9, 0xc0, 0x16, 0x8e, 0x86, 0xed, 0x67, 0x52, 0x96, 0x00, 0x7f, 0x0d,
+ 0x92, 0x3d, 0x3d, 0xd9, 0x70, 0x36, 0xe5, 0xea, 0x42, 0x6f, 0x1f, 0xae,
+ 0x95, 0xe5, 0x5b, 0x5d, 0xf8, 0xd0, 0x3a, 0xc7, 0xd4, 0xde, 0x77, 0x86,
+ 0xd0, 0xfc, 0x9e, 0x4e, 0xe2, 0xe2, 0xb8, 0xa9, 0x68, 0x37, 0x09, 0xc4,
+ 0x39, 0xe3, 0x85, 0xb8, 0x89, 0xf3, 0x1f, 0x6e, 0xb7, 0x6d, 0x1f, 0x4a,
+ 0x2f, 0x18, 0x09, 0x6f, 0xde, 0x4a, 0x01, 0x8f, 0x14, 0xc9, 0xb7, 0xa6,
+ 0xee, 0xa7, 0x63, 0x9f, 0x33, 0xa4, 0x54, 0x7c, 0x42, 0x83, 0x68, 0xb8,
+ 0xa5, 0xdf, 0xbf, 0xec, 0xb9, 0x1a, 0x5d, 0x13, 0x3b, 0xd9, 0xad, 0x68,
+ 0xfd, 0x20, 0x0a, 0x55, 0x91, 0x21, 0x64, 0xf9, 0xd7, 0x13, 0x01, 0xa0,
+ 0x08, 0x5d, 0x59, 0x89, 0x1b, 0x44, 0xaf, 0xa4, 0xac, 0xc7, 0x05, 0x10,
+ 0xfa, 0x41, 0x4a, 0xa8, 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+ 0x01, 0x20, 0x30, 0x82, 0x01, 0x1c, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+ 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+ 0x01, 0x00, 0x30, 0x53, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x4c, 0x30,
+ 0x4a, 0x30, 0x48, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e,
+ 0x01, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e,
+ 0x63, 0x66, 0x6d, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x03, 0x02, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0xe5, 0x9d, 0x59, 0x30, 0x82, 0x47, 0x58, 0xcc, 0xac,
+ 0xfa, 0x08, 0x54, 0x36, 0x86, 0x7b, 0x3a, 0xb5, 0x04, 0x4d, 0xf0, 0x30,
+ 0x42, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x3b, 0x30, 0x39, 0x30, 0x37,
+ 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x63, 0x64, 0x70, 0x31, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
+ 0x2d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43,
+ 0x52, 0x4c, 0x2f, 0x4f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x32,
+ 0x30, 0x32, 0x35, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x51, 0xaf, 0x24, 0x26, 0x9c, 0xf4,
+ 0x68, 0x22, 0x57, 0x80, 0x26, 0x2b, 0x3b, 0x46, 0x62, 0x15, 0x7b, 0x1e,
+ 0xcc, 0xa5, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x76, 0x85,
+ 0xc5, 0x23, 0x31, 0x1f, 0xb4, 0x73, 0xea, 0xa0, 0xbc, 0xa5, 0xed, 0xdf,
+ 0x45, 0x43, 0x6a, 0x7f, 0x69, 0x20, 0x1b, 0x80, 0xb2, 0xfb, 0x1c, 0xdd,
+ 0xaa, 0x7f, 0x88, 0xd3, 0x31, 0x41, 0x36, 0xf7, 0xfb, 0xfb, 0x6b, 0xad,
+ 0x98, 0x8c, 0x78, 0x1f, 0x9d, 0x11, 0x67, 0x3a, 0xcd, 0x4b, 0xec, 0xa8,
+ 0xbc, 0x9d, 0x15, 0x19, 0xc4, 0x3b, 0x0b, 0xa7, 0x93, 0xce, 0xe8, 0xfc,
+ 0x9d, 0x5b, 0xe8, 0x1f, 0xcb, 0x56, 0xae, 0x76, 0x43, 0x2b, 0xc7, 0x13,
+ 0x51, 0x77, 0x41, 0xa8, 0x66, 0x4c, 0x5f, 0xa7, 0xd1, 0xd7, 0xaa, 0x75,
+ 0xc5, 0x1b, 0x29, 0x4c, 0xc9, 0xf4, 0x6d, 0xa1, 0x5e, 0xa1, 0x85, 0x93,
+ 0x16, 0xc2, 0xcb, 0x3b, 0xab, 0x14, 0x7d, 0x44, 0xfd, 0xda, 0x25, 0x29,
+ 0x86, 0x2a, 0xfe, 0x63, 0x20, 0xca, 0xd2, 0x0b, 0xc2, 0x34, 0x15, 0xbb,
+ 0xaf, 0x5b, 0x7f, 0x8a, 0xe0, 0xaa, 0xed, 0x45, 0xa6, 0xea, 0x79, 0xdb,
+ 0xd8, 0x35, 0x66, 0x54, 0x43, 0xde, 0x37, 0x33, 0xd1, 0xe4, 0xe0, 0xcd,
+ 0x57, 0xca, 0x71, 0xb0, 0x7d, 0xe9, 0x16, 0x77, 0x64, 0xe8, 0x59, 0x97,
+ 0xb9, 0xd5, 0x2e, 0xd1, 0xb4, 0x91, 0xda, 0x77, 0x71, 0xf3, 0x4a, 0x0f,
+ 0x48, 0xd2, 0x34, 0x99, 0x60, 0x95, 0x37, 0xac, 0x1f, 0x01, 0xcd, 0x10,
+ 0x9d, 0xe8, 0x2a, 0xa5, 0x20, 0xc7, 0x50, 0x9b, 0xb3, 0x6c, 0x49, 0x78,
+ 0x2b, 0x58, 0x92, 0x64, 0x89, 0xb8, 0x95, 0x36, 0xa8, 0x34, 0xaa, 0xf0,
+ 0x41, 0xd2, 0x95, 0x5a, 0x24, 0x54, 0x97, 0x4d, 0x6e, 0x05, 0xc4, 0x95,
+ 0xad, 0xc4, 0x7a, 0xa3, 0x39, 0xfb, 0x79, 0x06, 0x8a, 0x9b, 0xa6, 0x4f,
+ 0xd9, 0x22, 0xfa, 0x44, 0x4e, 0x36, 0xf3, 0xc9, 0x0f, 0xa6, 0x39, 0xe7,
+ 0x80, 0xb2, 0x5e, 0xbf, 0xbd, 0x39, 0xd1, 0x46, 0xe5, 0x55, 0x47, 0xdb,
+ 0xbc, 0x6e,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 67:3f:33:4f:21:53:36:52:c3:5e:15:d2:fd:b3:02:0f
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=CN, O=WoSign CA Limited, CN=Certification Authority of WoSign
+ Validity
+ Not Before: Aug 8 01:00:05 2009 GMT
+ Not After : Aug 8 01:00:05 2024 GMT
+ Subject: C=CN, O=WoSign CA Limited, CN=WoSign Class 3 OV Server CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:bc:89:be:61:51:53:c8:2b:96:75:b3:5a:d3:0e:
+ 34:fe:4a:c2:9f:a3:18:83:a2:ac:e3:2e:5e:93:79:
+ 0b:13:49:5e:93:b2:8f:84:10:ed:91:8f:82:ba:ad:
+ 67:df:33:1b:ae:84:f2:55:b0:5b:f4:b3:9e:bc:e6:
+ 04:0f:1d:ef:04:5a:a8:0b:ec:12:6d:56:19:64:70:
+ 49:0f:57:92:f3:5f:21:a6:4d:b4:d2:96:2b:3c:32:
+ b3:ef:8f:59:0b:14:ba:6e:a2:9e:71:db:f2:88:3f:
+ 28:3b:ec:ce:be:47:ac:45:c7:8a:9e:fa:61:93:c5:
+ 49:17:b6:46:b6:f7:99:16:8c:1c:6e:31:ae:69:ce:
+ ed:c6:24:92:70:a1:cb:96:c3:6c:16:d0:ee:cc:4f:
+ 86:33:b3:41:e6:3d:3d:db:0e:8c:33:74:bb:c3:fc:
+ 0b:a7:fc:d1:71:e2:c1:0c:d4:f7:ba:3e:80:90:d4:
+ 48:eb:a2:83:70:d8:db:30:07:29:89:f9:81:21:2c:
+ ff:eb:47:f6:7a:6d:43:96:67:17:3e:f3:e2:73:51:
+ c7:76:1e:e9:1c:a0:ec:11:1a:b1:cf:1e:2d:9c:55:
+ ee:3b:c6:2d:ae:dc:66:65:91:a2:66:9c:ac:82:f1:
+ a4:17:b5:d7:43:83:c3:88:a0:64:de:ca:72:45:dc:
+ 38:fb
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Client Authentication, TLS Web Server Authentication
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crls1.wosign.com/ca1.crl
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp1.wosign.com/ca1
+ CA Issuers - URI:http://aia1.wosign.com/ca1-class3-server.cer
+
+ X509v3 Subject Key Identifier:
+ 62:2E:81:D9:E3:42:79:14:A3:CD:D9:54:8A:6E:F8:DE:95:AA:8F:98
+ X509v3 Authority Key Identifier:
+ keyid:E1:66:CF:0E:D1:F1:B3:4B:B7:06:20:14:FE:87:12:D5:F6:FE:FB:3E
+
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.36305.1.3.2
+ CPS: http://www.wosign.com/policy/
+
+ Signature Algorithm: sha1WithRSAEncryption
+ ab:70:aa:64:c4:0b:34:91:b9:63:20:5e:b0:9c:21:ff:25:79:
+ 6c:57:4e:56:44:58:83:b9:00:ce:2d:65:a8:6d:95:38:ea:82:
+ 2d:55:18:60:12:7e:1a:1d:6b:62:34:2c:d9:cd:17:00:43:84:
+ 3e:ad:bc:ff:26:85:1f:4a:a7:46:13:b0:7d:3b:0b:d9:4b:9d:
+ b0:cf:8d:f4:05:cb:12:29:fe:e1:97:c7:b7:c7:aa:53:7e:39:
+ 2d:9d:f6:d4:5e:b7:8c:15:6a:81:d2:37:1a:43:0e:cb:e6:30:
+ 21:43:83:69:0f:ef:6b:cd:10:f9:84:60:cf:89:e9:88:10:01:
+ af:09:f3:48:bb:07:09:75:01:84:fa:b1:1e:51:19:8f:c6:c9:
+ 85:65:16:5f:e0:56:7e:b7:bf:40:c2:d4:d0:05:1f:93:63:c9:
+ 24:08:3b:91:b2:35:e1:a4:8f:35:db:24:58:75:39:e4:dd:10:
+ 1a:b0:df:13:12:73:9e:6d:e7:67:3c:db:1c:1c:dd:10:dd:cc:
+ f4:07:09:b9:2e:e5:75:6d:97:b7:60:5b:89:70:81:d2:26:d8:
+ c6:09:2b:b2:05:7f:c4:b8:14:41:1e:07:f0:48:41:63:cb:0c:
+ aa:45:7e:84:f9:33:b3:58:87:bc:b1:d6:c2:65:c7:57:c6:95:
+ e8:85:90:b0:62:50:f5:ee:12:f1:d8:7e:73:cb:c0:c3:a0:25:
+ 17:23:37:91:ba:63:bd:84:af:f3:89:e0:51:c2:73:35:6d:63:
+ 86:21:f2:73:bd:c2:47:e0:4d:7e:46:37:4b:d0:f7:61:2a:c7:
+ 94:50:25:36:e8:ae:da:2e:1f:b8:08:b2:55:7c:6b:66:43:8f:
+ 02:1d:dd:a7:eb:98:00:a7:25:74:f5:93:1b:6d:26:bb:1d:e5:
+ b7:fc:21:25:26:d1:77:1b:a8:6e:aa:c3:4b:64:51:7f:91:0e:
+ 41:5c:19:83:a1:a8:1f:94:99:43:0f:99:db:18:dc:21:6f:76:
+ d1:9e:ea:a3:76:e0:f0:09:bc:b9:b4:f7:43:6c:1f:d3:2a:86:
+ 6a:2f:e0:6c:f1:83:39:d7:70:db:a2:91:ab:54:be:f4:47:88:
+ 8c:f0:10:d2:e4:ad:eb:7e:b1:ba:08:4b:67:04:a3:f2:e9:90:
+ 2b:81:e3:74:76:3d:00:9d:d2:bb:fc:a5:a0:15:1c:28:df:10:
+ 4f:47:d7:33:46:9d:b2:57:d2:c6:1f:fb:e4:59:4a:2b:28:a9:
+ 13:dd:b9:e9:93:b4:88:ee:e2:5b:a0:07:25:fe:8a:2e:78:e4:
+ b4:e1:d5:1d:f6:1a:3a:e3:1c:01:2a:1e:a1:86:54:9e:49:dc:
+ c9:59:e3:0d:6d:5a:13:36
+-----BEGIN CERTIFICATE-----
+MIIFozCCA4ugAwIBAgIQZz8zTyFTNlLDXhXS/bMCDzANBgkqhkiG9w0BAQUFADBV
+MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNV
+BAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgw
+MTAwMDVaFw0yNDA4MDgwMTAwMDVaME8xCzAJBgNVBAYTAkNOMRowGAYDVQQKExFX
+b1NpZ24gQ0EgTGltaXRlZDEkMCIGA1UEAxMbV29TaWduIENsYXNzIDMgT1YgU2Vy
+dmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvIm+YVFTyCuW
+dbNa0w40/krCn6MYg6Ks4y5ek3kLE0lek7KPhBDtkY+Cuq1n3zMbroTyVbBb9LOe
+vOYEDx3vBFqoC+wSbVYZZHBJD1eS818hpk200pYrPDKz749ZCxS6bqKecdvyiD8o
+O+zOvkesRceKnvphk8VJF7ZGtveZFowcbjGuac7txiSScKHLlsNsFtDuzE+GM7NB
+5j092w6MM3S7w/wLp/zRceLBDNT3uj6AkNRI66KDcNjbMAcpifmBISz/60f2em1D
+lmcXPvPic1HHdh7pHKDsERqxzx4tnFXuO8YtrtxmZZGiZpysgvGkF7XXQ4PDiKBk
+3spyRdw4+wIDAQABo4IBczCCAW8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQWMBQG
+CCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/AgEAMDAGA1UdHwQp
+MCcwJaAjoCGGH2h0dHA6Ly9jcmxzMS53b3NpZ24uY29tL2NhMS5jcmwwcQYIKwYB
+BQUHAQEEZTBjMCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcDEud29zaWduLmNvbS9j
+YTEwOAYIKwYBBQUHMAKGLGh0dHA6Ly9haWExLndvc2lnbi5jb20vY2ExLWNsYXNz
+My1zZXJ2ZXIuY2VyMB0GA1UdDgQWBBRiLoHZ40J5FKPN2VSKbvjelaqPmDAfBgNV
+HSMEGDAWgBThZs8O0fGzS7cGIBT+hxLV9v77PjBFBgNVHSAEPjA8MDoGCysGAQQB
+gptRAQMCMCswKQYIKwYBBQUHAgEWHWh0dHA6Ly93d3cud29zaWduLmNvbS9wb2xp
+Y3kvMA0GCSqGSIb3DQEBBQUAA4ICAQCrcKpkxAs0kbljIF6wnCH/JXlsV05WRFiD
+uQDOLWWobZU46oItVRhgEn4aHWtiNCzZzRcAQ4Q+rbz/JoUfSqdGE7B9OwvZS52w
+z430BcsSKf7hl8e3x6pTfjktnfbUXreMFWqB0jcaQw7L5jAhQ4NpD+9rzRD5hGDP
+iemIEAGvCfNIuwcJdQGE+rEeURmPxsmFZRZf4FZ+t79AwtTQBR+TY8kkCDuRsjXh
+pI812yRYdTnk3RAasN8TEnOebednPNscHN0Q3cz0Bwm5LuV1bZe3YFuJcIHSJtjG
+CSuyBX/EuBRBHgfwSEFjywyqRX6E+TOzWIe8sdbCZcdXxpXohZCwYlD17hLx2H5z
+y8DDoCUXIzeRumO9hK/zieBRwnM1bWOGIfJzvcJH4E1+RjdL0PdhKseUUCU26K7a
+Lh+4CLJVfGtmQ48CHd2n65gApyV09ZMbbSa7HeW3/CElJtF3G6huqsNLZFF/kQ5B
+XBmDoagflJlDD5nbGNwhb3bRnuqjduDwCby5tPdDbB/TKoZqL+Bs8YM513DbopGr
+VL70R4iM8BDS5K3rfrG6CEtnBKPy6ZArgeN0dj0AndK7/KWgFRwo3xBPR9czRp2y
+V9LGH/vkWUorKKkT3bnpk7SI7uJboAcl/ooueOS04dUd9ho64xwBKh6hhlSeSdzJ
+WeMNbVoTNg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert45[] = {
+ 0x30, 0x82, 0x05, 0xa3, 0x30, 0x82, 0x03, 0x8b, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x67, 0x3f, 0x33, 0x4f, 0x21, 0x53, 0x36, 0x52, 0xc3,
+ 0x5e, 0x15, 0xd2, 0xfd, 0xb3, 0x02, 0x0f, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x55,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x43,
+ 0x4e, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11,
+ 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x41, 0x20, 0x4c, 0x69,
+ 0x6d, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2a, 0x30, 0x28, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x21, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x57, 0x6f, 0x53, 0x69, 0x67,
+ 0x6e, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x39, 0x30, 0x38, 0x30, 0x38, 0x30,
+ 0x31, 0x30, 0x30, 0x30, 0x35, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x38,
+ 0x30, 0x38, 0x30, 0x31, 0x30, 0x30, 0x30, 0x35, 0x5a, 0x30, 0x4f, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x43, 0x4e,
+ 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x57,
+ 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x41, 0x20, 0x4c, 0x69, 0x6d,
+ 0x69, 0x74, 0x65, 0x64, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x1b, 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c,
+ 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x4f, 0x56, 0x20, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+ 0x01, 0x01, 0x00, 0xbc, 0x89, 0xbe, 0x61, 0x51, 0x53, 0xc8, 0x2b, 0x96,
+ 0x75, 0xb3, 0x5a, 0xd3, 0x0e, 0x34, 0xfe, 0x4a, 0xc2, 0x9f, 0xa3, 0x18,
+ 0x83, 0xa2, 0xac, 0xe3, 0x2e, 0x5e, 0x93, 0x79, 0x0b, 0x13, 0x49, 0x5e,
+ 0x93, 0xb2, 0x8f, 0x84, 0x10, 0xed, 0x91, 0x8f, 0x82, 0xba, 0xad, 0x67,
+ 0xdf, 0x33, 0x1b, 0xae, 0x84, 0xf2, 0x55, 0xb0, 0x5b, 0xf4, 0xb3, 0x9e,
+ 0xbc, 0xe6, 0x04, 0x0f, 0x1d, 0xef, 0x04, 0x5a, 0xa8, 0x0b, 0xec, 0x12,
+ 0x6d, 0x56, 0x19, 0x64, 0x70, 0x49, 0x0f, 0x57, 0x92, 0xf3, 0x5f, 0x21,
+ 0xa6, 0x4d, 0xb4, 0xd2, 0x96, 0x2b, 0x3c, 0x32, 0xb3, 0xef, 0x8f, 0x59,
+ 0x0b, 0x14, 0xba, 0x6e, 0xa2, 0x9e, 0x71, 0xdb, 0xf2, 0x88, 0x3f, 0x28,
+ 0x3b, 0xec, 0xce, 0xbe, 0x47, 0xac, 0x45, 0xc7, 0x8a, 0x9e, 0xfa, 0x61,
+ 0x93, 0xc5, 0x49, 0x17, 0xb6, 0x46, 0xb6, 0xf7, 0x99, 0x16, 0x8c, 0x1c,
+ 0x6e, 0x31, 0xae, 0x69, 0xce, 0xed, 0xc6, 0x24, 0x92, 0x70, 0xa1, 0xcb,
+ 0x96, 0xc3, 0x6c, 0x16, 0xd0, 0xee, 0xcc, 0x4f, 0x86, 0x33, 0xb3, 0x41,
+ 0xe6, 0x3d, 0x3d, 0xdb, 0x0e, 0x8c, 0x33, 0x74, 0xbb, 0xc3, 0xfc, 0x0b,
+ 0xa7, 0xfc, 0xd1, 0x71, 0xe2, 0xc1, 0x0c, 0xd4, 0xf7, 0xba, 0x3e, 0x80,
+ 0x90, 0xd4, 0x48, 0xeb, 0xa2, 0x83, 0x70, 0xd8, 0xdb, 0x30, 0x07, 0x29,
+ 0x89, 0xf9, 0x81, 0x21, 0x2c, 0xff, 0xeb, 0x47, 0xf6, 0x7a, 0x6d, 0x43,
+ 0x96, 0x67, 0x17, 0x3e, 0xf3, 0xe2, 0x73, 0x51, 0xc7, 0x76, 0x1e, 0xe9,
+ 0x1c, 0xa0, 0xec, 0x11, 0x1a, 0xb1, 0xcf, 0x1e, 0x2d, 0x9c, 0x55, 0xee,
+ 0x3b, 0xc6, 0x2d, 0xae, 0xdc, 0x66, 0x65, 0x91, 0xa2, 0x66, 0x9c, 0xac,
+ 0x82, 0xf1, 0xa4, 0x17, 0xb5, 0xd7, 0x43, 0x83, 0xc3, 0x88, 0xa0, 0x64,
+ 0xde, 0xca, 0x72, 0x45, 0xdc, 0x38, 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01,
+ 0xa3, 0x82, 0x01, 0x73, 0x30, 0x82, 0x01, 0x6f, 0x30, 0x0e, 0x06, 0x03,
+ 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+ 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x30, 0x12, 0x06, 0x03, 0x55,
+ 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+ 0x02, 0x01, 0x00, 0x30, 0x30, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x29,
+ 0x30, 0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21, 0x86, 0x1f, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x31, 0x2e, 0x77,
+ 0x6f, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61,
+ 0x31, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x71, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x65, 0x30, 0x63, 0x30, 0x27, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1b, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x31, 0x2e,
+ 0x77, 0x6f, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63,
+ 0x61, 0x31, 0x30, 0x38, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x02, 0x86, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61,
+ 0x69, 0x61, 0x31, 0x2e, 0x77, 0x6f, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x31, 0x2d, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x33, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x63, 0x65, 0x72,
+ 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x62,
+ 0x2e, 0x81, 0xd9, 0xe3, 0x42, 0x79, 0x14, 0xa3, 0xcd, 0xd9, 0x54, 0x8a,
+ 0x6e, 0xf8, 0xde, 0x95, 0xaa, 0x8f, 0x98, 0x30, 0x1f, 0x06, 0x03, 0x55,
+ 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe1, 0x66, 0xcf, 0x0e,
+ 0xd1, 0xf1, 0xb3, 0x4b, 0xb7, 0x06, 0x20, 0x14, 0xfe, 0x87, 0x12, 0xd5,
+ 0xf6, 0xfe, 0xfb, 0x3e, 0x30, 0x45, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+ 0x3e, 0x30, 0x3c, 0x30, 0x3a, 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01,
+ 0x82, 0x9b, 0x51, 0x01, 0x03, 0x02, 0x30, 0x2b, 0x30, 0x29, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1d, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x6f, 0x73,
+ 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6c, 0x69,
+ 0x63, 0x79, 0x2f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0xab,
+ 0x70, 0xaa, 0x64, 0xc4, 0x0b, 0x34, 0x91, 0xb9, 0x63, 0x20, 0x5e, 0xb0,
+ 0x9c, 0x21, 0xff, 0x25, 0x79, 0x6c, 0x57, 0x4e, 0x56, 0x44, 0x58, 0x83,
+ 0xb9, 0x00, 0xce, 0x2d, 0x65, 0xa8, 0x6d, 0x95, 0x38, 0xea, 0x82, 0x2d,
+ 0x55, 0x18, 0x60, 0x12, 0x7e, 0x1a, 0x1d, 0x6b, 0x62, 0x34, 0x2c, 0xd9,
+ 0xcd, 0x17, 0x00, 0x43, 0x84, 0x3e, 0xad, 0xbc, 0xff, 0x26, 0x85, 0x1f,
+ 0x4a, 0xa7, 0x46, 0x13, 0xb0, 0x7d, 0x3b, 0x0b, 0xd9, 0x4b, 0x9d, 0xb0,
+ 0xcf, 0x8d, 0xf4, 0x05, 0xcb, 0x12, 0x29, 0xfe, 0xe1, 0x97, 0xc7, 0xb7,
+ 0xc7, 0xaa, 0x53, 0x7e, 0x39, 0x2d, 0x9d, 0xf6, 0xd4, 0x5e, 0xb7, 0x8c,
+ 0x15, 0x6a, 0x81, 0xd2, 0x37, 0x1a, 0x43, 0x0e, 0xcb, 0xe6, 0x30, 0x21,
+ 0x43, 0x83, 0x69, 0x0f, 0xef, 0x6b, 0xcd, 0x10, 0xf9, 0x84, 0x60, 0xcf,
+ 0x89, 0xe9, 0x88, 0x10, 0x01, 0xaf, 0x09, 0xf3, 0x48, 0xbb, 0x07, 0x09,
+ 0x75, 0x01, 0x84, 0xfa, 0xb1, 0x1e, 0x51, 0x19, 0x8f, 0xc6, 0xc9, 0x85,
+ 0x65, 0x16, 0x5f, 0xe0, 0x56, 0x7e, 0xb7, 0xbf, 0x40, 0xc2, 0xd4, 0xd0,
+ 0x05, 0x1f, 0x93, 0x63, 0xc9, 0x24, 0x08, 0x3b, 0x91, 0xb2, 0x35, 0xe1,
+ 0xa4, 0x8f, 0x35, 0xdb, 0x24, 0x58, 0x75, 0x39, 0xe4, 0xdd, 0x10, 0x1a,
+ 0xb0, 0xdf, 0x13, 0x12, 0x73, 0x9e, 0x6d, 0xe7, 0x67, 0x3c, 0xdb, 0x1c,
+ 0x1c, 0xdd, 0x10, 0xdd, 0xcc, 0xf4, 0x07, 0x09, 0xb9, 0x2e, 0xe5, 0x75,
+ 0x6d, 0x97, 0xb7, 0x60, 0x5b, 0x89, 0x70, 0x81, 0xd2, 0x26, 0xd8, 0xc6,
+ 0x09, 0x2b, 0xb2, 0x05, 0x7f, 0xc4, 0xb8, 0x14, 0x41, 0x1e, 0x07, 0xf0,
+ 0x48, 0x41, 0x63, 0xcb, 0x0c, 0xaa, 0x45, 0x7e, 0x84, 0xf9, 0x33, 0xb3,
+ 0x58, 0x87, 0xbc, 0xb1, 0xd6, 0xc2, 0x65, 0xc7, 0x57, 0xc6, 0x95, 0xe8,
+ 0x85, 0x90, 0xb0, 0x62, 0x50, 0xf5, 0xee, 0x12, 0xf1, 0xd8, 0x7e, 0x73,
+ 0xcb, 0xc0, 0xc3, 0xa0, 0x25, 0x17, 0x23, 0x37, 0x91, 0xba, 0x63, 0xbd,
+ 0x84, 0xaf, 0xf3, 0x89, 0xe0, 0x51, 0xc2, 0x73, 0x35, 0x6d, 0x63, 0x86,
+ 0x21, 0xf2, 0x73, 0xbd, 0xc2, 0x47, 0xe0, 0x4d, 0x7e, 0x46, 0x37, 0x4b,
+ 0xd0, 0xf7, 0x61, 0x2a, 0xc7, 0x94, 0x50, 0x25, 0x36, 0xe8, 0xae, 0xda,
+ 0x2e, 0x1f, 0xb8, 0x08, 0xb2, 0x55, 0x7c, 0x6b, 0x66, 0x43, 0x8f, 0x02,
+ 0x1d, 0xdd, 0xa7, 0xeb, 0x98, 0x00, 0xa7, 0x25, 0x74, 0xf5, 0x93, 0x1b,
+ 0x6d, 0x26, 0xbb, 0x1d, 0xe5, 0xb7, 0xfc, 0x21, 0x25, 0x26, 0xd1, 0x77,
+ 0x1b, 0xa8, 0x6e, 0xaa, 0xc3, 0x4b, 0x64, 0x51, 0x7f, 0x91, 0x0e, 0x41,
+ 0x5c, 0x19, 0x83, 0xa1, 0xa8, 0x1f, 0x94, 0x99, 0x43, 0x0f, 0x99, 0xdb,
+ 0x18, 0xdc, 0x21, 0x6f, 0x76, 0xd1, 0x9e, 0xea, 0xa3, 0x76, 0xe0, 0xf0,
+ 0x09, 0xbc, 0xb9, 0xb4, 0xf7, 0x43, 0x6c, 0x1f, 0xd3, 0x2a, 0x86, 0x6a,
+ 0x2f, 0xe0, 0x6c, 0xf1, 0x83, 0x39, 0xd7, 0x70, 0xdb, 0xa2, 0x91, 0xab,
+ 0x54, 0xbe, 0xf4, 0x47, 0x88, 0x8c, 0xf0, 0x10, 0xd2, 0xe4, 0xad, 0xeb,
+ 0x7e, 0xb1, 0xba, 0x08, 0x4b, 0x67, 0x04, 0xa3, 0xf2, 0xe9, 0x90, 0x2b,
+ 0x81, 0xe3, 0x74, 0x76, 0x3d, 0x00, 0x9d, 0xd2, 0xbb, 0xfc, 0xa5, 0xa0,
+ 0x15, 0x1c, 0x28, 0xdf, 0x10, 0x4f, 0x47, 0xd7, 0x33, 0x46, 0x9d, 0xb2,
+ 0x57, 0xd2, 0xc6, 0x1f, 0xfb, 0xe4, 0x59, 0x4a, 0x2b, 0x28, 0xa9, 0x13,
+ 0xdd, 0xb9, 0xe9, 0x93, 0xb4, 0x88, 0xee, 0xe2, 0x5b, 0xa0, 0x07, 0x25,
+ 0xfe, 0x8a, 0x2e, 0x78, 0xe4, 0xb4, 0xe1, 0xd5, 0x1d, 0xf6, 0x1a, 0x3a,
+ 0xe3, 0x1c, 0x01, 0x2a, 0x1e, 0xa1, 0x86, 0x54, 0x9e, 0x49, 0xdc, 0xc9,
+ 0x59, 0xe3, 0x0d, 0x6d, 0x5a, 0x13, 0x36,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 120040007 (0x727aa47)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+ Validity
+ Not Before: May 7 17:04:09 2014 GMT
+ Not After : May 7 17:03:30 2018 GMT
+ Subject: C=US, ST=Washington, L=Redmond, O=Microsoft Corporation, OU=Microsoft IT, CN=Microsoft IT SSL SHA2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (4096 bit)
+ Modulus:
+ 00:d1:e8:37:a7:76:8a:70:4b:19:f0:20:37:09:24:
+ 37:7f:ea:fb:78:e6:05:ba:6a:ad:4e:27:0d:fc:72:
+ 6a:d9:6c:21:c4:64:11:95:73:10:0a:5c:25:7b:88:
+ 6c:94:04:fd:c7:db:ae:7b:dc:4a:08:b3:3e:16:f1:
+ d0:ad:db:30:6d:d7:1a:1e:52:b5:3d:f0:47:19:03:
+ e2:7d:a6:bd:57:13:3f:54:ea:3a:a3:b1:77:fc:42:
+ f0:63:49:6a:91:80:2e:30:49:c0:8a:eb:2b:af:fe:
+ 3a:eb:07:5d:06:f7:e9:fd:84:0e:91:bd:09:20:29:
+ e8:6e:5d:09:ce:15:d3:e7:ef:db:50:eb:44:ef:18:
+ 57:ab:04:1d:bc:31:f9:f7:7b:2a:13:cf:d1:3d:51:
+ af:1b:c5:b5:7b:e7:b0:fc:53:bb:9a:e7:63:de:41:
+ 33:b6:47:24:69:5d:b8:46:a7:ff:ad:ab:df:4f:7a:
+ 78:25:27:21:26:34:ca:02:6e:37:51:f0:ed:58:1a:
+ 60:94:f6:c4:93:d8:dd:30:24:25:d7:1c:eb:19:94:
+ 35:5d:93:b2:ae:aa:29:83:73:c4:74:59:05:52:67:
+ 9d:da:67:51:39:05:3a:36:ea:f2:1e:76:2b:14:ae:
+ ec:3d:f9:14:99:8b:07:6e:bc:e7:0c:56:de:ac:be:
+ ae:db:75:32:90:9e:63:bd:74:bf:e0:0a:ca:f8:34:
+ 96:67:84:cd:d1:42:38:78:c7:99:b6:0c:ce:b6:0f:
+ e9:1b:cb:f4:59:be:11:0e:cb:2c:32:c8:fa:83:29:
+ 64:79:3c:8b:4b:f0:32:74:6c:f3:93:b8:96:6b:5d:
+ 57:5a:68:c1:cc:0c:79:8a:19:de:f5:49:02:5e:08:
+ 80:01:89:0c:32:cd:d2:d6:96:d5:4b:a0:f3:ec:bf:
+ ab:f4:7d:b3:a1:b9:7c:da:4e:d7:e5:b7:ac:b9:f2:
+ 25:5f:01:cb:8c:96:a8:28:ae:c1:33:5a:f6:3f:08:
+ 90:dc:eb:ff:39:d8:26:c8:12:9d:1c:9a:aa:a9:c0:
+ 16:8e:86:ed:67:52:96:00:7f:0d:92:3d:3d:d9:70:
+ 36:e5:ea:42:6f:1f:ae:95:e5:5b:5d:f8:d0:3a:c7:
+ d4:de:77:86:d0:fc:9e:4e:e2:e2:b8:a9:68:37:09:
+ c4:39:e3:85:b8:89:f3:1f:6e:b7:6d:1f:4a:2f:18:
+ 09:6f:de:4a:01:8f:14:c9:b7:a6:ee:a7:63:9f:33:
+ a4:54:7c:42:83:68:b8:a5:df:bf:ec:b9:1a:5d:13:
+ 3b:d9:ad:68:fd:20:0a:55:91:21:64:f9:d7:13:01:
+ a0:08:5d:59:89:1b:44:af:a4:ac:c7:05:10:fa:41:
+ 4a:a8:fb
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.6334.1.0
+ CPS: http://cybertrust.omniroot.com/repository.cfm
+ Policy: 1.3.6.1.4.1.311.42.1
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.omniroot.com/baltimoreroot
+
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication, OCSP Signing
+ X509v3 Authority Key Identifier:
+ keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+ X509v3 Subject Key Identifier:
+ 51:AF:24:26:9C:F4:68:22:57:80:26:2B:3B:46:62:15:7B:1E:CC:A5
+ Signature Algorithm: sha256WithRSAEncryption
+ 69:62:f6:84:91:00:c4:6f:82:7b:24:e1:42:a2:a5:8b:82:5c:
+ a7:c5:44:cb:e7:52:76:63:d3:76:9e:78:e2:69:35:b1:38:ba:
+ b0:96:c6:1f:ac:7b:c6:b2:65:77:8b:7d:8d:ae:64:b9:a5:8c:
+ 17:ca:58:65:c3:ad:82:f5:c5:a2:f5:01:13:93:c6:7e:44:e5:
+ c4:61:fa:03:b6:56:c1:72:e1:c8:28:c5:69:21:8f:ac:6e:fd:
+ 7f:43:83:36:b8:c0:d6:a0:28:fe:1a:45:be:fd:93:8c:8d:a4:
+ 64:79:1f:14:db:a1:9f:21:dc:c0:4e:7b:17:22:17:b1:b6:3c:
+ d3:9b:e2:0a:a3:7e:99:b0:c1:ac:d8:f4:86:df:3c:da:7d:14:
+ 9c:40:c1:7c:d2:18:6f:f1:4f:26:45:09:95:94:5c:da:d0:98:
+ f8:f4:4c:82:96:10:de:ac:30:cb:2b:ae:f9:92:ea:bf:79:03:
+ fc:1e:3f:ac:09:a4:3f:65:fd:91:4f:96:24:a7:ce:b4:4e:6a:
+ 96:29:17:ae:c0:a8:df:17:22:f4:17:e3:dc:1c:39:06:56:10:
+ ea:ea:b5:74:17:3c:4e:dd:7e:91:0a:a8:0b:78:07:a7:31:44:
+ 08:31:ab:18:84:0f:12:9c:e7:de:84:2c:e9:6d:93:45:bf:a8:
+ c1:3f:34:dc
+-----BEGIN CERTIFICATE-----
+MIIF4TCCBMmgAwIBAgIEByeqRzANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE0MDUwNzE3MDQwOVoX
+DTE4MDUwNzE3MDMzMFowgYsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
+dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
+YXRpb24xFTATBgNVBAsTDE1pY3Jvc29mdCBJVDEeMBwGA1UEAxMVTWljcm9zb2Z0
+IElUIFNTTCBTSEEyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0eg3
+p3aKcEsZ8CA3CSQ3f+r7eOYFumqtTicN/HJq2WwhxGQRlXMQClwle4hslAT9x9uu
+e9xKCLM+FvHQrdswbdcaHlK1PfBHGQPifaa9VxM/VOo6o7F3/ELwY0lqkYAuMEnA
+iusrr/466wddBvfp/YQOkb0JICnobl0JzhXT5+/bUOtE7xhXqwQdvDH593sqE8/R
+PVGvG8W1e+ew/FO7mudj3kEztkckaV24Rqf/ravfT3p4JSchJjTKAm43UfDtWBpg
+lPbEk9jdMCQl1xzrGZQ1XZOyrqopg3PEdFkFUmed2mdROQU6NuryHnYrFK7sPfkU
+mYsHbrznDFberL6u23UykJ5jvXS/4ArK+DSWZ4TN0UI4eMeZtgzOtg/pG8v0Wb4R
+DsssMsj6gylkeTyLS/AydGzzk7iWa11XWmjBzAx5ihne9UkCXgiAAYkMMs3S1pbV
+S6Dz7L+r9H2zobl82k7X5besufIlXwHLjJaoKK7BM1r2PwiQ3Ov/OdgmyBKdHJqq
+qcAWjobtZ1KWAH8Nkj092XA25epCbx+uleVbXfjQOsfU3neG0PyeTuLiuKloNwnE
+OeOFuInzH263bR9KLxgJb95KAY8Uybem7qdjnzOkVHxCg2i4pd+/7LkaXRM72a1o
+/SAKVZEhZPnXEwGgCF1ZiRtEr6SsxwUQ+kFKqPsCAwEAAaOCAXswggF3MBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwYAYDVR0gBFkwVzBIBgkrBgEEAbE+AQAwOzA5BggrBgEF
+BQcCARYtaHR0cDovL2N5YmVydHJ1c3Qub21uaXJvb3QuY29tL3JlcG9zaXRvcnku
+Y2ZtMAsGCSsGAQQBgjcqATBCBggrBgEFBQcBAQQ2MDQwMgYIKwYBBQUHMAGGJmh0
+dHA6Ly9vY3NwLm9tbmlyb290LmNvbS9iYWx0aW1vcmVyb290MA4GA1UdDwEB/wQE
+AwIBhjAnBgNVHSUEIDAeBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMJMB8G
+A1UdIwQYMBaAFOWdWTCCR1jMrPoIVDaGezq1BE3wMEIGA1UdHwQ7MDkwN6A1oDOG
+MWh0dHA6Ly9jZHAxLnB1YmxpYy10cnVzdC5jb20vQ1JML09tbmlyb290MjAyNS5j
+cmwwHQYDVR0OBBYEFFGvJCac9GgiV4AmKztGYhV7HsylMA0GCSqGSIb3DQEBCwUA
+A4IBAQBpYvaEkQDEb4J7JOFCoqWLglynxUTL51J2Y9N2nnjiaTWxOLqwlsYfrHvG
+smV3i32NrmS5pYwXylhlw62C9cWi9QETk8Z+ROXEYfoDtlbBcuHIKMVpIY+sbv1/
+Q4M2uMDWoCj+GkW+/ZOMjaRkeR8U26GfIdzATnsXIhextjzTm+IKo36ZsMGs2PSG
+3zzafRScQMF80hhv8U8mRQmVlFza0Jj49EyClhDerDDLK675kuq/eQP8Hj+sCaQ/
+Zf2RT5Ykp860TmqWKReuwKjfFyL0F+PcHDkGVhDq6rV0FzxO3X6RCqgLeAenMUQI
+MasYhA8SnOfehCzpbZNFv6jBPzTc
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert46[] = {
+ 0x30, 0x82, 0x05, 0xe1, 0x30, 0x82, 0x04, 0xc9, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x07, 0x27, 0xaa, 0x47, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+ 0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+ 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+ 0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+ 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+ 0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34,
+ 0x30, 0x35, 0x30, 0x37, 0x31, 0x37, 0x30, 0x34, 0x30, 0x39, 0x5a, 0x17,
+ 0x0d, 0x31, 0x38, 0x30, 0x35, 0x30, 0x37, 0x31, 0x37, 0x30, 0x33, 0x33,
+ 0x30, 0x5a, 0x30, 0x81, 0x8b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
+ 0x55, 0x04, 0x08, 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67,
+ 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07,
+ 0x13, 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30,
+ 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72,
+ 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x0c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66,
+ 0x74, 0x20, 0x49, 0x54, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
+ 0x20, 0x49, 0x54, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32,
+ 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00,
+ 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xd1, 0xe8, 0x37,
+ 0xa7, 0x76, 0x8a, 0x70, 0x4b, 0x19, 0xf0, 0x20, 0x37, 0x09, 0x24, 0x37,
+ 0x7f, 0xea, 0xfb, 0x78, 0xe6, 0x05, 0xba, 0x6a, 0xad, 0x4e, 0x27, 0x0d,
+ 0xfc, 0x72, 0x6a, 0xd9, 0x6c, 0x21, 0xc4, 0x64, 0x11, 0x95, 0x73, 0x10,
+ 0x0a, 0x5c, 0x25, 0x7b, 0x88, 0x6c, 0x94, 0x04, 0xfd, 0xc7, 0xdb, 0xae,
+ 0x7b, 0xdc, 0x4a, 0x08, 0xb3, 0x3e, 0x16, 0xf1, 0xd0, 0xad, 0xdb, 0x30,
+ 0x6d, 0xd7, 0x1a, 0x1e, 0x52, 0xb5, 0x3d, 0xf0, 0x47, 0x19, 0x03, 0xe2,
+ 0x7d, 0xa6, 0xbd, 0x57, 0x13, 0x3f, 0x54, 0xea, 0x3a, 0xa3, 0xb1, 0x77,
+ 0xfc, 0x42, 0xf0, 0x63, 0x49, 0x6a, 0x91, 0x80, 0x2e, 0x30, 0x49, 0xc0,
+ 0x8a, 0xeb, 0x2b, 0xaf, 0xfe, 0x3a, 0xeb, 0x07, 0x5d, 0x06, 0xf7, 0xe9,
+ 0xfd, 0x84, 0x0e, 0x91, 0xbd, 0x09, 0x20, 0x29, 0xe8, 0x6e, 0x5d, 0x09,
+ 0xce, 0x15, 0xd3, 0xe7, 0xef, 0xdb, 0x50, 0xeb, 0x44, 0xef, 0x18, 0x57,
+ 0xab, 0x04, 0x1d, 0xbc, 0x31, 0xf9, 0xf7, 0x7b, 0x2a, 0x13, 0xcf, 0xd1,
+ 0x3d, 0x51, 0xaf, 0x1b, 0xc5, 0xb5, 0x7b, 0xe7, 0xb0, 0xfc, 0x53, 0xbb,
+ 0x9a, 0xe7, 0x63, 0xde, 0x41, 0x33, 0xb6, 0x47, 0x24, 0x69, 0x5d, 0xb8,
+ 0x46, 0xa7, 0xff, 0xad, 0xab, 0xdf, 0x4f, 0x7a, 0x78, 0x25, 0x27, 0x21,
+ 0x26, 0x34, 0xca, 0x02, 0x6e, 0x37, 0x51, 0xf0, 0xed, 0x58, 0x1a, 0x60,
+ 0x94, 0xf6, 0xc4, 0x93, 0xd8, 0xdd, 0x30, 0x24, 0x25, 0xd7, 0x1c, 0xeb,
+ 0x19, 0x94, 0x35, 0x5d, 0x93, 0xb2, 0xae, 0xaa, 0x29, 0x83, 0x73, 0xc4,
+ 0x74, 0x59, 0x05, 0x52, 0x67, 0x9d, 0xda, 0x67, 0x51, 0x39, 0x05, 0x3a,
+ 0x36, 0xea, 0xf2, 0x1e, 0x76, 0x2b, 0x14, 0xae, 0xec, 0x3d, 0xf9, 0x14,
+ 0x99, 0x8b, 0x07, 0x6e, 0xbc, 0xe7, 0x0c, 0x56, 0xde, 0xac, 0xbe, 0xae,
+ 0xdb, 0x75, 0x32, 0x90, 0x9e, 0x63, 0xbd, 0x74, 0xbf, 0xe0, 0x0a, 0xca,
+ 0xf8, 0x34, 0x96, 0x67, 0x84, 0xcd, 0xd1, 0x42, 0x38, 0x78, 0xc7, 0x99,
+ 0xb6, 0x0c, 0xce, 0xb6, 0x0f, 0xe9, 0x1b, 0xcb, 0xf4, 0x59, 0xbe, 0x11,
+ 0x0e, 0xcb, 0x2c, 0x32, 0xc8, 0xfa, 0x83, 0x29, 0x64, 0x79, 0x3c, 0x8b,
+ 0x4b, 0xf0, 0x32, 0x74, 0x6c, 0xf3, 0x93, 0xb8, 0x96, 0x6b, 0x5d, 0x57,
+ 0x5a, 0x68, 0xc1, 0xcc, 0x0c, 0x79, 0x8a, 0x19, 0xde, 0xf5, 0x49, 0x02,
+ 0x5e, 0x08, 0x80, 0x01, 0x89, 0x0c, 0x32, 0xcd, 0xd2, 0xd6, 0x96, 0xd5,
+ 0x4b, 0xa0, 0xf3, 0xec, 0xbf, 0xab, 0xf4, 0x7d, 0xb3, 0xa1, 0xb9, 0x7c,
+ 0xda, 0x4e, 0xd7, 0xe5, 0xb7, 0xac, 0xb9, 0xf2, 0x25, 0x5f, 0x01, 0xcb,
+ 0x8c, 0x96, 0xa8, 0x28, 0xae, 0xc1, 0x33, 0x5a, 0xf6, 0x3f, 0x08, 0x90,
+ 0xdc, 0xeb, 0xff, 0x39, 0xd8, 0x26, 0xc8, 0x12, 0x9d, 0x1c, 0x9a, 0xaa,
+ 0xa9, 0xc0, 0x16, 0x8e, 0x86, 0xed, 0x67, 0x52, 0x96, 0x00, 0x7f, 0x0d,
+ 0x92, 0x3d, 0x3d, 0xd9, 0x70, 0x36, 0xe5, 0xea, 0x42, 0x6f, 0x1f, 0xae,
+ 0x95, 0xe5, 0x5b, 0x5d, 0xf8, 0xd0, 0x3a, 0xc7, 0xd4, 0xde, 0x77, 0x86,
+ 0xd0, 0xfc, 0x9e, 0x4e, 0xe2, 0xe2, 0xb8, 0xa9, 0x68, 0x37, 0x09, 0xc4,
+ 0x39, 0xe3, 0x85, 0xb8, 0x89, 0xf3, 0x1f, 0x6e, 0xb7, 0x6d, 0x1f, 0x4a,
+ 0x2f, 0x18, 0x09, 0x6f, 0xde, 0x4a, 0x01, 0x8f, 0x14, 0xc9, 0xb7, 0xa6,
+ 0xee, 0xa7, 0x63, 0x9f, 0x33, 0xa4, 0x54, 0x7c, 0x42, 0x83, 0x68, 0xb8,
+ 0xa5, 0xdf, 0xbf, 0xec, 0xb9, 0x1a, 0x5d, 0x13, 0x3b, 0xd9, 0xad, 0x68,
+ 0xfd, 0x20, 0x0a, 0x55, 0x91, 0x21, 0x64, 0xf9, 0xd7, 0x13, 0x01, 0xa0,
+ 0x08, 0x5d, 0x59, 0x89, 0x1b, 0x44, 0xaf, 0xa4, 0xac, 0xc7, 0x05, 0x10,
+ 0xfa, 0x41, 0x4a, 0xa8, 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+ 0x01, 0x7b, 0x30, 0x82, 0x01, 0x77, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+ 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+ 0x01, 0x00, 0x30, 0x60, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x59, 0x30,
+ 0x57, 0x30, 0x48, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e,
+ 0x01, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e,
+ 0x63, 0x66, 0x6d, 0x30, 0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01,
+ 0x82, 0x37, 0x2a, 0x01, 0x30, 0x42, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x01, 0x01, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x26, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x6f, 0x6d,
+ 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62,
+ 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x6f, 0x6f, 0x74,
+ 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
+ 0x03, 0x02, 0x01, 0x86, 0x30, 0x27, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04,
+ 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03,
+ 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x09, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe5, 0x9d,
+ 0x59, 0x30, 0x82, 0x47, 0x58, 0xcc, 0xac, 0xfa, 0x08, 0x54, 0x36, 0x86,
+ 0x7b, 0x3a, 0xb5, 0x04, 0x4d, 0xf0, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1d,
+ 0x1f, 0x04, 0x3b, 0x30, 0x39, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86,
+ 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x64, 0x70, 0x31,
+ 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73,
+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x4f, 0x6d,
+ 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x32, 0x30, 0x32, 0x35, 0x2e, 0x63,
+ 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0x51, 0xaf, 0x24, 0x26, 0x9c, 0xf4, 0x68, 0x22, 0x57, 0x80, 0x26,
+ 0x2b, 0x3b, 0x46, 0x62, 0x15, 0x7b, 0x1e, 0xcc, 0xa5, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x01, 0x00, 0x69, 0x62, 0xf6, 0x84, 0x91, 0x00, 0xc4,
+ 0x6f, 0x82, 0x7b, 0x24, 0xe1, 0x42, 0xa2, 0xa5, 0x8b, 0x82, 0x5c, 0xa7,
+ 0xc5, 0x44, 0xcb, 0xe7, 0x52, 0x76, 0x63, 0xd3, 0x76, 0x9e, 0x78, 0xe2,
+ 0x69, 0x35, 0xb1, 0x38, 0xba, 0xb0, 0x96, 0xc6, 0x1f, 0xac, 0x7b, 0xc6,
+ 0xb2, 0x65, 0x77, 0x8b, 0x7d, 0x8d, 0xae, 0x64, 0xb9, 0xa5, 0x8c, 0x17,
+ 0xca, 0x58, 0x65, 0xc3, 0xad, 0x82, 0xf5, 0xc5, 0xa2, 0xf5, 0x01, 0x13,
+ 0x93, 0xc6, 0x7e, 0x44, 0xe5, 0xc4, 0x61, 0xfa, 0x03, 0xb6, 0x56, 0xc1,
+ 0x72, 0xe1, 0xc8, 0x28, 0xc5, 0x69, 0x21, 0x8f, 0xac, 0x6e, 0xfd, 0x7f,
+ 0x43, 0x83, 0x36, 0xb8, 0xc0, 0xd6, 0xa0, 0x28, 0xfe, 0x1a, 0x45, 0xbe,
+ 0xfd, 0x93, 0x8c, 0x8d, 0xa4, 0x64, 0x79, 0x1f, 0x14, 0xdb, 0xa1, 0x9f,
+ 0x21, 0xdc, 0xc0, 0x4e, 0x7b, 0x17, 0x22, 0x17, 0xb1, 0xb6, 0x3c, 0xd3,
+ 0x9b, 0xe2, 0x0a, 0xa3, 0x7e, 0x99, 0xb0, 0xc1, 0xac, 0xd8, 0xf4, 0x86,
+ 0xdf, 0x3c, 0xda, 0x7d, 0x14, 0x9c, 0x40, 0xc1, 0x7c, 0xd2, 0x18, 0x6f,
+ 0xf1, 0x4f, 0x26, 0x45, 0x09, 0x95, 0x94, 0x5c, 0xda, 0xd0, 0x98, 0xf8,
+ 0xf4, 0x4c, 0x82, 0x96, 0x10, 0xde, 0xac, 0x30, 0xcb, 0x2b, 0xae, 0xf9,
+ 0x92, 0xea, 0xbf, 0x79, 0x03, 0xfc, 0x1e, 0x3f, 0xac, 0x09, 0xa4, 0x3f,
+ 0x65, 0xfd, 0x91, 0x4f, 0x96, 0x24, 0xa7, 0xce, 0xb4, 0x4e, 0x6a, 0x96,
+ 0x29, 0x17, 0xae, 0xc0, 0xa8, 0xdf, 0x17, 0x22, 0xf4, 0x17, 0xe3, 0xdc,
+ 0x1c, 0x39, 0x06, 0x56, 0x10, 0xea, 0xea, 0xb5, 0x74, 0x17, 0x3c, 0x4e,
+ 0xdd, 0x7e, 0x91, 0x0a, 0xa8, 0x0b, 0x78, 0x07, 0xa7, 0x31, 0x44, 0x08,
+ 0x31, 0xab, 0x18, 0x84, 0x0f, 0x12, 0x9c, 0xe7, 0xde, 0x84, 0x2c, 0xe9,
+ 0x6d, 0x93, 0x45, 0xbf, 0xa8, 0xc1, 0x3f, 0x34, 0xdc,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 6e:cc:7a:a5:a7:03:20:09:b8:ce:bc:f4:e9:52:d4:91
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+ Validity
+ Not Before: Feb 8 00:00:00 2010 GMT
+ Not After : Feb 7 23:59:59 2020 GMT
+ Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=Terms of use at https://www.verisign.com/rpa (c)10, CN=VeriSign Class 3 Secure Server CA - G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b1:87:84:1f:c2:0c:45:f5:bc:ab:25:97:a7:ad:
+ a2:3e:9c:ba:f6:c1:39:b8:8b:ca:c2:ac:56:c6:e5:
+ bb:65:8e:44:4f:4d:ce:6f:ed:09:4a:d4:af:4e:10:
+ 9c:68:8b:2e:95:7b:89:9b:13:ca:e2:34:34:c1:f3:
+ 5b:f3:49:7b:62:83:48:81:74:d1:88:78:6c:02:53:
+ f9:bc:7f:43:26:57:58:33:83:3b:33:0a:17:b0:d0:
+ 4e:91:24:ad:86:7d:64:12:dc:74:4a:34:a1:1d:0a:
+ ea:96:1d:0b:15:fc:a3:4b:3b:ce:63:88:d0:f8:2d:
+ 0c:94:86:10:ca:b6:9a:3d:ca:eb:37:9c:00:48:35:
+ 86:29:50:78:e8:45:63:cd:19:41:4f:f5:95:ec:7b:
+ 98:d4:c4:71:b3:50:be:28:b3:8f:a0:b9:53:9c:f5:
+ ca:2c:23:a9:fd:14:06:e8:18:b4:9a:e8:3c:6e:81:
+ fd:e4:cd:35:36:b3:51:d3:69:ec:12:ba:56:6e:6f:
+ 9b:57:c5:8b:14:e7:0e:c7:9c:ed:4a:54:6a:c9:4d:
+ c5:bf:11:b1:ae:1c:67:81:cb:44:55:33:99:7f:24:
+ 9b:3f:53:45:7f:86:1a:f3:3c:fa:6d:7f:81:f5:b8:
+ 4a:d3:f5:85:37:1c:b5:a6:d0:09:e4:18:7b:38:4e:
+ fa:0f
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ Authority Information Access:
+ OCSP - URI:http://ocsp.verisign.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.23.3
+ CPS: https://www.verisign.com/cps
+ User Notice:
+ Explicit Text: https://www.verisign.com/rpa
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.verisign.com/pca3-g5.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ 1.3.6.1.5.5.7.1.12:
+ 0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+ X509v3 Subject Alternative Name:
+ DirName:/CN=VeriSignMPKI-2-6
+ X509v3 Subject Key Identifier:
+ 0D:44:5C:16:53:44:C1:82:7E:1D:20:AB:25:F4:01:63:D8:BE:79:A5
+ X509v3 Authority Key Identifier:
+ keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 0c:83:24:ef:dd:c3:0c:d9:58:9c:fe:36:b6:eb:8a:80:4b:d1:
+ a3:f7:9d:f3:cc:53:ef:82:9e:a3:a1:e6:97:c1:58:9d:75:6c:
+ e0:1d:1b:4c:fa:d1:c1:2d:05:c0:ea:6e:b2:22:70:55:d9:20:
+ 33:40:33:07:c2:65:83:fa:8f:43:37:9b:ea:0e:9a:6c:70:ee:
+ f6:9c:80:3b:d9:37:f4:7a:6d:ec:d0:18:7d:49:4a:ca:99:c7:
+ 19:28:a2:be:d8:77:24:f7:85:26:86:6d:87:05:40:41:67:d1:
+ 27:3a:ed:dc:48:1d:22:cd:0b:0b:8b:bc:f4:b1:7b:fd:b4:99:
+ a8:e9:76:2a:e1:1a:2d:87:6e:74:d3:88:dd:1e:22:c6:df:16:
+ b6:2b:82:14:0a:94:5c:f2:50:ec:af:ce:ff:62:37:0d:ad:65:
+ d3:06:41:53:ed:02:14:c8:b5:58:28:a1:ac:e0:5b:ec:b3:7f:
+ 95:4a:fb:03:c8:ad:26:db:e6:66:78:12:4a:d9:9f:42:fb:e1:
+ 98:e6:42:83:9b:8f:8f:67:24:e8:61:19:b5:dd:cd:b5:0b:26:
+ 05:8e:c3:6e:c4:c8:75:b8:46:cf:e2:18:06:5e:a9:ae:a8:81:
+ 9a:47:16:de:0c:28:6c:25:27:b9:de:b7:84:58:c6:1f:38:1e:
+ a4:c4:cb:66
+-----BEGIN CERTIFICATE-----
+MIIF7DCCBNSgAwIBAgIQbsx6pacDIAm4zrz06VLUkTANBgkqhkiG9w0BAQUFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMTAwMjA4MDAwMDAwWhcNMjAwMjA3MjM1OTU5WjCBtTEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
+ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQg
+aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykxMDEvMC0GA1UEAxMmVmVy
+aVNpZ24gQ2xhc3MgMyBTZWN1cmUgU2VydmVyIENBIC0gRzMwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCxh4QfwgxF9byrJZenraI+nLr2wTm4i8rCrFbG
+5btljkRPTc5v7QlK1K9OEJxoiy6Ve4mbE8riNDTB81vzSXtig0iBdNGIeGwCU/m8
+f0MmV1gzgzszChew0E6RJK2GfWQS3HRKNKEdCuqWHQsV/KNLO85jiND4LQyUhhDK
+tpo9yus3nABINYYpUHjoRWPNGUFP9ZXse5jUxHGzUL4os4+guVOc9cosI6n9FAbo
+GLSa6Dxugf3kzTU2s1HTaewSulZub5tXxYsU5w7HnO1KVGrJTcW/EbGuHGeBy0RV
+M5l/JJs/U0V/hhrzPPptf4H1uErT9YU3HLWm0AnkGHs4TvoPAgMBAAGjggHfMIIB
+2zA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLnZlcmlz
+aWduLmNvbTASBgNVHRMBAf8ECDAGAQH/AgEAMHAGA1UdIARpMGcwZQYLYIZIAYb4
+RQEHFwMwVjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2Nw
+czAqBggrBgEFBQcCAjAeGhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMDQG
+A1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMtZzUu
+Y3JsMA4GA1UdDwEB/wQEAwIBBjBtBggrBgEFBQcBDARhMF+hXaBbMFkwVzBVFglp
+bWFnZS9naWYwITAfMAcGBSsOAwIaBBSP5dMahqyNjmvDz4Bq1EgYLHsZLjAlFiNo
+dHRwOi8vbG9nby52ZXJpc2lnbi5jb20vdnNsb2dvLmdpZjAoBgNVHREEITAfpB0w
+GzEZMBcGA1UEAxMQVmVyaVNpZ25NUEtJLTItNjAdBgNVHQ4EFgQUDURcFlNEwYJ+
+HSCrJfQBY9i+eaUwHwYDVR0jBBgwFoAUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwDQYJ
+KoZIhvcNAQEFBQADggEBAAyDJO/dwwzZWJz+NrbrioBL0aP3nfPMU++CnqOh5pfB
+WJ11bOAdG0z60cEtBcDqbrIicFXZIDNAMwfCZYP6j0M3m+oOmmxw7vacgDvZN/R6
+bezQGH1JSsqZxxkoor7YdyT3hSaGbYcFQEFn0Sc67dxIHSLNCwuLvPSxe/20majp
+dirhGi2HbnTTiN0eIsbfFrYrghQKlFzyUOyvzv9iNw2tZdMGQVPtAhTItVgooazg
+W+yzf5VK+wPIrSbb5mZ4EkrZn0L74ZjmQoObj49nJOhhGbXdzbULJgWOw27EyHW4
+Rs/iGAZeqa6ogZpHFt4MKGwlJ7net4RYxh84HqTEy2Y=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert47[] = {
+ 0x30, 0x82, 0x05, 0xec, 0x30, 0x82, 0x04, 0xd4, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x6e, 0xcc, 0x7a, 0xa5, 0xa7, 0x03, 0x20, 0x09, 0xb8,
+ 0xce, 0xbc, 0xf4, 0xe9, 0x52, 0xd4, 0x91, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+ 0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+ 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+ 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+ 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+ 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x32, 0x30, 0x38, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30, 0x30, 0x32, 0x30, 0x37,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xb5, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+ 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3b, 0x30,
+ 0x39, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x32, 0x54, 0x65, 0x72, 0x6d,
+ 0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x74, 0x20,
+ 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+ 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x70, 0x61, 0x20, 0x28, 0x63, 0x29, 0x31, 0x30, 0x31, 0x2f,
+ 0x30, 0x2d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x26, 0x56, 0x65, 0x72,
+ 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20,
+ 0x33, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30,
+ 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+ 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xb1, 0x87, 0x84, 0x1f,
+ 0xc2, 0x0c, 0x45, 0xf5, 0xbc, 0xab, 0x25, 0x97, 0xa7, 0xad, 0xa2, 0x3e,
+ 0x9c, 0xba, 0xf6, 0xc1, 0x39, 0xb8, 0x8b, 0xca, 0xc2, 0xac, 0x56, 0xc6,
+ 0xe5, 0xbb, 0x65, 0x8e, 0x44, 0x4f, 0x4d, 0xce, 0x6f, 0xed, 0x09, 0x4a,
+ 0xd4, 0xaf, 0x4e, 0x10, 0x9c, 0x68, 0x8b, 0x2e, 0x95, 0x7b, 0x89, 0x9b,
+ 0x13, 0xca, 0xe2, 0x34, 0x34, 0xc1, 0xf3, 0x5b, 0xf3, 0x49, 0x7b, 0x62,
+ 0x83, 0x48, 0x81, 0x74, 0xd1, 0x88, 0x78, 0x6c, 0x02, 0x53, 0xf9, 0xbc,
+ 0x7f, 0x43, 0x26, 0x57, 0x58, 0x33, 0x83, 0x3b, 0x33, 0x0a, 0x17, 0xb0,
+ 0xd0, 0x4e, 0x91, 0x24, 0xad, 0x86, 0x7d, 0x64, 0x12, 0xdc, 0x74, 0x4a,
+ 0x34, 0xa1, 0x1d, 0x0a, 0xea, 0x96, 0x1d, 0x0b, 0x15, 0xfc, 0xa3, 0x4b,
+ 0x3b, 0xce, 0x63, 0x88, 0xd0, 0xf8, 0x2d, 0x0c, 0x94, 0x86, 0x10, 0xca,
+ 0xb6, 0x9a, 0x3d, 0xca, 0xeb, 0x37, 0x9c, 0x00, 0x48, 0x35, 0x86, 0x29,
+ 0x50, 0x78, 0xe8, 0x45, 0x63, 0xcd, 0x19, 0x41, 0x4f, 0xf5, 0x95, 0xec,
+ 0x7b, 0x98, 0xd4, 0xc4, 0x71, 0xb3, 0x50, 0xbe, 0x28, 0xb3, 0x8f, 0xa0,
+ 0xb9, 0x53, 0x9c, 0xf5, 0xca, 0x2c, 0x23, 0xa9, 0xfd, 0x14, 0x06, 0xe8,
+ 0x18, 0xb4, 0x9a, 0xe8, 0x3c, 0x6e, 0x81, 0xfd, 0xe4, 0xcd, 0x35, 0x36,
+ 0xb3, 0x51, 0xd3, 0x69, 0xec, 0x12, 0xba, 0x56, 0x6e, 0x6f, 0x9b, 0x57,
+ 0xc5, 0x8b, 0x14, 0xe7, 0x0e, 0xc7, 0x9c, 0xed, 0x4a, 0x54, 0x6a, 0xc9,
+ 0x4d, 0xc5, 0xbf, 0x11, 0xb1, 0xae, 0x1c, 0x67, 0x81, 0xcb, 0x44, 0x55,
+ 0x33, 0x99, 0x7f, 0x24, 0x9b, 0x3f, 0x53, 0x45, 0x7f, 0x86, 0x1a, 0xf3,
+ 0x3c, 0xfa, 0x6d, 0x7f, 0x81, 0xf5, 0xb8, 0x4a, 0xd3, 0xf5, 0x85, 0x37,
+ 0x1c, 0xb5, 0xa6, 0xd0, 0x09, 0xe4, 0x18, 0x7b, 0x38, 0x4e, 0xfa, 0x0f,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xdf, 0x30, 0x82, 0x01,
+ 0xdb, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+ 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73,
+ 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03, 0x55,
+ 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+ 0x02, 0x01, 0x00, 0x30, 0x70, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x69,
+ 0x30, 0x67, 0x30, 0x65, 0x06, 0x0b, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8,
+ 0x45, 0x01, 0x07, 0x17, 0x03, 0x30, 0x56, 0x30, 0x28, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+ 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72,
+ 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70,
+ 0x73, 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+ 0x02, 0x30, 0x1e, 0x1a, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+ 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67,
+ 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x70, 0x61, 0x30, 0x34, 0x06,
+ 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2d, 0x30, 0x2b, 0x30, 0x29, 0xa0, 0x27,
+ 0xa0, 0x25, 0x86, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+ 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x6d, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f, 0xa1,
+ 0x5d, 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09, 0x69,
+ 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30, 0x1f,
+ 0x30, 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14, 0x8f,
+ 0xe5, 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80, 0x6a,
+ 0xd4, 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x76,
+ 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x76, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30, 0x28,
+ 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x21, 0x30, 0x1f, 0xa4, 0x1d, 0x30,
+ 0x1b, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x10,
+ 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49,
+ 0x2d, 0x32, 0x2d, 0x36, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+ 0x16, 0x04, 0x14, 0x0d, 0x44, 0x5c, 0x16, 0x53, 0x44, 0xc1, 0x82, 0x7e,
+ 0x1d, 0x20, 0xab, 0x25, 0xf4, 0x01, 0x63, 0xd8, 0xbe, 0x79, 0xa5, 0x30,
+ 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+ 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+ 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x01, 0x00, 0x0c, 0x83, 0x24, 0xef, 0xdd, 0xc3, 0x0c, 0xd9,
+ 0x58, 0x9c, 0xfe, 0x36, 0xb6, 0xeb, 0x8a, 0x80, 0x4b, 0xd1, 0xa3, 0xf7,
+ 0x9d, 0xf3, 0xcc, 0x53, 0xef, 0x82, 0x9e, 0xa3, 0xa1, 0xe6, 0x97, 0xc1,
+ 0x58, 0x9d, 0x75, 0x6c, 0xe0, 0x1d, 0x1b, 0x4c, 0xfa, 0xd1, 0xc1, 0x2d,
+ 0x05, 0xc0, 0xea, 0x6e, 0xb2, 0x22, 0x70, 0x55, 0xd9, 0x20, 0x33, 0x40,
+ 0x33, 0x07, 0xc2, 0x65, 0x83, 0xfa, 0x8f, 0x43, 0x37, 0x9b, 0xea, 0x0e,
+ 0x9a, 0x6c, 0x70, 0xee, 0xf6, 0x9c, 0x80, 0x3b, 0xd9, 0x37, 0xf4, 0x7a,
+ 0x6d, 0xec, 0xd0, 0x18, 0x7d, 0x49, 0x4a, 0xca, 0x99, 0xc7, 0x19, 0x28,
+ 0xa2, 0xbe, 0xd8, 0x77, 0x24, 0xf7, 0x85, 0x26, 0x86, 0x6d, 0x87, 0x05,
+ 0x40, 0x41, 0x67, 0xd1, 0x27, 0x3a, 0xed, 0xdc, 0x48, 0x1d, 0x22, 0xcd,
+ 0x0b, 0x0b, 0x8b, 0xbc, 0xf4, 0xb1, 0x7b, 0xfd, 0xb4, 0x99, 0xa8, 0xe9,
+ 0x76, 0x2a, 0xe1, 0x1a, 0x2d, 0x87, 0x6e, 0x74, 0xd3, 0x88, 0xdd, 0x1e,
+ 0x22, 0xc6, 0xdf, 0x16, 0xb6, 0x2b, 0x82, 0x14, 0x0a, 0x94, 0x5c, 0xf2,
+ 0x50, 0xec, 0xaf, 0xce, 0xff, 0x62, 0x37, 0x0d, 0xad, 0x65, 0xd3, 0x06,
+ 0x41, 0x53, 0xed, 0x02, 0x14, 0xc8, 0xb5, 0x58, 0x28, 0xa1, 0xac, 0xe0,
+ 0x5b, 0xec, 0xb3, 0x7f, 0x95, 0x4a, 0xfb, 0x03, 0xc8, 0xad, 0x26, 0xdb,
+ 0xe6, 0x66, 0x78, 0x12, 0x4a, 0xd9, 0x9f, 0x42, 0xfb, 0xe1, 0x98, 0xe6,
+ 0x42, 0x83, 0x9b, 0x8f, 0x8f, 0x67, 0x24, 0xe8, 0x61, 0x19, 0xb5, 0xdd,
+ 0xcd, 0xb5, 0x0b, 0x26, 0x05, 0x8e, 0xc3, 0x6e, 0xc4, 0xc8, 0x75, 0xb8,
+ 0x46, 0xcf, 0xe2, 0x18, 0x06, 0x5e, 0xa9, 0xae, 0xa8, 0x81, 0x9a, 0x47,
+ 0x16, 0xde, 0x0c, 0x28, 0x6c, 0x25, 0x27, 0xb9, 0xde, 0xb7, 0x84, 0x58,
+ 0xc6, 0x1f, 0x38, 0x1e, 0xa4, 0xc4, 0xcb, 0x66,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 2c:48:dd:93:0d:f5:59:8e:f9:3c:99:54:7a:60:ed:43
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+ Validity
+ Not Before: Nov 8 00:00:00 2006 GMT
+ Not After : Nov 7 23:59:59 2016 GMT
+ Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=Terms of use at https://www.verisign.com/rpa (c)06, CN=VeriSign Class 3 Extended Validation SSL SGC CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:bd:56:88:ba:88:34:64:64:cf:cd:ca:b0:ee:e7:
+ 19:73:c5:72:d9:bb:45:bc:b5:a8:ff:83:be:1c:03:
+ db:ed:89:b7:2e:10:1a:25:bc:55:ca:41:a1:9f:0b:
+ cf:19:5e:70:b9:5e:39:4b:9e:31:1c:5f:87:ae:2a:
+ aa:a8:2b:a2:1b:3b:10:23:5f:13:b1:dd:08:8c:4e:
+ 14:da:83:81:e3:b5:8c:e3:68:ed:24:67:ce:56:b6:
+ ac:9b:73:96:44:db:8a:8c:b3:d6:f0:71:93:8e:db:
+ 71:54:4a:eb:73:59:6a:8f:70:51:2c:03:9f:97:d1:
+ cc:11:7a:bc:62:0d:95:2a:c9:1c:75:57:e9:f5:c7:
+ ea:ba:84:35:cb:c7:85:5a:7e:e4:4d:e1:11:97:7d:
+ 0e:20:34:45:db:f1:a2:09:eb:eb:3d:9e:b8:96:43:
+ 5e:34:4b:08:25:1e:43:1a:a2:d9:b7:8a:01:34:3d:
+ c3:f8:e5:af:4f:8c:ff:cd:65:f0:23:4e:c5:97:b3:
+ 5c:da:90:1c:82:85:0d:06:0d:c1:22:b6:7b:28:a4:
+ 03:c3:4c:53:d1:58:bc:72:bc:08:39:fc:a0:76:a8:
+ a8:e9:4b:6e:88:3d:e3:b3:31:25:8c:73:29:48:0e:
+ 32:79:06:ed:3d:43:f4:f6:e4:e9:fc:7d:be:8e:08:
+ d5:1f
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Subject Key Identifier:
+ 4E:43:C8:1D:76:EF:37:53:7A:4F:F2:58:6F:94:F3:38:E2:D5:BD:DF
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.verisign.com/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://EVSecure-crl.verisign.com/pca3-g5.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Netscape Cert Type:
+ SSL CA, S/MIME CA
+ 1.3.6.1.5.5.7.1.12:
+ 0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+ X509v3 Subject Alternative Name:
+ DirName:/CN=Class3CA2048-1-48
+ X509v3 Authority Key Identifier:
+ keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+ Authority Information Access:
+ OCSP - URI:http://EVSecure-ocsp.verisign.com
+
+ X509v3 Extended Key Usage:
+ Netscape Server Gated Crypto, 2.16.840.1.113733.1.8.1, TLS Web Server Authentication, TLS Web Client Authentication
+ Signature Algorithm: sha1WithRSAEncryption
+ 27:74:a6:34:ea:1d:9d:e1:53:d6:1c:9d:0c:a7:5b:4c:a9:67:
+ f2:f0:32:b7:01:0f:fb:42:18:38:de:e4:ee:49:c8:13:c9:0b:
+ ec:04:c3:40:71:18:72:76:43:02:23:5d:ab:7b:c8:48:14:1a:
+ c8:7b:1d:fc:f6:0a:9f:36:a1:d2:09:73:71:66:96:75:51:34:
+ bf:99:30:51:67:9d:54:b7:26:45:ac:73:08:23:86:26:99:71:
+ f4:8e:d7:ea:39:9b:06:09:23:bf:62:dd:a8:c4:b6:7d:a4:89:
+ 07:3e:f3:6d:ae:40:59:50:79:97:37:3d:32:78:7d:b2:63:4b:
+ f9:ea:08:69:0e:13:ed:e8:cf:bb:ac:05:86:ca:22:cf:88:62:
+ 5d:3c:22:49:d8:63:d5:24:a6:bd:ef:5c:e3:cc:20:3b:22:ea:
+ fc:44:c6:a8:e5:1f:e1:86:cd:0c:4d:8f:93:53:d9:7f:ee:a1:
+ 08:a7:b3:30:96:49:70:6e:a3:6c:3d:d0:63:ef:25:66:63:cc:
+ aa:b7:18:17:4e:ea:70:76:f6:ba:42:a6:80:37:09:4e:9f:66:
+ 88:2e:6b:33:66:c8:c0:71:a4:41:eb:5a:e3:fc:14:2e:4b:88:
+ fd:ae:6e:5b:65:e9:27:e4:bf:e4:b0:23:c1:b2:7d:5b:62:25:
+ d7:3e:10:d4
+-----BEGIN CERTIFICATE-----
+MIIGHjCCBQagAwIBAgIQLEjdkw31WY75PJlUemDtQzANBgkqhkiG9w0BAQUFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMTYxMTA3MjM1OTU5WjCBvjEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
+ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQg
+aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMvVmVy
+aVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0EwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9Voi6iDRkZM/NyrDu5xlzxXLZ
+u0W8taj/g74cA9vtibcuEBolvFXKQaGfC88ZXnC5XjlLnjEcX4euKqqoK6IbOxAj
+XxOx3QiMThTag4HjtYzjaO0kZ85Wtqybc5ZE24qMs9bwcZOO23FUSutzWWqPcFEs
+A5+X0cwRerxiDZUqyRx1V+n1x+q6hDXLx4VafuRN4RGXfQ4gNEXb8aIJ6+s9nriW
+Q140SwglHkMaotm3igE0PcP45a9PjP/NZfAjTsWXs1zakByChQ0GDcEitnsopAPD
+TFPRWLxyvAg5/KB2qKjpS26IPeOzMSWMcylIDjJ5Bu09Q/T25On8fb6OCNUfAgMB
+AAGjggIIMIICBDAdBgNVHQ4EFgQUTkPIHXbvN1N6T/JYb5TzOOLVvd8wEgYDVR0T
+AQH/BAgwBgEB/wIBADA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYc
+aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2NwczA9BgNVHR8ENjA0MDKgMKAuhixo
+dHRwOi8vRVZTZWN1cmUtY3JsLnZlcmlzaWduLmNvbS9wY2EzLWc1LmNybDAOBgNV
+HQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgEGMG0GCCsGAQUFBwEMBGEwX6Fd
+oFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrU
+SBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMCkG
+A1UdEQQiMCCkHjAcMRowGAYDVQQDExFDbGFzczNDQTIwNDgtMS00ODAfBgNVHSME
+GDAWgBR/02Wnwt3su/AwCfNDOfoCrzMxMzA9BggrBgEFBQcBAQQxMC8wLQYIKwYB
+BQUHMAGGIWh0dHA6Ly9FVlNlY3VyZS1vY3NwLnZlcmlzaWduLmNvbTA0BgNVHSUE
+LTArBglghkgBhvhCBAEGCmCGSAGG+EUBCAEGCCsGAQUFBwMBBggrBgEFBQcDAjAN
+BgkqhkiG9w0BAQUFAAOCAQEAJ3SmNOodneFT1hydDKdbTKln8vAytwEP+0IYON7k
+7knIE8kL7ATDQHEYcnZDAiNdq3vISBQayHsd/PYKnzah0glzcWaWdVE0v5kwUWed
+VLcmRaxzCCOGJplx9I7X6jmbBgkjv2LdqMS2faSJBz7zba5AWVB5lzc9Mnh9smNL
++eoIaQ4T7ejPu6wFhsoiz4hiXTwiSdhj1SSmve9c48wgOyLq/ETGqOUf4YbNDE2P
+k1PZf+6hCKezMJZJcG6jbD3QY+8lZmPMqrcYF07qcHb2ukKmgDcJTp9miC5rM2bI
+wHGkQeta4/wULkuI/a5uW2XpJ+S/5LAjwbJ9W2Il1z4Q1A==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert48[] = {
+ 0x30, 0x82, 0x06, 0x1e, 0x30, 0x82, 0x05, 0x06, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x2c, 0x48, 0xdd, 0x93, 0x0d, 0xf5, 0x59, 0x8e, 0xf9,
+ 0x3c, 0x99, 0x54, 0x7a, 0x60, 0xed, 0x43, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+ 0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+ 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+ 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+ 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+ 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x30, 0x38, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x31, 0x36, 0x31, 0x31, 0x30, 0x37,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xbe, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+ 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3b, 0x30,
+ 0x39, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x32, 0x54, 0x65, 0x72, 0x6d,
+ 0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x74, 0x20,
+ 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+ 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x70, 0x61, 0x20, 0x28, 0x63, 0x29, 0x30, 0x36, 0x31, 0x38,
+ 0x30, 0x36, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2f, 0x56, 0x65, 0x72,
+ 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20,
+ 0x33, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x56,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x53,
+ 0x4c, 0x20, 0x53, 0x47, 0x43, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xbd, 0x56, 0x88, 0xba, 0x88, 0x34, 0x64,
+ 0x64, 0xcf, 0xcd, 0xca, 0xb0, 0xee, 0xe7, 0x19, 0x73, 0xc5, 0x72, 0xd9,
+ 0xbb, 0x45, 0xbc, 0xb5, 0xa8, 0xff, 0x83, 0xbe, 0x1c, 0x03, 0xdb, 0xed,
+ 0x89, 0xb7, 0x2e, 0x10, 0x1a, 0x25, 0xbc, 0x55, 0xca, 0x41, 0xa1, 0x9f,
+ 0x0b, 0xcf, 0x19, 0x5e, 0x70, 0xb9, 0x5e, 0x39, 0x4b, 0x9e, 0x31, 0x1c,
+ 0x5f, 0x87, 0xae, 0x2a, 0xaa, 0xa8, 0x2b, 0xa2, 0x1b, 0x3b, 0x10, 0x23,
+ 0x5f, 0x13, 0xb1, 0xdd, 0x08, 0x8c, 0x4e, 0x14, 0xda, 0x83, 0x81, 0xe3,
+ 0xb5, 0x8c, 0xe3, 0x68, 0xed, 0x24, 0x67, 0xce, 0x56, 0xb6, 0xac, 0x9b,
+ 0x73, 0x96, 0x44, 0xdb, 0x8a, 0x8c, 0xb3, 0xd6, 0xf0, 0x71, 0x93, 0x8e,
+ 0xdb, 0x71, 0x54, 0x4a, 0xeb, 0x73, 0x59, 0x6a, 0x8f, 0x70, 0x51, 0x2c,
+ 0x03, 0x9f, 0x97, 0xd1, 0xcc, 0x11, 0x7a, 0xbc, 0x62, 0x0d, 0x95, 0x2a,
+ 0xc9, 0x1c, 0x75, 0x57, 0xe9, 0xf5, 0xc7, 0xea, 0xba, 0x84, 0x35, 0xcb,
+ 0xc7, 0x85, 0x5a, 0x7e, 0xe4, 0x4d, 0xe1, 0x11, 0x97, 0x7d, 0x0e, 0x20,
+ 0x34, 0x45, 0xdb, 0xf1, 0xa2, 0x09, 0xeb, 0xeb, 0x3d, 0x9e, 0xb8, 0x96,
+ 0x43, 0x5e, 0x34, 0x4b, 0x08, 0x25, 0x1e, 0x43, 0x1a, 0xa2, 0xd9, 0xb7,
+ 0x8a, 0x01, 0x34, 0x3d, 0xc3, 0xf8, 0xe5, 0xaf, 0x4f, 0x8c, 0xff, 0xcd,
+ 0x65, 0xf0, 0x23, 0x4e, 0xc5, 0x97, 0xb3, 0x5c, 0xda, 0x90, 0x1c, 0x82,
+ 0x85, 0x0d, 0x06, 0x0d, 0xc1, 0x22, 0xb6, 0x7b, 0x28, 0xa4, 0x03, 0xc3,
+ 0x4c, 0x53, 0xd1, 0x58, 0xbc, 0x72, 0xbc, 0x08, 0x39, 0xfc, 0xa0, 0x76,
+ 0xa8, 0xa8, 0xe9, 0x4b, 0x6e, 0x88, 0x3d, 0xe3, 0xb3, 0x31, 0x25, 0x8c,
+ 0x73, 0x29, 0x48, 0x0e, 0x32, 0x79, 0x06, 0xed, 0x3d, 0x43, 0xf4, 0xf6,
+ 0xe4, 0xe9, 0xfc, 0x7d, 0xbe, 0x8e, 0x08, 0xd5, 0x1f, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x02, 0x08, 0x30, 0x82, 0x02, 0x04, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x4e, 0x43, 0xc8,
+ 0x1d, 0x76, 0xef, 0x37, 0x53, 0x7a, 0x4f, 0xf2, 0x58, 0x6f, 0x94, 0xf3,
+ 0x38, 0xe2, 0xd5, 0xbd, 0xdf, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+ 0x00, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34,
+ 0x30, 0x32, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c,
+ 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+ 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x63, 0x70, 0x73, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
+ 0x36, 0x30, 0x34, 0x30, 0x32, 0xa0, 0x30, 0xa0, 0x2e, 0x86, 0x2c, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x45, 0x56, 0x53, 0x65, 0x63, 0x75,
+ 0x72, 0x65, 0x2d, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73,
+ 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33,
+ 0x2d, 0x67, 0x35, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55,
+ 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+ 0x11, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x01, 0x01,
+ 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f, 0xa1, 0x5d,
+ 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09, 0x69, 0x6d,
+ 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30, 0x1f, 0x30,
+ 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14, 0x8f, 0xe5,
+ 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80, 0x6a, 0xd4,
+ 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x76, 0x65,
+ 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76,
+ 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30, 0x29, 0x06,
+ 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c,
+ 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x43,
+ 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x41, 0x32, 0x30, 0x34, 0x38, 0x2d,
+ 0x31, 0x2d, 0x34, 0x38, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+ 0x18, 0x30, 0x16, 0x80, 0x14, 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec,
+ 0xbb, 0xf0, 0x30, 0x09, 0xf3, 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31,
+ 0x33, 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+ 0x01, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x45, 0x56, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2d, 0x6f,
+ 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04,
+ 0x2d, 0x30, 0x2b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42,
+ 0x04, 0x01, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01,
+ 0x08, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x27, 0x74, 0xa6, 0x34, 0xea, 0x1d,
+ 0x9d, 0xe1, 0x53, 0xd6, 0x1c, 0x9d, 0x0c, 0xa7, 0x5b, 0x4c, 0xa9, 0x67,
+ 0xf2, 0xf0, 0x32, 0xb7, 0x01, 0x0f, 0xfb, 0x42, 0x18, 0x38, 0xde, 0xe4,
+ 0xee, 0x49, 0xc8, 0x13, 0xc9, 0x0b, 0xec, 0x04, 0xc3, 0x40, 0x71, 0x18,
+ 0x72, 0x76, 0x43, 0x02, 0x23, 0x5d, 0xab, 0x7b, 0xc8, 0x48, 0x14, 0x1a,
+ 0xc8, 0x7b, 0x1d, 0xfc, 0xf6, 0x0a, 0x9f, 0x36, 0xa1, 0xd2, 0x09, 0x73,
+ 0x71, 0x66, 0x96, 0x75, 0x51, 0x34, 0xbf, 0x99, 0x30, 0x51, 0x67, 0x9d,
+ 0x54, 0xb7, 0x26, 0x45, 0xac, 0x73, 0x08, 0x23, 0x86, 0x26, 0x99, 0x71,
+ 0xf4, 0x8e, 0xd7, 0xea, 0x39, 0x9b, 0x06, 0x09, 0x23, 0xbf, 0x62, 0xdd,
+ 0xa8, 0xc4, 0xb6, 0x7d, 0xa4, 0x89, 0x07, 0x3e, 0xf3, 0x6d, 0xae, 0x40,
+ 0x59, 0x50, 0x79, 0x97, 0x37, 0x3d, 0x32, 0x78, 0x7d, 0xb2, 0x63, 0x4b,
+ 0xf9, 0xea, 0x08, 0x69, 0x0e, 0x13, 0xed, 0xe8, 0xcf, 0xbb, 0xac, 0x05,
+ 0x86, 0xca, 0x22, 0xcf, 0x88, 0x62, 0x5d, 0x3c, 0x22, 0x49, 0xd8, 0x63,
+ 0xd5, 0x24, 0xa6, 0xbd, 0xef, 0x5c, 0xe3, 0xcc, 0x20, 0x3b, 0x22, 0xea,
+ 0xfc, 0x44, 0xc6, 0xa8, 0xe5, 0x1f, 0xe1, 0x86, 0xcd, 0x0c, 0x4d, 0x8f,
+ 0x93, 0x53, 0xd9, 0x7f, 0xee, 0xa1, 0x08, 0xa7, 0xb3, 0x30, 0x96, 0x49,
+ 0x70, 0x6e, 0xa3, 0x6c, 0x3d, 0xd0, 0x63, 0xef, 0x25, 0x66, 0x63, 0xcc,
+ 0xaa, 0xb7, 0x18, 0x17, 0x4e, 0xea, 0x70, 0x76, 0xf6, 0xba, 0x42, 0xa6,
+ 0x80, 0x37, 0x09, 0x4e, 0x9f, 0x66, 0x88, 0x2e, 0x6b, 0x33, 0x66, 0xc8,
+ 0xc0, 0x71, 0xa4, 0x41, 0xeb, 0x5a, 0xe3, 0xfc, 0x14, 0x2e, 0x4b, 0x88,
+ 0xfd, 0xae, 0x6e, 0x5b, 0x65, 0xe9, 0x27, 0xe4, 0xbf, 0xe4, 0xb0, 0x23,
+ 0xc1, 0xb2, 0x7d, 0x5b, 0x62, 0x25, 0xd7, 0x3e, 0x10, 0xd4,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 64:1b:e8:20:ce:02:08:13:f3:2d:4d:2d:95:d6:7e:67
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+ Validity
+ Not Before: Feb 8 00:00:00 2010 GMT
+ Not After : Feb 7 23:59:59 2020 GMT
+ Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=Terms of use at https://www.verisign.com/rpa (c)10, CN=VeriSign Class 3 International Server CA - G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:99:d6:9c:62:f0:15:f4:81:9a:41:08:59:8f:13:
+ 9d:17:c9:9f:51:dc:da:b1:52:ef:ff:e3:41:dd:e0:
+ df:c4:28:c6:e3:ad:79:1f:27:10:98:b8:bb:20:97:
+ c1:28:44:41:0f:ea:a9:a8:52:cf:4d:4e:1b:8b:bb:
+ b5:c4:76:d9:cc:56:06:ee:b3:55:20:2a:de:15:8d:
+ 71:cb:54:c8:6f:17:cd:89:00:e4:dc:ff:e1:c0:1f:
+ 68:71:e9:c7:29:2e:7e:bc:3b:fc:e5:bb:ab:26:54:
+ 8b:66:90:cd:f6:92:b9:31:24:80:bc:9e:6c:d5:fc:
+ 7e:d2:e1:4b:8c:dc:42:fa:44:4b:5f:f8:18:b5:2e:
+ 30:f4:3d:12:98:d3:62:05:73:54:a6:9c:a2:1d:be:
+ 52:83:3a:07:46:c4:3b:02:56:21:bf:f2:51:4f:d0:
+ a6:99:39:e9:ae:a5:3f:89:9b:9c:7d:fe:4d:60:07:
+ 25:20:f7:bb:d7:69:83:2b:82:93:43:37:d9:83:41:
+ 1b:6b:0b:ab:4a:66:84:4f:4a:8e:de:7e:34:99:8e:
+ 68:d6:ca:39:06:9b:4c:b3:9a:48:4d:13:46:b4:58:
+ 21:04:c4:fb:a0:4d:ac:2e:4b:62:12:e3:fb:4d:f6:
+ c9:51:00:01:1f:fc:1e:6a:81:2a:38:e0:b9:4f:d6:
+ 2d:45
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.23.3
+ CPS: https://www.verisign.com/cps
+ User Notice:
+ Explicit Text: https://www.verisign.com/rpa
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ 1.3.6.1.5.5.7.1.12:
+ 0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication, Netscape Server Gated Crypto, 2.16.840.1.113733.1.8.1
+ Authority Information Access:
+ OCSP - URI:http://ocsp.verisign.com
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.verisign.com/pca3-g5.crl
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=VeriSignMPKI-2-7
+ X509v3 Subject Key Identifier:
+ D7:9B:7C:D8:22:A0:15:F7:DD:AD:5F:CE:29:9B:58:C3:BC:46:00:B5
+ X509v3 Authority Key Identifier:
+ keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 71:b5:7d:73:52:4a:dd:d7:4d:34:2b:2e:af:94:46:a5:49:50:
+ 02:4f:f8:2f:17:70:f2:13:dc:1f:21:86:aa:c2:4f:7c:37:3c:
+ d4:46:78:ae:5d:78:6f:d1:ba:5a:bc:10:ab:58:36:c5:8c:62:
+ 15:45:60:17:21:e2:d5:42:a8:77:a1:55:d8:43:04:51:f6:6e:
+ ba:48:e6:5d:4c:b7:44:d3:3e:a4:d5:d6:33:9a:9f:0d:e6:d7:
+ 4e:96:44:95:5a:6c:d6:a3:16:53:0e:98:43:ce:a4:b8:c3:66:
+ 7a:05:5c:62:10:e8:1b:12:db:7d:2e:76:50:ff:df:d7:6b:1b:
+ cc:8a:cc:71:fa:b3:40:56:7c:33:7a:77:94:5b:f5:0b:53:fb:
+ 0e:5f:bc:68:fb:af:2a:ee:30:37:79:16:93:25:7f:4d:10:ff:
+ 57:fb:bf:6e:3b:33:21:de:79:dc:86:17:59:2d:43:64:b7:a6:
+ 66:87:ea:bc:96:46:19:1a:86:8b:6f:d7:b7:49:00:5b:db:a3:
+ bf:29:9a:ee:f7:d3:33:ae:a3:f4:9e:4c:ca:5e:69:d4:1b:ad:
+ b7:90:77:6a:d8:59:6f:79:ab:01:fa:55:f0:8a:21:66:e5:65:
+ 6e:fd:7c:d3:df:1e:eb:7e:3f:06:90:fb:19:0b:d3:06:02:1b:
+ 78:43:99:a8
+-----BEGIN CERTIFICATE-----
+MIIGKTCCBRGgAwIBAgIQZBvoIM4CCBPzLU0tldZ+ZzANBgkqhkiG9w0BAQUFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMTAwMjA4MDAwMDAwWhcNMjAwMjA3MjM1OTU5WjCBvDEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
+ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQg
+aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykxMDE2MDQGA1UEAxMtVmVy
+aVNpZ24gQ2xhc3MgMyBJbnRlcm5hdGlvbmFsIFNlcnZlciBDQSAtIEczMIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmdacYvAV9IGaQQhZjxOdF8mfUdza
+sVLv/+NB3eDfxCjG4615HycQmLi7IJfBKERBD+qpqFLPTU4bi7u1xHbZzFYG7rNV
+ICreFY1xy1TIbxfNiQDk3P/hwB9ocenHKS5+vDv85burJlSLZpDN9pK5MSSAvJ5s
+1fx+0uFLjNxC+kRLX/gYtS4w9D0SmNNiBXNUppyiHb5SgzoHRsQ7AlYhv/JRT9Cm
+mTnprqU/iZucff5NYAclIPe712mDK4KTQzfZg0EbawurSmaET0qO3n40mY5o1so5
+BptMs5pITRNGtFghBMT7oE2sLktiEuP7TfbJUQABH/weaoEqOOC5T9YtRQIDAQAB
+o4ICFTCCAhEwEgYDVR0TAQH/BAgwBgEB/wIBADBwBgNVHSAEaTBnMGUGC2CGSAGG
++EUBBxcDMFYwKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9j
+cHMwKgYIKwYBBQUHAgIwHhocaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYTAO
+BgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
+Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDov
+L2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwNAYDVR0lBC0wKwYIKwYBBQUH
+AwEGCCsGAQUFBwMCBglghkgBhvhCBAEGCmCGSAGG+EUBCAEwNAYIKwYBBQUHAQEE
+KDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC52ZXJpc2lnbi5jb20wNAYDVR0f
+BC0wKzApoCegJYYjaHR0cDovL2NybC52ZXJpc2lnbi5jb20vcGNhMy1nNS5jcmww
+KAYDVR0RBCEwH6QdMBsxGTAXBgNVBAMTEFZlcmlTaWduTVBLSS0yLTcwHQYDVR0O
+BBYEFNebfNgioBX33a1fzimbWMO8RgC1MB8GA1UdIwQYMBaAFH/TZafC3ey78DAJ
+80M5+gKvMzEzMA0GCSqGSIb3DQEBBQUAA4IBAQBxtX1zUkrd1000Ky6vlEalSVAC
+T/gvF3DyE9wfIYaqwk98NzzURniuXXhv0bpavBCrWDbFjGIVRWAXIeLVQqh3oVXY
+QwRR9m66SOZdTLdE0z6k1dYzmp8N5tdOlkSVWmzWoxZTDphDzqS4w2Z6BVxiEOgb
+Ett9LnZQ/9/XaxvMisxx+rNAVnwzeneUW/ULU/sOX7xo+68q7jA3eRaTJX9NEP9X
++79uOzMh3nnchhdZLUNkt6Zmh+q8lkYZGoaLb9e3SQBb26O/KZru99MzrqP0nkzK
+XmnUG623kHdq2FlveasB+lXwiiFm5WVu/XzT3x7rfj8GkPsZC9MGAht4Q5mo
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert49[] = {
+ 0x30, 0x82, 0x06, 0x29, 0x30, 0x82, 0x05, 0x11, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x64, 0x1b, 0xe8, 0x20, 0xce, 0x02, 0x08, 0x13, 0xf3,
+ 0x2d, 0x4d, 0x2d, 0x95, 0xd6, 0x7e, 0x67, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+ 0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+ 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+ 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+ 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+ 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x32, 0x30, 0x38, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30, 0x30, 0x32, 0x30, 0x37,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xbc, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+ 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3b, 0x30,
+ 0x39, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x32, 0x54, 0x65, 0x72, 0x6d,
+ 0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x74, 0x20,
+ 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+ 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x70, 0x61, 0x20, 0x28, 0x63, 0x29, 0x31, 0x30, 0x31, 0x36,
+ 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d, 0x56, 0x65, 0x72,
+ 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20,
+ 0x33, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43,
+ 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+ 0x01, 0x01, 0x00, 0x99, 0xd6, 0x9c, 0x62, 0xf0, 0x15, 0xf4, 0x81, 0x9a,
+ 0x41, 0x08, 0x59, 0x8f, 0x13, 0x9d, 0x17, 0xc9, 0x9f, 0x51, 0xdc, 0xda,
+ 0xb1, 0x52, 0xef, 0xff, 0xe3, 0x41, 0xdd, 0xe0, 0xdf, 0xc4, 0x28, 0xc6,
+ 0xe3, 0xad, 0x79, 0x1f, 0x27, 0x10, 0x98, 0xb8, 0xbb, 0x20, 0x97, 0xc1,
+ 0x28, 0x44, 0x41, 0x0f, 0xea, 0xa9, 0xa8, 0x52, 0xcf, 0x4d, 0x4e, 0x1b,
+ 0x8b, 0xbb, 0xb5, 0xc4, 0x76, 0xd9, 0xcc, 0x56, 0x06, 0xee, 0xb3, 0x55,
+ 0x20, 0x2a, 0xde, 0x15, 0x8d, 0x71, 0xcb, 0x54, 0xc8, 0x6f, 0x17, 0xcd,
+ 0x89, 0x00, 0xe4, 0xdc, 0xff, 0xe1, 0xc0, 0x1f, 0x68, 0x71, 0xe9, 0xc7,
+ 0x29, 0x2e, 0x7e, 0xbc, 0x3b, 0xfc, 0xe5, 0xbb, 0xab, 0x26, 0x54, 0x8b,
+ 0x66, 0x90, 0xcd, 0xf6, 0x92, 0xb9, 0x31, 0x24, 0x80, 0xbc, 0x9e, 0x6c,
+ 0xd5, 0xfc, 0x7e, 0xd2, 0xe1, 0x4b, 0x8c, 0xdc, 0x42, 0xfa, 0x44, 0x4b,
+ 0x5f, 0xf8, 0x18, 0xb5, 0x2e, 0x30, 0xf4, 0x3d, 0x12, 0x98, 0xd3, 0x62,
+ 0x05, 0x73, 0x54, 0xa6, 0x9c, 0xa2, 0x1d, 0xbe, 0x52, 0x83, 0x3a, 0x07,
+ 0x46, 0xc4, 0x3b, 0x02, 0x56, 0x21, 0xbf, 0xf2, 0x51, 0x4f, 0xd0, 0xa6,
+ 0x99, 0x39, 0xe9, 0xae, 0xa5, 0x3f, 0x89, 0x9b, 0x9c, 0x7d, 0xfe, 0x4d,
+ 0x60, 0x07, 0x25, 0x20, 0xf7, 0xbb, 0xd7, 0x69, 0x83, 0x2b, 0x82, 0x93,
+ 0x43, 0x37, 0xd9, 0x83, 0x41, 0x1b, 0x6b, 0x0b, 0xab, 0x4a, 0x66, 0x84,
+ 0x4f, 0x4a, 0x8e, 0xde, 0x7e, 0x34, 0x99, 0x8e, 0x68, 0xd6, 0xca, 0x39,
+ 0x06, 0x9b, 0x4c, 0xb3, 0x9a, 0x48, 0x4d, 0x13, 0x46, 0xb4, 0x58, 0x21,
+ 0x04, 0xc4, 0xfb, 0xa0, 0x4d, 0xac, 0x2e, 0x4b, 0x62, 0x12, 0xe3, 0xfb,
+ 0x4d, 0xf6, 0xc9, 0x51, 0x00, 0x01, 0x1f, 0xfc, 0x1e, 0x6a, 0x81, 0x2a,
+ 0x38, 0xe0, 0xb9, 0x4f, 0xd6, 0x2d, 0x45, 0x02, 0x03, 0x01, 0x00, 0x01,
+ 0xa3, 0x82, 0x02, 0x15, 0x30, 0x82, 0x02, 0x11, 0x30, 0x12, 0x06, 0x03,
+ 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+ 0xff, 0x02, 0x01, 0x00, 0x30, 0x70, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+ 0x69, 0x30, 0x67, 0x30, 0x65, 0x06, 0x0b, 0x60, 0x86, 0x48, 0x01, 0x86,
+ 0xf8, 0x45, 0x01, 0x07, 0x17, 0x03, 0x30, 0x56, 0x30, 0x28, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74,
+ 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65,
+ 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63,
+ 0x70, 0x73, 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x02, 0x02, 0x30, 0x1e, 0x1a, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a,
+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69,
+ 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x70, 0x61, 0x30, 0x0e,
+ 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
+ 0x01, 0x06, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f, 0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59,
+ 0x30, 0x57, 0x30, 0x55, 0x16, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
+ 0x67, 0x69, 0x66, 0x30, 0x21, 0x30, 0x1f, 0x30, 0x07, 0x06, 0x05, 0x2b,
+ 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14, 0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac,
+ 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80, 0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b,
+ 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69,
+ 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67,
+ 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x25,
+ 0x04, 0x2d, 0x30, 0x2b, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02,
+ 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x04, 0x01, 0x06,
+ 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x08, 0x01, 0x30,
+ 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67,
+ 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x2d, 0x30, 0x2b, 0x30, 0x29, 0xa0, 0x27, 0xa0, 0x25, 0x86, 0x23,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76,
+ 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+ 0x28, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x21, 0x30, 0x1f, 0xa4, 0x1d,
+ 0x30, 0x1b, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x10, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b,
+ 0x49, 0x2d, 0x32, 0x2d, 0x37, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
+ 0x04, 0x16, 0x04, 0x14, 0xd7, 0x9b, 0x7c, 0xd8, 0x22, 0xa0, 0x15, 0xf7,
+ 0xdd, 0xad, 0x5f, 0xce, 0x29, 0x9b, 0x58, 0xc3, 0xbc, 0x46, 0x00, 0xb5,
+ 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
+ 0x14, 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09,
+ 0xf3, 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x01, 0x00, 0x71, 0xb5, 0x7d, 0x73, 0x52, 0x4a, 0xdd,
+ 0xd7, 0x4d, 0x34, 0x2b, 0x2e, 0xaf, 0x94, 0x46, 0xa5, 0x49, 0x50, 0x02,
+ 0x4f, 0xf8, 0x2f, 0x17, 0x70, 0xf2, 0x13, 0xdc, 0x1f, 0x21, 0x86, 0xaa,
+ 0xc2, 0x4f, 0x7c, 0x37, 0x3c, 0xd4, 0x46, 0x78, 0xae, 0x5d, 0x78, 0x6f,
+ 0xd1, 0xba, 0x5a, 0xbc, 0x10, 0xab, 0x58, 0x36, 0xc5, 0x8c, 0x62, 0x15,
+ 0x45, 0x60, 0x17, 0x21, 0xe2, 0xd5, 0x42, 0xa8, 0x77, 0xa1, 0x55, 0xd8,
+ 0x43, 0x04, 0x51, 0xf6, 0x6e, 0xba, 0x48, 0xe6, 0x5d, 0x4c, 0xb7, 0x44,
+ 0xd3, 0x3e, 0xa4, 0xd5, 0xd6, 0x33, 0x9a, 0x9f, 0x0d, 0xe6, 0xd7, 0x4e,
+ 0x96, 0x44, 0x95, 0x5a, 0x6c, 0xd6, 0xa3, 0x16, 0x53, 0x0e, 0x98, 0x43,
+ 0xce, 0xa4, 0xb8, 0xc3, 0x66, 0x7a, 0x05, 0x5c, 0x62, 0x10, 0xe8, 0x1b,
+ 0x12, 0xdb, 0x7d, 0x2e, 0x76, 0x50, 0xff, 0xdf, 0xd7, 0x6b, 0x1b, 0xcc,
+ 0x8a, 0xcc, 0x71, 0xfa, 0xb3, 0x40, 0x56, 0x7c, 0x33, 0x7a, 0x77, 0x94,
+ 0x5b, 0xf5, 0x0b, 0x53, 0xfb, 0x0e, 0x5f, 0xbc, 0x68, 0xfb, 0xaf, 0x2a,
+ 0xee, 0x30, 0x37, 0x79, 0x16, 0x93, 0x25, 0x7f, 0x4d, 0x10, 0xff, 0x57,
+ 0xfb, 0xbf, 0x6e, 0x3b, 0x33, 0x21, 0xde, 0x79, 0xdc, 0x86, 0x17, 0x59,
+ 0x2d, 0x43, 0x64, 0xb7, 0xa6, 0x66, 0x87, 0xea, 0xbc, 0x96, 0x46, 0x19,
+ 0x1a, 0x86, 0x8b, 0x6f, 0xd7, 0xb7, 0x49, 0x00, 0x5b, 0xdb, 0xa3, 0xbf,
+ 0x29, 0x9a, 0xee, 0xf7, 0xd3, 0x33, 0xae, 0xa3, 0xf4, 0x9e, 0x4c, 0xca,
+ 0x5e, 0x69, 0xd4, 0x1b, 0xad, 0xb7, 0x90, 0x77, 0x6a, 0xd8, 0x59, 0x6f,
+ 0x79, 0xab, 0x01, 0xfa, 0x55, 0xf0, 0x8a, 0x21, 0x66, 0xe5, 0x65, 0x6e,
+ 0xfd, 0x7c, 0xd3, 0xdf, 0x1e, 0xeb, 0x7e, 0x3f, 0x06, 0x90, 0xfb, 0x19,
+ 0x0b, 0xd3, 0x06, 0x02, 0x1b, 0x78, 0x43, 0x99, 0xa8,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 26 (0x1a)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
+ Validity
+ Not Before: Oct 24 20:57:09 2007 GMT
+ Not After : Oct 24 20:57:09 2017 GMT
+ Subject: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Class 2 Primary Intermediate Server CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:e2:4f:39:2f:a1:8c:9a:85:ad:08:0e:08:3e:57:
+ f2:88:01:21:1b:94:a9:6c:e2:b8:db:aa:19:18:46:
+ 3a:52:a1:f5:0f:f4:6e:8c:ea:96:8c:96:87:79:13:
+ 40:51:2f:22:f2:0c:8b:87:0f:65:df:71:74:34:43:
+ 55:b1:35:09:9b:d9:bc:1f:fa:eb:42:d0:97:40:72:
+ b7:43:96:3d:ba:96:9d:5d:50:02:1c:9b:91:8d:9c:
+ c0:ac:d7:bb:2f:17:d7:cb:3e:82:9d:73:eb:07:42:
+ 92:b2:cd:64:b3:74:55:1b:b4:4b:86:21:2c:f7:78:
+ 87:32:e0:16:e4:da:bd:4c:95:ea:a4:0a:7e:b6:0a:
+ 0d:2e:8a:cf:55:ab:c3:e5:dd:41:8a:4e:e6:6f:65:
+ 6c:b2:40:cf:17:5d:b9:c3:6a:0b:27:11:84:77:61:
+ f6:c2:7c:ed:c0:8d:78:14:18:99:81:99:75:63:b7:
+ e8:53:d3:ba:61:e9:0e:fa:a2:30:f3:46:a2:b9:c9:
+ 1f:6c:80:5a:40:ac:27:ed:48:47:33:b0:54:c6:46:
+ 1a:f3:35:61:c1:02:29:90:54:7e:64:4d:c4:30:52:
+ 02:82:d7:df:ce:21:6e:18:91:d7:b8:ab:8c:27:17:
+ b5:f0:a3:01:2f:8e:d2:2e:87:3a:3d:b4:29:67:8a:
+ c4:03
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 11:DB:23:45:FD:54:CC:6A:71:6F:84:8A:03:D7:BE:F7:01:2F:26:86
+ X509v3 Authority Key Identifier:
+ keyid:4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.startssl.com/ca
+ CA Issuers - URI:http://www.startssl.com/sfsca.crt
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://www.startssl.com/sfsca.crl
+
+ Full Name:
+ URI:http://crl.startssl.com/sfsca.crl
+
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.23223.1.2.1
+ CPS: http://www.startssl.com/policy.pdf
+ CPS: http://www.startssl.com/intermediate.pdf
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 9d:07:e1:ee:90:76:31:67:16:45:70:8c:cb:84:8b:4b:57:68:
+ 44:a5:89:c1:f2:7e:cb:28:8b:f5:e7:70:77:d5:b6:f4:0b:21:
+ 60:a5:a1:74:73:24:22:80:d6:d8:ba:8d:a2:62:5d:09:35:42:
+ 29:fb:39:63:45:0b:a4:b0:38:1a:68:f4:95:13:cc:e0:43:94:
+ ec:eb:39:1a:ec:57:29:d9:99:6d:f5:84:cd:8e:73:ae:c9:dc:
+ 6a:fa:9e:9d:16:64:93:08:c7:1c:c2:89:54:9e:77:80:90:f6:
+ b9:29:76:eb:13:67:48:59:f8:2e:3a:31:b8:c9:d3:88:e5:5f:
+ 4e:d2:19:3d:43:8e:d7:92:ff:cf:38:b6:e1:5b:8a:53:1d:ce:
+ ac:b4:76:2f:d8:f7:40:63:d5:ee:69:f3:45:7d:a0:62:c1:61:
+ c3:75:ed:b2:7b:4d:ac:21:27:30:4e:59:46:6a:93:17:ca:c8:
+ 39:2d:01:73:65:5b:e9:41:9b:11:17:9c:c8:c8:4a:ef:a1:76:
+ 60:2d:ae:93:ff:0c:d5:33:13:9f:4f:13:ce:dd:86:f1:fc:f8:
+ 35:54:15:a8:5b:e7:85:7e:fa:37:09:ff:8b:b8:31:49:9e:0d:
+ 6e:de:b4:d2:12:2d:b8:ed:c8:c3:f1:b6:42:a0:4c:97:79:df:
+ fe:c3:a3:9f:a1:f4:6d:2c:84:77:a4:a2:05:e1:17:ff:31:dd:
+ 9a:f3:b8:7a:c3:52:c2:11:11:b7:50:31:8a:7f:cc:e7:5a:89:
+ cc:f7:86:9a:61:92:4f:2f:94:b6:98:c7:78:e0:62:4b:43:7d:
+ 3c:de:d6:9a:b4:10:a1:40:9c:4b:2a:dc:b8:d0:d4:9e:fd:f1:
+ 84:78:1b:0e:57:8f:69:54:42:68:7b:ea:a0:ef:75:0f:07:a2:
+ 8c:73:99:ab:55:f5:07:09:d2:af:38:03:6a:90:03:0c:2f:8f:
+ e2:e8:43:c2:31:e9:6f:ad:87:e5:8d:bd:4e:2c:89:4b:51:e6:
+ 9c:4c:54:76:c0:12:81:53:9b:ec:a0:fc:2c:9c:da:18:95:6e:
+ 1e:38:26:42:27:78:60:08:df:7f:6d:32:e8:d8:c0:6f:1f:eb:
+ 26:75:9f:93:fc:7b:1b:fe:35:90:dc:53:a3:07:a6:3f:83:55:
+ 0a:2b:4e:62:82:25:ce:66:30:5d:2c:e0:f9:19:1b:75:b9:9d:
+ 98:56:a6:83:27:7a:d1:8f:8d:59:93:fc:3f:73:d7:2e:b4:2c:
+ 95:d8:8b:f7:c9:7e:c7:fc:9d:ac:72:04:1f:d2:cc:17:f4:ed:
+ 34:60:9b:9e:4a:97:04:fe:dd:72:0e:57:54:51:06:70:4d:ef:
+ aa:1c:a4:82:e0:33:c7:f4
+-----BEGIN CERTIFICATE-----
+MIIGNDCCBBygAwIBAgIBGjANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
+MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
+Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwHhcNMDcxMDI0MjA1NzA5WhcNMTcxMDI0MjA1NzA5WjCB
+jDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsT
+IlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0
+YXJ0Q29tIENsYXNzIDIgUHJpbWFyeSBJbnRlcm1lZGlhdGUgU2VydmVyIENBMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4k85L6GMmoWtCA4IPlfyiAEh
+G5SpbOK426oZGEY6UqH1D/RujOqWjJaHeRNAUS8i8gyLhw9l33F0NENVsTUJm9m8
+H/rrQtCXQHK3Q5Y9upadXVACHJuRjZzArNe7LxfXyz6CnXPrB0KSss1ks3RVG7RL
+hiEs93iHMuAW5Nq9TJXqpAp+tgoNLorPVavD5d1Bik7mb2VsskDPF125w2oLJxGE
+d2H2wnztwI14FBiZgZl1Y7foU9O6YekO+qIw80aiuckfbIBaQKwn7UhHM7BUxkYa
+8zVhwQIpkFR+ZE3EMFICgtffziFuGJHXuKuMJxe18KMBL47SLoc6PbQpZ4rEAwID
+AQABo4IBrTCCAakwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFBHbI0X9VMxqcW+EigPXvvcBLyaGMB8GA1UdIwQYMBaAFE4L7xqkQFul
+F2mHMMo0aEPQQa7yMGYGCCsGAQUFBwEBBFowWDAnBggrBgEFBQcwAYYbaHR0cDov
+L29jc3Auc3RhcnRzc2wuY29tL2NhMC0GCCsGAQUFBzAChiFodHRwOi8vd3d3LnN0
+YXJ0c3NsLmNvbS9zZnNjYS5jcnQwWwYDVR0fBFQwUjAnoCWgI4YhaHR0cDovL3d3
+dy5zdGFydHNzbC5jb20vc2ZzY2EuY3JsMCegJaAjhiFodHRwOi8vY3JsLnN0YXJ0
+c3NsLmNvbS9zZnNjYS5jcmwwgYAGA1UdIAR5MHcwdQYLKwYBBAGBtTcBAgEwZjAu
+BggrBgEFBQcCARYiaHR0cDovL3d3dy5zdGFydHNzbC5jb20vcG9saWN5LnBkZjA0
+BggrBgEFBQcCARYoaHR0cDovL3d3dy5zdGFydHNzbC5jb20vaW50ZXJtZWRpYXRl
+LnBkZjANBgkqhkiG9w0BAQUFAAOCAgEAnQfh7pB2MWcWRXCMy4SLS1doRKWJwfJ+
+yyiL9edwd9W29AshYKWhdHMkIoDW2LqNomJdCTVCKfs5Y0ULpLA4Gmj0lRPM4EOU
+7Os5GuxXKdmZbfWEzY5zrsncavqenRZkkwjHHMKJVJ53gJD2uSl26xNnSFn4Ljox
+uMnTiOVfTtIZPUOO15L/zzi24VuKUx3OrLR2L9j3QGPV7mnzRX2gYsFhw3XtsntN
+rCEnME5ZRmqTF8rIOS0Bc2Vb6UGbERecyMhK76F2YC2uk/8M1TMTn08Tzt2G8fz4
+NVQVqFvnhX76Nwn/i7gxSZ4Nbt600hItuO3Iw/G2QqBMl3nf/sOjn6H0bSyEd6Si
+BeEX/zHdmvO4esNSwhERt1Axin/M51qJzPeGmmGSTy+UtpjHeOBiS0N9PN7WmrQQ
+oUCcSyrcuNDUnv3xhHgbDlePaVRCaHvqoO91DweijHOZq1X1BwnSrzgDapADDC+P
+4uhDwjHpb62H5Y29TiyJS1HmnExUdsASgVOb7KD8LJzaGJVuHjgmQid4YAjff20y
+6NjAbx/rJnWfk/x7G/41kNxTowemP4NVCitOYoIlzmYwXSzg+RkbdbmdmFamgyd6
+0Y+NWZP8P3PXLrQsldiL98l+x/ydrHIEH9LMF/TtNGCbnkqXBP7dcg5XVFEGcE3v
+qhykguAzx/Q=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert50[] = {
+ 0x30, 0x82, 0x06, 0x34, 0x30, 0x82, 0x04, 0x1c, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x01, 0x1a, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x7d, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x4c, 0x31, 0x16,
+ 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x53, 0x74, 0x61,
+ 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x4c, 0x74, 0x64, 0x2e, 0x31, 0x2b,
+ 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x22, 0x53, 0x65, 0x63,
+ 0x75, 0x72, 0x65, 0x20, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20,
+ 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x31, 0x29, 0x30, 0x27, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43,
+ 0x6f, 0x6d, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x37, 0x31, 0x30, 0x32, 0x34,
+ 0x32, 0x30, 0x35, 0x37, 0x30, 0x39, 0x5a, 0x17, 0x0d, 0x31, 0x37, 0x31,
+ 0x30, 0x32, 0x34, 0x32, 0x30, 0x35, 0x37, 0x30, 0x39, 0x5a, 0x30, 0x81,
+ 0x8c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x4c, 0x74,
+ 0x64, 0x2e, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x22, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69, 0x67, 0x69,
+ 0x74, 0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x31,
+ 0x38, 0x30, 0x36, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2f, 0x53, 0x74,
+ 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73,
+ 0x20, 0x32, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x49,
+ 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x20,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01,
+ 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+ 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe2, 0x4f, 0x39, 0x2f, 0xa1, 0x8c,
+ 0x9a, 0x85, 0xad, 0x08, 0x0e, 0x08, 0x3e, 0x57, 0xf2, 0x88, 0x01, 0x21,
+ 0x1b, 0x94, 0xa9, 0x6c, 0xe2, 0xb8, 0xdb, 0xaa, 0x19, 0x18, 0x46, 0x3a,
+ 0x52, 0xa1, 0xf5, 0x0f, 0xf4, 0x6e, 0x8c, 0xea, 0x96, 0x8c, 0x96, 0x87,
+ 0x79, 0x13, 0x40, 0x51, 0x2f, 0x22, 0xf2, 0x0c, 0x8b, 0x87, 0x0f, 0x65,
+ 0xdf, 0x71, 0x74, 0x34, 0x43, 0x55, 0xb1, 0x35, 0x09, 0x9b, 0xd9, 0xbc,
+ 0x1f, 0xfa, 0xeb, 0x42, 0xd0, 0x97, 0x40, 0x72, 0xb7, 0x43, 0x96, 0x3d,
+ 0xba, 0x96, 0x9d, 0x5d, 0x50, 0x02, 0x1c, 0x9b, 0x91, 0x8d, 0x9c, 0xc0,
+ 0xac, 0xd7, 0xbb, 0x2f, 0x17, 0xd7, 0xcb, 0x3e, 0x82, 0x9d, 0x73, 0xeb,
+ 0x07, 0x42, 0x92, 0xb2, 0xcd, 0x64, 0xb3, 0x74, 0x55, 0x1b, 0xb4, 0x4b,
+ 0x86, 0x21, 0x2c, 0xf7, 0x78, 0x87, 0x32, 0xe0, 0x16, 0xe4, 0xda, 0xbd,
+ 0x4c, 0x95, 0xea, 0xa4, 0x0a, 0x7e, 0xb6, 0x0a, 0x0d, 0x2e, 0x8a, 0xcf,
+ 0x55, 0xab, 0xc3, 0xe5, 0xdd, 0x41, 0x8a, 0x4e, 0xe6, 0x6f, 0x65, 0x6c,
+ 0xb2, 0x40, 0xcf, 0x17, 0x5d, 0xb9, 0xc3, 0x6a, 0x0b, 0x27, 0x11, 0x84,
+ 0x77, 0x61, 0xf6, 0xc2, 0x7c, 0xed, 0xc0, 0x8d, 0x78, 0x14, 0x18, 0x99,
+ 0x81, 0x99, 0x75, 0x63, 0xb7, 0xe8, 0x53, 0xd3, 0xba, 0x61, 0xe9, 0x0e,
+ 0xfa, 0xa2, 0x30, 0xf3, 0x46, 0xa2, 0xb9, 0xc9, 0x1f, 0x6c, 0x80, 0x5a,
+ 0x40, 0xac, 0x27, 0xed, 0x48, 0x47, 0x33, 0xb0, 0x54, 0xc6, 0x46, 0x1a,
+ 0xf3, 0x35, 0x61, 0xc1, 0x02, 0x29, 0x90, 0x54, 0x7e, 0x64, 0x4d, 0xc4,
+ 0x30, 0x52, 0x02, 0x82, 0xd7, 0xdf, 0xce, 0x21, 0x6e, 0x18, 0x91, 0xd7,
+ 0xb8, 0xab, 0x8c, 0x27, 0x17, 0xb5, 0xf0, 0xa3, 0x01, 0x2f, 0x8e, 0xd2,
+ 0x2e, 0x87, 0x3a, 0x3d, 0xb4, 0x29, 0x67, 0x8a, 0xc4, 0x03, 0x02, 0x03,
+ 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xad, 0x30, 0x82, 0x01, 0xa9, 0x30,
+ 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30,
+ 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+ 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03,
+ 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x11, 0xdb, 0x23, 0x45, 0xfd,
+ 0x54, 0xcc, 0x6a, 0x71, 0x6f, 0x84, 0x8a, 0x03, 0xd7, 0xbe, 0xf7, 0x01,
+ 0x2f, 0x26, 0x86, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
+ 0x30, 0x16, 0x80, 0x14, 0x4e, 0x0b, 0xef, 0x1a, 0xa4, 0x40, 0x5b, 0xa5,
+ 0x17, 0x69, 0x87, 0x30, 0xca, 0x34, 0x68, 0x43, 0xd0, 0x41, 0xae, 0xf2,
+ 0x30, 0x66, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+ 0x04, 0x5a, 0x30, 0x58, 0x30, 0x27, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x30, 0x01, 0x86, 0x1b, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73,
+ 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x30, 0x2d, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x21, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x74,
+ 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73,
+ 0x66, 0x73, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x5b, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x54, 0x30, 0x52, 0x30, 0x27, 0xa0, 0x25, 0xa0,
+ 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+ 0x77, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x73, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c,
+ 0x30, 0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74,
+ 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x73, 0x63,
+ 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x81, 0x80, 0x06, 0x03, 0x55, 0x1d,
+ 0x20, 0x04, 0x79, 0x30, 0x77, 0x30, 0x75, 0x06, 0x0b, 0x2b, 0x06, 0x01,
+ 0x04, 0x01, 0x81, 0xb5, 0x37, 0x01, 0x02, 0x01, 0x30, 0x66, 0x30, 0x2e,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x22,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73,
+ 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x64, 0x66, 0x30, 0x34,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x28,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73,
+ 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65,
+ 0x2e, 0x70, 0x64, 0x66, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00,
+ 0x9d, 0x07, 0xe1, 0xee, 0x90, 0x76, 0x31, 0x67, 0x16, 0x45, 0x70, 0x8c,
+ 0xcb, 0x84, 0x8b, 0x4b, 0x57, 0x68, 0x44, 0xa5, 0x89, 0xc1, 0xf2, 0x7e,
+ 0xcb, 0x28, 0x8b, 0xf5, 0xe7, 0x70, 0x77, 0xd5, 0xb6, 0xf4, 0x0b, 0x21,
+ 0x60, 0xa5, 0xa1, 0x74, 0x73, 0x24, 0x22, 0x80, 0xd6, 0xd8, 0xba, 0x8d,
+ 0xa2, 0x62, 0x5d, 0x09, 0x35, 0x42, 0x29, 0xfb, 0x39, 0x63, 0x45, 0x0b,
+ 0xa4, 0xb0, 0x38, 0x1a, 0x68, 0xf4, 0x95, 0x13, 0xcc, 0xe0, 0x43, 0x94,
+ 0xec, 0xeb, 0x39, 0x1a, 0xec, 0x57, 0x29, 0xd9, 0x99, 0x6d, 0xf5, 0x84,
+ 0xcd, 0x8e, 0x73, 0xae, 0xc9, 0xdc, 0x6a, 0xfa, 0x9e, 0x9d, 0x16, 0x64,
+ 0x93, 0x08, 0xc7, 0x1c, 0xc2, 0x89, 0x54, 0x9e, 0x77, 0x80, 0x90, 0xf6,
+ 0xb9, 0x29, 0x76, 0xeb, 0x13, 0x67, 0x48, 0x59, 0xf8, 0x2e, 0x3a, 0x31,
+ 0xb8, 0xc9, 0xd3, 0x88, 0xe5, 0x5f, 0x4e, 0xd2, 0x19, 0x3d, 0x43, 0x8e,
+ 0xd7, 0x92, 0xff, 0xcf, 0x38, 0xb6, 0xe1, 0x5b, 0x8a, 0x53, 0x1d, 0xce,
+ 0xac, 0xb4, 0x76, 0x2f, 0xd8, 0xf7, 0x40, 0x63, 0xd5, 0xee, 0x69, 0xf3,
+ 0x45, 0x7d, 0xa0, 0x62, 0xc1, 0x61, 0xc3, 0x75, 0xed, 0xb2, 0x7b, 0x4d,
+ 0xac, 0x21, 0x27, 0x30, 0x4e, 0x59, 0x46, 0x6a, 0x93, 0x17, 0xca, 0xc8,
+ 0x39, 0x2d, 0x01, 0x73, 0x65, 0x5b, 0xe9, 0x41, 0x9b, 0x11, 0x17, 0x9c,
+ 0xc8, 0xc8, 0x4a, 0xef, 0xa1, 0x76, 0x60, 0x2d, 0xae, 0x93, 0xff, 0x0c,
+ 0xd5, 0x33, 0x13, 0x9f, 0x4f, 0x13, 0xce, 0xdd, 0x86, 0xf1, 0xfc, 0xf8,
+ 0x35, 0x54, 0x15, 0xa8, 0x5b, 0xe7, 0x85, 0x7e, 0xfa, 0x37, 0x09, 0xff,
+ 0x8b, 0xb8, 0x31, 0x49, 0x9e, 0x0d, 0x6e, 0xde, 0xb4, 0xd2, 0x12, 0x2d,
+ 0xb8, 0xed, 0xc8, 0xc3, 0xf1, 0xb6, 0x42, 0xa0, 0x4c, 0x97, 0x79, 0xdf,
+ 0xfe, 0xc3, 0xa3, 0x9f, 0xa1, 0xf4, 0x6d, 0x2c, 0x84, 0x77, 0xa4, 0xa2,
+ 0x05, 0xe1, 0x17, 0xff, 0x31, 0xdd, 0x9a, 0xf3, 0xb8, 0x7a, 0xc3, 0x52,
+ 0xc2, 0x11, 0x11, 0xb7, 0x50, 0x31, 0x8a, 0x7f, 0xcc, 0xe7, 0x5a, 0x89,
+ 0xcc, 0xf7, 0x86, 0x9a, 0x61, 0x92, 0x4f, 0x2f, 0x94, 0xb6, 0x98, 0xc7,
+ 0x78, 0xe0, 0x62, 0x4b, 0x43, 0x7d, 0x3c, 0xde, 0xd6, 0x9a, 0xb4, 0x10,
+ 0xa1, 0x40, 0x9c, 0x4b, 0x2a, 0xdc, 0xb8, 0xd0, 0xd4, 0x9e, 0xfd, 0xf1,
+ 0x84, 0x78, 0x1b, 0x0e, 0x57, 0x8f, 0x69, 0x54, 0x42, 0x68, 0x7b, 0xea,
+ 0xa0, 0xef, 0x75, 0x0f, 0x07, 0xa2, 0x8c, 0x73, 0x99, 0xab, 0x55, 0xf5,
+ 0x07, 0x09, 0xd2, 0xaf, 0x38, 0x03, 0x6a, 0x90, 0x03, 0x0c, 0x2f, 0x8f,
+ 0xe2, 0xe8, 0x43, 0xc2, 0x31, 0xe9, 0x6f, 0xad, 0x87, 0xe5, 0x8d, 0xbd,
+ 0x4e, 0x2c, 0x89, 0x4b, 0x51, 0xe6, 0x9c, 0x4c, 0x54, 0x76, 0xc0, 0x12,
+ 0x81, 0x53, 0x9b, 0xec, 0xa0, 0xfc, 0x2c, 0x9c, 0xda, 0x18, 0x95, 0x6e,
+ 0x1e, 0x38, 0x26, 0x42, 0x27, 0x78, 0x60, 0x08, 0xdf, 0x7f, 0x6d, 0x32,
+ 0xe8, 0xd8, 0xc0, 0x6f, 0x1f, 0xeb, 0x26, 0x75, 0x9f, 0x93, 0xfc, 0x7b,
+ 0x1b, 0xfe, 0x35, 0x90, 0xdc, 0x53, 0xa3, 0x07, 0xa6, 0x3f, 0x83, 0x55,
+ 0x0a, 0x2b, 0x4e, 0x62, 0x82, 0x25, 0xce, 0x66, 0x30, 0x5d, 0x2c, 0xe0,
+ 0xf9, 0x19, 0x1b, 0x75, 0xb9, 0x9d, 0x98, 0x56, 0xa6, 0x83, 0x27, 0x7a,
+ 0xd1, 0x8f, 0x8d, 0x59, 0x93, 0xfc, 0x3f, 0x73, 0xd7, 0x2e, 0xb4, 0x2c,
+ 0x95, 0xd8, 0x8b, 0xf7, 0xc9, 0x7e, 0xc7, 0xfc, 0x9d, 0xac, 0x72, 0x04,
+ 0x1f, 0xd2, 0xcc, 0x17, 0xf4, 0xed, 0x34, 0x60, 0x9b, 0x9e, 0x4a, 0x97,
+ 0x04, 0xfe, 0xdd, 0x72, 0x0e, 0x57, 0x54, 0x51, 0x06, 0x70, 0x4d, 0xef,
+ 0xaa, 0x1c, 0xa4, 0x82, 0xe0, 0x33, 0xc7, 0xf4,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 0a:5f:11:4d:03:5b:17:91:17:d2:ef:d4:03:8c:3f:3b
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
+ Validity
+ Not Before: Apr 2 12:00:00 2008 GMT
+ Not After : Apr 3 00:00:00 2022 GMT
+ Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance CA-3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:bf:61:0a:29:10:1f:5e:fe:34:37:51:08:f8:1e:
+ fb:22:ed:61:be:0b:0d:70:4c:50:63:26:75:15:b9:
+ 41:88:97:b6:f0:a0:15:bb:08:60:e0:42:e8:05:29:
+ 10:87:36:8a:28:65:a8:ef:31:07:74:6d:36:97:2f:
+ 28:46:66:04:c7:2a:79:26:7a:99:d5:8e:c3:6d:4f:
+ a0:5e:ad:bc:3d:91:c2:59:7b:5e:36:6c:c0:53:cf:
+ 00:08:32:3e:10:64:58:10:13:69:c7:0c:ee:9c:42:
+ 51:00:f9:05:44:ee:24:ce:7a:1f:ed:8c:11:bd:12:
+ a8:f3:15:f4:1c:7a:31:69:01:1b:a7:e6:5d:c0:9a:
+ 6c:7e:09:9e:e7:52:44:4a:10:3a:23:e4:9b:b6:03:
+ af:a8:9c:b4:5b:9f:d4:4b:ad:92:8c:ce:b5:11:2a:
+ aa:37:18:8d:b4:c2:b8:d8:5c:06:8c:f8:ff:23:bd:
+ 35:5e:d4:7c:3e:7e:83:0e:91:96:05:98:c3:b2:1f:
+ e3:c8:65:eb:a9:7b:5d:a0:2c:cc:fc:3c:d9:6d:ed:
+ cc:fa:4b:43:8c:c9:d4:b8:a5:61:1c:b2:40:b6:28:
+ 12:df:b9:f8:5f:fe:d3:b2:c9:ef:3d:b4:1e:4b:7c:
+ 1c:4c:99:36:9e:3d:eb:ec:a7:68:5e:1d:df:67:6e:
+ 5e:fb
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.114412.1.3.0.2
+ CPS: http://www.digicert.com/ssl-cps-repository.htm
+ User Notice:
+ Explicit Text:
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ Authority Information Access:
+ OCSP - URI:http://ocsp.digicert.com
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl3.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+ Full Name:
+ URI:http://crl4.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+ X509v3 Authority Key Identifier:
+ keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
+
+ X509v3 Subject Key Identifier:
+ 50:EA:73:89:DB:29:FB:10:8F:9E:E5:01:20:D4:DE:79:99:48:83:F7
+ Signature Algorithm: sha1WithRSAEncryption
+ 1e:e2:a5:48:9e:6c:db:53:38:0f:ef:a6:1a:2a:ac:e2:03:43:
+ ed:9a:bc:3e:8e:75:1b:f0:fd:2e:22:59:ac:13:c0:61:e2:e7:
+ fa:e9:99:cd:87:09:75:54:28:bf:46:60:dc:be:51:2c:92:f3:
+ 1b:91:7c:31:08:70:e2:37:b9:c1:5b:a8:bd:a3:0b:00:fb:1a:
+ 15:fd:03:ad:58:6a:c5:c7:24:99:48:47:46:31:1e:92:ef:b4:
+ 5f:4e:34:c7:90:bf:31:c1:f8:b1:84:86:d0:9c:01:aa:df:8a:
+ 56:06:ce:3a:e9:0e:ae:97:74:5d:d7:71:9a:42:74:5f:de:8d:
+ 43:7c:de:e9:55:ed:69:00:cb:05:e0:7a:61:61:33:d1:19:4d:
+ f9:08:ee:a0:39:c5:25:35:b7:2b:c4:0f:b2:dd:f1:a5:b7:0e:
+ 24:c4:26:28:8d:79:77:f5:2f:f0:57:ba:7c:07:d4:e1:fc:cd:
+ 5a:30:57:7e:86:10:47:dd:31:1f:d7:fc:a2:c2:bf:30:7c:5d:
+ 24:aa:e8:f9:ae:5f:6a:74:c2:ce:6b:b3:46:d8:21:be:29:d4:
+ 8e:5e:15:d6:42:4a:e7:32:6f:a4:b1:6b:51:83:58:be:3f:6d:
+ c7:fb:da:03:21:cb:6a:16:19:4e:0a:f0:ad:84:ca:5d:94:b3:
+ 5a:76:f7:61
+-----BEGIN CERTIFICATE-----
+MIIGWDCCBUCgAwIBAgIQCl8RTQNbF5EX0u/UA4w/OzANBgkqhkiG9w0BAQUFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTA4MDQwMjEyMDAwMFoXDTIyMDQwMzAwMDAwMFowZjEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTElMCMGA1UEAxMcRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
+Q0EtMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9hCikQH17+NDdR
+CPge+yLtYb4LDXBMUGMmdRW5QYiXtvCgFbsIYOBC6AUpEIc2iihlqO8xB3RtNpcv
+KEZmBMcqeSZ6mdWOw21PoF6tvD2Rwll7XjZswFPPAAgyPhBkWBATaccM7pxCUQD5
+BUTuJM56H+2MEb0SqPMV9Bx6MWkBG6fmXcCabH4JnudSREoQOiPkm7YDr6ictFuf
+1EutkozOtREqqjcYjbTCuNhcBoz4/yO9NV7UfD5+gw6RlgWYw7If48hl66l7XaAs
+zPw82W3tzPpLQ4zJ1LilYRyyQLYoEt+5+F/+07LJ7z20Hkt8HEyZNp496+ynaF4d
+32duXvsCAwEAAaOCAvowggL2MA4GA1UdDwEB/wQEAwIBhjCCAcYGA1UdIASCAb0w
+ggG5MIIBtQYLYIZIAYb9bAEDAAIwggGkMDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3
+LmRpZ2ljZXJ0LmNvbS9zc2wtY3BzLXJlcG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUH
+AgIwggFWHoIBUgBBAG4AeQAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEMAZQBy
+AHQAaQBmAGkAYwBhAHQAZQAgAGMAbwBuAHMAdABpAHQAdQB0AGUAcwAgAGEAYwBj
+AGUAcAB0AGEAbgBjAGUAIABvAGYAIAB0AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAg
+AEMAUAAvAEMAUABTACAAYQBuAGQAIAB0AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQ
+AGEAcgB0AHkAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHcAaABpAGMAaAAgAGwAaQBt
+AGkAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBj
+AG8AcgBwAG8AcgBhAHQAZQBkACAAaABlAHIAZQBpAG4AIABiAHkAIAByAGUAZgBl
+AHIAZQBuAGMAZQAuMBIGA1UdEwEB/wQIMAYBAf8CAQAwNAYIKwYBBQUHAQEEKDAm
+MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wgY8GA1UdHwSB
+hzCBhDBAoD6gPIY6aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0SGln
+aEFzc3VyYW5jZUVWUm9vdENBLmNybDBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNl
+cnQuY29tL0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDAfBgNVHSME
+GDAWgBSxPsNpA/i/RwHUmCYaCALvY2QrwzAdBgNVHQ4EFgQUUOpzidsp+xCPnuUB
+INTeeZlIg/cwDQYJKoZIhvcNAQEFBQADggEBAB7ipUiebNtTOA/vphoqrOIDQ+2a
+vD6OdRvw/S4iWawTwGHi5/rpmc2HCXVUKL9GYNy+USyS8xuRfDEIcOI3ucFbqL2j
+CwD7GhX9A61YasXHJJlIR0YxHpLvtF9ONMeQvzHB+LGEhtCcAarfilYGzjrpDq6X
+dF3XcZpCdF/ejUN83ulV7WkAywXgemFhM9EZTfkI7qA5xSU1tyvED7Ld8aW3DiTE
+JiiNeXf1L/BXunwH1OH8zVowV36GEEfdMR/X/KLCvzB8XSSq6PmuX2p0ws5rs0bY
+Ib4p1I5eFdZCSucyb6Sxa1GDWL4/bcf72gMhy2oWGU4K8K2Eyl2Us1p292E=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert51[] = {
+ 0x30, 0x82, 0x06, 0x58, 0x30, 0x82, 0x05, 0x40, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x0a, 0x5f, 0x11, 0x4d, 0x03, 0x5b, 0x17, 0x91, 0x17,
+ 0xd2, 0xef, 0xd4, 0x03, 0x8c, 0x3f, 0x3b, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x6c,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+ 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+ 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x22, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48,
+ 0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63,
+ 0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+ 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x38, 0x30, 0x34, 0x30, 0x32, 0x31, 0x32,
+ 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x32, 0x30, 0x34, 0x30,
+ 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x66, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44, 0x69,
+ 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x19,
+ 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77, 0x77, 0x77,
+ 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1c,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48, 0x69, 0x67,
+ 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x20,
+ 0x43, 0x41, 0x2d, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+ 0x00, 0xbf, 0x61, 0x0a, 0x29, 0x10, 0x1f, 0x5e, 0xfe, 0x34, 0x37, 0x51,
+ 0x08, 0xf8, 0x1e, 0xfb, 0x22, 0xed, 0x61, 0xbe, 0x0b, 0x0d, 0x70, 0x4c,
+ 0x50, 0x63, 0x26, 0x75, 0x15, 0xb9, 0x41, 0x88, 0x97, 0xb6, 0xf0, 0xa0,
+ 0x15, 0xbb, 0x08, 0x60, 0xe0, 0x42, 0xe8, 0x05, 0x29, 0x10, 0x87, 0x36,
+ 0x8a, 0x28, 0x65, 0xa8, 0xef, 0x31, 0x07, 0x74, 0x6d, 0x36, 0x97, 0x2f,
+ 0x28, 0x46, 0x66, 0x04, 0xc7, 0x2a, 0x79, 0x26, 0x7a, 0x99, 0xd5, 0x8e,
+ 0xc3, 0x6d, 0x4f, 0xa0, 0x5e, 0xad, 0xbc, 0x3d, 0x91, 0xc2, 0x59, 0x7b,
+ 0x5e, 0x36, 0x6c, 0xc0, 0x53, 0xcf, 0x00, 0x08, 0x32, 0x3e, 0x10, 0x64,
+ 0x58, 0x10, 0x13, 0x69, 0xc7, 0x0c, 0xee, 0x9c, 0x42, 0x51, 0x00, 0xf9,
+ 0x05, 0x44, 0xee, 0x24, 0xce, 0x7a, 0x1f, 0xed, 0x8c, 0x11, 0xbd, 0x12,
+ 0xa8, 0xf3, 0x15, 0xf4, 0x1c, 0x7a, 0x31, 0x69, 0x01, 0x1b, 0xa7, 0xe6,
+ 0x5d, 0xc0, 0x9a, 0x6c, 0x7e, 0x09, 0x9e, 0xe7, 0x52, 0x44, 0x4a, 0x10,
+ 0x3a, 0x23, 0xe4, 0x9b, 0xb6, 0x03, 0xaf, 0xa8, 0x9c, 0xb4, 0x5b, 0x9f,
+ 0xd4, 0x4b, 0xad, 0x92, 0x8c, 0xce, 0xb5, 0x11, 0x2a, 0xaa, 0x37, 0x18,
+ 0x8d, 0xb4, 0xc2, 0xb8, 0xd8, 0x5c, 0x06, 0x8c, 0xf8, 0xff, 0x23, 0xbd,
+ 0x35, 0x5e, 0xd4, 0x7c, 0x3e, 0x7e, 0x83, 0x0e, 0x91, 0x96, 0x05, 0x98,
+ 0xc3, 0xb2, 0x1f, 0xe3, 0xc8, 0x65, 0xeb, 0xa9, 0x7b, 0x5d, 0xa0, 0x2c,
+ 0xcc, 0xfc, 0x3c, 0xd9, 0x6d, 0xed, 0xcc, 0xfa, 0x4b, 0x43, 0x8c, 0xc9,
+ 0xd4, 0xb8, 0xa5, 0x61, 0x1c, 0xb2, 0x40, 0xb6, 0x28, 0x12, 0xdf, 0xb9,
+ 0xf8, 0x5f, 0xfe, 0xd3, 0xb2, 0xc9, 0xef, 0x3d, 0xb4, 0x1e, 0x4b, 0x7c,
+ 0x1c, 0x4c, 0x99, 0x36, 0x9e, 0x3d, 0xeb, 0xec, 0xa7, 0x68, 0x5e, 0x1d,
+ 0xdf, 0x67, 0x6e, 0x5e, 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+ 0x02, 0xfa, 0x30, 0x82, 0x02, 0xf6, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x82,
+ 0x01, 0xc6, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x82, 0x01, 0xbd, 0x30,
+ 0x82, 0x01, 0xb9, 0x30, 0x82, 0x01, 0xb5, 0x06, 0x0b, 0x60, 0x86, 0x48,
+ 0x01, 0x86, 0xfd, 0x6c, 0x01, 0x03, 0x00, 0x02, 0x30, 0x82, 0x01, 0xa4,
+ 0x30, 0x3a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01,
+ 0x16, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
+ 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x73, 0x73, 0x6c, 0x2d, 0x63, 0x70, 0x73, 0x2d, 0x72, 0x65,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x68, 0x74, 0x6d,
+ 0x30, 0x82, 0x01, 0x64, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x02, 0x02, 0x30, 0x82, 0x01, 0x56, 0x1e, 0x82, 0x01, 0x52, 0x00, 0x41,
+ 0x00, 0x6e, 0x00, 0x79, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x43, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69, 0x00, 0x63, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x73, 0x00, 0x74, 0x00, 0x69, 0x00, 0x74, 0x00, 0x75, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x63, 0x00, 0x63,
+ 0x00, 0x65, 0x00, 0x70, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x63,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44, 0x00, 0x69, 0x00, 0x67,
+ 0x00, 0x69, 0x00, 0x43, 0x00, 0x65, 0x00, 0x72, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x43, 0x00, 0x50, 0x00, 0x2f, 0x00, 0x43, 0x00, 0x50, 0x00, 0x53,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x6c,
+ 0x00, 0x79, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x50,
+ 0x00, 0x61, 0x00, 0x72, 0x00, 0x74, 0x00, 0x79, 0x00, 0x20, 0x00, 0x41,
+ 0x00, 0x67, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x6d, 0x00, 0x65,
+ 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x77, 0x00, 0x68, 0x00, 0x69,
+ 0x00, 0x63, 0x00, 0x68, 0x00, 0x20, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x6d,
+ 0x00, 0x69, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x61,
+ 0x00, 0x62, 0x00, 0x69, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x74, 0x00, 0x79,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x63,
+ 0x00, 0x6f, 0x00, 0x72, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x68, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x79, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x66, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x65, 0x00, 0x2e,
+ 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+ 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x34, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26,
+ 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+ 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+ 0x70, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x30, 0x81, 0x8f, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x81,
+ 0x87, 0x30, 0x81, 0x84, 0x30, 0x40, 0xa0, 0x3e, 0xa0, 0x3c, 0x86, 0x3a,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x33, 0x2e,
+ 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x48, 0x69, 0x67,
+ 0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x56,
+ 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x40,
+ 0xa0, 0x3e, 0xa0, 0x3c, 0x86, 0x3a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x63, 0x72, 0x6c, 0x34, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65,
+ 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43,
+ 0x65, 0x72, 0x74, 0x48, 0x69, 0x67, 0x68, 0x41, 0x73, 0x73, 0x75, 0x72,
+ 0x61, 0x6e, 0x63, 0x65, 0x45, 0x56, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41,
+ 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+ 0x18, 0x30, 0x16, 0x80, 0x14, 0xb1, 0x3e, 0xc3, 0x69, 0x03, 0xf8, 0xbf,
+ 0x47, 0x01, 0xd4, 0x98, 0x26, 0x1a, 0x08, 0x02, 0xef, 0x63, 0x64, 0x2b,
+ 0xc3, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x50, 0xea, 0x73, 0x89, 0xdb, 0x29, 0xfb, 0x10, 0x8f, 0x9e, 0xe5, 0x01,
+ 0x20, 0xd4, 0xde, 0x79, 0x99, 0x48, 0x83, 0xf7, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x01, 0x00, 0x1e, 0xe2, 0xa5, 0x48, 0x9e, 0x6c, 0xdb, 0x53,
+ 0x38, 0x0f, 0xef, 0xa6, 0x1a, 0x2a, 0xac, 0xe2, 0x03, 0x43, 0xed, 0x9a,
+ 0xbc, 0x3e, 0x8e, 0x75, 0x1b, 0xf0, 0xfd, 0x2e, 0x22, 0x59, 0xac, 0x13,
+ 0xc0, 0x61, 0xe2, 0xe7, 0xfa, 0xe9, 0x99, 0xcd, 0x87, 0x09, 0x75, 0x54,
+ 0x28, 0xbf, 0x46, 0x60, 0xdc, 0xbe, 0x51, 0x2c, 0x92, 0xf3, 0x1b, 0x91,
+ 0x7c, 0x31, 0x08, 0x70, 0xe2, 0x37, 0xb9, 0xc1, 0x5b, 0xa8, 0xbd, 0xa3,
+ 0x0b, 0x00, 0xfb, 0x1a, 0x15, 0xfd, 0x03, 0xad, 0x58, 0x6a, 0xc5, 0xc7,
+ 0x24, 0x99, 0x48, 0x47, 0x46, 0x31, 0x1e, 0x92, 0xef, 0xb4, 0x5f, 0x4e,
+ 0x34, 0xc7, 0x90, 0xbf, 0x31, 0xc1, 0xf8, 0xb1, 0x84, 0x86, 0xd0, 0x9c,
+ 0x01, 0xaa, 0xdf, 0x8a, 0x56, 0x06, 0xce, 0x3a, 0xe9, 0x0e, 0xae, 0x97,
+ 0x74, 0x5d, 0xd7, 0x71, 0x9a, 0x42, 0x74, 0x5f, 0xde, 0x8d, 0x43, 0x7c,
+ 0xde, 0xe9, 0x55, 0xed, 0x69, 0x00, 0xcb, 0x05, 0xe0, 0x7a, 0x61, 0x61,
+ 0x33, 0xd1, 0x19, 0x4d, 0xf9, 0x08, 0xee, 0xa0, 0x39, 0xc5, 0x25, 0x35,
+ 0xb7, 0x2b, 0xc4, 0x0f, 0xb2, 0xdd, 0xf1, 0xa5, 0xb7, 0x0e, 0x24, 0xc4,
+ 0x26, 0x28, 0x8d, 0x79, 0x77, 0xf5, 0x2f, 0xf0, 0x57, 0xba, 0x7c, 0x07,
+ 0xd4, 0xe1, 0xfc, 0xcd, 0x5a, 0x30, 0x57, 0x7e, 0x86, 0x10, 0x47, 0xdd,
+ 0x31, 0x1f, 0xd7, 0xfc, 0xa2, 0xc2, 0xbf, 0x30, 0x7c, 0x5d, 0x24, 0xaa,
+ 0xe8, 0xf9, 0xae, 0x5f, 0x6a, 0x74, 0xc2, 0xce, 0x6b, 0xb3, 0x46, 0xd8,
+ 0x21, 0xbe, 0x29, 0xd4, 0x8e, 0x5e, 0x15, 0xd6, 0x42, 0x4a, 0xe7, 0x32,
+ 0x6f, 0xa4, 0xb1, 0x6b, 0x51, 0x83, 0x58, 0xbe, 0x3f, 0x6d, 0xc7, 0xfb,
+ 0xda, 0x03, 0x21, 0xcb, 0x6a, 0x16, 0x19, 0x4e, 0x0a, 0xf0, 0xad, 0x84,
+ 0xca, 0x5d, 0x94, 0xb3, 0x5a, 0x76, 0xf7, 0x61,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 7250751724796726 (0x19c28530e93b36)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
+ Validity
+ Not Before: Sep 17 22:46:36 2006 GMT
+ Not After : Dec 31 23:59:59 2019 GMT
+ Subject: C=CN, O=WoSign CA Limited, CN=Certification Authority of WoSign
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (4096 bit)
+ Modulus:
+ 00:bd:ca:8d:ac:b8:91:15:56:97:7b:6b:5c:7a:c2:
+ de:6b:d9:a1:b0:c3:10:23:fa:a7:a1:b2:cc:31:fa:
+ 3e:d9:a6:29:6f:16:3d:e0:6b:f8:b8:40:5f:db:39:
+ a8:00:7a:8b:a0:4d:54:7d:c2:22:78:fc:8e:09:b8:
+ a8:85:d7:cc:95:97:4b:74:d8:9e:7e:f0:00:e4:0e:
+ 89:ae:49:28:44:1a:10:99:32:0f:25:88:53:a4:0d:
+ b3:0f:12:08:16:0b:03:71:27:1c:7f:e1:db:d2:fd:
+ 67:68:c4:05:5d:0a:0e:5d:70:d7:d8:97:a0:bc:53:
+ 41:9a:91:8d:f4:9e:36:66:7a:7e:56:c1:90:5f:e6:
+ b1:68:20:36:a4:8c:24:2c:2c:47:0b:59:76:66:30:
+ b5:be:de:ed:8f:f8:9d:d3:bb:01:30:e6:f2:f3:0e:
+ e0:2c:92:80:f3:85:f9:28:8a:b4:54:2e:9a:ed:f7:
+ 76:fc:15:68:16:eb:4a:6c:eb:2e:12:8f:d4:cf:fe:
+ 0c:c7:5c:1d:0b:7e:05:32:be:5e:b0:09:2a:42:d5:
+ c9:4e:90:b3:59:0d:bb:7a:7e:cd:d5:08:5a:b4:7f:
+ d8:1c:69:11:f9:27:0f:7b:06:af:54:83:18:7b:e1:
+ dd:54:7a:51:68:6e:77:fc:c6:bf:52:4a:66:46:a1:
+ b2:67:1a:bb:a3:4f:77:a0:be:5d:ff:fc:56:0b:43:
+ 72:77:90:ca:9e:f9:f2:39:f5:0d:a9:f4:ea:d7:e7:
+ b3:10:2f:30:42:37:21:cc:30:70:c9:86:98:0f:cc:
+ 58:4d:83:bb:7d:e5:1a:a5:37:8d:b6:ac:32:97:00:
+ 3a:63:71:24:1e:9e:37:c4:ff:74:d4:37:c0:e2:fe:
+ 88:46:60:11:dd:08:3f:50:36:ab:b8:7a:a4:95:62:
+ 6a:6e:b0:ca:6a:21:5a:69:f3:f3:fb:1d:70:39:95:
+ f3:a7:6e:a6:81:89:a1:88:c5:3b:71:ca:a3:52:ee:
+ 83:bb:fd:a0:77:f4:e4:6f:e7:42:db:6d:4a:99:8a:
+ 34:48:bc:17:dc:e4:80:08:22:b6:f2:31:c0:3f:04:
+ 3e:eb:9f:20:79:d6:b8:06:64:64:02:31:d7:a9:cd:
+ 52:fb:84:45:69:09:00:2a:dc:55:8b:c4:06:46:4b:
+ c0:4a:1d:09:5b:39:28:fd:a9:ab:ce:00:f9:2e:48:
+ 4b:26:e6:30:4c:a5:58:ca:b4:44:82:4f:e7:91:1e:
+ 33:c3:b0:93:ff:11:fc:81:d2:ca:1f:71:29:dd:76:
+ 4f:92:25:af:1d:81:b7:0f:2f:8c:c3:06:cc:2f:27:
+ a3:4a:e4:0e:99:ba:7c:1e:45:1f:7f:aa:19:45:96:
+ fd:fc:3d
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:2
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ E1:66:CF:0E:D1:F1:B3:4B:B7:06:20:14:FE:87:12:D5:F6:FE:FB:3E
+ X509v3 Authority Key Identifier:
+ keyid:4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.startssl.com/ca
+ CA Issuers - URI:http://aia.startssl.com/certs/ca.crt
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.startssl.com/sfsca.crl
+
+ Signature Algorithm: sha256WithRSAEncryption
+ b6:6d:f8:70:fb:e2:0d:4c:98:b3:07:49:15:f5:04:c4:6c:ca:
+ ca:f5:68:a0:08:fe:12:6d:9c:04:06:c9:ad:9a:91:52:3e:78:
+ c4:5c:ee:9f:54:1d:ee:e3:f1:5e:30:c9:49:e1:39:e0:a6:9d:
+ 36:6c:57:fa:e6:34:4f:55:e8:87:a8:2c:dd:05:f1:58:12:91:
+ e8:ca:ce:28:78:8f:df:07:85:01:a5:dc:45:96:05:d4:80:b2:
+ 2b:05:9a:cb:9a:a5:8b:e0:3a:67:e6:73:47:be:4a:fd:27:b1:
+ 88:ef:e6:ca:cf:8d:0e:26:9f:fa:5f:57:78:ad:6d:fe:ae:9b:
+ 35:08:b1:c3:ba:c1:00:4a:4b:7d:14:bd:f7:f1:d3:55:18:ac:
+ d0:33:70:88:6d:c4:09:71:14:a6:2b:4f:88:81:e7:0b:00:37:
+ a9:15:7d:7e:d7:01:96:3f:2f:af:7b:62:ae:0a:4a:bf:4b:39:
+ 2e:35:10:8b:fe:04:39:e4:3c:3a:0c:09:56:40:3a:b5:f4:c2:
+ 68:0c:b5:f9:52:cd:ee:9d:f8:98:fc:78:e7:58:47:8f:1c:73:
+ 58:69:33:ab:ff:dd:df:8e:24:01:77:98:19:3a:b0:66:79:bc:
+ e1:08:a3:0e:4f:c1:04:b3:f3:01:c8:eb:d3:59:1c:35:d2:93:
+ 1e:70:65:82:7f:db:cf:fb:c8:99:12:60:c3:44:6f:3a:80:4b:
+ d7:be:21:aa:14:7a:64:cb:dd:37:43:45:5b:32:2e:45:f0:d9:
+ 59:1f:6b:18:f0:7c:e9:55:36:19:61:5f:b5:7d:f1:8d:bd:88:
+ e4:75:4b:98:dd:27:b0:e4:84:44:2a:61:84:57:05:82:11:1f:
+ aa:35:58:f3:20:0e:af:59:ef:fa:55:72:72:0d:26:d0:9b:53:
+ 49:ac:ce:37:2e:65:61:ff:f6:ec:1b:ea:f6:f1:a6:d3:d1:b5:
+ 7b:be:35:f4:22:c1:bc:8d:01:bd:68:5e:83:0d:2f:ec:d6:da:
+ 63:0c:27:d1:54:3e:e4:a8:d3:ce:4b:32:b8:91:94:ff:fb:5b:
+ 49:2d:75:18:a8:ba:71:9a:3b:ae:d9:c0:a9:4f:87:91:ed:8b:
+ 7b:6b:20:98:89:39:83:4f:80:c4:69:cc:17:c9:c8:4e:be:e4:
+ a9:a5:81:76:70:06:04:32:cd:83:65:f4:bc:7d:3e:13:bc:d2:
+ e8:6f:63:aa:b5:3b:da:8d:86:32:82:78:9d:d9:cc:ff:bf:57:
+ 64:74:ed:28:3d:44:62:15:61:4b:f7:94:b0:0d:2a:67:1c:f0:
+ cb:9b:a5:92:bf:f8:41:5a:c1:3d:60:ed:9f:bb:b8:6d:9b:ce:
+ a9:6a:16:3f:7e:ea:06:f1
+-----BEGIN CERTIFICATE-----
+MIIGXDCCBESgAwIBAgIHGcKFMOk7NjANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQG
+EwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERp
+Z2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MjI0NjM2WhcNMTkxMjMxMjM1
+OTU5WjBVMQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQx
+KjAoBgNVBAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL3Kjay4kRVWl3trXHrC3mvZobDD
+ECP6p6GyzDH6PtmmKW8WPeBr+LhAX9s5qAB6i6BNVH3CInj8jgm4qIXXzJWXS3TY
+nn7wAOQOia5JKEQaEJkyDyWIU6QNsw8SCBYLA3EnHH/h29L9Z2jEBV0KDl1w19iX
+oLxTQZqRjfSeNmZ6flbBkF/msWggNqSMJCwsRwtZdmYwtb7e7Y/4ndO7ATDm8vMO
+4CySgPOF+SiKtFQumu33dvwVaBbrSmzrLhKP1M/+DMdcHQt+BTK+XrAJKkLVyU6Q
+s1kNu3p+zdUIWrR/2BxpEfknD3sGr1SDGHvh3VR6UWhud/zGv1JKZkahsmcau6NP
+d6C+Xf/8VgtDcneQyp758jn1Dan06tfnsxAvMEI3IcwwcMmGmA/MWE2Du33lGqU3
+jbasMpcAOmNxJB6eN8T/dNQ3wOL+iEZgEd0IP1A2q7h6pJViam6wymohWmnz8/sd
+cDmV86dupoGJoYjFO3HKo1Lug7v9oHf05G/nQtttSpmKNEi8F9zkgAgitvIxwD8E
+PuufIHnWuAZkZAIx16nNUvuERWkJACrcVYvEBkZLwEodCVs5KP2pq84A+S5ISybm
+MEylWMq0RIJP55EeM8Owk/8R/IHSyh9xKd12T5Ilrx2Btw8vjMMGzC8no0rkDpm6
+fB5FH3+qGUWW/fw9AgMBAAGjggEHMIIBAzASBgNVHRMBAf8ECDAGAQH/AgECMA4G
+A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU4WbPDtHxs0u3BiAU/ocS1fb++z4wHwYD
+VR0jBBgwFoAUTgvvGqRAW6UXaYcwyjRoQ9BBrvIwaQYIKwYBBQUHAQEEXTBbMCcG
+CCsGAQUFBzABhhtodHRwOi8vb2NzcC5zdGFydHNzbC5jb20vY2EwMAYIKwYBBQUH
+MAKGJGh0dHA6Ly9haWEuc3RhcnRzc2wuY29tL2NlcnRzL2NhLmNydDAyBgNVHR8E
+KzApMCegJaAjhiFodHRwOi8vY3JsLnN0YXJ0c3NsLmNvbS9zZnNjYS5jcmwwDQYJ
+KoZIhvcNAQELBQADggIBALZt+HD74g1MmLMHSRX1BMRsysr1aKAI/hJtnAQGya2a
+kVI+eMRc7p9UHe7j8V4wyUnhOeCmnTZsV/rmNE9V6IeoLN0F8VgSkejKzih4j98H
+hQGl3EWWBdSAsisFmsuapYvgOmfmc0e+Sv0nsYjv5srPjQ4mn/pfV3itbf6umzUI
+scO6wQBKS30Uvffx01UYrNAzcIhtxAlxFKYrT4iB5wsAN6kVfX7XAZY/L697Yq4K
+Sr9LOS41EIv+BDnkPDoMCVZAOrX0wmgMtflSze6d+Jj8eOdYR48cc1hpM6v/3d+O
+JAF3mBk6sGZ5vOEIow5PwQSz8wHI69NZHDXSkx5wZYJ/28/7yJkSYMNEbzqAS9e+
+IaoUemTL3TdDRVsyLkXw2VkfaxjwfOlVNhlhX7V98Y29iOR1S5jdJ7DkhEQqYYRX
+BYIRH6o1WPMgDq9Z7/pVcnINJtCbU0mszjcuZWH/9uwb6vbxptPRtXu+NfQiwbyN
+Ab1oXoMNL+zW2mMMJ9FUPuSo085LMriRlP/7W0ktdRiounGaO67ZwKlPh5Hti3tr
+IJiJOYNPgMRpzBfJyE6+5KmlgXZwBgQyzYNl9Lx9PhO80uhvY6q1O9qNhjKCeJ3Z
+zP+/V2R07Sg9RGIVYUv3lLANKmcc8MubpZK/+EFawT1g7Z+7uG2bzqlqFj9+6gbx
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert52[] = {
+ 0x30, 0x82, 0x06, 0x5c, 0x30, 0x82, 0x04, 0x44, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x07, 0x19, 0xc2, 0x85, 0x30, 0xe9, 0x3b, 0x36, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+ 0x00, 0x30, 0x7d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20,
+ 0x4c, 0x74, 0x64, 0x2e, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x22, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69,
+ 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+ 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e,
+ 0x67, 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x20,
+ 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x65, 0x72,
+ 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41,
+ 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d,
+ 0x30, 0x36, 0x30, 0x39, 0x31, 0x37, 0x32, 0x32, 0x34, 0x36, 0x33, 0x36,
+ 0x5a, 0x17, 0x0d, 0x31, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35,
+ 0x39, 0x35, 0x39, 0x5a, 0x30, 0x55, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
+ 0x55, 0x04, 0x06, 0x13, 0x02, 0x43, 0x4e, 0x31, 0x1a, 0x30, 0x18, 0x06,
+ 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e,
+ 0x20, 0x43, 0x41, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x31,
+ 0x2a, 0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x21, 0x43, 0x65,
+ 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+ 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66,
+ 0x20, 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x30, 0x82, 0x02, 0x22, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02,
+ 0x82, 0x02, 0x01, 0x00, 0xbd, 0xca, 0x8d, 0xac, 0xb8, 0x91, 0x15, 0x56,
+ 0x97, 0x7b, 0x6b, 0x5c, 0x7a, 0xc2, 0xde, 0x6b, 0xd9, 0xa1, 0xb0, 0xc3,
+ 0x10, 0x23, 0xfa, 0xa7, 0xa1, 0xb2, 0xcc, 0x31, 0xfa, 0x3e, 0xd9, 0xa6,
+ 0x29, 0x6f, 0x16, 0x3d, 0xe0, 0x6b, 0xf8, 0xb8, 0x40, 0x5f, 0xdb, 0x39,
+ 0xa8, 0x00, 0x7a, 0x8b, 0xa0, 0x4d, 0x54, 0x7d, 0xc2, 0x22, 0x78, 0xfc,
+ 0x8e, 0x09, 0xb8, 0xa8, 0x85, 0xd7, 0xcc, 0x95, 0x97, 0x4b, 0x74, 0xd8,
+ 0x9e, 0x7e, 0xf0, 0x00, 0xe4, 0x0e, 0x89, 0xae, 0x49, 0x28, 0x44, 0x1a,
+ 0x10, 0x99, 0x32, 0x0f, 0x25, 0x88, 0x53, 0xa4, 0x0d, 0xb3, 0x0f, 0x12,
+ 0x08, 0x16, 0x0b, 0x03, 0x71, 0x27, 0x1c, 0x7f, 0xe1, 0xdb, 0xd2, 0xfd,
+ 0x67, 0x68, 0xc4, 0x05, 0x5d, 0x0a, 0x0e, 0x5d, 0x70, 0xd7, 0xd8, 0x97,
+ 0xa0, 0xbc, 0x53, 0x41, 0x9a, 0x91, 0x8d, 0xf4, 0x9e, 0x36, 0x66, 0x7a,
+ 0x7e, 0x56, 0xc1, 0x90, 0x5f, 0xe6, 0xb1, 0x68, 0x20, 0x36, 0xa4, 0x8c,
+ 0x24, 0x2c, 0x2c, 0x47, 0x0b, 0x59, 0x76, 0x66, 0x30, 0xb5, 0xbe, 0xde,
+ 0xed, 0x8f, 0xf8, 0x9d, 0xd3, 0xbb, 0x01, 0x30, 0xe6, 0xf2, 0xf3, 0x0e,
+ 0xe0, 0x2c, 0x92, 0x80, 0xf3, 0x85, 0xf9, 0x28, 0x8a, 0xb4, 0x54, 0x2e,
+ 0x9a, 0xed, 0xf7, 0x76, 0xfc, 0x15, 0x68, 0x16, 0xeb, 0x4a, 0x6c, 0xeb,
+ 0x2e, 0x12, 0x8f, 0xd4, 0xcf, 0xfe, 0x0c, 0xc7, 0x5c, 0x1d, 0x0b, 0x7e,
+ 0x05, 0x32, 0xbe, 0x5e, 0xb0, 0x09, 0x2a, 0x42, 0xd5, 0xc9, 0x4e, 0x90,
+ 0xb3, 0x59, 0x0d, 0xbb, 0x7a, 0x7e, 0xcd, 0xd5, 0x08, 0x5a, 0xb4, 0x7f,
+ 0xd8, 0x1c, 0x69, 0x11, 0xf9, 0x27, 0x0f, 0x7b, 0x06, 0xaf, 0x54, 0x83,
+ 0x18, 0x7b, 0xe1, 0xdd, 0x54, 0x7a, 0x51, 0x68, 0x6e, 0x77, 0xfc, 0xc6,
+ 0xbf, 0x52, 0x4a, 0x66, 0x46, 0xa1, 0xb2, 0x67, 0x1a, 0xbb, 0xa3, 0x4f,
+ 0x77, 0xa0, 0xbe, 0x5d, 0xff, 0xfc, 0x56, 0x0b, 0x43, 0x72, 0x77, 0x90,
+ 0xca, 0x9e, 0xf9, 0xf2, 0x39, 0xf5, 0x0d, 0xa9, 0xf4, 0xea, 0xd7, 0xe7,
+ 0xb3, 0x10, 0x2f, 0x30, 0x42, 0x37, 0x21, 0xcc, 0x30, 0x70, 0xc9, 0x86,
+ 0x98, 0x0f, 0xcc, 0x58, 0x4d, 0x83, 0xbb, 0x7d, 0xe5, 0x1a, 0xa5, 0x37,
+ 0x8d, 0xb6, 0xac, 0x32, 0x97, 0x00, 0x3a, 0x63, 0x71, 0x24, 0x1e, 0x9e,
+ 0x37, 0xc4, 0xff, 0x74, 0xd4, 0x37, 0xc0, 0xe2, 0xfe, 0x88, 0x46, 0x60,
+ 0x11, 0xdd, 0x08, 0x3f, 0x50, 0x36, 0xab, 0xb8, 0x7a, 0xa4, 0x95, 0x62,
+ 0x6a, 0x6e, 0xb0, 0xca, 0x6a, 0x21, 0x5a, 0x69, 0xf3, 0xf3, 0xfb, 0x1d,
+ 0x70, 0x39, 0x95, 0xf3, 0xa7, 0x6e, 0xa6, 0x81, 0x89, 0xa1, 0x88, 0xc5,
+ 0x3b, 0x71, 0xca, 0xa3, 0x52, 0xee, 0x83, 0xbb, 0xfd, 0xa0, 0x77, 0xf4,
+ 0xe4, 0x6f, 0xe7, 0x42, 0xdb, 0x6d, 0x4a, 0x99, 0x8a, 0x34, 0x48, 0xbc,
+ 0x17, 0xdc, 0xe4, 0x80, 0x08, 0x22, 0xb6, 0xf2, 0x31, 0xc0, 0x3f, 0x04,
+ 0x3e, 0xeb, 0x9f, 0x20, 0x79, 0xd6, 0xb8, 0x06, 0x64, 0x64, 0x02, 0x31,
+ 0xd7, 0xa9, 0xcd, 0x52, 0xfb, 0x84, 0x45, 0x69, 0x09, 0x00, 0x2a, 0xdc,
+ 0x55, 0x8b, 0xc4, 0x06, 0x46, 0x4b, 0xc0, 0x4a, 0x1d, 0x09, 0x5b, 0x39,
+ 0x28, 0xfd, 0xa9, 0xab, 0xce, 0x00, 0xf9, 0x2e, 0x48, 0x4b, 0x26, 0xe6,
+ 0x30, 0x4c, 0xa5, 0x58, 0xca, 0xb4, 0x44, 0x82, 0x4f, 0xe7, 0x91, 0x1e,
+ 0x33, 0xc3, 0xb0, 0x93, 0xff, 0x11, 0xfc, 0x81, 0xd2, 0xca, 0x1f, 0x71,
+ 0x29, 0xdd, 0x76, 0x4f, 0x92, 0x25, 0xaf, 0x1d, 0x81, 0xb7, 0x0f, 0x2f,
+ 0x8c, 0xc3, 0x06, 0xcc, 0x2f, 0x27, 0xa3, 0x4a, 0xe4, 0x0e, 0x99, 0xba,
+ 0x7c, 0x1e, 0x45, 0x1f, 0x7f, 0xaa, 0x19, 0x45, 0x96, 0xfd, 0xfc, 0x3d,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x07, 0x30, 0x82, 0x01,
+ 0x03, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
+ 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x02, 0x30, 0x0e, 0x06,
+ 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+ 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0xe1, 0x66, 0xcf, 0x0e, 0xd1, 0xf1, 0xb3, 0x4b, 0xb7, 0x06, 0x20, 0x14,
+ 0xfe, 0x87, 0x12, 0xd5, 0xf6, 0xfe, 0xfb, 0x3e, 0x30, 0x1f, 0x06, 0x03,
+ 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x4e, 0x0b, 0xef,
+ 0x1a, 0xa4, 0x40, 0x5b, 0xa5, 0x17, 0x69, 0x87, 0x30, 0xca, 0x34, 0x68,
+ 0x43, 0xd0, 0x41, 0xae, 0xf2, 0x30, 0x69, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x5d, 0x30, 0x5b, 0x30, 0x27, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1b, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x73,
+ 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x63, 0x61, 0x30, 0x30, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x02, 0x86, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61,
+ 0x69, 0x61, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x63, 0x61,
+ 0x2e, 0x63, 0x72, 0x74, 0x30, 0x32, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
+ 0x2b, 0x30, 0x29, 0x30, 0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x73, 0x74,
+ 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73,
+ 0x66, 0x73, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
+ 0x82, 0x02, 0x01, 0x00, 0xb6, 0x6d, 0xf8, 0x70, 0xfb, 0xe2, 0x0d, 0x4c,
+ 0x98, 0xb3, 0x07, 0x49, 0x15, 0xf5, 0x04, 0xc4, 0x6c, 0xca, 0xca, 0xf5,
+ 0x68, 0xa0, 0x08, 0xfe, 0x12, 0x6d, 0x9c, 0x04, 0x06, 0xc9, 0xad, 0x9a,
+ 0x91, 0x52, 0x3e, 0x78, 0xc4, 0x5c, 0xee, 0x9f, 0x54, 0x1d, 0xee, 0xe3,
+ 0xf1, 0x5e, 0x30, 0xc9, 0x49, 0xe1, 0x39, 0xe0, 0xa6, 0x9d, 0x36, 0x6c,
+ 0x57, 0xfa, 0xe6, 0x34, 0x4f, 0x55, 0xe8, 0x87, 0xa8, 0x2c, 0xdd, 0x05,
+ 0xf1, 0x58, 0x12, 0x91, 0xe8, 0xca, 0xce, 0x28, 0x78, 0x8f, 0xdf, 0x07,
+ 0x85, 0x01, 0xa5, 0xdc, 0x45, 0x96, 0x05, 0xd4, 0x80, 0xb2, 0x2b, 0x05,
+ 0x9a, 0xcb, 0x9a, 0xa5, 0x8b, 0xe0, 0x3a, 0x67, 0xe6, 0x73, 0x47, 0xbe,
+ 0x4a, 0xfd, 0x27, 0xb1, 0x88, 0xef, 0xe6, 0xca, 0xcf, 0x8d, 0x0e, 0x26,
+ 0x9f, 0xfa, 0x5f, 0x57, 0x78, 0xad, 0x6d, 0xfe, 0xae, 0x9b, 0x35, 0x08,
+ 0xb1, 0xc3, 0xba, 0xc1, 0x00, 0x4a, 0x4b, 0x7d, 0x14, 0xbd, 0xf7, 0xf1,
+ 0xd3, 0x55, 0x18, 0xac, 0xd0, 0x33, 0x70, 0x88, 0x6d, 0xc4, 0x09, 0x71,
+ 0x14, 0xa6, 0x2b, 0x4f, 0x88, 0x81, 0xe7, 0x0b, 0x00, 0x37, 0xa9, 0x15,
+ 0x7d, 0x7e, 0xd7, 0x01, 0x96, 0x3f, 0x2f, 0xaf, 0x7b, 0x62, 0xae, 0x0a,
+ 0x4a, 0xbf, 0x4b, 0x39, 0x2e, 0x35, 0x10, 0x8b, 0xfe, 0x04, 0x39, 0xe4,
+ 0x3c, 0x3a, 0x0c, 0x09, 0x56, 0x40, 0x3a, 0xb5, 0xf4, 0xc2, 0x68, 0x0c,
+ 0xb5, 0xf9, 0x52, 0xcd, 0xee, 0x9d, 0xf8, 0x98, 0xfc, 0x78, 0xe7, 0x58,
+ 0x47, 0x8f, 0x1c, 0x73, 0x58, 0x69, 0x33, 0xab, 0xff, 0xdd, 0xdf, 0x8e,
+ 0x24, 0x01, 0x77, 0x98, 0x19, 0x3a, 0xb0, 0x66, 0x79, 0xbc, 0xe1, 0x08,
+ 0xa3, 0x0e, 0x4f, 0xc1, 0x04, 0xb3, 0xf3, 0x01, 0xc8, 0xeb, 0xd3, 0x59,
+ 0x1c, 0x35, 0xd2, 0x93, 0x1e, 0x70, 0x65, 0x82, 0x7f, 0xdb, 0xcf, 0xfb,
+ 0xc8, 0x99, 0x12, 0x60, 0xc3, 0x44, 0x6f, 0x3a, 0x80, 0x4b, 0xd7, 0xbe,
+ 0x21, 0xaa, 0x14, 0x7a, 0x64, 0xcb, 0xdd, 0x37, 0x43, 0x45, 0x5b, 0x32,
+ 0x2e, 0x45, 0xf0, 0xd9, 0x59, 0x1f, 0x6b, 0x18, 0xf0, 0x7c, 0xe9, 0x55,
+ 0x36, 0x19, 0x61, 0x5f, 0xb5, 0x7d, 0xf1, 0x8d, 0xbd, 0x88, 0xe4, 0x75,
+ 0x4b, 0x98, 0xdd, 0x27, 0xb0, 0xe4, 0x84, 0x44, 0x2a, 0x61, 0x84, 0x57,
+ 0x05, 0x82, 0x11, 0x1f, 0xaa, 0x35, 0x58, 0xf3, 0x20, 0x0e, 0xaf, 0x59,
+ 0xef, 0xfa, 0x55, 0x72, 0x72, 0x0d, 0x26, 0xd0, 0x9b, 0x53, 0x49, 0xac,
+ 0xce, 0x37, 0x2e, 0x65, 0x61, 0xff, 0xf6, 0xec, 0x1b, 0xea, 0xf6, 0xf1,
+ 0xa6, 0xd3, 0xd1, 0xb5, 0x7b, 0xbe, 0x35, 0xf4, 0x22, 0xc1, 0xbc, 0x8d,
+ 0x01, 0xbd, 0x68, 0x5e, 0x83, 0x0d, 0x2f, 0xec, 0xd6, 0xda, 0x63, 0x0c,
+ 0x27, 0xd1, 0x54, 0x3e, 0xe4, 0xa8, 0xd3, 0xce, 0x4b, 0x32, 0xb8, 0x91,
+ 0x94, 0xff, 0xfb, 0x5b, 0x49, 0x2d, 0x75, 0x18, 0xa8, 0xba, 0x71, 0x9a,
+ 0x3b, 0xae, 0xd9, 0xc0, 0xa9, 0x4f, 0x87, 0x91, 0xed, 0x8b, 0x7b, 0x6b,
+ 0x20, 0x98, 0x89, 0x39, 0x83, 0x4f, 0x80, 0xc4, 0x69, 0xcc, 0x17, 0xc9,
+ 0xc8, 0x4e, 0xbe, 0xe4, 0xa9, 0xa5, 0x81, 0x76, 0x70, 0x06, 0x04, 0x32,
+ 0xcd, 0x83, 0x65, 0xf4, 0xbc, 0x7d, 0x3e, 0x13, 0xbc, 0xd2, 0xe8, 0x6f,
+ 0x63, 0xaa, 0xb5, 0x3b, 0xda, 0x8d, 0x86, 0x32, 0x82, 0x78, 0x9d, 0xd9,
+ 0xcc, 0xff, 0xbf, 0x57, 0x64, 0x74, 0xed, 0x28, 0x3d, 0x44, 0x62, 0x15,
+ 0x61, 0x4b, 0xf7, 0x94, 0xb0, 0x0d, 0x2a, 0x67, 0x1c, 0xf0, 0xcb, 0x9b,
+ 0xa5, 0x92, 0xbf, 0xf8, 0x41, 0x5a, 0xc1, 0x3d, 0x60, 0xed, 0x9f, 0xbb,
+ 0xb8, 0x6d, 0x9b, 0xce, 0xa9, 0x6a, 0x16, 0x3f, 0x7e, 0xea, 0x06, 0xf1,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 03:37:b9:28:34:7c:60:a6:ae:c5:ad:b1:21:7f:38:60
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
+ Validity
+ Not Before: Nov 9 12:00:00 2007 GMT
+ Not After : Nov 10 00:00:00 2021 GMT
+ Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV CA-1
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:f3:96:62:d8:75:6e:19:ff:3f:34:7c:49:4f:31:
+ 7e:0d:04:4e:99:81:e2:b3:85:55:91:30:b1:c0:af:
+ 70:bb:2c:a8:e7:18:aa:3f:78:f7:90:68:52:86:01:
+ 88:97:e2:3b:06:65:90:aa:bd:65:76:c2:ec:be:10:
+ 5b:37:78:83:60:75:45:c6:bd:74:aa:b6:9f:a4:3a:
+ 01:50:17:c4:39:69:b9:f1:4f:ef:82:c1:ca:f3:4a:
+ db:cc:9e:50:4f:4d:40:a3:3a:90:e7:86:66:bc:f0:
+ 3e:76:28:4c:d1:75:80:9e:6a:35:14:35:03:9e:db:
+ 0c:8c:c2:28:ad:50:b2:ce:f6:91:a3:c3:a5:0a:58:
+ 49:f6:75:44:6c:ba:f9:ce:e9:ab:3a:02:e0:4d:f3:
+ ac:e2:7a:e0:60:22:05:3c:82:d3:52:e2:f3:9c:47:
+ f8:3b:d8:b2:4b:93:56:4a:bf:70:ab:3e:e9:68:c8:
+ 1d:8f:58:1d:2a:4d:5e:27:3d:ad:0a:59:2f:5a:11:
+ 20:40:d9:68:04:68:2d:f4:c0:84:0b:0a:1b:78:df:
+ ed:1a:58:dc:fb:41:5a:6d:6b:f2:ed:1c:ee:5c:32:
+ b6:5c:ec:d7:a6:03:32:a6:e8:de:b7:28:27:59:88:
+ 80:ff:7b:ad:89:58:d5:1e:14:a4:f2:b0:70:d4:a0:
+ 3e:a7
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication, Code Signing, E-mail Protection, Time Stamping
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.114412.2.1
+ CPS: http://www.digicert.com/ssl-cps-repository.htm
+ User Notice:
+ Explicit Text:
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ Authority Information Access:
+ OCSP - URI:http://ocsp.digicert.com
+ CA Issuers - URI:http://www.digicert.com/CACerts/DigiCertHighAssuranceEVRootCA.crt
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl3.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+ Full Name:
+ URI:http://crl4.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+ X509v3 Subject Key Identifier:
+ 4C:58:CB:25:F0:41:4F:52:F4:28:C8:81:43:9B:A6:A8:A0:E6:92:E5
+ X509v3 Authority Key Identifier:
+ keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 4c:7a:17:87:28:5d:17:bc:b2:32:73:bf:cd:2e:f5:58:31:1d:
+ f0:b1:71:54:9c:d6:9b:67:93:db:2f:03:3e:16:6f:1e:03:c9:
+ 53:84:a3:56:60:1e:78:94:1b:a2:a8:6f:a3:a4:8b:52:91:d7:
+ dd:5c:95:bb:ef:b5:16:49:e9:a5:42:4f:34:f2:47:ff:ae:81:
+ 7f:13:54:b7:20:c4:70:15:cb:81:0a:81:cb:74:57:dc:9c:df:
+ 24:a4:29:0c:18:f0:1c:e4:ae:07:33:ec:f1:49:3e:55:cf:6e:
+ 4f:0d:54:7b:d3:c9:e8:15:48:d4:c5:bb:dc:35:1c:77:45:07:
+ 48:45:85:bd:d7:7e:53:b8:c0:16:d9:95:cd:8b:8d:7d:c9:60:
+ 4f:d1:a2:9b:e3:d0:30:d6:b4:73:36:e6:d2:f9:03:b2:e3:a4:
+ f5:e5:b8:3e:04:49:00:ba:2e:a6:4a:72:83:72:9d:f7:0b:8c:
+ a9:89:e7:b3:d7:64:1f:d6:e3:60:cb:03:c4:dc:88:e9:9d:25:
+ 01:00:71:cb:03:b4:29:60:25:8f:f9:46:d1:7b:71:ae:cd:53:
+ 12:5b:84:8e:c2:0f:c7:ed:93:19:d9:c9:fa:8f:58:34:76:32:
+ 2f:ae:e1:50:14:61:d4:a8:58:a3:c8:30:13:23:ef:c6:25:8c:
+ 36:8f:1c:80
+-----BEGIN CERTIFICATE-----
+MIIG5jCCBc6gAwIBAgIQAze5KDR8YKauxa2xIX84YDANBgkqhkiG9w0BAQUFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTA3MTEwOTEyMDAwMFoXDTIxMTExMDAwMDAwMFowaTEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTEoMCYGA1UEAxMfRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
+RVYgQ0EtMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPOWYth1bhn/
+PzR8SU8xfg0ETpmB4rOFVZEwscCvcLssqOcYqj9495BoUoYBiJfiOwZlkKq9ZXbC
+7L4QWzd4g2B1Rca9dKq2n6Q6AVAXxDlpufFP74LByvNK28yeUE9NQKM6kOeGZrzw
+PnYoTNF1gJ5qNRQ1A57bDIzCKK1Qss72kaPDpQpYSfZ1RGy6+c7pqzoC4E3zrOJ6
+4GAiBTyC01Li85xH+DvYskuTVkq/cKs+6WjIHY9YHSpNXic9rQpZL1oRIEDZaARo
+LfTAhAsKG3jf7RpY3PtBWm1r8u0c7lwytlzs16YDMqbo3rcoJ1mIgP97rYlY1R4U
+pPKwcNSgPqcCAwEAAaOCA4UwggOBMA4GA1UdDwEB/wQEAwIBhjA7BgNVHSUENDAy
+BggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDBggrBgEFBQcDBAYIKwYBBQUH
+AwgwggHEBgNVHSAEggG7MIIBtzCCAbMGCWCGSAGG/WwCATCCAaQwOgYIKwYBBQUH
+AgEWLmh0dHA6Ly93d3cuZGlnaWNlcnQuY29tL3NzbC1jcHMtcmVwb3NpdG9yeS5o
+dG0wggFkBggrBgEFBQcCAjCCAVYeggFSAEEAbgB5ACAAdQBzAGUAIABvAGYAIAB0
+AGgAaQBzACAAQwBlAHIAdABpAGYAaQBjAGEAdABlACAAYwBvAG4AcwB0AGkAdAB1
+AHQAZQBzACAAYQBjAGMAZQBwAHQAYQBuAGMAZQAgAG8AZgAgAHQAaABlACAARABp
+AGcAaQBDAGUAcgB0ACAARQBWACAAQwBQAFMAIABhAG4AZAAgAHQAaABlACAAUgBl
+AGwAeQBpAG4AZwAgAFAAYQByAHQAeQAgAEEAZwByAGUAZQBtAGUAbgB0ACAAdwBo
+AGkAYwBoACAAbABpAG0AaQB0ACAAbABpAGEAYgBpAGwAaQB0AHkAIABhAG4AZAAg
+AGEAcgBlACAAaQBuAGMAbwByAHAAbwByAGEAdABlAGQAIABoAGUAcgBlAGkAbgAg
+AGIAeQAgAHIAZQBmAGUAcgBlAG4AYwBlAC4wEgYDVR0TAQH/BAgwBgEB/wIBADCB
+gwYIKwYBBQUHAQEEdzB1MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy
+dC5jb20wTQYIKwYBBQUHMAKGQWh0dHA6Ly93d3cuZGlnaWNlcnQuY29tL0NBQ2Vy
+dHMvRGlnaUNlcnRIaWdoQXNzdXJhbmNlRVZSb290Q0EuY3J0MIGPBgNVHR8EgYcw
+gYQwQKA+oDyGOmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEhpZ2hB
+c3N1cmFuY2VFVlJvb3RDQS5jcmwwQKA+oDyGOmh0dHA6Ly9jcmw0LmRpZ2ljZXJ0
+LmNvbS9EaWdpQ2VydEhpZ2hBc3N1cmFuY2VFVlJvb3RDQS5jcmwwHQYDVR0OBBYE
+FExYyyXwQU9S9CjIgUObpqig5pLlMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSYJhoI
+Au9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQBMeheHKF0XvLIyc7/NLvVYMR3wsXFU
+nNabZ5PbLwM+Fm8eA8lThKNWYB54lBuiqG+jpItSkdfdXJW777UWSemlQk808kf/
+roF/E1S3IMRwFcuBCoHLdFfcnN8kpCkMGPAc5K4HM+zxST5Vz25PDVR708noFUjU
+xbvcNRx3RQdIRYW9135TuMAW2ZXNi419yWBP0aKb49Aw1rRzNubS+QOy46T15bg+
+BEkAui6mSnKDcp33C4ypieez12Qf1uNgywPE3IjpnSUBAHHLA7QpYCWP+UbRe3Gu
+zVMSW4SOwg/H7ZMZ2cn6j1g0djIvruFQFGHUqFijyDATI+/GJYw2jxyA
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert53[] = {
+ 0x30, 0x82, 0x06, 0xe6, 0x30, 0x82, 0x05, 0xce, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x03, 0x37, 0xb9, 0x28, 0x34, 0x7c, 0x60, 0xa6, 0xae,
+ 0xc5, 0xad, 0xb1, 0x21, 0x7f, 0x38, 0x60, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x6c,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+ 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+ 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x22, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48,
+ 0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63,
+ 0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+ 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x37, 0x31, 0x31, 0x30, 0x39, 0x31, 0x32,
+ 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31, 0x31,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x69, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44, 0x69,
+ 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x19,
+ 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77, 0x77, 0x77,
+ 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1f,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48, 0x69, 0x67,
+ 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x20,
+ 0x45, 0x56, 0x20, 0x43, 0x41, 0x2d, 0x31, 0x30, 0x82, 0x01, 0x22, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+ 0x82, 0x01, 0x01, 0x00, 0xf3, 0x96, 0x62, 0xd8, 0x75, 0x6e, 0x19, 0xff,
+ 0x3f, 0x34, 0x7c, 0x49, 0x4f, 0x31, 0x7e, 0x0d, 0x04, 0x4e, 0x99, 0x81,
+ 0xe2, 0xb3, 0x85, 0x55, 0x91, 0x30, 0xb1, 0xc0, 0xaf, 0x70, 0xbb, 0x2c,
+ 0xa8, 0xe7, 0x18, 0xaa, 0x3f, 0x78, 0xf7, 0x90, 0x68, 0x52, 0x86, 0x01,
+ 0x88, 0x97, 0xe2, 0x3b, 0x06, 0x65, 0x90, 0xaa, 0xbd, 0x65, 0x76, 0xc2,
+ 0xec, 0xbe, 0x10, 0x5b, 0x37, 0x78, 0x83, 0x60, 0x75, 0x45, 0xc6, 0xbd,
+ 0x74, 0xaa, 0xb6, 0x9f, 0xa4, 0x3a, 0x01, 0x50, 0x17, 0xc4, 0x39, 0x69,
+ 0xb9, 0xf1, 0x4f, 0xef, 0x82, 0xc1, 0xca, 0xf3, 0x4a, 0xdb, 0xcc, 0x9e,
+ 0x50, 0x4f, 0x4d, 0x40, 0xa3, 0x3a, 0x90, 0xe7, 0x86, 0x66, 0xbc, 0xf0,
+ 0x3e, 0x76, 0x28, 0x4c, 0xd1, 0x75, 0x80, 0x9e, 0x6a, 0x35, 0x14, 0x35,
+ 0x03, 0x9e, 0xdb, 0x0c, 0x8c, 0xc2, 0x28, 0xad, 0x50, 0xb2, 0xce, 0xf6,
+ 0x91, 0xa3, 0xc3, 0xa5, 0x0a, 0x58, 0x49, 0xf6, 0x75, 0x44, 0x6c, 0xba,
+ 0xf9, 0xce, 0xe9, 0xab, 0x3a, 0x02, 0xe0, 0x4d, 0xf3, 0xac, 0xe2, 0x7a,
+ 0xe0, 0x60, 0x22, 0x05, 0x3c, 0x82, 0xd3, 0x52, 0xe2, 0xf3, 0x9c, 0x47,
+ 0xf8, 0x3b, 0xd8, 0xb2, 0x4b, 0x93, 0x56, 0x4a, 0xbf, 0x70, 0xab, 0x3e,
+ 0xe9, 0x68, 0xc8, 0x1d, 0x8f, 0x58, 0x1d, 0x2a, 0x4d, 0x5e, 0x27, 0x3d,
+ 0xad, 0x0a, 0x59, 0x2f, 0x5a, 0x11, 0x20, 0x40, 0xd9, 0x68, 0x04, 0x68,
+ 0x2d, 0xf4, 0xc0, 0x84, 0x0b, 0x0a, 0x1b, 0x78, 0xdf, 0xed, 0x1a, 0x58,
+ 0xdc, 0xfb, 0x41, 0x5a, 0x6d, 0x6b, 0xf2, 0xed, 0x1c, 0xee, 0x5c, 0x32,
+ 0xb6, 0x5c, 0xec, 0xd7, 0xa6, 0x03, 0x32, 0xa6, 0xe8, 0xde, 0xb7, 0x28,
+ 0x27, 0x59, 0x88, 0x80, 0xff, 0x7b, 0xad, 0x89, 0x58, 0xd5, 0x1e, 0x14,
+ 0xa4, 0xf2, 0xb0, 0x70, 0xd4, 0xa0, 0x3e, 0xa7, 0x02, 0x03, 0x01, 0x00,
+ 0x01, 0xa3, 0x82, 0x03, 0x85, 0x30, 0x82, 0x03, 0x81, 0x30, 0x0e, 0x06,
+ 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+ 0x86, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x34, 0x30, 0x32,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x03, 0x03, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x03, 0x04, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x03, 0x08, 0x30, 0x82, 0x01, 0xc4, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+ 0x82, 0x01, 0xbb, 0x30, 0x82, 0x01, 0xb7, 0x30, 0x82, 0x01, 0xb3, 0x06,
+ 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xfd, 0x6c, 0x02, 0x01, 0x30, 0x82,
+ 0x01, 0xa4, 0x30, 0x3a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x02, 0x01, 0x16, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
+ 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x73, 0x6c, 0x2d, 0x63, 0x70, 0x73, 0x2d,
+ 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x68,
+ 0x74, 0x6d, 0x30, 0x82, 0x01, 0x64, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x02, 0x02, 0x30, 0x82, 0x01, 0x56, 0x1e, 0x82, 0x01, 0x52,
+ 0x00, 0x41, 0x00, 0x6e, 0x00, 0x79, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x43, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x74, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69, 0x00, 0x63,
+ 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x73, 0x00, 0x74, 0x00, 0x69, 0x00, 0x74, 0x00, 0x75,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x63,
+ 0x00, 0x63, 0x00, 0x65, 0x00, 0x70, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6e,
+ 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44, 0x00, 0x69,
+ 0x00, 0x67, 0x00, 0x69, 0x00, 0x43, 0x00, 0x65, 0x00, 0x72, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x45, 0x00, 0x56, 0x00, 0x20, 0x00, 0x43, 0x00, 0x50,
+ 0x00, 0x53, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65,
+ 0x00, 0x6c, 0x00, 0x79, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x50, 0x00, 0x61, 0x00, 0x72, 0x00, 0x74, 0x00, 0x79, 0x00, 0x20,
+ 0x00, 0x41, 0x00, 0x67, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x6d,
+ 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x77, 0x00, 0x68,
+ 0x00, 0x69, 0x00, 0x63, 0x00, 0x68, 0x00, 0x20, 0x00, 0x6c, 0x00, 0x69,
+ 0x00, 0x6d, 0x00, 0x69, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6c, 0x00, 0x69,
+ 0x00, 0x61, 0x00, 0x62, 0x00, 0x69, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x79, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e,
+ 0x00, 0x63, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x72,
+ 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x65, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20,
+ 0x00, 0x62, 0x00, 0x79, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x66,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x65,
+ 0x00, 0x2e, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
+ 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x81,
+ 0x83, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x77, 0x30, 0x75, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72,
+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4d, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x41, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65,
+ 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x41, 0x43, 0x65, 0x72,
+ 0x74, 0x73, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x48,
+ 0x69, 0x67, 0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65,
+ 0x45, 0x56, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x74,
+ 0x30, 0x81, 0x8f, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x81, 0x87, 0x30,
+ 0x81, 0x84, 0x30, 0x40, 0xa0, 0x3e, 0xa0, 0x3c, 0x86, 0x3a, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x33, 0x2e, 0x64, 0x69,
+ 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44,
+ 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x48, 0x69, 0x67, 0x68, 0x41,
+ 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x56, 0x52, 0x6f,
+ 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x40, 0xa0, 0x3e,
+ 0xa0, 0x3c, 0x86, 0x3a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+ 0x72, 0x6c, 0x34, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72,
+ 0x74, 0x48, 0x69, 0x67, 0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e,
+ 0x63, 0x65, 0x45, 0x56, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63,
+ 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0x4c, 0x58, 0xcb, 0x25, 0xf0, 0x41, 0x4f, 0x52, 0xf4, 0x28, 0xc8,
+ 0x81, 0x43, 0x9b, 0xa6, 0xa8, 0xa0, 0xe6, 0x92, 0xe5, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb1, 0x3e,
+ 0xc3, 0x69, 0x03, 0xf8, 0xbf, 0x47, 0x01, 0xd4, 0x98, 0x26, 0x1a, 0x08,
+ 0x02, 0xef, 0x63, 0x64, 0x2b, 0xc3, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x01, 0x00, 0x4c, 0x7a, 0x17, 0x87, 0x28, 0x5d, 0x17, 0xbc, 0xb2, 0x32,
+ 0x73, 0xbf, 0xcd, 0x2e, 0xf5, 0x58, 0x31, 0x1d, 0xf0, 0xb1, 0x71, 0x54,
+ 0x9c, 0xd6, 0x9b, 0x67, 0x93, 0xdb, 0x2f, 0x03, 0x3e, 0x16, 0x6f, 0x1e,
+ 0x03, 0xc9, 0x53, 0x84, 0xa3, 0x56, 0x60, 0x1e, 0x78, 0x94, 0x1b, 0xa2,
+ 0xa8, 0x6f, 0xa3, 0xa4, 0x8b, 0x52, 0x91, 0xd7, 0xdd, 0x5c, 0x95, 0xbb,
+ 0xef, 0xb5, 0x16, 0x49, 0xe9, 0xa5, 0x42, 0x4f, 0x34, 0xf2, 0x47, 0xff,
+ 0xae, 0x81, 0x7f, 0x13, 0x54, 0xb7, 0x20, 0xc4, 0x70, 0x15, 0xcb, 0x81,
+ 0x0a, 0x81, 0xcb, 0x74, 0x57, 0xdc, 0x9c, 0xdf, 0x24, 0xa4, 0x29, 0x0c,
+ 0x18, 0xf0, 0x1c, 0xe4, 0xae, 0x07, 0x33, 0xec, 0xf1, 0x49, 0x3e, 0x55,
+ 0xcf, 0x6e, 0x4f, 0x0d, 0x54, 0x7b, 0xd3, 0xc9, 0xe8, 0x15, 0x48, 0xd4,
+ 0xc5, 0xbb, 0xdc, 0x35, 0x1c, 0x77, 0x45, 0x07, 0x48, 0x45, 0x85, 0xbd,
+ 0xd7, 0x7e, 0x53, 0xb8, 0xc0, 0x16, 0xd9, 0x95, 0xcd, 0x8b, 0x8d, 0x7d,
+ 0xc9, 0x60, 0x4f, 0xd1, 0xa2, 0x9b, 0xe3, 0xd0, 0x30, 0xd6, 0xb4, 0x73,
+ 0x36, 0xe6, 0xd2, 0xf9, 0x03, 0xb2, 0xe3, 0xa4, 0xf5, 0xe5, 0xb8, 0x3e,
+ 0x04, 0x49, 0x00, 0xba, 0x2e, 0xa6, 0x4a, 0x72, 0x83, 0x72, 0x9d, 0xf7,
+ 0x0b, 0x8c, 0xa9, 0x89, 0xe7, 0xb3, 0xd7, 0x64, 0x1f, 0xd6, 0xe3, 0x60,
+ 0xcb, 0x03, 0xc4, 0xdc, 0x88, 0xe9, 0x9d, 0x25, 0x01, 0x00, 0x71, 0xcb,
+ 0x03, 0xb4, 0x29, 0x60, 0x25, 0x8f, 0xf9, 0x46, 0xd1, 0x7b, 0x71, 0xae,
+ 0xcd, 0x53, 0x12, 0x5b, 0x84, 0x8e, 0xc2, 0x0f, 0xc7, 0xed, 0x93, 0x19,
+ 0xd9, 0xc9, 0xfa, 0x8f, 0x58, 0x34, 0x76, 0x32, 0x2f, 0xae, 0xe1, 0x50,
+ 0x14, 0x61, 0xd4, 0xa8, 0x58, 0xa3, 0xc8, 0x30, 0x13, 0x23, 0xef, 0xc6,
+ 0x25, 0x8c, 0x36, 0x8f, 0x1c, 0x80,
+};
--- /dev/null
+/* Copyright (c) 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.
+ */
+
+/* This file contains common certificates. It's designed to be #included in
+ * another file, in a namespace. */
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 1227750 (0x12bbe6)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
+ Validity
+ Not Before: May 21 04:00:00 2002 GMT
+ Not After : Aug 21 04:00:00 2018 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:da:cc:18:63:30:fd:f4:17:23:1a:56:7e:5b:df:
+ 3c:6c:38:e4:71:b7:78:91:d4:bc:a1:d8:4c:f8:a8:
+ 43:b6:03:e9:4d:21:07:08:88:da:58:2f:66:39:29:
+ bd:05:78:8b:9d:38:e8:05:b7:6a:7e:71:a4:e6:c4:
+ 60:a6:b0:ef:80:e4:89:28:0f:9e:25:d6:ed:83:f3:
+ ad:a6:91:c7:98:c9:42:18:35:14:9d:ad:98:46:92:
+ 2e:4f:ca:f1:87:43:c1:16:95:57:2d:50:ef:89:2d:
+ 80:7a:57:ad:f2:ee:5f:6b:d2:00:8d:b9:14:f8:14:
+ 15:35:d9:c0:46:a3:7b:72:c8:91:bf:c9:55:2b:cd:
+ d0:97:3e:9c:26:64:cc:df:ce:83:19:71:ca:4e:e6:
+ d4:d5:7b:a9:19:cd:55:de:c8:ec:d2:5e:38:53:e5:
+ 5c:4f:8c:2d:fe:50:23:36:fc:66:e6:cb:8e:a4:39:
+ 19:00:b7:95:02:39:91:0b:0e:fe:38:2e:d1:1d:05:
+ 9a:f6:4d:3e:6f:0f:07:1d:af:2c:1e:8f:60:39:e2:
+ fa:36:53:13:39:d4:5e:26:2b:db:3d:a8:14:bd:32:
+ eb:18:03:28:52:04:71:e5:ab:33:3d:e1:38:bb:07:
+ 36:84:62:9c:79:ea:16:30:f4:5f:c0:2b:e8:71:6b:
+ e4:f9
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:98:90:9F:D4
+
+ X509v3 Subject Key Identifier:
+ C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.geotrust.com/crls/secureca.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.geotrust.com/resources/repository
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 76:e1:12:6e:4e:4b:16:12:86:30:06:b2:81:08:cf:f0:08:c7:
+ c7:71:7e:66:ee:c2:ed:d4:3b:1f:ff:f0:f0:c8:4e:d6:43:38:
+ b0:b9:30:7d:18:d0:55:83:a2:6a:cb:36:11:9c:e8:48:66:a3:
+ 6d:7f:b8:13:d4:47:fe:8b:5a:5c:73:fc:ae:d9:1b:32:19:38:
+ ab:97:34:14:aa:96:d2:eb:a3:1c:14:08:49:b6:bb:e5:91:ef:
+ 83:36:eb:1d:56:6f:ca:da:bc:73:63:90:e4:7f:7b:3e:22:cb:
+ 3d:07:ed:5f:38:74:9c:e3:03:50:4e:a1:af:98:ee:61:f2:84:
+ 3f:12
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw
+WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE
+AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m
+OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu
+T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c
+JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR
+Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz
+PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm
+aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM
+TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g
+LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO
+BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv
+dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB
+AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL
+NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W
+b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert0[] = {
+ 0x30, 0x82, 0x03, 0x7d, 0x30, 0x82, 0x02, 0xe6, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x12, 0xbb, 0xe6, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x4e, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07, 0x45,
+ 0x71, 0x75, 0x69, 0x66, 0x61, 0x78, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03,
+ 0x55, 0x04, 0x0b, 0x13, 0x24, 0x45, 0x71, 0x75, 0x69, 0x66, 0x61, 0x78,
+ 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68,
+ 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x32, 0x30,
+ 0x35, 0x32, 0x31, 0x30, 0x34, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d,
+ 0x31, 0x38, 0x30, 0x38, 0x32, 0x31, 0x30, 0x34, 0x30, 0x30, 0x30, 0x30,
+ 0x5a, 0x30, 0x42, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x12, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01,
+ 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+ 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0xcc, 0x18, 0x63, 0x30, 0xfd,
+ 0xf4, 0x17, 0x23, 0x1a, 0x56, 0x7e, 0x5b, 0xdf, 0x3c, 0x6c, 0x38, 0xe4,
+ 0x71, 0xb7, 0x78, 0x91, 0xd4, 0xbc, 0xa1, 0xd8, 0x4c, 0xf8, 0xa8, 0x43,
+ 0xb6, 0x03, 0xe9, 0x4d, 0x21, 0x07, 0x08, 0x88, 0xda, 0x58, 0x2f, 0x66,
+ 0x39, 0x29, 0xbd, 0x05, 0x78, 0x8b, 0x9d, 0x38, 0xe8, 0x05, 0xb7, 0x6a,
+ 0x7e, 0x71, 0xa4, 0xe6, 0xc4, 0x60, 0xa6, 0xb0, 0xef, 0x80, 0xe4, 0x89,
+ 0x28, 0x0f, 0x9e, 0x25, 0xd6, 0xed, 0x83, 0xf3, 0xad, 0xa6, 0x91, 0xc7,
+ 0x98, 0xc9, 0x42, 0x18, 0x35, 0x14, 0x9d, 0xad, 0x98, 0x46, 0x92, 0x2e,
+ 0x4f, 0xca, 0xf1, 0x87, 0x43, 0xc1, 0x16, 0x95, 0x57, 0x2d, 0x50, 0xef,
+ 0x89, 0x2d, 0x80, 0x7a, 0x57, 0xad, 0xf2, 0xee, 0x5f, 0x6b, 0xd2, 0x00,
+ 0x8d, 0xb9, 0x14, 0xf8, 0x14, 0x15, 0x35, 0xd9, 0xc0, 0x46, 0xa3, 0x7b,
+ 0x72, 0xc8, 0x91, 0xbf, 0xc9, 0x55, 0x2b, 0xcd, 0xd0, 0x97, 0x3e, 0x9c,
+ 0x26, 0x64, 0xcc, 0xdf, 0xce, 0x83, 0x19, 0x71, 0xca, 0x4e, 0xe6, 0xd4,
+ 0xd5, 0x7b, 0xa9, 0x19, 0xcd, 0x55, 0xde, 0xc8, 0xec, 0xd2, 0x5e, 0x38,
+ 0x53, 0xe5, 0x5c, 0x4f, 0x8c, 0x2d, 0xfe, 0x50, 0x23, 0x36, 0xfc, 0x66,
+ 0xe6, 0xcb, 0x8e, 0xa4, 0x39, 0x19, 0x00, 0xb7, 0x95, 0x02, 0x39, 0x91,
+ 0x0b, 0x0e, 0xfe, 0x38, 0x2e, 0xd1, 0x1d, 0x05, 0x9a, 0xf6, 0x4d, 0x3e,
+ 0x6f, 0x0f, 0x07, 0x1d, 0xaf, 0x2c, 0x1e, 0x8f, 0x60, 0x39, 0xe2, 0xfa,
+ 0x36, 0x53, 0x13, 0x39, 0xd4, 0x5e, 0x26, 0x2b, 0xdb, 0x3d, 0xa8, 0x14,
+ 0xbd, 0x32, 0xeb, 0x18, 0x03, 0x28, 0x52, 0x04, 0x71, 0xe5, 0xab, 0x33,
+ 0x3d, 0xe1, 0x38, 0xbb, 0x07, 0x36, 0x84, 0x62, 0x9c, 0x79, 0xea, 0x16,
+ 0x30, 0xf4, 0x5f, 0xc0, 0x2b, 0xe8, 0x71, 0x6b, 0xe4, 0xf9, 0x02, 0x03,
+ 0x01, 0x00, 0x01, 0xa3, 0x81, 0xf0, 0x30, 0x81, 0xed, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x48, 0xe6,
+ 0x68, 0xf9, 0x2b, 0xd2, 0xb2, 0x95, 0xd7, 0x47, 0xd8, 0x23, 0x20, 0x10,
+ 0x4f, 0x33, 0x98, 0x90, 0x9f, 0xd4, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+ 0x0e, 0x04, 0x16, 0x04, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb,
+ 0xab, 0x05, 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc,
+ 0x4e, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
+ 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3a,
+ 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0,
+ 0x2d, 0xa0, 0x2b, 0x86, 0x29, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x63, 0x72, 0x6c, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x73, 0x65,
+ 0x63, 0x75, 0x72, 0x65, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x4e,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x47, 0x30, 0x45, 0x30, 0x43, 0x06,
+ 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74, 0x74,
+ 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f,
+ 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81,
+ 0x00, 0x76, 0xe1, 0x12, 0x6e, 0x4e, 0x4b, 0x16, 0x12, 0x86, 0x30, 0x06,
+ 0xb2, 0x81, 0x08, 0xcf, 0xf0, 0x08, 0xc7, 0xc7, 0x71, 0x7e, 0x66, 0xee,
+ 0xc2, 0xed, 0xd4, 0x3b, 0x1f, 0xff, 0xf0, 0xf0, 0xc8, 0x4e, 0xd6, 0x43,
+ 0x38, 0xb0, 0xb9, 0x30, 0x7d, 0x18, 0xd0, 0x55, 0x83, 0xa2, 0x6a, 0xcb,
+ 0x36, 0x11, 0x9c, 0xe8, 0x48, 0x66, 0xa3, 0x6d, 0x7f, 0xb8, 0x13, 0xd4,
+ 0x47, 0xfe, 0x8b, 0x5a, 0x5c, 0x73, 0xfc, 0xae, 0xd9, 0x1b, 0x32, 0x19,
+ 0x38, 0xab, 0x97, 0x34, 0x14, 0xaa, 0x96, 0xd2, 0xeb, 0xa3, 0x1c, 0x14,
+ 0x08, 0x49, 0xb6, 0xbb, 0xe5, 0x91, 0xef, 0x83, 0x36, 0xeb, 0x1d, 0x56,
+ 0x6f, 0xca, 0xda, 0xbc, 0x73, 0x63, 0x90, 0xe4, 0x7f, 0x7b, 0x3e, 0x22,
+ 0xcb, 0x3d, 0x07, 0xed, 0x5f, 0x38, 0x74, 0x9c, 0xe3, 0x03, 0x50, 0x4e,
+ 0xa1, 0xaf, 0x98, 0xee, 0x61, 0xf2, 0x84, 0x3f, 0x12,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 880226 (0xd6e62)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
+ Validity
+ Not Before: Nov 27 00:00:00 2006 GMT
+ Not After : Aug 21 16:15:00 2018 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Primary Certification Authority
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:be:b8:15:7b:ff:d4:7c:7d:67:ad:83:64:7b:c8:
+ 42:53:2d:df:f6:84:08:20:61:d6:01:59:6a:9c:44:
+ 11:af:ef:76:fd:95:7e:ce:61:30:bb:7a:83:5f:02:
+ bd:01:66:ca:ee:15:8d:6f:a1:30:9c:bd:a1:85:9e:
+ 94:3a:f3:56:88:00:31:cf:d8:ee:6a:96:02:d9:ed:
+ 03:8c:fb:75:6d:e7:ea:b8:55:16:05:16:9a:f4:e0:
+ 5e:b1:88:c0:64:85:5c:15:4d:88:c7:b7:ba:e0:75:
+ e9:ad:05:3d:9d:c7:89:48:e0:bb:28:c8:03:e1:30:
+ 93:64:5e:52:c0:59:70:22:35:57:88:8a:f1:95:0a:
+ 83:d7:bc:31:73:01:34:ed:ef:46:71:e0:6b:02:a8:
+ 35:72:6b:97:9b:66:e0:cb:1c:79:5f:d8:1a:04:68:
+ 1e:47:02:e6:9d:60:e2:36:97:01:df:ce:35:92:df:
+ be:67:c7:6d:77:59:3b:8f:9d:d6:90:15:94:bc:42:
+ 34:10:c1:39:f9:b1:27:3e:7e:d6:8a:75:c5:b2:af:
+ 96:d3:a2:de:9b:e4:98:be:7d:e1:e9:81:ad:b6:6f:
+ fc:d7:0e:da:e0:34:b0:0d:1a:77:e7:e3:08:98:ef:
+ 58:fa:9c:84:b7:36:af:c2:df:ac:d2:f4:10:06:70:
+ 71:35
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 2C:D5:50:41:97:15:8B:F0:8F:36:61:5B:4A:FB:6B:D9:99:C9:33:92
+ X509v3 Authority Key Identifier:
+ keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:98:90:9F:D4
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.geotrust.com/crls/secureca.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.geotrust.com/resources/cps
+
+ Signature Algorithm: sha1WithRSAEncryption
+ af:f3:0e:d6:72:ab:c7:a9:97:ca:2a:6b:84:39:de:79:a9:f0:
+ 81:e5:08:67:ab:d7:2f:20:02:01:71:0c:04:22:c9:1e:88:95:
+ 03:c9:49:3a:af:67:08:49:b0:d5:08:f5:20:3d:80:91:a0:c5:
+ 87:a3:fb:c9:a3:17:91:f9:a8:2f:ae:e9:0f:df:96:72:0f:75:
+ 17:80:5d:78:01:4d:9f:1f:6d:7b:d8:f5:42:38:23:1a:99:93:
+ f4:83:be:3b:35:74:e7:37:13:35:7a:ac:b4:b6:90:82:6c:27:
+ a4:e0:ec:9e:35:bd:bf:e5:29:a1:47:9f:5b:32:fc:e9:99:7d:
+ 2b:39
+-----BEGIN CERTIFICATE-----
+MIIDizCCAvSgAwIBAgIDDW5iMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMTI3MDAwMDAwWhcNMTgwODIxMTYxNTAw
+WjBYMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UE
+AxMoR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL64FXv/1Hx9Z62DZHvIQlMt3/aE
+CCBh1gFZapxEEa/vdv2Vfs5hMLt6g18CvQFmyu4VjW+hMJy9oYWelDrzVogAMc/Y
+7mqWAtntA4z7dW3n6rhVFgUWmvTgXrGIwGSFXBVNiMe3uuB16a0FPZ3HiUjguyjI
+A+Ewk2ReUsBZcCI1V4iK8ZUKg9e8MXMBNO3vRnHgawKoNXJrl5tm4MsceV/YGgRo
+HkcC5p1g4jaXAd/ONZLfvmfHbXdZO4+d1pAVlLxCNBDBOfmxJz5+1op1xbKvltOi
+3pvkmL594emBrbZv/NcO2uA0sA0ad+fjCJjvWPqchLc2r8LfrNL0EAZwcTUCAwEA
+AaOB6DCB5TAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFCzVUEGXFYvwjzZhW0r7
+a9mZyTOSMB8GA1UdIwQYMBaAFEjmaPkr0rKV10fYIyAQTzOYkJ/UMA8GA1UdEwEB
+/wQFMAMBAf8wOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5nZW90cnVzdC5j
+b20vY3Jscy9zZWN1cmVjYS5jcmwwRgYDVR0gBD8wPTA7BgRVHSAAMDMwMQYIKwYB
+BQUHAgEWJWh0dHA6Ly93d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwDQYJ
+KoZIhvcNAQEFBQADgYEAr/MO1nKrx6mXyiprhDneeanwgeUIZ6vXLyACAXEMBCLJ
+HoiVA8lJOq9nCEmw1Qj1ID2AkaDFh6P7yaMXkfmoL67pD9+Wcg91F4BdeAFNnx9t
+e9j1QjgjGpmT9IO+OzV05zcTNXqstLaQgmwnpODsnjW9v+UpoUefWzL86Zl9Kzk=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert1[] = {
+ 0x30, 0x82, 0x03, 0x8b, 0x30, 0x82, 0x02, 0xf4, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x0d, 0x6e, 0x62, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x4e, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07, 0x45,
+ 0x71, 0x75, 0x69, 0x66, 0x61, 0x78, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03,
+ 0x55, 0x04, 0x0b, 0x13, 0x24, 0x45, 0x71, 0x75, 0x69, 0x66, 0x61, 0x78,
+ 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68,
+ 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31,
+ 0x31, 0x32, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d,
+ 0x31, 0x38, 0x30, 0x38, 0x32, 0x31, 0x31, 0x36, 0x31, 0x35, 0x30, 0x30,
+ 0x5a, 0x30, 0x58, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x28, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x82, 0x01, 0x22, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+ 0x82, 0x01, 0x01, 0x00, 0xbe, 0xb8, 0x15, 0x7b, 0xff, 0xd4, 0x7c, 0x7d,
+ 0x67, 0xad, 0x83, 0x64, 0x7b, 0xc8, 0x42, 0x53, 0x2d, 0xdf, 0xf6, 0x84,
+ 0x08, 0x20, 0x61, 0xd6, 0x01, 0x59, 0x6a, 0x9c, 0x44, 0x11, 0xaf, 0xef,
+ 0x76, 0xfd, 0x95, 0x7e, 0xce, 0x61, 0x30, 0xbb, 0x7a, 0x83, 0x5f, 0x02,
+ 0xbd, 0x01, 0x66, 0xca, 0xee, 0x15, 0x8d, 0x6f, 0xa1, 0x30, 0x9c, 0xbd,
+ 0xa1, 0x85, 0x9e, 0x94, 0x3a, 0xf3, 0x56, 0x88, 0x00, 0x31, 0xcf, 0xd8,
+ 0xee, 0x6a, 0x96, 0x02, 0xd9, 0xed, 0x03, 0x8c, 0xfb, 0x75, 0x6d, 0xe7,
+ 0xea, 0xb8, 0x55, 0x16, 0x05, 0x16, 0x9a, 0xf4, 0xe0, 0x5e, 0xb1, 0x88,
+ 0xc0, 0x64, 0x85, 0x5c, 0x15, 0x4d, 0x88, 0xc7, 0xb7, 0xba, 0xe0, 0x75,
+ 0xe9, 0xad, 0x05, 0x3d, 0x9d, 0xc7, 0x89, 0x48, 0xe0, 0xbb, 0x28, 0xc8,
+ 0x03, 0xe1, 0x30, 0x93, 0x64, 0x5e, 0x52, 0xc0, 0x59, 0x70, 0x22, 0x35,
+ 0x57, 0x88, 0x8a, 0xf1, 0x95, 0x0a, 0x83, 0xd7, 0xbc, 0x31, 0x73, 0x01,
+ 0x34, 0xed, 0xef, 0x46, 0x71, 0xe0, 0x6b, 0x02, 0xa8, 0x35, 0x72, 0x6b,
+ 0x97, 0x9b, 0x66, 0xe0, 0xcb, 0x1c, 0x79, 0x5f, 0xd8, 0x1a, 0x04, 0x68,
+ 0x1e, 0x47, 0x02, 0xe6, 0x9d, 0x60, 0xe2, 0x36, 0x97, 0x01, 0xdf, 0xce,
+ 0x35, 0x92, 0xdf, 0xbe, 0x67, 0xc7, 0x6d, 0x77, 0x59, 0x3b, 0x8f, 0x9d,
+ 0xd6, 0x90, 0x15, 0x94, 0xbc, 0x42, 0x34, 0x10, 0xc1, 0x39, 0xf9, 0xb1,
+ 0x27, 0x3e, 0x7e, 0xd6, 0x8a, 0x75, 0xc5, 0xb2, 0xaf, 0x96, 0xd3, 0xa2,
+ 0xde, 0x9b, 0xe4, 0x98, 0xbe, 0x7d, 0xe1, 0xe9, 0x81, 0xad, 0xb6, 0x6f,
+ 0xfc, 0xd7, 0x0e, 0xda, 0xe0, 0x34, 0xb0, 0x0d, 0x1a, 0x77, 0xe7, 0xe3,
+ 0x08, 0x98, 0xef, 0x58, 0xfa, 0x9c, 0x84, 0xb7, 0x36, 0xaf, 0xc2, 0xdf,
+ 0xac, 0xd2, 0xf4, 0x10, 0x06, 0x70, 0x71, 0x35, 0x02, 0x03, 0x01, 0x00,
+ 0x01, 0xa3, 0x81, 0xe8, 0x30, 0x81, 0xe5, 0x30, 0x0e, 0x06, 0x03, 0x55,
+ 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2c, 0xd5,
+ 0x50, 0x41, 0x97, 0x15, 0x8b, 0xf0, 0x8f, 0x36, 0x61, 0x5b, 0x4a, 0xfb,
+ 0x6b, 0xd9, 0x99, 0xc9, 0x33, 0x92, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x48, 0xe6, 0x68, 0xf9, 0x2b,
+ 0xd2, 0xb2, 0x95, 0xd7, 0x47, 0xd8, 0x23, 0x20, 0x10, 0x4f, 0x33, 0x98,
+ 0x90, 0x9f, 0xd4, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x3a, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0, 0x2d, 0xa0,
+ 0x2b, 0x86, 0x29, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x6c, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x75,
+ 0x72, 0x65, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x46, 0x06, 0x03,
+ 0x55, 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d, 0x30, 0x3b, 0x06, 0x04, 0x55,
+ 0x1d, 0x20, 0x00, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+ 0x81, 0x81, 0x00, 0xaf, 0xf3, 0x0e, 0xd6, 0x72, 0xab, 0xc7, 0xa9, 0x97,
+ 0xca, 0x2a, 0x6b, 0x84, 0x39, 0xde, 0x79, 0xa9, 0xf0, 0x81, 0xe5, 0x08,
+ 0x67, 0xab, 0xd7, 0x2f, 0x20, 0x02, 0x01, 0x71, 0x0c, 0x04, 0x22, 0xc9,
+ 0x1e, 0x88, 0x95, 0x03, 0xc9, 0x49, 0x3a, 0xaf, 0x67, 0x08, 0x49, 0xb0,
+ 0xd5, 0x08, 0xf5, 0x20, 0x3d, 0x80, 0x91, 0xa0, 0xc5, 0x87, 0xa3, 0xfb,
+ 0xc9, 0xa3, 0x17, 0x91, 0xf9, 0xa8, 0x2f, 0xae, 0xe9, 0x0f, 0xdf, 0x96,
+ 0x72, 0x0f, 0x75, 0x17, 0x80, 0x5d, 0x78, 0x01, 0x4d, 0x9f, 0x1f, 0x6d,
+ 0x7b, 0xd8, 0xf5, 0x42, 0x38, 0x23, 0x1a, 0x99, 0x93, 0xf4, 0x83, 0xbe,
+ 0x3b, 0x35, 0x74, 0xe7, 0x37, 0x13, 0x35, 0x7a, 0xac, 0xb4, 0xb6, 0x90,
+ 0x82, 0x6c, 0x27, 0xa4, 0xe0, 0xec, 0x9e, 0x35, 0xbd, 0xbf, 0xe5, 0x29,
+ 0xa1, 0x47, 0x9f, 0x5b, 0x32, 0xfc, 0xe9, 0x99, 0x7d, 0x2b, 0x39,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146066 (0x23a92)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Apr 1 00:00:00 2015 GMT
+ Not After : Dec 31 23:59:59 2017 GMT
+ Subject: C=US, O=Google Inc, CN=Google Internet Authority G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:9c:2a:04:77:5c:d8:50:91:3a:06:a3:82:e0:d8:
+ 50:48:bc:89:3f:f1:19:70:1a:88:46:7e:e0:8f:c5:
+ f1:89:ce:21:ee:5a:fe:61:0d:b7:32:44:89:a0:74:
+ 0b:53:4f:55:a4:ce:82:62:95:ee:eb:59:5f:c6:e1:
+ 05:80:12:c4:5e:94:3f:bc:5b:48:38:f4:53:f7:24:
+ e6:fb:91:e9:15:c4:cf:f4:53:0d:f4:4a:fc:9f:54:
+ de:7d:be:a0:6b:6f:87:c0:d0:50:1f:28:30:03:40:
+ da:08:73:51:6c:7f:ff:3a:3c:a7:37:06:8e:bd:4b:
+ 11:04:eb:7d:24:de:e6:f9:fc:31:71:fb:94:d5:60:
+ f3:2e:4a:af:42:d2:cb:ea:c4:6a:1a:b2:cc:53:dd:
+ 15:4b:8b:1f:c8:19:61:1f:cd:9d:a8:3e:63:2b:84:
+ 35:69:65:84:c8:19:c5:46:22:f8:53:95:be:e3:80:
+ 4a:10:c6:2a:ec:ba:97:20:11:c7:39:99:10:04:a0:
+ f0:61:7a:95:25:8c:4e:52:75:e2:b6:ed:08:ca:14:
+ fc:ce:22:6a:b3:4e:cf:46:03:97:97:03:7e:c0:b1:
+ de:7b:af:45:33:cf:ba:3e:71:b7:de:f4:25:25:c2:
+ 0d:35:89:9d:9d:fb:0e:11:79:89:1e:37:c5:af:8e:
+ 72:69
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ 4A:DD:06:16:1B:BC:F6:68:B5:76:F5:81:B6:BB:62:1A:BA:5A:81:2F
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://g.symcd.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g.symcb.com/crls/gtglobal.crl
+
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.11129.2.5.1
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 08:4e:04:a7:80:7f:10:16:43:5e:02:ad:d7:42:80:f4:b0:8e:
+ d2:ae:b3:eb:11:7d:90:84:18:7d:e7:90:15:fb:49:7f:a8:99:
+ 05:91:bb:7a:c9:d6:3c:37:18:09:9a:b6:c7:92:20:07:35:33:
+ 09:e4:28:63:72:0d:b4:e0:32:9c:87:98:c4:1b:76:89:67:c1:
+ 50:58:b0:13:aa:13:1a:1b:32:a5:be:ea:11:95:4c:48:63:49:
+ e9:99:5d:20:37:cc:fe:2a:69:51:16:95:4b:a9:de:49:82:c0:
+ 10:70:f4:2c:f3:ec:bc:24:24:d0:4e:ac:a5:d9:5e:1e:6d:92:
+ c1:a7:ac:48:35:81:f9:e5:e4:9c:65:69:cd:87:a4:41:50:3f:
+ 2e:57:a5:91:51:12:58:0e:8c:09:a1:ac:7a:a4:12:a5:27:f3:
+ 9a:10:97:7d:55:03:06:f7:66:58:5f:5f:64:e1:ab:5d:6d:a5:
+ 39:48:75:98:4c:29:5a:3a:8d:d3:2b:ca:9c:55:04:bf:f4:e6:
+ 14:d5:80:ac:26:ed:17:89:a6:93:6c:5c:a4:cc:b8:f0:66:8e:
+ 64:e3:7d:9a:e2:00:b3:49:c7:e4:0a:aa:dd:5b:83:c7:70:90:
+ 46:4e:be:d0:db:59:96:6c:2e:f5:16:36:de:71:cc:01:c2:12:
+ c1:21:c6:16
+-----BEGIN CERTIFICATE-----
+MIID8DCCAtigAwIBAgIDAjqSMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTUwNDAxMDAwMDAwWhcNMTcxMjMxMjM1OTU5WjBJMQswCQYDVQQG
+EwJVUzETMBEGA1UEChMKR29vZ2xlIEluYzElMCMGA1UEAxMcR29vZ2xlIEludGVy
+bmV0IEF1dGhvcml0eSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AJwqBHdc2FCROgajguDYUEi8iT/xGXAaiEZ+4I/F8YnOIe5a/mENtzJEiaB0C1NP
+VaTOgmKV7utZX8bhBYASxF6UP7xbSDj0U/ck5vuR6RXEz/RTDfRK/J9U3n2+oGtv
+h8DQUB8oMANA2ghzUWx//zo8pzcGjr1LEQTrfSTe5vn8MXH7lNVg8y5Kr0LSy+rE
+ahqyzFPdFUuLH8gZYR/Nnag+YyuENWllhMgZxUYi+FOVvuOAShDGKuy6lyARxzmZ
+EASg8GF6lSWMTlJ14rbtCMoU/M4iarNOz0YDl5cDfsCx3nuvRTPPuj5xt970JSXC
+DTWJnZ37DhF5iR43xa+OcmkCAwEAAaOB5zCB5DAfBgNVHSMEGDAWgBTAephojYn7
+qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUSt0GFhu89mi1dvWBtrtiGrpagS8wDgYD
+VR0PAQH/BAQDAgEGMC4GCCsGAQUFBwEBBCIwIDAeBggrBgEFBQcwAYYSaHR0cDov
+L2cuc3ltY2QuY29tMBIGA1UdEwEB/wQIMAYBAf8CAQAwNQYDVR0fBC4wLDAqoCig
+JoYkaHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMBcGA1UdIAQQ
+MA4wDAYKKwYBBAHWeQIFATANBgkqhkiG9w0BAQsFAAOCAQEACE4Ep4B/EBZDXgKt
+10KA9LCO0q6z6xF9kIQYfeeQFftJf6iZBZG7esnWPDcYCZq2x5IgBzUzCeQoY3IN
+tOAynIeYxBt2iWfBUFiwE6oTGhsypb7qEZVMSGNJ6ZldIDfM/ippURaVS6neSYLA
+EHD0LPPsvCQk0E6spdleHm2SwaesSDWB+eXknGVpzYekQVA/LlelkVESWA6MCaGs
+eqQSpSfzmhCXfVUDBvdmWF9fZOGrXW2lOUh1mEwpWjqN0yvKnFUEv/TmFNWArCbt
+F4mmk2xcpMy48GaOZON9muIAs0nH5Aqq3VuDx3CQRk6+0NtZlmwu9RY23nHMAcIS
+wSHGFg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert2[] = {
+ 0x30, 0x82, 0x03, 0xf0, 0x30, 0x82, 0x02, 0xd8, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x92, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x30,
+ 0x34, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d,
+ 0x31, 0x37, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39,
+ 0x5a, 0x30, 0x49, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x20, 0x49, 0x6e,
+ 0x63, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1c,
+ 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72,
+ 0x6e, 0x65, 0x74, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
+ 0x79, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+ 0x00, 0x9c, 0x2a, 0x04, 0x77, 0x5c, 0xd8, 0x50, 0x91, 0x3a, 0x06, 0xa3,
+ 0x82, 0xe0, 0xd8, 0x50, 0x48, 0xbc, 0x89, 0x3f, 0xf1, 0x19, 0x70, 0x1a,
+ 0x88, 0x46, 0x7e, 0xe0, 0x8f, 0xc5, 0xf1, 0x89, 0xce, 0x21, 0xee, 0x5a,
+ 0xfe, 0x61, 0x0d, 0xb7, 0x32, 0x44, 0x89, 0xa0, 0x74, 0x0b, 0x53, 0x4f,
+ 0x55, 0xa4, 0xce, 0x82, 0x62, 0x95, 0xee, 0xeb, 0x59, 0x5f, 0xc6, 0xe1,
+ 0x05, 0x80, 0x12, 0xc4, 0x5e, 0x94, 0x3f, 0xbc, 0x5b, 0x48, 0x38, 0xf4,
+ 0x53, 0xf7, 0x24, 0xe6, 0xfb, 0x91, 0xe9, 0x15, 0xc4, 0xcf, 0xf4, 0x53,
+ 0x0d, 0xf4, 0x4a, 0xfc, 0x9f, 0x54, 0xde, 0x7d, 0xbe, 0xa0, 0x6b, 0x6f,
+ 0x87, 0xc0, 0xd0, 0x50, 0x1f, 0x28, 0x30, 0x03, 0x40, 0xda, 0x08, 0x73,
+ 0x51, 0x6c, 0x7f, 0xff, 0x3a, 0x3c, 0xa7, 0x37, 0x06, 0x8e, 0xbd, 0x4b,
+ 0x11, 0x04, 0xeb, 0x7d, 0x24, 0xde, 0xe6, 0xf9, 0xfc, 0x31, 0x71, 0xfb,
+ 0x94, 0xd5, 0x60, 0xf3, 0x2e, 0x4a, 0xaf, 0x42, 0xd2, 0xcb, 0xea, 0xc4,
+ 0x6a, 0x1a, 0xb2, 0xcc, 0x53, 0xdd, 0x15, 0x4b, 0x8b, 0x1f, 0xc8, 0x19,
+ 0x61, 0x1f, 0xcd, 0x9d, 0xa8, 0x3e, 0x63, 0x2b, 0x84, 0x35, 0x69, 0x65,
+ 0x84, 0xc8, 0x19, 0xc5, 0x46, 0x22, 0xf8, 0x53, 0x95, 0xbe, 0xe3, 0x80,
+ 0x4a, 0x10, 0xc6, 0x2a, 0xec, 0xba, 0x97, 0x20, 0x11, 0xc7, 0x39, 0x99,
+ 0x10, 0x04, 0xa0, 0xf0, 0x61, 0x7a, 0x95, 0x25, 0x8c, 0x4e, 0x52, 0x75,
+ 0xe2, 0xb6, 0xed, 0x08, 0xca, 0x14, 0xfc, 0xce, 0x22, 0x6a, 0xb3, 0x4e,
+ 0xcf, 0x46, 0x03, 0x97, 0x97, 0x03, 0x7e, 0xc0, 0xb1, 0xde, 0x7b, 0xaf,
+ 0x45, 0x33, 0xcf, 0xba, 0x3e, 0x71, 0xb7, 0xde, 0xf4, 0x25, 0x25, 0xc2,
+ 0x0d, 0x35, 0x89, 0x9d, 0x9d, 0xfb, 0x0e, 0x11, 0x79, 0x89, 0x1e, 0x37,
+ 0xc5, 0xaf, 0x8e, 0x72, 0x69, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81,
+ 0xe7, 0x30, 0x81, 0xe4, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+ 0x18, 0x30, 0x16, 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb,
+ 0xab, 0x05, 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc,
+ 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x4a, 0xdd, 0x06, 0x16, 0x1b, 0xbc, 0xf6, 0x68, 0xb5, 0x76, 0xf5, 0x81,
+ 0xb6, 0xbb, 0x62, 0x1a, 0xba, 0x5a, 0x81, 0x2f, 0x30, 0x0e, 0x06, 0x03,
+ 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+ 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+ 0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+ 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x35, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0,
+ 0x26, 0x86, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e,
+ 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72,
+ 0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x17, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x10,
+ 0x30, 0x0e, 0x30, 0x0c, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6,
+ 0x79, 0x02, 0x05, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
+ 0x08, 0x4e, 0x04, 0xa7, 0x80, 0x7f, 0x10, 0x16, 0x43, 0x5e, 0x02, 0xad,
+ 0xd7, 0x42, 0x80, 0xf4, 0xb0, 0x8e, 0xd2, 0xae, 0xb3, 0xeb, 0x11, 0x7d,
+ 0x90, 0x84, 0x18, 0x7d, 0xe7, 0x90, 0x15, 0xfb, 0x49, 0x7f, 0xa8, 0x99,
+ 0x05, 0x91, 0xbb, 0x7a, 0xc9, 0xd6, 0x3c, 0x37, 0x18, 0x09, 0x9a, 0xb6,
+ 0xc7, 0x92, 0x20, 0x07, 0x35, 0x33, 0x09, 0xe4, 0x28, 0x63, 0x72, 0x0d,
+ 0xb4, 0xe0, 0x32, 0x9c, 0x87, 0x98, 0xc4, 0x1b, 0x76, 0x89, 0x67, 0xc1,
+ 0x50, 0x58, 0xb0, 0x13, 0xaa, 0x13, 0x1a, 0x1b, 0x32, 0xa5, 0xbe, 0xea,
+ 0x11, 0x95, 0x4c, 0x48, 0x63, 0x49, 0xe9, 0x99, 0x5d, 0x20, 0x37, 0xcc,
+ 0xfe, 0x2a, 0x69, 0x51, 0x16, 0x95, 0x4b, 0xa9, 0xde, 0x49, 0x82, 0xc0,
+ 0x10, 0x70, 0xf4, 0x2c, 0xf3, 0xec, 0xbc, 0x24, 0x24, 0xd0, 0x4e, 0xac,
+ 0xa5, 0xd9, 0x5e, 0x1e, 0x6d, 0x92, 0xc1, 0xa7, 0xac, 0x48, 0x35, 0x81,
+ 0xf9, 0xe5, 0xe4, 0x9c, 0x65, 0x69, 0xcd, 0x87, 0xa4, 0x41, 0x50, 0x3f,
+ 0x2e, 0x57, 0xa5, 0x91, 0x51, 0x12, 0x58, 0x0e, 0x8c, 0x09, 0xa1, 0xac,
+ 0x7a, 0xa4, 0x12, 0xa5, 0x27, 0xf3, 0x9a, 0x10, 0x97, 0x7d, 0x55, 0x03,
+ 0x06, 0xf7, 0x66, 0x58, 0x5f, 0x5f, 0x64, 0xe1, 0xab, 0x5d, 0x6d, 0xa5,
+ 0x39, 0x48, 0x75, 0x98, 0x4c, 0x29, 0x5a, 0x3a, 0x8d, 0xd3, 0x2b, 0xca,
+ 0x9c, 0x55, 0x04, 0xbf, 0xf4, 0xe6, 0x14, 0xd5, 0x80, 0xac, 0x26, 0xed,
+ 0x17, 0x89, 0xa6, 0x93, 0x6c, 0x5c, 0xa4, 0xcc, 0xb8, 0xf0, 0x66, 0x8e,
+ 0x64, 0xe3, 0x7d, 0x9a, 0xe2, 0x00, 0xb3, 0x49, 0xc7, 0xe4, 0x0a, 0xaa,
+ 0xdd, 0x5b, 0x83, 0xc7, 0x70, 0x90, 0x46, 0x4e, 0xbe, 0xd0, 0xdb, 0x59,
+ 0x96, 0x6c, 0x2e, 0xf5, 0x16, 0x36, 0xde, 0x71, 0xcc, 0x01, 0xc2, 0x12,
+ 0xc1, 0x21, 0xc6, 0x16,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 120033005 (0x7278eed)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=GTE Corporation, OU=GTE CyberTrust Solutions, Inc., CN=GTE CyberTrust Global Root
+ Validity
+ Not Before: Apr 18 16:36:18 2012 GMT
+ Not After : Aug 13 16:35:17 2018 GMT
+ Subject: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:a3:04:bb:22:ab:98:3d:57:e8:26:72:9a:b5:79:
+ d4:29:e2:e1:e8:95:80:b1:b0:e3:5b:8e:2b:29:9a:
+ 64:df:a1:5d:ed:b0:09:05:6d:db:28:2e:ce:62:a2:
+ 62:fe:b4:88:da:12:eb:38:eb:21:9d:c0:41:2b:01:
+ 52:7b:88:77:d3:1c:8f:c7:ba:b9:88:b5:6a:09:e7:
+ 73:e8:11:40:a7:d1:cc:ca:62:8d:2d:e5:8f:0b:a6:
+ 50:d2:a8:50:c3:28:ea:f5:ab:25:87:8a:9a:96:1c:
+ a9:67:b8:3f:0c:d5:f7:f9:52:13:2f:c2:1b:d5:70:
+ 70:f0:8f:c0:12:ca:06:cb:9a:e1:d9:ca:33:7a:77:
+ d6:f8:ec:b9:f1:68:44:42:48:13:d2:c0:c2:a4:ae:
+ 5e:60:fe:b6:a6:05:fc:b4:dd:07:59:02:d4:59:18:
+ 98:63:f5:a5:63:e0:90:0c:7d:5d:b2:06:7a:f3:85:
+ ea:eb:d4:03:ae:5e:84:3e:5f:ff:15:ed:69:bc:f9:
+ 39:36:72:75:cf:77:52:4d:f3:c9:90:2c:b9:3d:e5:
+ c9:23:53:3f:1f:24:98:21:5c:07:99:29:bd:c6:3a:
+ ec:e7:6e:86:3a:6b:97:74:63:33:bd:68:18:31:f0:
+ 78:8d:76:bf:fc:9e:8e:5d:2a:86:a7:4d:90:dc:27:
+ 1a:39
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:3
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://cybertrust.omniroot.com/repository
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Authority Key Identifier:
+ DirName:/C=US/O=GTE Corporation/OU=GTE CyberTrust Solutions, Inc./CN=GTE CyberTrust Global Root
+ serial:01:A5
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://www.public-trust.com/cgi-bin/CRL/2018/cdp.crl
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 93:1d:fe:8b:ae:46:ec:cb:a9:0f:ab:e5:ef:ca:b2:68:16:68:
+ d8:8f:fa:13:a9:af:b3:cb:2d:e7:4b:6e:8e:69:2a:c2:2b:10:
+ 0a:8d:f6:ae:73:b6:b9:fb:14:fd:5f:6d:b8:50:b6:c4:8a:d6:
+ 40:7e:d7:c3:cb:73:dc:c9:5d:5b:af:b0:41:b5:37:eb:ea:dc:
+ 20:91:c4:34:6a:f4:a1:f3:96:9d:37:86:97:e1:71:a4:dd:7d:
+ fa:44:84:94:ae:d7:09:04:22:76:0f:64:51:35:a9:24:0f:f9:
+ 0b:db:32:da:c2:fe:c1:b9:2a:5c:7a:27:13:ca:b1:48:3a:71:
+ d0:43
+-----BEGIN CERTIFICATE-----
+MIIEFTCCA36gAwIBAgIEByeO7TANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJV
+UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
+cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
+b2JhbCBSb290MB4XDTEyMDQxODE2MzYxOFoXDTE4MDgxMzE2MzUxN1owWjELMAkG
+A1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVz
+dDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKrmD1X6CZymrV51Cni4eiVgLGw41uO
+KymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsBUnuId9Mcj8e6uYi1agnn
+c+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/CG9VwcPCP
+wBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPg
+kAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFc
+B5kpvcY67Oduhjprl3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaOCAUcw
+ggFDMBIGA1UdEwEB/wQIMAYBAf8CAQMwSgYDVR0gBEMwQTA/BgRVHSAAMDcwNQYI
+KwYBBQUHAgEWKWh0dHA6Ly9jeWJlcnRydXN0Lm9tbmlyb290LmNvbS9yZXBvc2l0
+b3J5MA4GA1UdDwEB/wQEAwIBBjCBiQYDVR0jBIGBMH+heaR3MHUxCzAJBgNVBAYT
+AlVTMRgwFgYDVQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJl
+clRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3Qg
+R2xvYmFsIFJvb3SCAgGlMEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly93d3cucHVi
+bGljLXRydXN0LmNvbS9jZ2ktYmluL0NSTC8yMDE4L2NkcC5jcmwwDQYJKoZIhvcN
+AQEFBQADgYEAkx3+i65G7MupD6vl78qyaBZo2I/6E6mvs8st50tujmkqwisQCo32
+rnO2ufsU/V9tuFC2xIrWQH7Xw8tz3MldW6+wQbU36+rcIJHENGr0ofOWnTeGl+Fx
+pN19+kSElK7XCQQidg9kUTWpJA/5C9sy2sL+wbkqXHonE8qxSDpx0EM=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert3[] = {
+ 0x30, 0x82, 0x04, 0x15, 0x30, 0x82, 0x03, 0x7e, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x07, 0x27, 0x8e, 0xed, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x75,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0f,
+ 0x47, 0x54, 0x45, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x1e, 0x47, 0x54, 0x45, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x23, 0x30, 0x21,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1a, 0x47, 0x54, 0x45, 0x20, 0x43,
+ 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c,
+ 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x32, 0x30, 0x34, 0x31, 0x38, 0x31, 0x36, 0x33, 0x36, 0x31,
+ 0x38, 0x5a, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x38, 0x31, 0x33, 0x31, 0x36,
+ 0x33, 0x35, 0x31, 0x37, 0x5a, 0x30, 0x5a, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x45, 0x31, 0x12, 0x30, 0x10,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09, 0x42, 0x61, 0x6c, 0x74, 0x69,
+ 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19,
+ 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x43, 0x79,
+ 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f,
+ 0x74, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f,
+ 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x04,
+ 0xbb, 0x22, 0xab, 0x98, 0x3d, 0x57, 0xe8, 0x26, 0x72, 0x9a, 0xb5, 0x79,
+ 0xd4, 0x29, 0xe2, 0xe1, 0xe8, 0x95, 0x80, 0xb1, 0xb0, 0xe3, 0x5b, 0x8e,
+ 0x2b, 0x29, 0x9a, 0x64, 0xdf, 0xa1, 0x5d, 0xed, 0xb0, 0x09, 0x05, 0x6d,
+ 0xdb, 0x28, 0x2e, 0xce, 0x62, 0xa2, 0x62, 0xfe, 0xb4, 0x88, 0xda, 0x12,
+ 0xeb, 0x38, 0xeb, 0x21, 0x9d, 0xc0, 0x41, 0x2b, 0x01, 0x52, 0x7b, 0x88,
+ 0x77, 0xd3, 0x1c, 0x8f, 0xc7, 0xba, 0xb9, 0x88, 0xb5, 0x6a, 0x09, 0xe7,
+ 0x73, 0xe8, 0x11, 0x40, 0xa7, 0xd1, 0xcc, 0xca, 0x62, 0x8d, 0x2d, 0xe5,
+ 0x8f, 0x0b, 0xa6, 0x50, 0xd2, 0xa8, 0x50, 0xc3, 0x28, 0xea, 0xf5, 0xab,
+ 0x25, 0x87, 0x8a, 0x9a, 0x96, 0x1c, 0xa9, 0x67, 0xb8, 0x3f, 0x0c, 0xd5,
+ 0xf7, 0xf9, 0x52, 0x13, 0x2f, 0xc2, 0x1b, 0xd5, 0x70, 0x70, 0xf0, 0x8f,
+ 0xc0, 0x12, 0xca, 0x06, 0xcb, 0x9a, 0xe1, 0xd9, 0xca, 0x33, 0x7a, 0x77,
+ 0xd6, 0xf8, 0xec, 0xb9, 0xf1, 0x68, 0x44, 0x42, 0x48, 0x13, 0xd2, 0xc0,
+ 0xc2, 0xa4, 0xae, 0x5e, 0x60, 0xfe, 0xb6, 0xa6, 0x05, 0xfc, 0xb4, 0xdd,
+ 0x07, 0x59, 0x02, 0xd4, 0x59, 0x18, 0x98, 0x63, 0xf5, 0xa5, 0x63, 0xe0,
+ 0x90, 0x0c, 0x7d, 0x5d, 0xb2, 0x06, 0x7a, 0xf3, 0x85, 0xea, 0xeb, 0xd4,
+ 0x03, 0xae, 0x5e, 0x84, 0x3e, 0x5f, 0xff, 0x15, 0xed, 0x69, 0xbc, 0xf9,
+ 0x39, 0x36, 0x72, 0x75, 0xcf, 0x77, 0x52, 0x4d, 0xf3, 0xc9, 0x90, 0x2c,
+ 0xb9, 0x3d, 0xe5, 0xc9, 0x23, 0x53, 0x3f, 0x1f, 0x24, 0x98, 0x21, 0x5c,
+ 0x07, 0x99, 0x29, 0xbd, 0xc6, 0x3a, 0xec, 0xe7, 0x6e, 0x86, 0x3a, 0x6b,
+ 0x97, 0x74, 0x63, 0x33, 0xbd, 0x68, 0x18, 0x31, 0xf0, 0x78, 0x8d, 0x76,
+ 0xbf, 0xfc, 0x9e, 0x8e, 0x5d, 0x2a, 0x86, 0xa7, 0x4d, 0x90, 0xdc, 0x27,
+ 0x1a, 0x39, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x47, 0x30,
+ 0x82, 0x01, 0x43, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x03, 0x30,
+ 0x4a, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x43, 0x30, 0x41, 0x30, 0x3f,
+ 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x37, 0x30, 0x35, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x29, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
+ 0x6f, 0x72, 0x79, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x81, 0x89, 0x06, 0x03,
+ 0x55, 0x1d, 0x23, 0x04, 0x81, 0x81, 0x30, 0x7f, 0xa1, 0x79, 0xa4, 0x77,
+ 0x30, 0x75, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+ 0x02, 0x55, 0x53, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x13, 0x0f, 0x47, 0x54, 0x45, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x1e, 0x47, 0x54, 0x45, 0x20, 0x43, 0x79, 0x62, 0x65,
+ 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6c, 0x75, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x23,
+ 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1a, 0x47, 0x54, 0x45,
+ 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x82,
+ 0x02, 0x01, 0xa5, 0x30, 0x45, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x3e,
+ 0x30, 0x3c, 0x30, 0x3a, 0xa0, 0x38, 0xa0, 0x36, 0x86, 0x34, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x70, 0x75, 0x62,
+ 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x63, 0x67, 0x69, 0x2d, 0x62, 0x69, 0x6e, 0x2f, 0x43, 0x52,
+ 0x4c, 0x2f, 0x32, 0x30, 0x31, 0x38, 0x2f, 0x63, 0x64, 0x70, 0x2e, 0x63,
+ 0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x93, 0x1d, 0xfe,
+ 0x8b, 0xae, 0x46, 0xec, 0xcb, 0xa9, 0x0f, 0xab, 0xe5, 0xef, 0xca, 0xb2,
+ 0x68, 0x16, 0x68, 0xd8, 0x8f, 0xfa, 0x13, 0xa9, 0xaf, 0xb3, 0xcb, 0x2d,
+ 0xe7, 0x4b, 0x6e, 0x8e, 0x69, 0x2a, 0xc2, 0x2b, 0x10, 0x0a, 0x8d, 0xf6,
+ 0xae, 0x73, 0xb6, 0xb9, 0xfb, 0x14, 0xfd, 0x5f, 0x6d, 0xb8, 0x50, 0xb6,
+ 0xc4, 0x8a, 0xd6, 0x40, 0x7e, 0xd7, 0xc3, 0xcb, 0x73, 0xdc, 0xc9, 0x5d,
+ 0x5b, 0xaf, 0xb0, 0x41, 0xb5, 0x37, 0xeb, 0xea, 0xdc, 0x20, 0x91, 0xc4,
+ 0x34, 0x6a, 0xf4, 0xa1, 0xf3, 0x96, 0x9d, 0x37, 0x86, 0x97, 0xe1, 0x71,
+ 0xa4, 0xdd, 0x7d, 0xfa, 0x44, 0x84, 0x94, 0xae, 0xd7, 0x09, 0x04, 0x22,
+ 0x76, 0x0f, 0x64, 0x51, 0x35, 0xa9, 0x24, 0x0f, 0xf9, 0x0b, 0xdb, 0x32,
+ 0xda, 0xc2, 0xfe, 0xc1, 0xb9, 0x2a, 0x5c, 0x7a, 0x27, 0x13, 0xca, 0xb1,
+ 0x48, 0x3a, 0x71, 0xd0, 0x43,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146039 (0x23a77)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Aug 29 21:39:32 2014 GMT
+ Not After : May 20 21:39:32 2022 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=RapidSSL SHA256 CA - G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:af:54:9b:d9:58:5d:1e:2c:56:c6:d5:e8:7f:f4:
+ 7d:16:03:ff:d0:8b:5a:e4:8e:a7:dd:54:2e:d4:04:
+ c0:5d:98:9c:8d:90:0f:bc:10:65:5f:da:9a:d6:44:
+ 7c:c0:9f:b5:e9:4a:8c:0b:06:43:04:bb:f4:96:e2:
+ 26:f6:61:01:91:66:31:22:c3:34:34:5f:3f:3f:91:
+ 2f:44:5f:dc:c7:14:b6:03:9f:86:4b:0e:a3:ff:a0:
+ 80:02:83:c3:d3:1f:69:52:d6:9d:64:0f:c9:83:e7:
+ 1b:c4:70:ac:94:e7:c3:a4:6a:2c:bd:b8:9e:69:d8:
+ be:0a:8f:16:63:5a:68:71:80:7b:30:de:15:04:bf:
+ cc:d3:bf:3e:48:05:55:7a:b3:d7:10:0c:03:fc:9b:
+ fd:08:a7:8c:8c:db:a7:8e:f1:1e:63:dc:b3:01:2f:
+ 7f:af:57:c3:3c:48:a7:83:68:21:a7:2f:e7:a7:3f:
+ f0:b5:0c:fc:f5:84:d1:53:bc:0e:72:4f:60:0c:42:
+ b8:98:ad:19:88:57:d7:04:ec:87:bf:7e:87:4e:a3:
+ 21:f9:53:fd:36:98:48:8d:d6:f8:bb:48:f2:29:c8:
+ 64:d1:cc:54:48:53:8b:af:b7:65:1e:bf:29:33:29:
+ d9:29:60:48:f8:ff:91:bc:57:58:e5:35:2e:bb:69:
+ b6:59
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ C3:9C:F3:FC:D3:46:08:34:BB:CE:46:7F:A0:7C:5B:F3:E2:08:CB:59
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g.symcb.com/crls/gtglobal.crl
+
+ Authority Information Access:
+ OCSP - URI:http://g.symcd.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ Signature Algorithm: sha256WithRSAEncryption
+ a3:58:1e:c6:43:32:ac:ac:2f:93:78:b7:ea:ae:54:40:47:2d:
+ 7e:78:8d:50:f6:f8:66:ac:d6:4f:73:d6:44:ef:af:0b:cc:5b:
+ c1:f4:4f:9a:8f:49:7e:60:af:c2:27:c7:16:f1:fb:93:81:90:
+ a9:7c:ef:6f:7e:6e:45:94:16:84:bd:ec:49:f1:c4:0e:f4:af:
+ 04:59:83:87:0f:2c:3b:97:c3:5a:12:9b:7b:04:35:7b:a3:95:
+ 33:08:7b:93:71:22:42:b3:a9:d9:6f:4f:81:92:fc:07:b6:79:
+ bc:84:4a:9d:77:09:f1:c5:89:f2:f0:b4:9c:54:aa:12:7b:0d:
+ ba:4f:ef:93:19:ec:ef:7d:4e:61:a3:8e:76:9c:59:cf:8c:94:
+ b1:84:97:f7:1a:b9:07:b8:b2:c6:4f:13:79:db:bf:4f:51:1b:
+ 7f:69:0d:51:2a:c1:d6:15:ff:37:51:34:65:51:f4:1e:be:38:
+ 6a:ec:0e:ab:bf:3d:7b:39:05:7b:f4:f3:fb:1a:a1:d0:c8:7e:
+ 4e:64:8d:cd:8c:61:55:90:fe:3a:ca:5d:25:0f:f8:1d:a3:4a:
+ 74:56:4f:1a:55:40:70:75:25:a6:33:2e:ba:4b:a5:5d:53:9a:
+ 0d:30:e1:8d:5f:61:2c:af:cc:ef:b0:99:a1:80:ff:0b:f2:62:
+ 4c:70:26:98
+-----BEGIN CERTIFICATE-----
+MIIEJTCCAw2gAwIBAgIDAjp3MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTQwODI5MjEzOTMyWhcNMjIwNTIwMjEzOTMyWjBHMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXUmFwaWRTU0wg
+U0hBMjU2IENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCv
+VJvZWF0eLFbG1eh/9H0WA//Qi1rkjqfdVC7UBMBdmJyNkA+8EGVf2prWRHzAn7Xp
+SowLBkMEu/SW4ib2YQGRZjEiwzQ0Xz8/kS9EX9zHFLYDn4ZLDqP/oIACg8PTH2lS
+1p1kD8mD5xvEcKyU58Okaiy9uJ5p2L4KjxZjWmhxgHsw3hUEv8zTvz5IBVV6s9cQ
+DAP8m/0Ip4yM26eO8R5j3LMBL3+vV8M8SKeDaCGnL+enP/C1DPz1hNFTvA5yT2AM
+QriYrRmIV9cE7Ie/fodOoyH5U/02mEiN1vi7SPIpyGTRzFRIU4uvt2UevykzKdkp
+YEj4/5G8V1jlNS67abZZAgMBAAGjggEdMIIBGTAfBgNVHSMEGDAWgBTAephojYn7
+qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUw5zz/NNGCDS7zkZ/oHxb8+IIy1kwEgYD
+VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNQYDVR0fBC4wLDAqoCig
+JoYkaHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMC4GCCsGAQUF
+BwEBBCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL2cuc3ltY2QuY29tMEwGA1UdIARF
+MEMwQQYKYIZIAYb4RQEHNjAzMDEGCCsGAQUFBwIBFiVodHRwOi8vd3d3Lmdlb3Ry
+dXN0LmNvbS9yZXNvdXJjZXMvY3BzMA0GCSqGSIb3DQEBCwUAA4IBAQCjWB7GQzKs
+rC+TeLfqrlRARy1+eI1Q9vhmrNZPc9ZE768LzFvB9E+aj0l+YK/CJ8cW8fuTgZCp
+fO9vfm5FlBaEvexJ8cQO9K8EWYOHDyw7l8NaEpt7BDV7o5UzCHuTcSJCs6nZb0+B
+kvwHtnm8hEqddwnxxYny8LScVKoSew26T++TGezvfU5ho452nFnPjJSxhJf3GrkH
+uLLGTxN5279PURt/aQ1RKsHWFf83UTRlUfQevjhq7A6rvz17OQV79PP7GqHQyH5O
+ZI3NjGFVkP46yl0lD/gdo0p0Vk8aVUBwdSWmMy66S6VdU5oNMOGNX2Esr8zvsJmh
+gP8L8mJMcCaY
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert4[] = {
+ 0x30, 0x82, 0x04, 0x25, 0x30, 0x82, 0x03, 0x0d, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x77, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30,
+ 0x38, 0x32, 0x39, 0x32, 0x31, 0x33, 0x39, 0x33, 0x32, 0x5a, 0x17, 0x0d,
+ 0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x33, 0x39, 0x33, 0x32,
+ 0x5a, 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x17, 0x52, 0x61, 0x70, 0x69, 0x64, 0x53, 0x53, 0x4c, 0x20,
+ 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20,
+ 0x47, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xaf,
+ 0x54, 0x9b, 0xd9, 0x58, 0x5d, 0x1e, 0x2c, 0x56, 0xc6, 0xd5, 0xe8, 0x7f,
+ 0xf4, 0x7d, 0x16, 0x03, 0xff, 0xd0, 0x8b, 0x5a, 0xe4, 0x8e, 0xa7, 0xdd,
+ 0x54, 0x2e, 0xd4, 0x04, 0xc0, 0x5d, 0x98, 0x9c, 0x8d, 0x90, 0x0f, 0xbc,
+ 0x10, 0x65, 0x5f, 0xda, 0x9a, 0xd6, 0x44, 0x7c, 0xc0, 0x9f, 0xb5, 0xe9,
+ 0x4a, 0x8c, 0x0b, 0x06, 0x43, 0x04, 0xbb, 0xf4, 0x96, 0xe2, 0x26, 0xf6,
+ 0x61, 0x01, 0x91, 0x66, 0x31, 0x22, 0xc3, 0x34, 0x34, 0x5f, 0x3f, 0x3f,
+ 0x91, 0x2f, 0x44, 0x5f, 0xdc, 0xc7, 0x14, 0xb6, 0x03, 0x9f, 0x86, 0x4b,
+ 0x0e, 0xa3, 0xff, 0xa0, 0x80, 0x02, 0x83, 0xc3, 0xd3, 0x1f, 0x69, 0x52,
+ 0xd6, 0x9d, 0x64, 0x0f, 0xc9, 0x83, 0xe7, 0x1b, 0xc4, 0x70, 0xac, 0x94,
+ 0xe7, 0xc3, 0xa4, 0x6a, 0x2c, 0xbd, 0xb8, 0x9e, 0x69, 0xd8, 0xbe, 0x0a,
+ 0x8f, 0x16, 0x63, 0x5a, 0x68, 0x71, 0x80, 0x7b, 0x30, 0xde, 0x15, 0x04,
+ 0xbf, 0xcc, 0xd3, 0xbf, 0x3e, 0x48, 0x05, 0x55, 0x7a, 0xb3, 0xd7, 0x10,
+ 0x0c, 0x03, 0xfc, 0x9b, 0xfd, 0x08, 0xa7, 0x8c, 0x8c, 0xdb, 0xa7, 0x8e,
+ 0xf1, 0x1e, 0x63, 0xdc, 0xb3, 0x01, 0x2f, 0x7f, 0xaf, 0x57, 0xc3, 0x3c,
+ 0x48, 0xa7, 0x83, 0x68, 0x21, 0xa7, 0x2f, 0xe7, 0xa7, 0x3f, 0xf0, 0xb5,
+ 0x0c, 0xfc, 0xf5, 0x84, 0xd1, 0x53, 0xbc, 0x0e, 0x72, 0x4f, 0x60, 0x0c,
+ 0x42, 0xb8, 0x98, 0xad, 0x19, 0x88, 0x57, 0xd7, 0x04, 0xec, 0x87, 0xbf,
+ 0x7e, 0x87, 0x4e, 0xa3, 0x21, 0xf9, 0x53, 0xfd, 0x36, 0x98, 0x48, 0x8d,
+ 0xd6, 0xf8, 0xbb, 0x48, 0xf2, 0x29, 0xc8, 0x64, 0xd1, 0xcc, 0x54, 0x48,
+ 0x53, 0x8b, 0xaf, 0xb7, 0x65, 0x1e, 0xbf, 0x29, 0x33, 0x29, 0xd9, 0x29,
+ 0x60, 0x48, 0xf8, 0xff, 0x91, 0xbc, 0x57, 0x58, 0xe5, 0x35, 0x2e, 0xbb,
+ 0x69, 0xb6, 0x59, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x1d,
+ 0x30, 0x82, 0x01, 0x19, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+ 0x18, 0x30, 0x16, 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb,
+ 0xab, 0x05, 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc,
+ 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0xc3, 0x9c, 0xf3, 0xfc, 0xd3, 0x46, 0x08, 0x34, 0xbb, 0xce, 0x46, 0x7f,
+ 0xa0, 0x7c, 0x5b, 0xf3, 0xe2, 0x08, 0xcb, 0x59, 0x30, 0x12, 0x06, 0x03,
+ 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+ 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+ 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x35, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0,
+ 0x26, 0x86, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e,
+ 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72,
+ 0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x01, 0x01, 0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45,
+ 0x30, 0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8,
+ 0x45, 0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x58, 0x1e, 0xc6, 0x43, 0x32, 0xac,
+ 0xac, 0x2f, 0x93, 0x78, 0xb7, 0xea, 0xae, 0x54, 0x40, 0x47, 0x2d, 0x7e,
+ 0x78, 0x8d, 0x50, 0xf6, 0xf8, 0x66, 0xac, 0xd6, 0x4f, 0x73, 0xd6, 0x44,
+ 0xef, 0xaf, 0x0b, 0xcc, 0x5b, 0xc1, 0xf4, 0x4f, 0x9a, 0x8f, 0x49, 0x7e,
+ 0x60, 0xaf, 0xc2, 0x27, 0xc7, 0x16, 0xf1, 0xfb, 0x93, 0x81, 0x90, 0xa9,
+ 0x7c, 0xef, 0x6f, 0x7e, 0x6e, 0x45, 0x94, 0x16, 0x84, 0xbd, 0xec, 0x49,
+ 0xf1, 0xc4, 0x0e, 0xf4, 0xaf, 0x04, 0x59, 0x83, 0x87, 0x0f, 0x2c, 0x3b,
+ 0x97, 0xc3, 0x5a, 0x12, 0x9b, 0x7b, 0x04, 0x35, 0x7b, 0xa3, 0x95, 0x33,
+ 0x08, 0x7b, 0x93, 0x71, 0x22, 0x42, 0xb3, 0xa9, 0xd9, 0x6f, 0x4f, 0x81,
+ 0x92, 0xfc, 0x07, 0xb6, 0x79, 0xbc, 0x84, 0x4a, 0x9d, 0x77, 0x09, 0xf1,
+ 0xc5, 0x89, 0xf2, 0xf0, 0xb4, 0x9c, 0x54, 0xaa, 0x12, 0x7b, 0x0d, 0xba,
+ 0x4f, 0xef, 0x93, 0x19, 0xec, 0xef, 0x7d, 0x4e, 0x61, 0xa3, 0x8e, 0x76,
+ 0x9c, 0x59, 0xcf, 0x8c, 0x94, 0xb1, 0x84, 0x97, 0xf7, 0x1a, 0xb9, 0x07,
+ 0xb8, 0xb2, 0xc6, 0x4f, 0x13, 0x79, 0xdb, 0xbf, 0x4f, 0x51, 0x1b, 0x7f,
+ 0x69, 0x0d, 0x51, 0x2a, 0xc1, 0xd6, 0x15, 0xff, 0x37, 0x51, 0x34, 0x65,
+ 0x51, 0xf4, 0x1e, 0xbe, 0x38, 0x6a, 0xec, 0x0e, 0xab, 0xbf, 0x3d, 0x7b,
+ 0x39, 0x05, 0x7b, 0xf4, 0xf3, 0xfb, 0x1a, 0xa1, 0xd0, 0xc8, 0x7e, 0x4e,
+ 0x64, 0x8d, 0xcd, 0x8c, 0x61, 0x55, 0x90, 0xfe, 0x3a, 0xca, 0x5d, 0x25,
+ 0x0f, 0xf8, 0x1d, 0xa3, 0x4a, 0x74, 0x56, 0x4f, 0x1a, 0x55, 0x40, 0x70,
+ 0x75, 0x25, 0xa6, 0x33, 0x2e, 0xba, 0x4b, 0xa5, 0x5d, 0x53, 0x9a, 0x0d,
+ 0x30, 0xe1, 0x8d, 0x5f, 0x61, 0x2c, 0xaf, 0xcc, 0xef, 0xb0, 0x99, 0xa1,
+ 0x80, 0xff, 0x0b, 0xf2, 0x62, 0x4c, 0x70, 0x26, 0x98,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146040 (0x23a78)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Aug 29 22:24:58 2014 GMT
+ Not After : May 20 22:24:58 2022 GMT
+ Subject: C=US, O=GeoTrust Inc., OU=Domain Validated SSL, CN=GeoTrust DV SSL CA - G4
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:df:41:94:7a:da:f7:e4:31:43:b6:ea:01:1b:5c:
+ ce:63:ea:fa:6d:a3:d9:6a:ee:2d:9a:75:f9:d5:9c:
+ 5b:bd:34:df:d8:1c:c9:6d:d8:04:88:da:6e:b5:b7:
+ b5:f0:30:ae:40:d6:5d:fa:c4:53:c1:d4:22:9d:04:
+ 4e:11:a6:95:d5:45:7c:41:05:58:e0:4c:dd:f9:ee:
+ 55:bd:5f:46:dc:ad:13:08:9d:2c:e4:f7:82:e6:07:
+ 2b:9e:0e:8c:34:a1:ce:c4:a1:e0:81:70:86:00:06:
+ 3f:2d:ea:7c:9b:28:ae:1b:28:8b:39:09:d3:e7:f0:
+ 45:a4:b1:ba:11:67:90:55:7b:8f:de:ed:38:5c:a1:
+ e1:e3:83:c4:c3:72:91:4f:98:ee:1c:c2:80:aa:64:
+ a5:3e:83:62:1c:cc:e0:9e:f8:5a:c0:13:12:7d:a2:
+ a7:8b:a3:e7:9f:2a:d7:9b:ca:cb:ed:97:01:9c:28:
+ 84:51:04:50:41:bc:b4:fc:78:e9:1b:cf:14:ea:1f:
+ 0f:fc:2e:01:32:8d:b6:35:cb:0a:18:3b:ec:5a:3e:
+ 3c:1b:d3:99:43:1e:2f:f7:bd:f3:5b:12:b9:07:5e:
+ ed:3e:d1:a9:87:cc:77:72:27:d4:d9:75:a2:63:4b:
+ 93:36:bd:e5:5c:d7:bf:5f:79:0d:b3:32:a7:0b:b2:
+ 63:23
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ 0B:50:EC:77:EF:2A:9B:FF:EC:03:A1:0A:FF:AD:C6:E4:2A:18:C7:3E
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g.symcb.com/crls/gtglobal.crl
+
+ Authority Information Access:
+ OCSP - URI:http://g.symcd.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 33:24:d5:90:aa:29:0c:35:b9:2f:c3:c7:42:93:c0:c6:10:4b:
+ 03:08:76:84:10:a2:e0:e7:53:12:27:f2:0a:da:7f:3a:dc:fd:
+ 5c:79:5a:8f:17:74:43:53:b1:d5:d1:5d:59:b9:a6:84:64:ca:
+ f1:3a:0a:59:96:10:bf:a9:81:57:8b:5c:87:dc:7f:e3:e4:bb:
+ 05:7a:a0:32:09:13:4e:10:81:28:1f:9c:03:62:bc:f4:01:b5:
+ 29:83:46:07:b9:e7:b8:5d:c8:e9:d1:dd:ad:3b:f8:34:db:c1:
+ d1:95:a9:91:18:ed:3c:2c:37:11:4d:cc:fe:53:3e:50:43:f9:
+ c3:56:41:ac:53:9b:6c:05:b2:9a:e2:e0:59:57:30:32:b6:26:
+ 4e:13:25:cd:fa:48:70:0f:75:55:60:11:f5:3b:d5:5e:5a:3c:
+ 8b:5b:0f:0f:62:42:48:61:85:8b:10:f4:c1:88:bf:7f:5f:8a:
+ c2:d7:cd:2b:94:5c:1f:34:4a:08:af:eb:ae:89:a8:48:75:55:
+ 95:1d:bb:c0:9a:01:b9:f4:03:22:3e:d4:e6:52:30:0d:67:b9:
+ c0:91:fd:2d:4c:30:8e:bd:8c:a5:04:91:bb:a4:ab:7f:0f:d8:
+ 6f:f0:66:00:c9:a3:5c:f5:b0:8f:83:e6:9c:5a:e6:b6:b9:c5:
+ bc:be:e4:02
+-----BEGIN CERTIFICATE-----
+MIIERDCCAyygAwIBAgIDAjp4MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTQwODI5MjIyNDU4WhcNMjIwNTIwMjIyNDU4WjBmMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UECxMURG9tYWluIFZh
+bGlkYXRlZCBTU0wxIDAeBgNVBAMTF0dlb1RydXN0IERWIFNTTCBDQSAtIEc0MIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA30GUetr35DFDtuoBG1zOY+r6
+baPZau4tmnX51ZxbvTTf2BzJbdgEiNputbe18DCuQNZd+sRTwdQinQROEaaV1UV8
+QQVY4Ezd+e5VvV9G3K0TCJ0s5PeC5gcrng6MNKHOxKHggXCGAAY/Lep8myiuGyiL
+OQnT5/BFpLG6EWeQVXuP3u04XKHh44PEw3KRT5juHMKAqmSlPoNiHMzgnvhawBMS
+faKni6PnnyrXm8rL7ZcBnCiEUQRQQby0/HjpG88U6h8P/C4BMo22NcsKGDvsWj48
+G9OZQx4v973zWxK5B17tPtGph8x3cifU2XWiY0uTNr3lXNe/X3kNszKnC7JjIwID
+AQABo4IBHTCCARkwHwYDVR0jBBgwFoAUwHqYaI2J+6sFZAwRfap9ZbjKzE4wHQYD
+VR0OBBYEFAtQ7HfvKpv/7AOhCv+txuQqGMc+MBIGA1UdEwEB/wQIMAYBAf8CAQAw
+DgYDVR0PAQH/BAQDAgEGMDUGA1UdHwQuMCwwKqAooCaGJGh0dHA6Ly9nLnN5bWNi
+LmNvbS9jcmxzL2d0Z2xvYmFsLmNybDAuBggrBgEFBQcBAQQiMCAwHgYIKwYBBQUH
+MAGGEmh0dHA6Ly9nLnN5bWNkLmNvbTBMBgNVHSAERTBDMEEGCmCGSAGG+EUBBzYw
+MzAxBggrBgEFBQcCARYlaHR0cDovL3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2Vz
+L2NwczANBgkqhkiG9w0BAQsFAAOCAQEAMyTVkKopDDW5L8PHQpPAxhBLAwh2hBCi
+4OdTEifyCtp/Otz9XHlajxd0Q1Ox1dFdWbmmhGTK8ToKWZYQv6mBV4tch9x/4+S7
+BXqgMgkTThCBKB+cA2K89AG1KYNGB7nnuF3I6dHdrTv4NNvB0ZWpkRjtPCw3EU3M
+/lM+UEP5w1ZBrFObbAWymuLgWVcwMrYmThMlzfpIcA91VWAR9TvVXlo8i1sPD2JC
+SGGFixD0wYi/f1+KwtfNK5RcHzRKCK/rromoSHVVlR27wJoBufQDIj7U5lIwDWe5
+wJH9LUwwjr2MpQSRu6Srfw/Yb/BmAMmjXPWwj4PmnFrmtrnFvL7kAg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert5[] = {
+ 0x30, 0x82, 0x04, 0x44, 0x30, 0x82, 0x03, 0x2c, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x78, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30,
+ 0x38, 0x32, 0x39, 0x32, 0x32, 0x32, 0x34, 0x35, 0x38, 0x5a, 0x17, 0x0d,
+ 0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x32, 0x32, 0x34, 0x35, 0x38,
+ 0x5a, 0x30, 0x66, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x14, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61,
+ 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, 0x53, 0x53, 0x4c, 0x31,
+ 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x47, 0x65,
+ 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x44, 0x56, 0x20, 0x53, 0x53,
+ 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x34, 0x30, 0x82, 0x01,
+ 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+ 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xdf, 0x41, 0x94, 0x7a, 0xda, 0xf7,
+ 0xe4, 0x31, 0x43, 0xb6, 0xea, 0x01, 0x1b, 0x5c, 0xce, 0x63, 0xea, 0xfa,
+ 0x6d, 0xa3, 0xd9, 0x6a, 0xee, 0x2d, 0x9a, 0x75, 0xf9, 0xd5, 0x9c, 0x5b,
+ 0xbd, 0x34, 0xdf, 0xd8, 0x1c, 0xc9, 0x6d, 0xd8, 0x04, 0x88, 0xda, 0x6e,
+ 0xb5, 0xb7, 0xb5, 0xf0, 0x30, 0xae, 0x40, 0xd6, 0x5d, 0xfa, 0xc4, 0x53,
+ 0xc1, 0xd4, 0x22, 0x9d, 0x04, 0x4e, 0x11, 0xa6, 0x95, 0xd5, 0x45, 0x7c,
+ 0x41, 0x05, 0x58, 0xe0, 0x4c, 0xdd, 0xf9, 0xee, 0x55, 0xbd, 0x5f, 0x46,
+ 0xdc, 0xad, 0x13, 0x08, 0x9d, 0x2c, 0xe4, 0xf7, 0x82, 0xe6, 0x07, 0x2b,
+ 0x9e, 0x0e, 0x8c, 0x34, 0xa1, 0xce, 0xc4, 0xa1, 0xe0, 0x81, 0x70, 0x86,
+ 0x00, 0x06, 0x3f, 0x2d, 0xea, 0x7c, 0x9b, 0x28, 0xae, 0x1b, 0x28, 0x8b,
+ 0x39, 0x09, 0xd3, 0xe7, 0xf0, 0x45, 0xa4, 0xb1, 0xba, 0x11, 0x67, 0x90,
+ 0x55, 0x7b, 0x8f, 0xde, 0xed, 0x38, 0x5c, 0xa1, 0xe1, 0xe3, 0x83, 0xc4,
+ 0xc3, 0x72, 0x91, 0x4f, 0x98, 0xee, 0x1c, 0xc2, 0x80, 0xaa, 0x64, 0xa5,
+ 0x3e, 0x83, 0x62, 0x1c, 0xcc, 0xe0, 0x9e, 0xf8, 0x5a, 0xc0, 0x13, 0x12,
+ 0x7d, 0xa2, 0xa7, 0x8b, 0xa3, 0xe7, 0x9f, 0x2a, 0xd7, 0x9b, 0xca, 0xcb,
+ 0xed, 0x97, 0x01, 0x9c, 0x28, 0x84, 0x51, 0x04, 0x50, 0x41, 0xbc, 0xb4,
+ 0xfc, 0x78, 0xe9, 0x1b, 0xcf, 0x14, 0xea, 0x1f, 0x0f, 0xfc, 0x2e, 0x01,
+ 0x32, 0x8d, 0xb6, 0x35, 0xcb, 0x0a, 0x18, 0x3b, 0xec, 0x5a, 0x3e, 0x3c,
+ 0x1b, 0xd3, 0x99, 0x43, 0x1e, 0x2f, 0xf7, 0xbd, 0xf3, 0x5b, 0x12, 0xb9,
+ 0x07, 0x5e, 0xed, 0x3e, 0xd1, 0xa9, 0x87, 0xcc, 0x77, 0x72, 0x27, 0xd4,
+ 0xd9, 0x75, 0xa2, 0x63, 0x4b, 0x93, 0x36, 0xbd, 0xe5, 0x5c, 0xd7, 0xbf,
+ 0x5f, 0x79, 0x0d, 0xb3, 0x32, 0xa7, 0x0b, 0xb2, 0x63, 0x23, 0x02, 0x03,
+ 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x1d, 0x30, 0x82, 0x01, 0x19, 0x30,
+ 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+ 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64, 0x0c, 0x11,
+ 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d, 0x06, 0x03,
+ 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x0b, 0x50, 0xec, 0x77, 0xef,
+ 0x2a, 0x9b, 0xff, 0xec, 0x03, 0xa1, 0x0a, 0xff, 0xad, 0xc6, 0xe4, 0x2a,
+ 0x18, 0xc7, 0x3e, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+ 0x02, 0x01, 0x06, 0x30, 0x35, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2e,
+ 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67, 0x74,
+ 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x2e,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22,
+ 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67,
+ 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4c,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06,
+ 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30,
+ 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+ 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+ 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
+ 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
+ 0x33, 0x24, 0xd5, 0x90, 0xaa, 0x29, 0x0c, 0x35, 0xb9, 0x2f, 0xc3, 0xc7,
+ 0x42, 0x93, 0xc0, 0xc6, 0x10, 0x4b, 0x03, 0x08, 0x76, 0x84, 0x10, 0xa2,
+ 0xe0, 0xe7, 0x53, 0x12, 0x27, 0xf2, 0x0a, 0xda, 0x7f, 0x3a, 0xdc, 0xfd,
+ 0x5c, 0x79, 0x5a, 0x8f, 0x17, 0x74, 0x43, 0x53, 0xb1, 0xd5, 0xd1, 0x5d,
+ 0x59, 0xb9, 0xa6, 0x84, 0x64, 0xca, 0xf1, 0x3a, 0x0a, 0x59, 0x96, 0x10,
+ 0xbf, 0xa9, 0x81, 0x57, 0x8b, 0x5c, 0x87, 0xdc, 0x7f, 0xe3, 0xe4, 0xbb,
+ 0x05, 0x7a, 0xa0, 0x32, 0x09, 0x13, 0x4e, 0x10, 0x81, 0x28, 0x1f, 0x9c,
+ 0x03, 0x62, 0xbc, 0xf4, 0x01, 0xb5, 0x29, 0x83, 0x46, 0x07, 0xb9, 0xe7,
+ 0xb8, 0x5d, 0xc8, 0xe9, 0xd1, 0xdd, 0xad, 0x3b, 0xf8, 0x34, 0xdb, 0xc1,
+ 0xd1, 0x95, 0xa9, 0x91, 0x18, 0xed, 0x3c, 0x2c, 0x37, 0x11, 0x4d, 0xcc,
+ 0xfe, 0x53, 0x3e, 0x50, 0x43, 0xf9, 0xc3, 0x56, 0x41, 0xac, 0x53, 0x9b,
+ 0x6c, 0x05, 0xb2, 0x9a, 0xe2, 0xe0, 0x59, 0x57, 0x30, 0x32, 0xb6, 0x26,
+ 0x4e, 0x13, 0x25, 0xcd, 0xfa, 0x48, 0x70, 0x0f, 0x75, 0x55, 0x60, 0x11,
+ 0xf5, 0x3b, 0xd5, 0x5e, 0x5a, 0x3c, 0x8b, 0x5b, 0x0f, 0x0f, 0x62, 0x42,
+ 0x48, 0x61, 0x85, 0x8b, 0x10, 0xf4, 0xc1, 0x88, 0xbf, 0x7f, 0x5f, 0x8a,
+ 0xc2, 0xd7, 0xcd, 0x2b, 0x94, 0x5c, 0x1f, 0x34, 0x4a, 0x08, 0xaf, 0xeb,
+ 0xae, 0x89, 0xa8, 0x48, 0x75, 0x55, 0x95, 0x1d, 0xbb, 0xc0, 0x9a, 0x01,
+ 0xb9, 0xf4, 0x03, 0x22, 0x3e, 0xd4, 0xe6, 0x52, 0x30, 0x0d, 0x67, 0xb9,
+ 0xc0, 0x91, 0xfd, 0x2d, 0x4c, 0x30, 0x8e, 0xbd, 0x8c, 0xa5, 0x04, 0x91,
+ 0xbb, 0xa4, 0xab, 0x7f, 0x0f, 0xd8, 0x6f, 0xf0, 0x66, 0x00, 0xc9, 0xa3,
+ 0x5c, 0xf5, 0xb0, 0x8f, 0x83, 0xe6, 0x9c, 0x5a, 0xe6, 0xb6, 0xb9, 0xc5,
+ 0xbc, 0xbe, 0xe4, 0x02,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 33:65:50:08:79:ad:73:e2:30:b9:e0:1d:0d:7f:ac:91
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
+ Validity
+ Not Before: Nov 17 00:00:00 2006 GMT
+ Not After : Dec 30 23:59:59 2020 GMT
+ Subject: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:ac:a0:f0:fb:80:59:d4:9c:c7:a4:cf:9d:a1:59:
+ 73:09:10:45:0c:0d:2c:6e:68:f1:6c:5b:48:68:49:
+ 59:37:fc:0b:33:19:c2:77:7f:cc:10:2d:95:34:1c:
+ e6:eb:4d:09:a7:1c:d2:b8:c9:97:36:02:b7:89:d4:
+ 24:5f:06:c0:cc:44:94:94:8d:02:62:6f:eb:5a:dd:
+ 11:8d:28:9a:5c:84:90:10:7a:0d:bd:74:66:2f:6a:
+ 38:a0:e2:d5:54:44:eb:1d:07:9f:07:ba:6f:ee:e9:
+ fd:4e:0b:29:f5:3e:84:a0:01:f1:9c:ab:f8:1c:7e:
+ 89:a4:e8:a1:d8:71:65:0d:a3:51:7b:ee:bc:d2:22:
+ 60:0d:b9:5b:9d:df:ba:fc:51:5b:0b:af:98:b2:e9:
+ 2e:e9:04:e8:62:87:de:2b:c8:d7:4e:c1:4c:64:1e:
+ dd:cf:87:58:ba:4a:4f:ca:68:07:1d:1c:9d:4a:c6:
+ d5:2f:91:cc:7c:71:72:1c:c5:c0:67:eb:32:fd:c9:
+ 92:5c:94:da:85:c0:9b:bf:53:7d:2b:09:f4:8c:9d:
+ 91:1f:97:6a:52:cb:de:09:36:a4:77:d8:7b:87:50:
+ 44:d5:3e:6e:29:69:fb:39:49:26:1e:09:a5:80:7b:
+ 40:2d:eb:e8:27:85:c9:fe:61:fd:7e:e6:7c:97:1d:
+ d5:9d
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.thawte.com/cps
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.thawte.com/ThawtePremiumServerCA.crl
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 84:a8:4c:c9:3e:2a:bc:9a:e2:cc:8f:0b:b2:25:77:c4:61:89:
+ 89:63:5a:d4:a3:15:40:d4:fb:5e:3f:b4:43:ea:63:17:2b:6b:
+ 99:74:9e:09:a8:dd:d4:56:15:2e:7a:79:31:5f:63:96:53:1b:
+ 34:d9:15:ea:4f:6d:70:ca:be:f6:82:a9:ed:da:85:77:cc:76:
+ 1c:6a:81:0a:21:d8:41:99:7f:5e:2e:82:c1:e8:aa:f7:93:81:
+ 05:aa:92:b4:1f:b7:9a:c0:07:17:f5:cb:c6:b4:4c:0e:d7:56:
+ dc:71:20:74:38:d6:74:c6:d6:8f:6b:af:8b:8d:a0:6c:29:0b:
+ 61:e0
+-----BEGIN CERTIFICATE-----
+MIIERTCCA66gAwIBAgIQM2VQCHmtc+IwueAdDX+skTANBgkqhkiG9w0BAQUFADCB
+zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
+Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
+CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
+d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
+cnZlckB0aGF3dGUuY29tMB4XDTA2MTExNzAwMDAwMFoXDTIwMTIzMDIzNTk1OVow
+gakxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUsIEluYy4xKDAmBgNVBAsT
+H0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xODA2BgNVBAsTLyhjKSAy
+MDA2IHRoYXd0ZSwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYD
+VQQDExZ0aGF3dGUgUHJpbWFyeSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEArKDw+4BZ1JzHpM+doVlzCRBFDA0sbmjxbFtIaElZN/wLMxnC
+d3/MEC2VNBzm600JpxzSuMmXNgK3idQkXwbAzESUlI0CYm/rWt0RjSiaXISQEHoN
+vXRmL2o4oOLVVETrHQefB7pv7un9Tgsp9T6EoAHxnKv4HH6JpOih2HFlDaNRe+68
+0iJgDblbnd+6/FFbC6+Ysuku6QToYofeK8jXTsFMZB7dz4dYukpPymgHHRydSsbV
+L5HMfHFyHMXAZ+sy/cmSXJTahcCbv1N9Kwn0jJ2RH5dqUsveCTakd9h7h1BE1T5u
+KWn7OUkmHgmlgHtALevoJ4XJ/mH9fuZ8lx3VnQIDAQABo4HCMIG/MA8GA1UdEwEB
+/wQFMAMBAf8wOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHBz
+Oi8vd3d3LnRoYXd0ZS5jb20vY3BzMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
+e1tFz6/Oy3r9MZIaarbzRutXSFAwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cDovL2Ny
+bC50aGF3dGUuY29tL1RoYXd0ZVByZW1pdW1TZXJ2ZXJDQS5jcmwwDQYJKoZIhvcN
+AQEFBQADgYEAhKhMyT4qvJrizI8LsiV3xGGJiWNa1KMVQNT7Xj+0Q+pjFytrmXSe
+Cajd1FYVLnp5MV9jllMbNNkV6k9tcMq+9oKp7dqFd8x2HGqBCiHYQZl/Xi6Cweiq
+95OBBaqStB+3msAHF/XLxrRMDtdW3HEgdDjWdMbWj2uvi42gbCkLYeA=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert6[] = {
+ 0x30, 0x82, 0x04, 0x45, 0x30, 0x82, 0x03, 0xae, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x33, 0x65, 0x50, 0x08, 0x79, 0xad, 0x73, 0xe2, 0x30,
+ 0xb9, 0xe0, 0x1d, 0x0d, 0x7f, 0xac, 0x91, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+ 0xce, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x5a, 0x41, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
+ 0x0c, 0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x43, 0x61, 0x70,
+ 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x09,
+ 0x43, 0x61, 0x70, 0x65, 0x20, 0x54, 0x6f, 0x77, 0x6e, 0x31, 0x1d, 0x30,
+ 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x54, 0x68, 0x61, 0x77,
+ 0x74, 0x65, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e,
+ 0x67, 0x20, 0x63, 0x63, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x1f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x73, 0x20, 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x21,
+ 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x18, 0x54, 0x68, 0x61,
+ 0x77, 0x74, 0x65, 0x20, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x20,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x31, 0x28, 0x30,
+ 0x26, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01,
+ 0x16, 0x19, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x2d, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x40, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x31,
+ 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30,
+ 0x31, 0x32, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30,
+ 0x81, 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+ 0x02, 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x13, 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x1f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20,
+ 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36,
+ 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32,
+ 0x30, 0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61,
+ 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73,
+ 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20,
+ 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74,
+ 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xac, 0xa0, 0xf0, 0xfb, 0x80, 0x59, 0xd4, 0x9c, 0xc7, 0xa4, 0xcf, 0x9d,
+ 0xa1, 0x59, 0x73, 0x09, 0x10, 0x45, 0x0c, 0x0d, 0x2c, 0x6e, 0x68, 0xf1,
+ 0x6c, 0x5b, 0x48, 0x68, 0x49, 0x59, 0x37, 0xfc, 0x0b, 0x33, 0x19, 0xc2,
+ 0x77, 0x7f, 0xcc, 0x10, 0x2d, 0x95, 0x34, 0x1c, 0xe6, 0xeb, 0x4d, 0x09,
+ 0xa7, 0x1c, 0xd2, 0xb8, 0xc9, 0x97, 0x36, 0x02, 0xb7, 0x89, 0xd4, 0x24,
+ 0x5f, 0x06, 0xc0, 0xcc, 0x44, 0x94, 0x94, 0x8d, 0x02, 0x62, 0x6f, 0xeb,
+ 0x5a, 0xdd, 0x11, 0x8d, 0x28, 0x9a, 0x5c, 0x84, 0x90, 0x10, 0x7a, 0x0d,
+ 0xbd, 0x74, 0x66, 0x2f, 0x6a, 0x38, 0xa0, 0xe2, 0xd5, 0x54, 0x44, 0xeb,
+ 0x1d, 0x07, 0x9f, 0x07, 0xba, 0x6f, 0xee, 0xe9, 0xfd, 0x4e, 0x0b, 0x29,
+ 0xf5, 0x3e, 0x84, 0xa0, 0x01, 0xf1, 0x9c, 0xab, 0xf8, 0x1c, 0x7e, 0x89,
+ 0xa4, 0xe8, 0xa1, 0xd8, 0x71, 0x65, 0x0d, 0xa3, 0x51, 0x7b, 0xee, 0xbc,
+ 0xd2, 0x22, 0x60, 0x0d, 0xb9, 0x5b, 0x9d, 0xdf, 0xba, 0xfc, 0x51, 0x5b,
+ 0x0b, 0xaf, 0x98, 0xb2, 0xe9, 0x2e, 0xe9, 0x04, 0xe8, 0x62, 0x87, 0xde,
+ 0x2b, 0xc8, 0xd7, 0x4e, 0xc1, 0x4c, 0x64, 0x1e, 0xdd, 0xcf, 0x87, 0x58,
+ 0xba, 0x4a, 0x4f, 0xca, 0x68, 0x07, 0x1d, 0x1c, 0x9d, 0x4a, 0xc6, 0xd5,
+ 0x2f, 0x91, 0xcc, 0x7c, 0x71, 0x72, 0x1c, 0xc5, 0xc0, 0x67, 0xeb, 0x32,
+ 0xfd, 0xc9, 0x92, 0x5c, 0x94, 0xda, 0x85, 0xc0, 0x9b, 0xbf, 0x53, 0x7d,
+ 0x2b, 0x09, 0xf4, 0x8c, 0x9d, 0x91, 0x1f, 0x97, 0x6a, 0x52, 0xcb, 0xde,
+ 0x09, 0x36, 0xa4, 0x77, 0xd8, 0x7b, 0x87, 0x50, 0x44, 0xd5, 0x3e, 0x6e,
+ 0x29, 0x69, 0xfb, 0x39, 0x49, 0x26, 0x1e, 0x09, 0xa5, 0x80, 0x7b, 0x40,
+ 0x2d, 0xeb, 0xe8, 0x27, 0x85, 0xc9, 0xfe, 0x61, 0xfd, 0x7e, 0xe6, 0x7c,
+ 0x97, 0x1d, 0xd5, 0x9d, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xc2,
+ 0x30, 0x81, 0xbf, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x3b, 0x06, 0x03,
+ 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06, 0x04, 0x55,
+ 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73,
+ 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74,
+ 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0e, 0x06,
+ 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+ 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x7b, 0x5b, 0x45, 0xcf, 0xaf, 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a,
+ 0x6a, 0xb6, 0xf3, 0x46, 0xeb, 0x57, 0x48, 0x50, 0x30, 0x40, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x39, 0x30, 0x37, 0x30, 0x35, 0xa0, 0x33, 0xa0,
+ 0x31, 0x86, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x72, 0x65, 0x6d, 0x69,
+ 0x75, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x41, 0x2e, 0x63,
+ 0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x84, 0xa8, 0x4c,
+ 0xc9, 0x3e, 0x2a, 0xbc, 0x9a, 0xe2, 0xcc, 0x8f, 0x0b, 0xb2, 0x25, 0x77,
+ 0xc4, 0x61, 0x89, 0x89, 0x63, 0x5a, 0xd4, 0xa3, 0x15, 0x40, 0xd4, 0xfb,
+ 0x5e, 0x3f, 0xb4, 0x43, 0xea, 0x63, 0x17, 0x2b, 0x6b, 0x99, 0x74, 0x9e,
+ 0x09, 0xa8, 0xdd, 0xd4, 0x56, 0x15, 0x2e, 0x7a, 0x79, 0x31, 0x5f, 0x63,
+ 0x96, 0x53, 0x1b, 0x34, 0xd9, 0x15, 0xea, 0x4f, 0x6d, 0x70, 0xca, 0xbe,
+ 0xf6, 0x82, 0xa9, 0xed, 0xda, 0x85, 0x77, 0xcc, 0x76, 0x1c, 0x6a, 0x81,
+ 0x0a, 0x21, 0xd8, 0x41, 0x99, 0x7f, 0x5e, 0x2e, 0x82, 0xc1, 0xe8, 0xaa,
+ 0xf7, 0x93, 0x81, 0x05, 0xaa, 0x92, 0xb4, 0x1f, 0xb7, 0x9a, 0xc0, 0x07,
+ 0x17, 0xf5, 0xcb, 0xc6, 0xb4, 0x4c, 0x0e, 0xd7, 0x56, 0xdc, 0x71, 0x20,
+ 0x74, 0x38, 0xd6, 0x74, 0xc6, 0xd6, 0x8f, 0x6b, 0xaf, 0x8b, 0x8d, 0xa0,
+ 0x6c, 0x29, 0x0b, 0x61, 0xe0,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 06:7f:94:57:85:87:e8:ac:77:de:b2:53:32:5b:bc:99:8b:56:0d
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=Amazon, CN=Amazon Root CA 1
+ Validity
+ Not Before: Oct 22 00:00:00 2015 GMT
+ Not After : Oct 19 00:00:00 2025 GMT
+ Subject: C=US, O=Amazon, OU=Server CA 1B, CN=Amazon
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:c2:4e:16:67:dd:ce:bc:6a:c8:37:5a:ec:3a:30:
+ b0:1d:e6:d1:12:e8:12:28:48:cc:e8:29:c1:b9:6e:
+ 53:d5:a3:eb:03:39:1a:cc:77:87:f6:01:b9:d9:70:
+ cc:cf:6b:8d:e3:e3:03:71:86:99:6d:cb:a6:94:2a:
+ 4e:13:d6:a7:bd:04:ec:0a:16:3c:0a:eb:39:b1:c4:
+ b5:58:a3:b6:c7:56:25:ec:3e:52:7a:a8:e3:29:16:
+ 07:b9:6e:50:cf:fb:5f:31:f8:1d:ba:03:4a:62:89:
+ 03:ae:3e:47:f2:0f:27:91:e3:14:20:85:f8:fa:e9:
+ 8a:35:f5:5f:9e:99:4d:e7:6b:37:ef:a4:50:3e:44:
+ ec:fa:5a:85:66:07:9c:7e:17:6a:55:f3:17:8a:35:
+ 1e:ee:e9:ac:c3:75:4e:58:55:7d:53:6b:0a:6b:9b:
+ 14:42:d7:e5:ac:01:89:b3:ea:a3:fe:cf:c0:2b:0c:
+ 84:c2:d8:53:15:cb:67:f0:d0:88:ca:3a:d1:17:73:
+ f5:5f:9a:d4:c5:72:1e:7e:01:f1:98:30:63:2a:aa:
+ f2:7a:2d:c5:e2:02:1a:86:e5:32:3e:0e:bd:11:b4:
+ cf:3c:93:ef:17:50:10:9e:43:c2:06:2a:e0:0d:68:
+ be:d3:88:8b:4a:65:8c:4a:d4:c3:2e:4c:9b:55:f4:
+ 86:e5
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 59:A4:66:06:52:A0:7B:95:92:3C:A3:94:07:27:96:74:5B:F9:3D:D0
+ X509v3 Authority Key Identifier:
+ keyid:84:18:CC:85:34:EC:BC:0C:94:94:2E:08:59:9C:C7:B2:10:4E:0A:08
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.rootca1.amazontrust.com
+ CA Issuers - URI:http://crt.rootca1.amazontrust.com/rootca1.cer
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.rootca1.amazontrust.com/rootca1.crl
+
+ X509v3 Certificate Policies:
+ Policy: 2.23.140.1.2.1
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 85:92:be:35:bb:79:cf:a3:81:42:1c:e4:e3:63:73:53:39:52:
+ 35:e7:d1:ad:fd:ae:99:8a:ac:89:12:2f:bb:e7:6f:9a:d5:4e:
+ 72:ea:20:30:61:f9:97:b2:cd:a5:27:02:45:a8:ca:76:3e:98:
+ 4a:83:9e:b6:e6:45:e0:f2:43:f6:08:de:6d:e8:6e:db:31:07:
+ 13:f0:2f:31:0d:93:6d:61:37:7b:58:f0:fc:51:98:91:28:02:
+ 4f:05:76:b7:d3:f0:1b:c2:e6:5e:d0:66:85:11:0f:2e:81:c6:
+ 10:81:29:fe:20:60:48:f3:f2:f0:84:13:53:65:35:15:11:6b:
+ 82:51:40:55:57:5f:18:b5:b0:22:3e:ad:f2:5e:a3:01:e3:c3:
+ b3:f9:cb:41:5a:e6:52:91:bb:e4:36:87:4f:2d:a9:a4:07:68:
+ 35:ba:94:72:cd:0e:ea:0e:7d:57:f2:79:fc:37:c5:7b:60:9e:
+ b2:eb:c0:2d:90:77:0d:49:10:27:a5:38:ad:c4:12:a3:b4:a3:
+ c8:48:b3:15:0b:1e:e2:e2:19:dc:c4:76:52:c8:bc:8a:41:78:
+ 70:d9:6d:97:b3:4a:8b:78:2d:5e:b4:0f:a3:4c:60:ca:e1:47:
+ cb:78:2d:12:17:b1:52:8b:ca:39:2c:bd:b5:2f:c2:33:02:96:
+ ab:da:94:7f
+-----BEGIN CERTIFICATE-----
+MIIESTCCAzGgAwIBAgITBn+UV4WH6Kx33rJTMlu8mYtWDTANBgkqhkiG9w0BAQsF
+ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
+b24gUm9vdCBDQSAxMB4XDTE1MTAyMjAwMDAwMFoXDTI1MTAxOTAwMDAwMFowRjEL
+MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEVMBMGA1UECxMMU2VydmVyIENB
+IDFCMQ8wDQYDVQQDEwZBbWF6b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDCThZn3c68asg3Wuw6MLAd5tES6BIoSMzoKcG5blPVo+sDORrMd4f2AbnZ
+cMzPa43j4wNxhplty6aUKk4T1qe9BOwKFjwK6zmxxLVYo7bHViXsPlJ6qOMpFge5
+blDP+18x+B26A0piiQOuPkfyDyeR4xQghfj66Yo19V+emU3nazfvpFA+ROz6WoVm
+B5x+F2pV8xeKNR7u6azDdU5YVX1TawprmxRC1+WsAYmz6qP+z8ArDITC2FMVy2fw
+0IjKOtEXc/VfmtTFch5+AfGYMGMqqvJ6LcXiAhqG5TI+Dr0RtM88k+8XUBCeQ8IG
+KuANaL7TiItKZYxK1MMuTJtV9IblAgMBAAGjggE7MIIBNzASBgNVHRMBAf8ECDAG
+AQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUWaRmBlKge5WSPKOUByeW
+dFv5PdAwHwYDVR0jBBgwFoAUhBjMhTTsvAyUlC4IWZzHshBOCggwewYIKwYBBQUH
+AQEEbzBtMC8GCCsGAQUFBzABhiNodHRwOi8vb2NzcC5yb290Y2ExLmFtYXpvbnRy
+dXN0LmNvbTA6BggrBgEFBQcwAoYuaHR0cDovL2NydC5yb290Y2ExLmFtYXpvbnRy
+dXN0LmNvbS9yb290Y2ExLmNlcjA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3Js
+LnJvb3RjYTEuYW1hem9udHJ1c3QuY29tL3Jvb3RjYTEuY3JsMBMGA1UdIAQMMAow
+CAYGZ4EMAQIBMA0GCSqGSIb3DQEBCwUAA4IBAQCFkr41u3nPo4FCHOTjY3NTOVI1
+59Gt/a6ZiqyJEi+752+a1U5y6iAwYfmXss2lJwJFqMp2PphKg5625kXg8kP2CN5t
+6G7bMQcT8C8xDZNtYTd7WPD8UZiRKAJPBXa30/AbwuZe0GaFEQ8ugcYQgSn+IGBI
+8/LwhBNTZTUVEWuCUUBVV18YtbAiPq3yXqMB48Oz+ctBWuZSkbvkNodPLamkB2g1
+upRyzQ7qDn1X8nn8N8V7YJ6y68AtkHcNSRAnpTitxBKjtKPISLMVCx7i4hncxHZS
+yLyKQXhw2W2Xs0qLeC1etA+jTGDK4UfLeC0SF7FSi8o5LL21L8IzApar2pR/
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert7[] = {
+ 0x30, 0x82, 0x04, 0x49, 0x30, 0x82, 0x03, 0x31, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x13, 0x06, 0x7f, 0x94, 0x57, 0x85, 0x87, 0xe8, 0xac, 0x77,
+ 0xde, 0xb2, 0x53, 0x32, 0x5b, 0xbc, 0x99, 0x8b, 0x56, 0x0d, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+ 0x00, 0x30, 0x39, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x06, 0x41, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x31, 0x19, 0x30,
+ 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x10, 0x41, 0x6d, 0x61, 0x7a,
+ 0x6f, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x31,
+ 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x31, 0x30, 0x32, 0x32, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x35, 0x31, 0x30, 0x31,
+ 0x39, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x46, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x06, 0x41, 0x6d,
+ 0x61, 0x7a, 0x6f, 0x6e, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41,
+ 0x20, 0x31, 0x42, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x06, 0x41, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xc2, 0x4e, 0x16, 0x67, 0xdd, 0xce, 0xbc,
+ 0x6a, 0xc8, 0x37, 0x5a, 0xec, 0x3a, 0x30, 0xb0, 0x1d, 0xe6, 0xd1, 0x12,
+ 0xe8, 0x12, 0x28, 0x48, 0xcc, 0xe8, 0x29, 0xc1, 0xb9, 0x6e, 0x53, 0xd5,
+ 0xa3, 0xeb, 0x03, 0x39, 0x1a, 0xcc, 0x77, 0x87, 0xf6, 0x01, 0xb9, 0xd9,
+ 0x70, 0xcc, 0xcf, 0x6b, 0x8d, 0xe3, 0xe3, 0x03, 0x71, 0x86, 0x99, 0x6d,
+ 0xcb, 0xa6, 0x94, 0x2a, 0x4e, 0x13, 0xd6, 0xa7, 0xbd, 0x04, 0xec, 0x0a,
+ 0x16, 0x3c, 0x0a, 0xeb, 0x39, 0xb1, 0xc4, 0xb5, 0x58, 0xa3, 0xb6, 0xc7,
+ 0x56, 0x25, 0xec, 0x3e, 0x52, 0x7a, 0xa8, 0xe3, 0x29, 0x16, 0x07, 0xb9,
+ 0x6e, 0x50, 0xcf, 0xfb, 0x5f, 0x31, 0xf8, 0x1d, 0xba, 0x03, 0x4a, 0x62,
+ 0x89, 0x03, 0xae, 0x3e, 0x47, 0xf2, 0x0f, 0x27, 0x91, 0xe3, 0x14, 0x20,
+ 0x85, 0xf8, 0xfa, 0xe9, 0x8a, 0x35, 0xf5, 0x5f, 0x9e, 0x99, 0x4d, 0xe7,
+ 0x6b, 0x37, 0xef, 0xa4, 0x50, 0x3e, 0x44, 0xec, 0xfa, 0x5a, 0x85, 0x66,
+ 0x07, 0x9c, 0x7e, 0x17, 0x6a, 0x55, 0xf3, 0x17, 0x8a, 0x35, 0x1e, 0xee,
+ 0xe9, 0xac, 0xc3, 0x75, 0x4e, 0x58, 0x55, 0x7d, 0x53, 0x6b, 0x0a, 0x6b,
+ 0x9b, 0x14, 0x42, 0xd7, 0xe5, 0xac, 0x01, 0x89, 0xb3, 0xea, 0xa3, 0xfe,
+ 0xcf, 0xc0, 0x2b, 0x0c, 0x84, 0xc2, 0xd8, 0x53, 0x15, 0xcb, 0x67, 0xf0,
+ 0xd0, 0x88, 0xca, 0x3a, 0xd1, 0x17, 0x73, 0xf5, 0x5f, 0x9a, 0xd4, 0xc5,
+ 0x72, 0x1e, 0x7e, 0x01, 0xf1, 0x98, 0x30, 0x63, 0x2a, 0xaa, 0xf2, 0x7a,
+ 0x2d, 0xc5, 0xe2, 0x02, 0x1a, 0x86, 0xe5, 0x32, 0x3e, 0x0e, 0xbd, 0x11,
+ 0xb4, 0xcf, 0x3c, 0x93, 0xef, 0x17, 0x50, 0x10, 0x9e, 0x43, 0xc2, 0x06,
+ 0x2a, 0xe0, 0x0d, 0x68, 0xbe, 0xd3, 0x88, 0x8b, 0x4a, 0x65, 0x8c, 0x4a,
+ 0xd4, 0xc3, 0x2e, 0x4c, 0x9b, 0x55, 0xf4, 0x86, 0xe5, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x3b, 0x30, 0x82, 0x01, 0x37, 0x30, 0x12,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06,
+ 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x59, 0xa4, 0x66,
+ 0x06, 0x52, 0xa0, 0x7b, 0x95, 0x92, 0x3c, 0xa3, 0x94, 0x07, 0x27, 0x96,
+ 0x74, 0x5b, 0xf9, 0x3d, 0xd0, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+ 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x84, 0x18, 0xcc, 0x85, 0x34, 0xec,
+ 0xbc, 0x0c, 0x94, 0x94, 0x2e, 0x08, 0x59, 0x9c, 0xc7, 0xb2, 0x10, 0x4e,
+ 0x0a, 0x08, 0x30, 0x7b, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x01, 0x01, 0x04, 0x6f, 0x30, 0x6d, 0x30, 0x2f, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x23, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x72, 0x6f, 0x6f, 0x74,
+ 0x63, 0x61, 0x31, 0x2e, 0x61, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x3a, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x2e, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x74, 0x2e, 0x72, 0x6f, 0x6f, 0x74,
+ 0x63, 0x61, 0x31, 0x2e, 0x61, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74,
+ 0x63, 0x61, 0x31, 0x2e, 0x63, 0x65, 0x72, 0x30, 0x3f, 0x06, 0x03, 0x55,
+ 0x1d, 0x1f, 0x04, 0x38, 0x30, 0x36, 0x30, 0x34, 0xa0, 0x32, 0xa0, 0x30,
+ 0x86, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c,
+ 0x2e, 0x72, 0x6f, 0x6f, 0x74, 0x63, 0x61, 0x31, 0x2e, 0x61, 0x6d, 0x61,
+ 0x7a, 0x6f, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x63, 0x61, 0x31, 0x2e, 0x63, 0x72, 0x6c,
+ 0x30, 0x13, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x0c, 0x30, 0x0a, 0x30,
+ 0x08, 0x06, 0x06, 0x67, 0x81, 0x0c, 0x01, 0x02, 0x01, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x01, 0x00, 0x85, 0x92, 0xbe, 0x35, 0xbb, 0x79, 0xcf,
+ 0xa3, 0x81, 0x42, 0x1c, 0xe4, 0xe3, 0x63, 0x73, 0x53, 0x39, 0x52, 0x35,
+ 0xe7, 0xd1, 0xad, 0xfd, 0xae, 0x99, 0x8a, 0xac, 0x89, 0x12, 0x2f, 0xbb,
+ 0xe7, 0x6f, 0x9a, 0xd5, 0x4e, 0x72, 0xea, 0x20, 0x30, 0x61, 0xf9, 0x97,
+ 0xb2, 0xcd, 0xa5, 0x27, 0x02, 0x45, 0xa8, 0xca, 0x76, 0x3e, 0x98, 0x4a,
+ 0x83, 0x9e, 0xb6, 0xe6, 0x45, 0xe0, 0xf2, 0x43, 0xf6, 0x08, 0xde, 0x6d,
+ 0xe8, 0x6e, 0xdb, 0x31, 0x07, 0x13, 0xf0, 0x2f, 0x31, 0x0d, 0x93, 0x6d,
+ 0x61, 0x37, 0x7b, 0x58, 0xf0, 0xfc, 0x51, 0x98, 0x91, 0x28, 0x02, 0x4f,
+ 0x05, 0x76, 0xb7, 0xd3, 0xf0, 0x1b, 0xc2, 0xe6, 0x5e, 0xd0, 0x66, 0x85,
+ 0x11, 0x0f, 0x2e, 0x81, 0xc6, 0x10, 0x81, 0x29, 0xfe, 0x20, 0x60, 0x48,
+ 0xf3, 0xf2, 0xf0, 0x84, 0x13, 0x53, 0x65, 0x35, 0x15, 0x11, 0x6b, 0x82,
+ 0x51, 0x40, 0x55, 0x57, 0x5f, 0x18, 0xb5, 0xb0, 0x22, 0x3e, 0xad, 0xf2,
+ 0x5e, 0xa3, 0x01, 0xe3, 0xc3, 0xb3, 0xf9, 0xcb, 0x41, 0x5a, 0xe6, 0x52,
+ 0x91, 0xbb, 0xe4, 0x36, 0x87, 0x4f, 0x2d, 0xa9, 0xa4, 0x07, 0x68, 0x35,
+ 0xba, 0x94, 0x72, 0xcd, 0x0e, 0xea, 0x0e, 0x7d, 0x57, 0xf2, 0x79, 0xfc,
+ 0x37, 0xc5, 0x7b, 0x60, 0x9e, 0xb2, 0xeb, 0xc0, 0x2d, 0x90, 0x77, 0x0d,
+ 0x49, 0x10, 0x27, 0xa5, 0x38, 0xad, 0xc4, 0x12, 0xa3, 0xb4, 0xa3, 0xc8,
+ 0x48, 0xb3, 0x15, 0x0b, 0x1e, 0xe2, 0xe2, 0x19, 0xdc, 0xc4, 0x76, 0x52,
+ 0xc8, 0xbc, 0x8a, 0x41, 0x78, 0x70, 0xd9, 0x6d, 0x97, 0xb3, 0x4a, 0x8b,
+ 0x78, 0x2d, 0x5e, 0xb4, 0x0f, 0xa3, 0x4c, 0x60, 0xca, 0xe1, 0x47, 0xcb,
+ 0x78, 0x2d, 0x12, 0x17, 0xb1, 0x52, 0x8b, 0xca, 0x39, 0x2c, 0xbd, 0xb5,
+ 0x2f, 0xc2, 0x33, 0x02, 0x96, 0xab, 0xda, 0x94, 0x7f,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146033 (0x23a71)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Dec 11 23:45:51 2013 GMT
+ Not After : May 20 23:45:51 2022 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=RapidSSL SHA256 CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:bb:58:c1:12:01:2e:97:d8:7d:18:aa:c8:c2:e5:
+ 85:e2:17:6c:60:2e:c9:8d:31:05:39:1a:06:98:56:
+ dd:54:d7:11:8c:59:5b:3d:b1:54:ae:4b:21:85:32:
+ 16:5f:54:86:e6:d9:b1:d8:60:89:6b:58:be:72:da:
+ a0:00:42:76:b1:27:59:4c:cd:e3:ba:d4:5c:d9:a6:
+ 7f:bb:2b:75:d5:46:44:bd:ec:40:5c:59:b7:dd:59:
+ 9f:f1:6a:f7:06:fc:d6:2f:19:8a:95:12:ba:9a:ca:
+ d5:30:d2:38:fc:19:3b:5b:15:3b:36:d0:43:4d:d1:
+ 65:a1:d4:8b:c1:60:41:b3:d6:70:17:cc:39:c0:9c:
+ 0c:a0:3d:b7:11:22:4e:ce:d9:a9:7a:d2:2a:62:9c:
+ a0:0b:4e:2a:d7:c3:61:5a:85:dd:5c:10:b9:54:3d:
+ 2d:03:f8:49:f0:bc:92:b7:b7:9c:31:c7:e9:b8:aa:
+ 82:0b:05:b9:31:cd:08:5b:bb:22:0b:f6:9c:8e:8a:
+ 55:1c:76:43:76:f0:e2:6e:f0:df:a8:29:75:e7:c8:
+ a4:87:8b:6a:f1:bb:08:c9:36:18:65:ee:50:43:b8:
+ 5d:72:d5:28:39:e1:53:3e:25:2c:da:2b:4f:dd:8a:
+ 9e:50:50:e0:6f:9a:c4:d5:19:26:89:01:75:73:09:
+ 9b:3b
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ 97:C2:27:50:9E:C2:C9:EC:0C:88:32:C8:7C:AD:E2:A6:01:4F:DA:6F
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g1.symcb.com/crls/gtglobal.crl
+
+ Authority Information Access:
+ OCSP - URI:http://g2.symcb.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-569
+ Signature Algorithm: sha256WithRSAEncryption
+ 35:eb:e1:8b:20:56:94:ba:7a:bd:79:a9:f6:e3:fe:6e:38:b4:
+ 32:c1:a3:db:58:56:20:3e:7d:c7:3a:b1:67:69:d5:79:14:1b:
+ f6:fa:ec:60:f2:79:cd:0a:0c:60:8a:74:4c:a3:93:2a:a0:f0:
+ 51:7f:cd:e9:f9:92:fd:96:ab:45:f5:62:3d:3f:60:46:50:13:
+ 3d:20:13:18:2e:94:46:ae:d5:21:fe:43:a1:c9:23:fe:53:c4:
+ bf:1a:d8:ac:3a:ca:de:66:97:23:ae:d3:df:4a:4d:73:1f:6f:
+ 31:a2:51:04:16:6a:00:eb:f9:8d:43:81:f0:50:a1:1f:a6:ca:
+ 3a:f3:28:3c:5f:51:ac:d7:0a:45:77:4b:0e:52:62:1b:d8:38:
+ 51:a0:92:2d:3f:90:6e:c8:7e:40:9f:20:46:15:5d:e0:50:7c:
+ e1:76:af:5e:ed:11:d3:2f:13:b9:b8:25:a4:af:58:09:af:35:
+ b4:62:54:85:e3:48:de:bc:d2:90:7a:7a:a4:84:0d:a3:42:f2:
+ 51:c0:d4:ad:53:65:5d:6c:f8:3f:1f:06:f2:4f:cb:97:a0:4a:
+ 59:c6:78:d1:e8:03:b9:85:6d:2c:ba:e1:5f:b6:ad:2b:3e:25:
+ 79:c5:8b:56:d5:e3:09:80:ea:c1:27:c2:d9:0e:ec:47:0a:e9:
+ d0:ca:fc:d8
+-----BEGIN CERTIFICATE-----
+MIIETTCCAzWgAwIBAgIDAjpxMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTMxMjExMjM0NTUxWhcNMjIwNTIwMjM0NTUxWjBCMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSUmFwaWRTU0wg
+U0hBMjU2IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1jBEgEu
+l9h9GKrIwuWF4hdsYC7JjTEFORoGmFbdVNcRjFlbPbFUrkshhTIWX1SG5tmx2GCJ
+a1i+ctqgAEJ2sSdZTM3jutRc2aZ/uyt11UZEvexAXFm33Vmf8Wr3BvzWLxmKlRK6
+msrVMNI4/Bk7WxU7NtBDTdFlodSLwWBBs9ZwF8w5wJwMoD23ESJOztmpetIqYpyg
+C04q18NhWoXdXBC5VD0tA/hJ8LySt7ecMcfpuKqCCwW5Mc0IW7siC/acjopVHHZD
+dvDibvDfqCl158ikh4tq8bsIyTYYZe5QQ7hdctUoOeFTPiUs2itP3YqeUFDgb5rE
+1RkmiQF1cwmbOwIDAQABo4IBSjCCAUYwHwYDVR0jBBgwFoAUwHqYaI2J+6sFZAwR
+fap9ZbjKzE4wHQYDVR0OBBYEFJfCJ1CewsnsDIgyyHyt4qYBT9pvMBIGA1UdEwEB
+/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDYGA1UdHwQvMC0wK6ApoCeGJWh0
+dHA6Ly9nMS5zeW1jYi5jb20vY3Jscy9ndGdsb2JhbC5jcmwwLwYIKwYBBQUHAQEE
+IzAhMB8GCCsGAQUFBzABhhNodHRwOi8vZzIuc3ltY2IuY29tMEwGA1UdIARFMEMw
+QQYKYIZIAYb4RQEHNjAzMDEGCCsGAQUFBwIBFiVodHRwOi8vd3d3Lmdlb3RydXN0
+LmNvbS9yZXNvdXJjZXMvY3BzMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTeW1h
+bnRlY1BLSS0xLTU2OTANBgkqhkiG9w0BAQsFAAOCAQEANevhiyBWlLp6vXmp9uP+
+bji0MsGj21hWID59xzqxZ2nVeRQb9vrsYPJ5zQoMYIp0TKOTKqDwUX/N6fmS/Zar
+RfViPT9gRlATPSATGC6URq7VIf5Dockj/lPEvxrYrDrK3maXI67T30pNcx9vMaJR
+BBZqAOv5jUOB8FChH6bKOvMoPF9RrNcKRXdLDlJiG9g4UaCSLT+Qbsh+QJ8gRhVd
+4FB84XavXu0R0y8TubglpK9YCa81tGJUheNI3rzSkHp6pIQNo0LyUcDUrVNlXWz4
+Px8G8k/Ll6BKWcZ40egDuYVtLLrhX7atKz4lecWLVtXjCYDqwSfC2Q7sRwrp0Mr8
+2A==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert8[] = {
+ 0x30, 0x82, 0x04, 0x4d, 0x30, 0x82, 0x03, 0x35, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x71, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31,
+ 0x32, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x35, 0x31, 0x5a, 0x17, 0x0d,
+ 0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x33, 0x34, 0x35, 0x35, 0x31,
+ 0x5a, 0x30, 0x42, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x12, 0x52, 0x61, 0x70, 0x69, 0x64, 0x53, 0x53, 0x4c, 0x20,
+ 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01,
+ 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+ 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbb, 0x58, 0xc1, 0x12, 0x01, 0x2e,
+ 0x97, 0xd8, 0x7d, 0x18, 0xaa, 0xc8, 0xc2, 0xe5, 0x85, 0xe2, 0x17, 0x6c,
+ 0x60, 0x2e, 0xc9, 0x8d, 0x31, 0x05, 0x39, 0x1a, 0x06, 0x98, 0x56, 0xdd,
+ 0x54, 0xd7, 0x11, 0x8c, 0x59, 0x5b, 0x3d, 0xb1, 0x54, 0xae, 0x4b, 0x21,
+ 0x85, 0x32, 0x16, 0x5f, 0x54, 0x86, 0xe6, 0xd9, 0xb1, 0xd8, 0x60, 0x89,
+ 0x6b, 0x58, 0xbe, 0x72, 0xda, 0xa0, 0x00, 0x42, 0x76, 0xb1, 0x27, 0x59,
+ 0x4c, 0xcd, 0xe3, 0xba, 0xd4, 0x5c, 0xd9, 0xa6, 0x7f, 0xbb, 0x2b, 0x75,
+ 0xd5, 0x46, 0x44, 0xbd, 0xec, 0x40, 0x5c, 0x59, 0xb7, 0xdd, 0x59, 0x9f,
+ 0xf1, 0x6a, 0xf7, 0x06, 0xfc, 0xd6, 0x2f, 0x19, 0x8a, 0x95, 0x12, 0xba,
+ 0x9a, 0xca, 0xd5, 0x30, 0xd2, 0x38, 0xfc, 0x19, 0x3b, 0x5b, 0x15, 0x3b,
+ 0x36, 0xd0, 0x43, 0x4d, 0xd1, 0x65, 0xa1, 0xd4, 0x8b, 0xc1, 0x60, 0x41,
+ 0xb3, 0xd6, 0x70, 0x17, 0xcc, 0x39, 0xc0, 0x9c, 0x0c, 0xa0, 0x3d, 0xb7,
+ 0x11, 0x22, 0x4e, 0xce, 0xd9, 0xa9, 0x7a, 0xd2, 0x2a, 0x62, 0x9c, 0xa0,
+ 0x0b, 0x4e, 0x2a, 0xd7, 0xc3, 0x61, 0x5a, 0x85, 0xdd, 0x5c, 0x10, 0xb9,
+ 0x54, 0x3d, 0x2d, 0x03, 0xf8, 0x49, 0xf0, 0xbc, 0x92, 0xb7, 0xb7, 0x9c,
+ 0x31, 0xc7, 0xe9, 0xb8, 0xaa, 0x82, 0x0b, 0x05, 0xb9, 0x31, 0xcd, 0x08,
+ 0x5b, 0xbb, 0x22, 0x0b, 0xf6, 0x9c, 0x8e, 0x8a, 0x55, 0x1c, 0x76, 0x43,
+ 0x76, 0xf0, 0xe2, 0x6e, 0xf0, 0xdf, 0xa8, 0x29, 0x75, 0xe7, 0xc8, 0xa4,
+ 0x87, 0x8b, 0x6a, 0xf1, 0xbb, 0x08, 0xc9, 0x36, 0x18, 0x65, 0xee, 0x50,
+ 0x43, 0xb8, 0x5d, 0x72, 0xd5, 0x28, 0x39, 0xe1, 0x53, 0x3e, 0x25, 0x2c,
+ 0xda, 0x2b, 0x4f, 0xdd, 0x8a, 0x9e, 0x50, 0x50, 0xe0, 0x6f, 0x9a, 0xc4,
+ 0xd5, 0x19, 0x26, 0x89, 0x01, 0x75, 0x73, 0x09, 0x9b, 0x3b, 0x02, 0x03,
+ 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x4a, 0x30, 0x82, 0x01, 0x46, 0x30,
+ 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+ 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64, 0x0c, 0x11,
+ 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d, 0x06, 0x03,
+ 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x97, 0xc2, 0x27, 0x50, 0x9e,
+ 0xc2, 0xc9, 0xec, 0x0c, 0x88, 0x32, 0xc8, 0x7c, 0xad, 0xe2, 0xa6, 0x01,
+ 0x4f, 0xda, 0x6f, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+ 0x02, 0x01, 0x06, 0x30, 0x36, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2f,
+ 0x30, 0x2d, 0x30, 0x2b, 0xa0, 0x29, 0xa0, 0x27, 0x86, 0x25, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63,
+ 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67,
+ 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+ 0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x67, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30,
+ 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07,
+ 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d,
+ 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a, 0x30,
+ 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d, 0x61,
+ 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x35, 0x36,
+ 0x39, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x35, 0xeb, 0xe1,
+ 0x8b, 0x20, 0x56, 0x94, 0xba, 0x7a, 0xbd, 0x79, 0xa9, 0xf6, 0xe3, 0xfe,
+ 0x6e, 0x38, 0xb4, 0x32, 0xc1, 0xa3, 0xdb, 0x58, 0x56, 0x20, 0x3e, 0x7d,
+ 0xc7, 0x3a, 0xb1, 0x67, 0x69, 0xd5, 0x79, 0x14, 0x1b, 0xf6, 0xfa, 0xec,
+ 0x60, 0xf2, 0x79, 0xcd, 0x0a, 0x0c, 0x60, 0x8a, 0x74, 0x4c, 0xa3, 0x93,
+ 0x2a, 0xa0, 0xf0, 0x51, 0x7f, 0xcd, 0xe9, 0xf9, 0x92, 0xfd, 0x96, 0xab,
+ 0x45, 0xf5, 0x62, 0x3d, 0x3f, 0x60, 0x46, 0x50, 0x13, 0x3d, 0x20, 0x13,
+ 0x18, 0x2e, 0x94, 0x46, 0xae, 0xd5, 0x21, 0xfe, 0x43, 0xa1, 0xc9, 0x23,
+ 0xfe, 0x53, 0xc4, 0xbf, 0x1a, 0xd8, 0xac, 0x3a, 0xca, 0xde, 0x66, 0x97,
+ 0x23, 0xae, 0xd3, 0xdf, 0x4a, 0x4d, 0x73, 0x1f, 0x6f, 0x31, 0xa2, 0x51,
+ 0x04, 0x16, 0x6a, 0x00, 0xeb, 0xf9, 0x8d, 0x43, 0x81, 0xf0, 0x50, 0xa1,
+ 0x1f, 0xa6, 0xca, 0x3a, 0xf3, 0x28, 0x3c, 0x5f, 0x51, 0xac, 0xd7, 0x0a,
+ 0x45, 0x77, 0x4b, 0x0e, 0x52, 0x62, 0x1b, 0xd8, 0x38, 0x51, 0xa0, 0x92,
+ 0x2d, 0x3f, 0x90, 0x6e, 0xc8, 0x7e, 0x40, 0x9f, 0x20, 0x46, 0x15, 0x5d,
+ 0xe0, 0x50, 0x7c, 0xe1, 0x76, 0xaf, 0x5e, 0xed, 0x11, 0xd3, 0x2f, 0x13,
+ 0xb9, 0xb8, 0x25, 0xa4, 0xaf, 0x58, 0x09, 0xaf, 0x35, 0xb4, 0x62, 0x54,
+ 0x85, 0xe3, 0x48, 0xde, 0xbc, 0xd2, 0x90, 0x7a, 0x7a, 0xa4, 0x84, 0x0d,
+ 0xa3, 0x42, 0xf2, 0x51, 0xc0, 0xd4, 0xad, 0x53, 0x65, 0x5d, 0x6c, 0xf8,
+ 0x3f, 0x1f, 0x06, 0xf2, 0x4f, 0xcb, 0x97, 0xa0, 0x4a, 0x59, 0xc6, 0x78,
+ 0xd1, 0xe8, 0x03, 0xb9, 0x85, 0x6d, 0x2c, 0xba, 0xe1, 0x5f, 0xb6, 0xad,
+ 0x2b, 0x3e, 0x25, 0x79, 0xc5, 0x8b, 0x56, 0xd5, 0xe3, 0x09, 0x80, 0xea,
+ 0xc1, 0x27, 0xc2, 0xd9, 0x0e, 0xec, 0x47, 0x0a, 0xe9, 0xd0, 0xca, 0xfc,
+ 0xd8,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 04:00:00:00:00:01:44:4e:f0:36:31
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+ Validity
+ Not Before: Feb 20 10:00:00 2014 GMT
+ Not After : Feb 20 10:00:00 2024 GMT
+ Subject: C=BE, O=GlobalSign nv-sa, CN=AlphaSSL CA - SHA256 - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:da:01:ec:e4:ec:73:60:fb:7e:8f:6a:b7:c6:17:
+ e3:92:64:32:d4:ac:00:d9:a2:0f:b9:ed:ee:6b:8a:
+ 86:ca:92:67:d9:74:d7:5d:47:02:3c:8f:40:d6:9e:
+ 6d:14:cd:c3:da:29:39:a7:0f:05:0a:68:a2:66:1a:
+ 1e:c4:b2:8b:76:58:e5:ab:5d:1d:8f:40:b3:39:8b:
+ ef:1e:83:7d:22:d0:e3:a9:00:2e:ec:53:cf:62:19:
+ 85:44:28:4c:c0:27:cb:7b:0e:ec:10:64:00:10:a4:
+ 05:cc:a0:72:be:41:6c:31:5b:48:e4:b1:ec:b9:23:
+ eb:55:4d:d0:7d:62:4a:a5:b4:a5:a4:59:85:c5:25:
+ 91:a6:fe:a6:09:9f:06:10:6d:8f:81:0c:64:40:5e:
+ 73:00:9a:e0:2e:65:98:54:10:00:70:98:c8:e1:ed:
+ 34:5f:d8:9c:c7:0d:c0:d6:23:59:45:fc:fe:55:7a:
+ 86:ee:94:60:22:f1:ae:d1:e6:55:46:f6:99:c5:1b:
+ 08:74:5f:ac:b0:64:84:8f:89:38:1c:a1:a7:90:21:
+ 4f:02:6e:bd:e0:61:67:d4:f8:42:87:0f:0a:f7:c9:
+ 04:6d:2a:a9:2f:ef:42:a5:df:dd:a3:53:db:98:1e:
+ 81:f9:9a:72:7b:5a:de:4f:3e:7f:a2:58:a0:e2:17:
+ ad:67
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Subject Key Identifier:
+ F5:CD:D5:3C:08:50:F9:6A:4F:3A:B7:97:DA:56:83:E6:69:D2:68:F7
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.alphassl.com/repository/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.globalsign.net/root.crl
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+ X509v3 Authority Key Identifier:
+ keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 60:40:68:16:47:e7:16:8d:db:5c:a1:56:2a:cb:f4:5c:9b:b0:
+ 1e:a2:4b:f5:cb:02:3f:f8:0b:a1:f2:a7:42:d4:b7:4c:eb:e3:
+ 66:80:f3:25:43:78:2e:1b:17:56:07:52:18:cb:d1:a8:ec:e6:
+ fb:73:3e:a4:62:8c:80:b4:d2:c5:12:73:a3:d3:fa:02:38:be:
+ 63:3d:84:b8:99:c1:f1:ba:f7:9f:c3:40:d1:58:18:53:c1:62:
+ dd:af:18:42:7f:34:4e:c5:43:d5:71:b0:30:00:c7:e3:90:ae:
+ 3f:57:86:97:ce:ea:0c:12:8e:22:70:e3:66:a7:54:7f:2e:28:
+ cb:d4:54:d0:b3:1e:62:67:08:f9:27:e1:cb:e3:66:b8:24:1b:
+ 89:6a:89:44:65:f2:d9:4c:d2:58:1c:8c:4e:c0:95:a1:d4:ef:
+ 67:2f:38:20:e8:2e:ff:96:51:f0:ba:d8:3d:92:70:47:65:1c:
+ 9e:73:72:b4:60:0c:5c:e2:d1:73:76:e0:af:4e:e2:e5:37:a5:
+ 45:2f:8a:23:3e:87:c7:30:e6:31:38:7c:f4:dd:52:ca:f3:53:
+ 04:25:57:56:66:94:e8:0b:ee:e6:03:14:4e:ee:fd:6d:94:64:
+ 9e:5e:ce:79:d4:b2:a6:cf:40:b1:44:a8:3e:87:19:5e:e9:f8:
+ 21:16:59:53
+-----BEGIN CERTIFICATE-----
+MIIETTCCAzWgAwIBAgILBAAAAAABRE7wNjEwDQYJKoZIhvcNAQELBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
+MDBaFw0yNDAyMjAxMDAwMDBaMEwxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMSIwIAYDVQQDExlBbHBoYVNTTCBDQSAtIFNIQTI1NiAtIEcy
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2gHs5OxzYPt+j2q3xhfj
+kmQy1KwA2aIPue3ua4qGypJn2XTXXUcCPI9A1p5tFM3D2ik5pw8FCmiiZhoexLKL
+dljlq10dj0CzOYvvHoN9ItDjqQAu7FPPYhmFRChMwCfLew7sEGQAEKQFzKByvkFs
+MVtI5LHsuSPrVU3QfWJKpbSlpFmFxSWRpv6mCZ8GEG2PgQxkQF5zAJrgLmWYVBAA
+cJjI4e00X9icxw3A1iNZRfz+VXqG7pRgIvGu0eZVRvaZxRsIdF+ssGSEj4k4HKGn
+kCFPAm694GFn1PhChw8K98kEbSqpL+9Cpd/do1PbmB6B+Zpye1reTz5/olig4het
+ZwIDAQABo4IBIzCCAR8wDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwHQYDVR0OBBYEFPXN1TwIUPlqTzq3l9pWg+Zp0mj3MEUGA1UdIAQ+MDwwOgYE
+VR0gADAyMDAGCCsGAQUFBwIBFiRodHRwczovL3d3dy5hbHBoYXNzbC5jb20vcmVw
+b3NpdG9yeS8wMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5nbG9iYWxzaWdu
+Lm5ldC9yb290LmNybDA9BggrBgEFBQcBAQQxMC8wLQYIKwYBBQUHMAGGIWh0dHA6
+Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyMTAfBgNVHSMEGDAWgBRge2YaRQ2X
+yolQL30EzTSo//z9SzANBgkqhkiG9w0BAQsFAAOCAQEAYEBoFkfnFo3bXKFWKsv0
+XJuwHqJL9csCP/gLofKnQtS3TOvjZoDzJUN4LhsXVgdSGMvRqOzm+3M+pGKMgLTS
+xRJzo9P6Aji+Yz2EuJnB8br3n8NA0VgYU8Fi3a8YQn80TsVD1XGwMADH45CuP1eG
+l87qDBKOInDjZqdUfy4oy9RU0LMeYmcI+Sfhy+NmuCQbiWqJRGXy2UzSWByMTsCV
+odTvZy84IOgu/5ZR8LrYPZJwR2UcnnNytGAMXOLRc3bgr07i5TelRS+KIz6HxzDm
+MTh89N1SyvNTBCVXVmaU6Avu5gMUTu79bZRknl7OedSyps9AsUSoPocZXun4IRZZ
+Uw==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert9[] = {
+ 0x30, 0x82, 0x04, 0x4d, 0x30, 0x82, 0x03, 0x35, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x4e, 0xf0,
+ 0x36, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+ 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61, 0x31,
+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x07, 0x52, 0x6f,
+ 0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
+ 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e,
+ 0x17, 0x0d, 0x31, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x4c, 0x31, 0x0b, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
+ 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
+ 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19, 0x41,
+ 0x6c, 0x70, 0x68, 0x61, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d,
+ 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20, 0x47, 0x32,
+ 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+ 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0x01, 0xec,
+ 0xe4, 0xec, 0x73, 0x60, 0xfb, 0x7e, 0x8f, 0x6a, 0xb7, 0xc6, 0x17, 0xe3,
+ 0x92, 0x64, 0x32, 0xd4, 0xac, 0x00, 0xd9, 0xa2, 0x0f, 0xb9, 0xed, 0xee,
+ 0x6b, 0x8a, 0x86, 0xca, 0x92, 0x67, 0xd9, 0x74, 0xd7, 0x5d, 0x47, 0x02,
+ 0x3c, 0x8f, 0x40, 0xd6, 0x9e, 0x6d, 0x14, 0xcd, 0xc3, 0xda, 0x29, 0x39,
+ 0xa7, 0x0f, 0x05, 0x0a, 0x68, 0xa2, 0x66, 0x1a, 0x1e, 0xc4, 0xb2, 0x8b,
+ 0x76, 0x58, 0xe5, 0xab, 0x5d, 0x1d, 0x8f, 0x40, 0xb3, 0x39, 0x8b, 0xef,
+ 0x1e, 0x83, 0x7d, 0x22, 0xd0, 0xe3, 0xa9, 0x00, 0x2e, 0xec, 0x53, 0xcf,
+ 0x62, 0x19, 0x85, 0x44, 0x28, 0x4c, 0xc0, 0x27, 0xcb, 0x7b, 0x0e, 0xec,
+ 0x10, 0x64, 0x00, 0x10, 0xa4, 0x05, 0xcc, 0xa0, 0x72, 0xbe, 0x41, 0x6c,
+ 0x31, 0x5b, 0x48, 0xe4, 0xb1, 0xec, 0xb9, 0x23, 0xeb, 0x55, 0x4d, 0xd0,
+ 0x7d, 0x62, 0x4a, 0xa5, 0xb4, 0xa5, 0xa4, 0x59, 0x85, 0xc5, 0x25, 0x91,
+ 0xa6, 0xfe, 0xa6, 0x09, 0x9f, 0x06, 0x10, 0x6d, 0x8f, 0x81, 0x0c, 0x64,
+ 0x40, 0x5e, 0x73, 0x00, 0x9a, 0xe0, 0x2e, 0x65, 0x98, 0x54, 0x10, 0x00,
+ 0x70, 0x98, 0xc8, 0xe1, 0xed, 0x34, 0x5f, 0xd8, 0x9c, 0xc7, 0x0d, 0xc0,
+ 0xd6, 0x23, 0x59, 0x45, 0xfc, 0xfe, 0x55, 0x7a, 0x86, 0xee, 0x94, 0x60,
+ 0x22, 0xf1, 0xae, 0xd1, 0xe6, 0x55, 0x46, 0xf6, 0x99, 0xc5, 0x1b, 0x08,
+ 0x74, 0x5f, 0xac, 0xb0, 0x64, 0x84, 0x8f, 0x89, 0x38, 0x1c, 0xa1, 0xa7,
+ 0x90, 0x21, 0x4f, 0x02, 0x6e, 0xbd, 0xe0, 0x61, 0x67, 0xd4, 0xf8, 0x42,
+ 0x87, 0x0f, 0x0a, 0xf7, 0xc9, 0x04, 0x6d, 0x2a, 0xa9, 0x2f, 0xef, 0x42,
+ 0xa5, 0xdf, 0xdd, 0xa3, 0x53, 0xdb, 0x98, 0x1e, 0x81, 0xf9, 0x9a, 0x72,
+ 0x7b, 0x5a, 0xde, 0x4f, 0x3e, 0x7f, 0xa2, 0x58, 0xa0, 0xe2, 0x17, 0xad,
+ 0x67, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x23, 0x30, 0x82,
+ 0x01, 0x1f, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+ 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+ 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+ 0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0xf5, 0xcd, 0xd5, 0x3c, 0x08, 0x50, 0xf9, 0x6a, 0x4f, 0x3a, 0xb7,
+ 0x97, 0xda, 0x56, 0x83, 0xe6, 0x69, 0xd2, 0x68, 0xf7, 0x30, 0x45, 0x06,
+ 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3e, 0x30, 0x3c, 0x30, 0x3a, 0x06, 0x04,
+ 0x55, 0x1d, 0x20, 0x00, 0x30, 0x32, 0x30, 0x30, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x24, 0x68, 0x74, 0x74, 0x70,
+ 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x30, 0x33, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30, 0x28, 0xa0, 0x26, 0xa0,
+ 0x24, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x6c, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e,
+ 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72,
+ 0x6c, 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+ 0x01, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61,
+ 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f,
+ 0x6f, 0x74, 0x72, 0x31, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+ 0x18, 0x30, 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66, 0x1a, 0x45, 0x0d, 0x97,
+ 0xca, 0x89, 0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34, 0xa8, 0xff, 0xfc, 0xfd,
+ 0x4b, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x60, 0x40, 0x68,
+ 0x16, 0x47, 0xe7, 0x16, 0x8d, 0xdb, 0x5c, 0xa1, 0x56, 0x2a, 0xcb, 0xf4,
+ 0x5c, 0x9b, 0xb0, 0x1e, 0xa2, 0x4b, 0xf5, 0xcb, 0x02, 0x3f, 0xf8, 0x0b,
+ 0xa1, 0xf2, 0xa7, 0x42, 0xd4, 0xb7, 0x4c, 0xeb, 0xe3, 0x66, 0x80, 0xf3,
+ 0x25, 0x43, 0x78, 0x2e, 0x1b, 0x17, 0x56, 0x07, 0x52, 0x18, 0xcb, 0xd1,
+ 0xa8, 0xec, 0xe6, 0xfb, 0x73, 0x3e, 0xa4, 0x62, 0x8c, 0x80, 0xb4, 0xd2,
+ 0xc5, 0x12, 0x73, 0xa3, 0xd3, 0xfa, 0x02, 0x38, 0xbe, 0x63, 0x3d, 0x84,
+ 0xb8, 0x99, 0xc1, 0xf1, 0xba, 0xf7, 0x9f, 0xc3, 0x40, 0xd1, 0x58, 0x18,
+ 0x53, 0xc1, 0x62, 0xdd, 0xaf, 0x18, 0x42, 0x7f, 0x34, 0x4e, 0xc5, 0x43,
+ 0xd5, 0x71, 0xb0, 0x30, 0x00, 0xc7, 0xe3, 0x90, 0xae, 0x3f, 0x57, 0x86,
+ 0x97, 0xce, 0xea, 0x0c, 0x12, 0x8e, 0x22, 0x70, 0xe3, 0x66, 0xa7, 0x54,
+ 0x7f, 0x2e, 0x28, 0xcb, 0xd4, 0x54, 0xd0, 0xb3, 0x1e, 0x62, 0x67, 0x08,
+ 0xf9, 0x27, 0xe1, 0xcb, 0xe3, 0x66, 0xb8, 0x24, 0x1b, 0x89, 0x6a, 0x89,
+ 0x44, 0x65, 0xf2, 0xd9, 0x4c, 0xd2, 0x58, 0x1c, 0x8c, 0x4e, 0xc0, 0x95,
+ 0xa1, 0xd4, 0xef, 0x67, 0x2f, 0x38, 0x20, 0xe8, 0x2e, 0xff, 0x96, 0x51,
+ 0xf0, 0xba, 0xd8, 0x3d, 0x92, 0x70, 0x47, 0x65, 0x1c, 0x9e, 0x73, 0x72,
+ 0xb4, 0x60, 0x0c, 0x5c, 0xe2, 0xd1, 0x73, 0x76, 0xe0, 0xaf, 0x4e, 0xe2,
+ 0xe5, 0x37, 0xa5, 0x45, 0x2f, 0x8a, 0x23, 0x3e, 0x87, 0xc7, 0x30, 0xe6,
+ 0x31, 0x38, 0x7c, 0xf4, 0xdd, 0x52, 0xca, 0xf3, 0x53, 0x04, 0x25, 0x57,
+ 0x56, 0x66, 0x94, 0xe8, 0x0b, 0xee, 0xe6, 0x03, 0x14, 0x4e, 0xee, 0xfd,
+ 0x6d, 0x94, 0x64, 0x9e, 0x5e, 0xce, 0x79, 0xd4, 0xb2, 0xa6, 0xcf, 0x40,
+ 0xb1, 0x44, 0xa8, 0x3e, 0x87, 0x19, 0x5e, 0xe9, 0xf8, 0x21, 0x16, 0x59,
+ 0x53,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146031 (0x23a6f)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Nov 5 21:36:50 2013 GMT
+ Not After : May 20 21:36:50 2022 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust SSL CA - G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:e3:be:7e:0a:86:a3:cf:6b:6d:3d:2b:a1:97:ad:
+ 49:24:4d:d7:77:b9:34:79:08:a5:9e:a2:9e:de:47:
+ 12:92:3d:7e:ea:19:86:b1:e8:4f:3d:5f:f7:d0:a7:
+ 77:9a:5b:1f:0a:03:b5:19:53:db:a5:21:94:69:63:
+ 9d:6a:4c:91:0c:10:47:be:11:fa:6c:86:25:b7:ab:
+ 04:68:42:38:09:65:f0:14:da:19:9e:fa:6b:0b:ab:
+ 62:ef:8d:a7:ef:63:70:23:a8:af:81:f3:d1:6e:88:
+ 67:53:ec:12:a4:29:75:8a:a7:f2:57:3d:a2:83:98:
+ 97:f2:0a:7d:d4:e7:43:6e:30:78:62:22:59:59:b8:
+ 71:27:45:aa:0f:66:c6:55:3f:fa:32:17:2b:31:8f:
+ 46:a0:fa:69:14:7c:9d:9f:5a:e2:eb:33:4e:10:a6:
+ b3:ed:77:63:d8:c3:9e:f4:dd:df:79:9a:7a:d4:ee:
+ de:dd:9a:cc:c3:b7:a9:5d:cc:11:3a:07:bb:6f:97:
+ a4:01:23:47:95:1f:a3:77:fa:58:92:c6:c7:d0:bd:
+ cf:93:18:42:b7:7e:f7:9e:65:ea:d5:3b:ca:ed:ac:
+ c5:70:a1:fe:d4:10:9a:f0:12:04:44:ac:1a:5b:78:
+ 50:45:57:4c:6f:bd:80:cb:81:5c:2d:b3:bc:76:a1:
+ 1e:65
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ D2:6F:F7:96:F4:85:3F:72:3C:30:7D:23:DA:85:78:9B:A3:7C:5A:7C
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g1.symcb.com/crls/gtglobal.crl
+
+ Authority Information Access:
+ OCSP - URI:http://g2.symcb.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-539
+ Signature Algorithm: sha256WithRSAEncryption
+ a0:d4:f7:2c:fb:74:0b:7f:64:f1:cd:43:6a:9f:62:53:1c:02:
+ 7c:98:90:a2:ee:4f:68:d4:20:1a:73:12:3e:77:b3:50:eb:72:
+ bc:ee:88:be:7f:17:ea:77:8f:83:61:95:4f:84:a1:cb:32:4f:
+ 6c:21:be:d2:69:96:7d:63:bd:dc:2b:a8:1f:d0:13:84:70:fe:
+ f6:35:95:89:f9:a6:77:b0:46:c8:bb:b7:13:f5:c9:60:69:d6:
+ 4c:fe:d2:8e:ef:d3:60:c1:80:80:e1:e7:fb:8b:6f:21:79:4a:
+ e0:dc:a9:1b:c1:b7:fb:c3:49:59:5c:b5:77:07:44:d4:97:fc:
+ 49:00:89:6f:06:4e:01:70:19:ac:2f:11:c0:e2:e6:0f:2f:86:
+ 4b:8d:7b:c3:b9:a7:2e:f4:f1:ac:16:3e:39:49:51:9e:17:4b:
+ 4f:10:3a:5b:a5:a8:92:6f:fd:fa:d6:0b:03:4d:47:56:57:19:
+ f3:cb:6b:f5:f3:d6:cf:b0:f5:f5:a3:11:d2:20:53:13:34:37:
+ 05:2c:43:5a:63:df:8d:40:d6:85:1e:51:e9:51:17:1e:03:56:
+ c9:f1:30:ad:e7:9b:11:a2:b9:d0:31:81:9b:68:b1:d9:e8:f3:
+ e6:94:7e:c7:ae:13:2f:87:ed:d0:25:b0:68:f9:de:08:5a:f3:
+ 29:cc:d4:92
+-----BEGIN CERTIFICATE-----
+MIIETzCCAzegAwIBAgIDAjpvMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTMxMTA1MjEzNjUwWhcNMjIwNTIwMjEzNjUwWjBEMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+U1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDjvn4K
+hqPPa209K6GXrUkkTdd3uTR5CKWeop7eRxKSPX7qGYax6E89X/fQp3eaWx8KA7UZ
+U9ulIZRpY51qTJEMEEe+EfpshiW3qwRoQjgJZfAU2hme+msLq2LvjafvY3AjqK+B
+89FuiGdT7BKkKXWKp/JXPaKDmJfyCn3U50NuMHhiIllZuHEnRaoPZsZVP/oyFysx
+j0ag+mkUfJ2fWuLrM04QprPtd2PYw5703d95mnrU7t7dmszDt6ldzBE6B7tvl6QB
+I0eVH6N3+liSxsfQvc+TGEK3fveeZerVO8rtrMVwof7UEJrwEgRErBpbeFBFV0xv
+vYDLgVwts7x2oR5lAgMBAAGjggFKMIIBRjAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjAdBgNVHQ4EFgQU0m/3lvSFP3I8MH0j2oV4m6N8WnwwEgYDVR0T
+AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNgYDVR0fBC8wLTAroCmgJ4Yl
+aHR0cDovL2cxLnN5bWNiLmNvbS9jcmxzL2d0Z2xvYmFsLmNybDAvBggrBgEFBQcB
+AQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9nMi5zeW1jYi5jb20wTAYDVR0gBEUw
+QzBBBgpghkgBhvhFAQc2MDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuZ2VvdHJ1
+c3QuY29tL3Jlc291cmNlcy9jcHMwKQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMTEVN5
+bWFudGVjUEtJLTEtNTM5MA0GCSqGSIb3DQEBCwUAA4IBAQCg1Pcs+3QLf2TxzUNq
+n2JTHAJ8mJCi7k9o1CAacxI+d7NQ63K87oi+fxfqd4+DYZVPhKHLMk9sIb7SaZZ9
+Y73cK6gf0BOEcP72NZWJ+aZ3sEbIu7cT9clgadZM/tKO79NgwYCA4ef7i28heUrg
+3Kkbwbf7w0lZXLV3B0TUl/xJAIlvBk4BcBmsLxHA4uYPL4ZLjXvDuacu9PGsFj45
+SVGeF0tPEDpbpaiSb/361gsDTUdWVxnzy2v189bPsPX1oxHSIFMTNDcFLENaY9+N
+QNaFHlHpURceA1bJ8TCt55sRornQMYGbaLHZ6PPmlH7HrhMvh+3QJbBo+d4IWvMp
+zNSS
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert10[] = {
+ 0x30, 0x82, 0x04, 0x4f, 0x30, 0x82, 0x03, 0x37, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x6f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31,
+ 0x31, 0x30, 0x35, 0x32, 0x31, 0x33, 0x36, 0x35, 0x30, 0x5a, 0x17, 0x0d,
+ 0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x33, 0x36, 0x35, 0x30,
+ 0x5a, 0x30, 0x44, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x14, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30,
+ 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+ 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe3, 0xbe, 0x7e, 0x0a,
+ 0x86, 0xa3, 0xcf, 0x6b, 0x6d, 0x3d, 0x2b, 0xa1, 0x97, 0xad, 0x49, 0x24,
+ 0x4d, 0xd7, 0x77, 0xb9, 0x34, 0x79, 0x08, 0xa5, 0x9e, 0xa2, 0x9e, 0xde,
+ 0x47, 0x12, 0x92, 0x3d, 0x7e, 0xea, 0x19, 0x86, 0xb1, 0xe8, 0x4f, 0x3d,
+ 0x5f, 0xf7, 0xd0, 0xa7, 0x77, 0x9a, 0x5b, 0x1f, 0x0a, 0x03, 0xb5, 0x19,
+ 0x53, 0xdb, 0xa5, 0x21, 0x94, 0x69, 0x63, 0x9d, 0x6a, 0x4c, 0x91, 0x0c,
+ 0x10, 0x47, 0xbe, 0x11, 0xfa, 0x6c, 0x86, 0x25, 0xb7, 0xab, 0x04, 0x68,
+ 0x42, 0x38, 0x09, 0x65, 0xf0, 0x14, 0xda, 0x19, 0x9e, 0xfa, 0x6b, 0x0b,
+ 0xab, 0x62, 0xef, 0x8d, 0xa7, 0xef, 0x63, 0x70, 0x23, 0xa8, 0xaf, 0x81,
+ 0xf3, 0xd1, 0x6e, 0x88, 0x67, 0x53, 0xec, 0x12, 0xa4, 0x29, 0x75, 0x8a,
+ 0xa7, 0xf2, 0x57, 0x3d, 0xa2, 0x83, 0x98, 0x97, 0xf2, 0x0a, 0x7d, 0xd4,
+ 0xe7, 0x43, 0x6e, 0x30, 0x78, 0x62, 0x22, 0x59, 0x59, 0xb8, 0x71, 0x27,
+ 0x45, 0xaa, 0x0f, 0x66, 0xc6, 0x55, 0x3f, 0xfa, 0x32, 0x17, 0x2b, 0x31,
+ 0x8f, 0x46, 0xa0, 0xfa, 0x69, 0x14, 0x7c, 0x9d, 0x9f, 0x5a, 0xe2, 0xeb,
+ 0x33, 0x4e, 0x10, 0xa6, 0xb3, 0xed, 0x77, 0x63, 0xd8, 0xc3, 0x9e, 0xf4,
+ 0xdd, 0xdf, 0x79, 0x9a, 0x7a, 0xd4, 0xee, 0xde, 0xdd, 0x9a, 0xcc, 0xc3,
+ 0xb7, 0xa9, 0x5d, 0xcc, 0x11, 0x3a, 0x07, 0xbb, 0x6f, 0x97, 0xa4, 0x01,
+ 0x23, 0x47, 0x95, 0x1f, 0xa3, 0x77, 0xfa, 0x58, 0x92, 0xc6, 0xc7, 0xd0,
+ 0xbd, 0xcf, 0x93, 0x18, 0x42, 0xb7, 0x7e, 0xf7, 0x9e, 0x65, 0xea, 0xd5,
+ 0x3b, 0xca, 0xed, 0xac, 0xc5, 0x70, 0xa1, 0xfe, 0xd4, 0x10, 0x9a, 0xf0,
+ 0x12, 0x04, 0x44, 0xac, 0x1a, 0x5b, 0x78, 0x50, 0x45, 0x57, 0x4c, 0x6f,
+ 0xbd, 0x80, 0xcb, 0x81, 0x5c, 0x2d, 0xb3, 0xbc, 0x76, 0xa1, 0x1e, 0x65,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x4a, 0x30, 0x82, 0x01,
+ 0x46, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64,
+ 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xd2, 0x6f, 0xf7,
+ 0x96, 0xf4, 0x85, 0x3f, 0x72, 0x3c, 0x30, 0x7d, 0x23, 0xda, 0x85, 0x78,
+ 0x9b, 0xa3, 0x7c, 0x5a, 0x7c, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+ 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+ 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x36, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x2f, 0x30, 0x2d, 0x30, 0x2b, 0xa0, 0x29, 0xa0, 0x27, 0x86, 0x25,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x31, 0x2e, 0x73, 0x79,
+ 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73,
+ 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72,
+ 0x6c, 0x30, 0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+ 0x01, 0x04, 0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x67, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30,
+ 0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45,
+ 0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x29, 0x06, 0x03,
+ 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31,
+ 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79,
+ 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d,
+ 0x35, 0x33, 0x39, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xa0,
+ 0xd4, 0xf7, 0x2c, 0xfb, 0x74, 0x0b, 0x7f, 0x64, 0xf1, 0xcd, 0x43, 0x6a,
+ 0x9f, 0x62, 0x53, 0x1c, 0x02, 0x7c, 0x98, 0x90, 0xa2, 0xee, 0x4f, 0x68,
+ 0xd4, 0x20, 0x1a, 0x73, 0x12, 0x3e, 0x77, 0xb3, 0x50, 0xeb, 0x72, 0xbc,
+ 0xee, 0x88, 0xbe, 0x7f, 0x17, 0xea, 0x77, 0x8f, 0x83, 0x61, 0x95, 0x4f,
+ 0x84, 0xa1, 0xcb, 0x32, 0x4f, 0x6c, 0x21, 0xbe, 0xd2, 0x69, 0x96, 0x7d,
+ 0x63, 0xbd, 0xdc, 0x2b, 0xa8, 0x1f, 0xd0, 0x13, 0x84, 0x70, 0xfe, 0xf6,
+ 0x35, 0x95, 0x89, 0xf9, 0xa6, 0x77, 0xb0, 0x46, 0xc8, 0xbb, 0xb7, 0x13,
+ 0xf5, 0xc9, 0x60, 0x69, 0xd6, 0x4c, 0xfe, 0xd2, 0x8e, 0xef, 0xd3, 0x60,
+ 0xc1, 0x80, 0x80, 0xe1, 0xe7, 0xfb, 0x8b, 0x6f, 0x21, 0x79, 0x4a, 0xe0,
+ 0xdc, 0xa9, 0x1b, 0xc1, 0xb7, 0xfb, 0xc3, 0x49, 0x59, 0x5c, 0xb5, 0x77,
+ 0x07, 0x44, 0xd4, 0x97, 0xfc, 0x49, 0x00, 0x89, 0x6f, 0x06, 0x4e, 0x01,
+ 0x70, 0x19, 0xac, 0x2f, 0x11, 0xc0, 0xe2, 0xe6, 0x0f, 0x2f, 0x86, 0x4b,
+ 0x8d, 0x7b, 0xc3, 0xb9, 0xa7, 0x2e, 0xf4, 0xf1, 0xac, 0x16, 0x3e, 0x39,
+ 0x49, 0x51, 0x9e, 0x17, 0x4b, 0x4f, 0x10, 0x3a, 0x5b, 0xa5, 0xa8, 0x92,
+ 0x6f, 0xfd, 0xfa, 0xd6, 0x0b, 0x03, 0x4d, 0x47, 0x56, 0x57, 0x19, 0xf3,
+ 0xcb, 0x6b, 0xf5, 0xf3, 0xd6, 0xcf, 0xb0, 0xf5, 0xf5, 0xa3, 0x11, 0xd2,
+ 0x20, 0x53, 0x13, 0x34, 0x37, 0x05, 0x2c, 0x43, 0x5a, 0x63, 0xdf, 0x8d,
+ 0x40, 0xd6, 0x85, 0x1e, 0x51, 0xe9, 0x51, 0x17, 0x1e, 0x03, 0x56, 0xc9,
+ 0xf1, 0x30, 0xad, 0xe7, 0x9b, 0x11, 0xa2, 0xb9, 0xd0, 0x31, 0x81, 0x9b,
+ 0x68, 0xb1, 0xd9, 0xe8, 0xf3, 0xe6, 0x94, 0x7e, 0xc7, 0xae, 0x13, 0x2f,
+ 0x87, 0xed, 0xd0, 0x25, 0xb0, 0x68, 0xf9, 0xde, 0x08, 0x5a, 0xf3, 0x29,
+ 0xcc, 0xd4, 0x92,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146019 (0x23a63)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Aug 27 20:40:40 2012 GMT
+ Not After : May 20 20:40:40 2022 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust SSL CA - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b9:27:f9:4f:d8:f6:b7:15:3f:8f:cd:ce:d6:8d:
+ 1c:6b:fd:7f:da:54:21:4e:03:d8:ca:d0:72:52:15:
+ b8:c9:82:5b:58:79:84:ff:24:72:6f:f2:69:7f:bc:
+ 96:d9:9a:7a:c3:3e:a9:cf:50:22:13:0e:86:19:db:
+ e8:49:ef:8b:e6:d6:47:f2:fd:73:45:08:ae:8f:ac:
+ 5e:b6:f8:9e:7c:f7:10:ff:92:43:66:ef:1c:d4:ee:
+ a1:46:88:11:89:49:79:7a:25:ce:4b:6a:f0:d7:1c:
+ 76:1a:29:3c:c9:e4:fd:1e:85:dc:e0:31:65:05:47:
+ 16:ac:0a:07:4b:2e:70:5e:6b:06:a7:6b:3a:6c:af:
+ 05:12:c4:b2:11:25:d6:3e:97:29:f0:83:6c:57:1c:
+ d8:a5:ef:cc:ec:fd:d6:12:f1:3f:db:40:b4:ae:0f:
+ 18:d3:c5:af:40:92:5d:07:5e:4e:fe:62:17:37:89:
+ e9:8b:74:26:a2:ed:b8:0a:e7:6c:15:5b:35:90:72:
+ dd:d8:4d:21:d4:40:23:5c:8f:ee:80:31:16:ab:68:
+ 55:f4:0e:3b:54:e9:04:4d:f0:cc:4e:81:5e:e9:6f:
+ 52:69:4e:be:a6:16:6d:42:f5:51:ff:e0:0b:56:3c:
+ 98:4f:73:8f:0e:6f:1a:23:f1:c9:c8:d9:df:bc:ec:
+ 52:d7
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ 11:4A:D0:73:39:D5:5B:69:08:5C:BA:3D:BF:64:9A:A8:8B:1C:55:BC
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.geotrust.com/crls/gtglobal.crl
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.geotrust.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=VeriSignMPKI-2-254
+ Signature Algorithm: sha1WithRSAEncryption
+ 3c:e5:3d:5a:1b:a2:37:2a:e3:46:cf:36:96:18:3c:7b:f1:84:
+ c5:57:86:77:40:9d:35:f0:12:f0:78:18:fb:22:a4:de:98:4b:
+ 78:81:e6:4d:86:e3:91:0f:42:e3:b9:dc:a0:d6:ff:a9:f8:b1:
+ 79:97:99:d1:c3:6c:42:a5:92:94:e0:5d:0c:33:18:25:c9:2b:
+ 95:53:e0:e5:a9:0c:7d:47:fe:7f:51:31:44:5e:f7:2a:1e:35:
+ a2:94:32:f7:c9:ee:c0:b6:c6:9a:ac:de:99:21:6a:23:a0:38:
+ 64:ee:a3:c4:88:73:32:3b:50:ce:bf:ad:d3:75:1e:a6:f4:e9:
+ f9:42:6b:60:b2:dd:45:fd:5d:57:08:ce:2d:50:e6:12:32:16:
+ 13:8a:f2:94:a2:9b:47:a8:86:7f:d9:98:e5:f7:e5:76:74:64:
+ d8:91:bc:84:16:28:d8:25:44:30:7e:82:d8:ac:b1:e4:c0:e4:
+ 15:6c:db:b6:24:27:02:2a:01:12:85:ba:31:88:58:47:74:e3:
+ b8:d2:64:a6:c3:32:59:2e:29:4b:45:f1:5b:89:49:2e:82:9a:
+ c6:18:15:44:d0:2e:64:01:15:68:38:f9:f6:f9:66:03:0c:55:
+ 1b:9d:bf:00:40:ae:f0:48:27:4c:e0:80:5e:2d:b9:2a:15:7a:
+ bc:66:f8:35
+-----BEGIN CERTIFICATE-----
+MIIEWTCCA0GgAwIBAgIDAjpjMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTIwODI3MjA0MDQwWhcNMjIwNTIwMjA0MDQwWjBEMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+U1NMIENBIC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5J/lP
+2Pa3FT+Pzc7WjRxr/X/aVCFOA9jK0HJSFbjJgltYeYT/JHJv8ml/vJbZmnrDPqnP
+UCITDoYZ2+hJ74vm1kfy/XNFCK6PrF62+J589xD/kkNm7xzU7qFGiBGJSXl6Jc5L
+avDXHHYaKTzJ5P0ehdzgMWUFRxasCgdLLnBeawanazpsrwUSxLIRJdY+lynwg2xX
+HNil78zs/dYS8T/bQLSuDxjTxa9Akl0HXk7+Yhc3iemLdCai7bgK52wVWzWQct3Y
+TSHUQCNcj+6AMRaraFX0DjtU6QRN8MxOgV7pb1JpTr6mFm1C9VH/4AtWPJhPc48O
+bxoj8cnI2d+87FLXAgMBAAGjggFUMIIBUDAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjAdBgNVHQ4EFgQUEUrQcznVW2kIXLo9v2SaqIscVbwwEgYDVR0T
+AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwOgYDVR0fBDMwMTAvoC2gK4Yp
+aHR0cDovL2NybC5nZW90cnVzdC5jb20vY3Jscy9ndGdsb2JhbC5jcmwwNAYIKwYB
+BQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5nZW90cnVzdC5jb20w
+TAYDVR0gBEUwQzBBBgpghkgBhvhFAQc2MDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93
+d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwKgYDVR0RBCMwIaQfMB0xGzAZ
+BgNVBAMTElZlcmlTaWduTVBLSS0yLTI1NDANBgkqhkiG9w0BAQUFAAOCAQEAPOU9
+WhuiNyrjRs82lhg8e/GExVeGd0CdNfAS8HgY+yKk3phLeIHmTYbjkQ9C47ncoNb/
+qfixeZeZ0cNsQqWSlOBdDDMYJckrlVPg5akMfUf+f1ExRF73Kh41opQy98nuwLbG
+mqzemSFqI6A4ZO6jxIhzMjtQzr+t03UepvTp+UJrYLLdRf1dVwjOLVDmEjIWE4ry
+lKKbR6iGf9mY5ffldnRk2JG8hBYo2CVEMH6C2Kyx5MDkFWzbtiQnAioBEoW6MYhY
+R3TjuNJkpsMyWS4pS0XxW4lJLoKaxhgVRNAuZAEVaDj59vlmAwxVG52/AECu8Egn
+TOCAXi25KhV6vGb4NQ==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert11[] = {
+ 0x30, 0x82, 0x04, 0x59, 0x30, 0x82, 0x03, 0x41, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x63, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30,
+ 0x38, 0x32, 0x37, 0x32, 0x30, 0x34, 0x30, 0x34, 0x30, 0x5a, 0x17, 0x0d,
+ 0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x30, 0x34, 0x30, 0x34, 0x30,
+ 0x5a, 0x30, 0x44, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x14, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30,
+ 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+ 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xb9, 0x27, 0xf9, 0x4f,
+ 0xd8, 0xf6, 0xb7, 0x15, 0x3f, 0x8f, 0xcd, 0xce, 0xd6, 0x8d, 0x1c, 0x6b,
+ 0xfd, 0x7f, 0xda, 0x54, 0x21, 0x4e, 0x03, 0xd8, 0xca, 0xd0, 0x72, 0x52,
+ 0x15, 0xb8, 0xc9, 0x82, 0x5b, 0x58, 0x79, 0x84, 0xff, 0x24, 0x72, 0x6f,
+ 0xf2, 0x69, 0x7f, 0xbc, 0x96, 0xd9, 0x9a, 0x7a, 0xc3, 0x3e, 0xa9, 0xcf,
+ 0x50, 0x22, 0x13, 0x0e, 0x86, 0x19, 0xdb, 0xe8, 0x49, 0xef, 0x8b, 0xe6,
+ 0xd6, 0x47, 0xf2, 0xfd, 0x73, 0x45, 0x08, 0xae, 0x8f, 0xac, 0x5e, 0xb6,
+ 0xf8, 0x9e, 0x7c, 0xf7, 0x10, 0xff, 0x92, 0x43, 0x66, 0xef, 0x1c, 0xd4,
+ 0xee, 0xa1, 0x46, 0x88, 0x11, 0x89, 0x49, 0x79, 0x7a, 0x25, 0xce, 0x4b,
+ 0x6a, 0xf0, 0xd7, 0x1c, 0x76, 0x1a, 0x29, 0x3c, 0xc9, 0xe4, 0xfd, 0x1e,
+ 0x85, 0xdc, 0xe0, 0x31, 0x65, 0x05, 0x47, 0x16, 0xac, 0x0a, 0x07, 0x4b,
+ 0x2e, 0x70, 0x5e, 0x6b, 0x06, 0xa7, 0x6b, 0x3a, 0x6c, 0xaf, 0x05, 0x12,
+ 0xc4, 0xb2, 0x11, 0x25, 0xd6, 0x3e, 0x97, 0x29, 0xf0, 0x83, 0x6c, 0x57,
+ 0x1c, 0xd8, 0xa5, 0xef, 0xcc, 0xec, 0xfd, 0xd6, 0x12, 0xf1, 0x3f, 0xdb,
+ 0x40, 0xb4, 0xae, 0x0f, 0x18, 0xd3, 0xc5, 0xaf, 0x40, 0x92, 0x5d, 0x07,
+ 0x5e, 0x4e, 0xfe, 0x62, 0x17, 0x37, 0x89, 0xe9, 0x8b, 0x74, 0x26, 0xa2,
+ 0xed, 0xb8, 0x0a, 0xe7, 0x6c, 0x15, 0x5b, 0x35, 0x90, 0x72, 0xdd, 0xd8,
+ 0x4d, 0x21, 0xd4, 0x40, 0x23, 0x5c, 0x8f, 0xee, 0x80, 0x31, 0x16, 0xab,
+ 0x68, 0x55, 0xf4, 0x0e, 0x3b, 0x54, 0xe9, 0x04, 0x4d, 0xf0, 0xcc, 0x4e,
+ 0x81, 0x5e, 0xe9, 0x6f, 0x52, 0x69, 0x4e, 0xbe, 0xa6, 0x16, 0x6d, 0x42,
+ 0xf5, 0x51, 0xff, 0xe0, 0x0b, 0x56, 0x3c, 0x98, 0x4f, 0x73, 0x8f, 0x0e,
+ 0x6f, 0x1a, 0x23, 0xf1, 0xc9, 0xc8, 0xd9, 0xdf, 0xbc, 0xec, 0x52, 0xd7,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x54, 0x30, 0x82, 0x01,
+ 0x50, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64,
+ 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x11, 0x4a, 0xd0,
+ 0x73, 0x39, 0xd5, 0x5b, 0x69, 0x08, 0x5c, 0xba, 0x3d, 0xbf, 0x64, 0x9a,
+ 0xa8, 0x8b, 0x1c, 0x55, 0xbc, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+ 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+ 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3a, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0, 0x2d, 0xa0, 0x2b, 0x86, 0x29,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67,
+ 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61,
+ 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67,
+ 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+ 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41,
+ 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36,
+ 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
+ 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x2a, 0x06, 0x03, 0x55, 0x1d, 0x11,
+ 0x04, 0x23, 0x30, 0x21, 0xa4, 0x1f, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x56, 0x65, 0x72, 0x69, 0x53,
+ 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x32, 0x35,
+ 0x34, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x3c, 0xe5, 0x3d,
+ 0x5a, 0x1b, 0xa2, 0x37, 0x2a, 0xe3, 0x46, 0xcf, 0x36, 0x96, 0x18, 0x3c,
+ 0x7b, 0xf1, 0x84, 0xc5, 0x57, 0x86, 0x77, 0x40, 0x9d, 0x35, 0xf0, 0x12,
+ 0xf0, 0x78, 0x18, 0xfb, 0x22, 0xa4, 0xde, 0x98, 0x4b, 0x78, 0x81, 0xe6,
+ 0x4d, 0x86, 0xe3, 0x91, 0x0f, 0x42, 0xe3, 0xb9, 0xdc, 0xa0, 0xd6, 0xff,
+ 0xa9, 0xf8, 0xb1, 0x79, 0x97, 0x99, 0xd1, 0xc3, 0x6c, 0x42, 0xa5, 0x92,
+ 0x94, 0xe0, 0x5d, 0x0c, 0x33, 0x18, 0x25, 0xc9, 0x2b, 0x95, 0x53, 0xe0,
+ 0xe5, 0xa9, 0x0c, 0x7d, 0x47, 0xfe, 0x7f, 0x51, 0x31, 0x44, 0x5e, 0xf7,
+ 0x2a, 0x1e, 0x35, 0xa2, 0x94, 0x32, 0xf7, 0xc9, 0xee, 0xc0, 0xb6, 0xc6,
+ 0x9a, 0xac, 0xde, 0x99, 0x21, 0x6a, 0x23, 0xa0, 0x38, 0x64, 0xee, 0xa3,
+ 0xc4, 0x88, 0x73, 0x32, 0x3b, 0x50, 0xce, 0xbf, 0xad, 0xd3, 0x75, 0x1e,
+ 0xa6, 0xf4, 0xe9, 0xf9, 0x42, 0x6b, 0x60, 0xb2, 0xdd, 0x45, 0xfd, 0x5d,
+ 0x57, 0x08, 0xce, 0x2d, 0x50, 0xe6, 0x12, 0x32, 0x16, 0x13, 0x8a, 0xf2,
+ 0x94, 0xa2, 0x9b, 0x47, 0xa8, 0x86, 0x7f, 0xd9, 0x98, 0xe5, 0xf7, 0xe5,
+ 0x76, 0x74, 0x64, 0xd8, 0x91, 0xbc, 0x84, 0x16, 0x28, 0xd8, 0x25, 0x44,
+ 0x30, 0x7e, 0x82, 0xd8, 0xac, 0xb1, 0xe4, 0xc0, 0xe4, 0x15, 0x6c, 0xdb,
+ 0xb6, 0x24, 0x27, 0x02, 0x2a, 0x01, 0x12, 0x85, 0xba, 0x31, 0x88, 0x58,
+ 0x47, 0x74, 0xe3, 0xb8, 0xd2, 0x64, 0xa6, 0xc3, 0x32, 0x59, 0x2e, 0x29,
+ 0x4b, 0x45, 0xf1, 0x5b, 0x89, 0x49, 0x2e, 0x82, 0x9a, 0xc6, 0x18, 0x15,
+ 0x44, 0xd0, 0x2e, 0x64, 0x01, 0x15, 0x68, 0x38, 0xf9, 0xf6, 0xf9, 0x66,
+ 0x03, 0x0c, 0x55, 0x1b, 0x9d, 0xbf, 0x00, 0x40, 0xae, 0xf0, 0x48, 0x27,
+ 0x4c, 0xe0, 0x80, 0x5e, 0x2d, 0xb9, 0x2a, 0x15, 0x7a, 0xbc, 0x66, 0xf8,
+ 0x35,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 04:00:00:00:00:01:44:4e:f0:3e:20
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+ Validity
+ Not Before: Feb 20 10:00:00 2014 GMT
+ Not After : Feb 20 10:00:00 2024 GMT
+ Subject: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Domain Validation CA - SHA256 - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:a9:dd:cc:0e:b3:e2:32:39:dd:49:22:a8:13:69:
+ 93:87:88:e1:0c:ee:71:7d:bd:90:87:96:5d:59:f2:
+ cc:b3:d2:58:57:57:f9:46:ef:6c:26:d8:36:42:8e:
+ 7e:30:b3:2f:9a:3e:53:7b:1f:6e:b6:a2:4c:45:1f:
+ 3c:d3:15:93:1c:89:ed:3c:f4:57:de:ca:bd:ec:06:
+ 9a:6a:2a:a0:19:52:7f:51:d1:74:39:08:9f:ab:eb:
+ d7:86:13:15:97:ae:36:c3:54:66:0e:5a:f2:a0:73:
+ 85:31:e3:b2:64:14:6a:ff:a5:a2:8e:24:bb:bd:85:
+ 52:15:a2:79:ee:f0:b5:ee:3d:b8:f4:7d:80:bc:d9:
+ 90:35:65:b8:17:a9:ad:b3:98:9f:a0:7e:7d:6e:fb:
+ 3f:ad:7c:c2:1b:59:36:96:da:37:32:4b:4b:5d:35:
+ 02:63:8e:db:a7:cf:62:ee:cc:2e:d4:8d:c9:bd:3c:
+ 6a:91:72:a2:22:a7:72:2d:20:d1:fa:ca:37:da:18:
+ 98:e6:16:24:71:25:4b:c4:e5:7b:89:52:09:02:fd:
+ 59:2b:04:6e:ca:07:81:d4:b3:da:da:db:e3:cc:80:
+ a8:56:07:06:7c:96:08:37:9d:db:38:b6:62:34:91:
+ 62:07:74:01:38:d8:72:30:e2:eb:90:71:26:62:c0:
+ 57:f3
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Subject Key Identifier:
+ EA:4E:7C:D4:80:2D:E5:15:81:86:26:8C:82:6D:C0:98:A4:CF:97:0F
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.globalsign.com/repository/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.globalsign.net/root.crl
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+ X509v3 Authority Key Identifier:
+ keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+ Signature Algorithm: sha256WithRSAEncryption
+ d7:45:9e:a0:dc:e0:e3:61:5a:0b:7d:77:84:17:2d:65:5a:82:
+ 9a:8d:a3:27:2a:85:f7:c9:ef:e9:86:fd:d4:47:cd:01:52:96:
+ c5:43:bd:37:b1:e1:b8:f2:a9:d2:8a:11:84:71:91:15:89:dc:
+ 02:9d:0b:cb:6c:33:85:34:28:9e:20:b2:b1:97:dc:6d:0b:10:
+ c1:3c:cd:5f:ea:5d:d7:98:31:c5:34:99:5c:00:61:55:c4:1b:
+ 02:5b:c5:e3:89:c8:b4:b8:6f:1e:38:f2:56:26:e9:41:ef:3d:
+ cd:ac:99:4f:59:4a:57:2d:4b:7d:ae:c7:88:fb:d6:98:3b:f5:
+ e5:f0:e8:89:89:b9:8b:03:cb:5a:23:1f:a4:fd:b8:ea:fb:2e:
+ 9d:ae:6a:73:09:bc:fc:d5:a0:b5:44:82:ab:44:91:2e:50:2e:
+ 57:c1:43:d8:91:04:8b:e9:11:2e:5f:b4:3f:79:df:1e:fb:3f:
+ 30:00:8b:53:e3:b7:2c:1d:3b:4d:8b:dc:e4:64:1d:04:58:33:
+ af:1b:55:e7:ab:0c:bf:30:04:74:e4:f3:0e:2f:30:39:8d:4b:
+ 04:8c:1e:75:66:66:49:e0:be:40:34:c7:5c:5a:51:92:ba:12:
+ 3c:52:d5:04:82:55:2d:67:a5:df:b7:95:7c:ee:3f:c3:08:ba:
+ 04:be:c0:46
+-----BEGIN CERTIFICATE-----
+MIIEYzCCA0ugAwIBAgILBAAAAAABRE7wPiAwDQYJKoZIhvcNAQELBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
+MDBaFw0yNDAyMjAxMDAwMDBaMGAxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMTYwNAYDVQQDEy1HbG9iYWxTaWduIERvbWFpbiBWYWxpZGF0
+aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCp3cwOs+IyOd1JIqgTaZOHiOEM7nF9vZCHll1Z8syz0lhXV/lG72wm2DZC
+jn4wsy+aPlN7H262okxFHzzTFZMcie089Ffeyr3sBppqKqAZUn9R0XQ5CJ+r69eG
+ExWXrjbDVGYOWvKgc4Ux47JkFGr/paKOJLu9hVIVonnu8LXuPbj0fYC82ZA1ZbgX
+qa2zmJ+gfn1u+z+tfMIbWTaW2jcyS0tdNQJjjtunz2LuzC7Ujcm9PGqRcqIip3It
+INH6yjfaGJjmFiRxJUvE5XuJUgkC/VkrBG7KB4HUs9ra2+PMgKhWBwZ8lgg3nds4
+tmI0kWIHdAE42HIw4uuQcSZiwFfzAgMBAAGjggElMIIBITAOBgNVHQ8BAf8EBAMC
+AQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU6k581IAt5RWBhiaMgm3A
+mKTPlw8wRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8v
+d3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCowKKAmoCSG
+Imh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYBBQUHAQEE
+MTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9yb290
+cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZIhvcNAQEL
+BQADggEBANdFnqDc4ONhWgt9d4QXLWVagpqNoycqhffJ7+mG/dRHzQFSlsVDvTex
+4bjyqdKKEYRxkRWJ3AKdC8tsM4U0KJ4gsrGX3G0LEME8zV/qXdeYMcU0mVwAYVXE
+GwJbxeOJyLS4bx448lYm6UHvPc2smU9ZSlctS32ux4j71pg79eXw6ImJuYsDy1oj
+H6T9uOr7Lp2uanMJvPzVoLVEgqtEkS5QLlfBQ9iRBIvpES5ftD953x77PzAAi1Pj
+tywdO02L3ORkHQRYM68bVeerDL8wBHTk8w4vMDmNSwSMHnVmZkngvkA0x1xaUZK6
+EjxS1QSCVS1npd+3lXzuP8MIugS+wEY=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert12[] = {
+ 0x30, 0x82, 0x04, 0x63, 0x30, 0x82, 0x03, 0x4b, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x4e, 0xf0,
+ 0x3e, 0x20, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+ 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61, 0x31,
+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x07, 0x52, 0x6f,
+ 0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
+ 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e,
+ 0x17, 0x0d, 0x31, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x60, 0x31, 0x0b, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
+ 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
+ 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d, 0x47,
+ 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x44, 0x6f,
+ 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x53, 0x48, 0x41,
+ 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xa9, 0xdd, 0xcc, 0x0e, 0xb3, 0xe2, 0x32,
+ 0x39, 0xdd, 0x49, 0x22, 0xa8, 0x13, 0x69, 0x93, 0x87, 0x88, 0xe1, 0x0c,
+ 0xee, 0x71, 0x7d, 0xbd, 0x90, 0x87, 0x96, 0x5d, 0x59, 0xf2, 0xcc, 0xb3,
+ 0xd2, 0x58, 0x57, 0x57, 0xf9, 0x46, 0xef, 0x6c, 0x26, 0xd8, 0x36, 0x42,
+ 0x8e, 0x7e, 0x30, 0xb3, 0x2f, 0x9a, 0x3e, 0x53, 0x7b, 0x1f, 0x6e, 0xb6,
+ 0xa2, 0x4c, 0x45, 0x1f, 0x3c, 0xd3, 0x15, 0x93, 0x1c, 0x89, 0xed, 0x3c,
+ 0xf4, 0x57, 0xde, 0xca, 0xbd, 0xec, 0x06, 0x9a, 0x6a, 0x2a, 0xa0, 0x19,
+ 0x52, 0x7f, 0x51, 0xd1, 0x74, 0x39, 0x08, 0x9f, 0xab, 0xeb, 0xd7, 0x86,
+ 0x13, 0x15, 0x97, 0xae, 0x36, 0xc3, 0x54, 0x66, 0x0e, 0x5a, 0xf2, 0xa0,
+ 0x73, 0x85, 0x31, 0xe3, 0xb2, 0x64, 0x14, 0x6a, 0xff, 0xa5, 0xa2, 0x8e,
+ 0x24, 0xbb, 0xbd, 0x85, 0x52, 0x15, 0xa2, 0x79, 0xee, 0xf0, 0xb5, 0xee,
+ 0x3d, 0xb8, 0xf4, 0x7d, 0x80, 0xbc, 0xd9, 0x90, 0x35, 0x65, 0xb8, 0x17,
+ 0xa9, 0xad, 0xb3, 0x98, 0x9f, 0xa0, 0x7e, 0x7d, 0x6e, 0xfb, 0x3f, 0xad,
+ 0x7c, 0xc2, 0x1b, 0x59, 0x36, 0x96, 0xda, 0x37, 0x32, 0x4b, 0x4b, 0x5d,
+ 0x35, 0x02, 0x63, 0x8e, 0xdb, 0xa7, 0xcf, 0x62, 0xee, 0xcc, 0x2e, 0xd4,
+ 0x8d, 0xc9, 0xbd, 0x3c, 0x6a, 0x91, 0x72, 0xa2, 0x22, 0xa7, 0x72, 0x2d,
+ 0x20, 0xd1, 0xfa, 0xca, 0x37, 0xda, 0x18, 0x98, 0xe6, 0x16, 0x24, 0x71,
+ 0x25, 0x4b, 0xc4, 0xe5, 0x7b, 0x89, 0x52, 0x09, 0x02, 0xfd, 0x59, 0x2b,
+ 0x04, 0x6e, 0xca, 0x07, 0x81, 0xd4, 0xb3, 0xda, 0xda, 0xdb, 0xe3, 0xcc,
+ 0x80, 0xa8, 0x56, 0x07, 0x06, 0x7c, 0x96, 0x08, 0x37, 0x9d, 0xdb, 0x38,
+ 0xb6, 0x62, 0x34, 0x91, 0x62, 0x07, 0x74, 0x01, 0x38, 0xd8, 0x72, 0x30,
+ 0xe2, 0xeb, 0x90, 0x71, 0x26, 0x62, 0xc0, 0x57, 0xf3, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x25, 0x30, 0x82, 0x01, 0x21, 0x30, 0x0e,
+ 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
+ 0x01, 0x06, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
+ 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xea, 0x4e, 0x7c,
+ 0xd4, 0x80, 0x2d, 0xe5, 0x15, 0x81, 0x86, 0x26, 0x8c, 0x82, 0x6d, 0xc0,
+ 0x98, 0xa4, 0xcf, 0x97, 0x0f, 0x30, 0x47, 0x06, 0x03, 0x55, 0x1d, 0x20,
+ 0x04, 0x40, 0x30, 0x3e, 0x30, 0x3c, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00,
+ 0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
+ 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69,
+ 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x30, 0x33, 0x06, 0x03, 0x55, 0x1d,
+ 0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30, 0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86,
+ 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e,
+ 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x6e,
+ 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+ 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73,
+ 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74,
+ 0x72, 0x31, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66, 0x1a, 0x45, 0x0d, 0x97, 0xca, 0x89,
+ 0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34, 0xa8, 0xff, 0xfc, 0xfd, 0x4b, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xd7, 0x45, 0x9e, 0xa0, 0xdc,
+ 0xe0, 0xe3, 0x61, 0x5a, 0x0b, 0x7d, 0x77, 0x84, 0x17, 0x2d, 0x65, 0x5a,
+ 0x82, 0x9a, 0x8d, 0xa3, 0x27, 0x2a, 0x85, 0xf7, 0xc9, 0xef, 0xe9, 0x86,
+ 0xfd, 0xd4, 0x47, 0xcd, 0x01, 0x52, 0x96, 0xc5, 0x43, 0xbd, 0x37, 0xb1,
+ 0xe1, 0xb8, 0xf2, 0xa9, 0xd2, 0x8a, 0x11, 0x84, 0x71, 0x91, 0x15, 0x89,
+ 0xdc, 0x02, 0x9d, 0x0b, 0xcb, 0x6c, 0x33, 0x85, 0x34, 0x28, 0x9e, 0x20,
+ 0xb2, 0xb1, 0x97, 0xdc, 0x6d, 0x0b, 0x10, 0xc1, 0x3c, 0xcd, 0x5f, 0xea,
+ 0x5d, 0xd7, 0x98, 0x31, 0xc5, 0x34, 0x99, 0x5c, 0x00, 0x61, 0x55, 0xc4,
+ 0x1b, 0x02, 0x5b, 0xc5, 0xe3, 0x89, 0xc8, 0xb4, 0xb8, 0x6f, 0x1e, 0x38,
+ 0xf2, 0x56, 0x26, 0xe9, 0x41, 0xef, 0x3d, 0xcd, 0xac, 0x99, 0x4f, 0x59,
+ 0x4a, 0x57, 0x2d, 0x4b, 0x7d, 0xae, 0xc7, 0x88, 0xfb, 0xd6, 0x98, 0x3b,
+ 0xf5, 0xe5, 0xf0, 0xe8, 0x89, 0x89, 0xb9, 0x8b, 0x03, 0xcb, 0x5a, 0x23,
+ 0x1f, 0xa4, 0xfd, 0xb8, 0xea, 0xfb, 0x2e, 0x9d, 0xae, 0x6a, 0x73, 0x09,
+ 0xbc, 0xfc, 0xd5, 0xa0, 0xb5, 0x44, 0x82, 0xab, 0x44, 0x91, 0x2e, 0x50,
+ 0x2e, 0x57, 0xc1, 0x43, 0xd8, 0x91, 0x04, 0x8b, 0xe9, 0x11, 0x2e, 0x5f,
+ 0xb4, 0x3f, 0x79, 0xdf, 0x1e, 0xfb, 0x3f, 0x30, 0x00, 0x8b, 0x53, 0xe3,
+ 0xb7, 0x2c, 0x1d, 0x3b, 0x4d, 0x8b, 0xdc, 0xe4, 0x64, 0x1d, 0x04, 0x58,
+ 0x33, 0xaf, 0x1b, 0x55, 0xe7, 0xab, 0x0c, 0xbf, 0x30, 0x04, 0x74, 0xe4,
+ 0xf3, 0x0e, 0x2f, 0x30, 0x39, 0x8d, 0x4b, 0x04, 0x8c, 0x1e, 0x75, 0x66,
+ 0x66, 0x49, 0xe0, 0xbe, 0x40, 0x34, 0xc7, 0x5c, 0x5a, 0x51, 0x92, 0xba,
+ 0x12, 0x3c, 0x52, 0xd5, 0x04, 0x82, 0x55, 0x2d, 0x67, 0xa5, 0xdf, 0xb7,
+ 0x95, 0x7c, 0xee, 0x3f, 0xc3, 0x08, 0xba, 0x04, 0xbe, 0xc0, 0x46,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 04:00:00:00:00:01:44:4e:f0:42:47
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+ Validity
+ Not Before: Feb 20 10:00:00 2014 GMT
+ Not After : Feb 20 10:00:00 2024 GMT
+ Subject: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Organization Validation CA - SHA256 - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:c7:0e:6c:3f:23:93:7f:cc:70:a5:9d:20:c3:0e:
+ 53:3f:7e:c0:4e:c2:98:49:ca:47:d5:23:ef:03:34:
+ 85:74:c8:a3:02:2e:46:5c:0b:7d:c9:88:9d:4f:8b:
+ f0:f8:9c:6c:8c:55:35:db:bf:f2:b3:ea:fb:e3:56:
+ e7:4a:46:d9:13:22:ca:36:d5:9b:c1:a8:e3:96:43:
+ 93:f2:0c:bc:e6:f9:e6:e8:99:c8:63:48:78:7f:57:
+ 36:69:1a:19:1d:5a:d1:d4:7d:c2:9c:d4:7f:e1:80:
+ 12:ae:7a:ea:88:ea:57:d8:ca:0a:0a:3a:12:49:a2:
+ 62:19:7a:0d:24:f7:37:eb:b4:73:92:7b:05:23:9b:
+ 12:b5:ce:eb:29:df:a4:14:02:b9:01:a5:d4:a6:9c:
+ 43:64:88:de:f8:7e:fe:e3:f5:1e:e5:fe:dc:a3:a8:
+ e4:66:31:d9:4c:25:e9:18:b9:89:59:09:ae:e9:9d:
+ 1c:6d:37:0f:4a:1e:35:20:28:e2:af:d4:21:8b:01:
+ c4:45:ad:6e:2b:63:ab:92:6b:61:0a:4d:20:ed:73:
+ ba:7c:ce:fe:16:b5:db:9f:80:f0:d6:8b:6c:d9:08:
+ 79:4a:4f:78:65:da:92:bc:be:35:f9:b3:c4:f9:27:
+ 80:4e:ff:96:52:e6:02:20:e1:07:73:e9:5d:2b:bd:
+ b2:f1
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Subject Key Identifier:
+ 96:DE:61:F1:BD:1C:16:29:53:1C:C0:CC:7D:3B:83:00:40:E6:1A:7C
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.globalsign.com/repository/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.globalsign.net/root.crl
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+ X509v3 Authority Key Identifier:
+ keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 46:2a:ee:5e:bd:ae:01:60:37:31:11:86:71:74:b6:46:49:c8:
+ 10:16:fe:2f:62:23:17:ab:1f:87:f8:82:ed:ca:df:0e:2c:df:
+ 64:75:8e:e5:18:72:a7:8c:3a:8b:c9:ac:a5:77:50:f7:ef:9e:
+ a4:e0:a0:8f:14:57:a3:2a:5f:ec:7e:6d:10:e6:ba:8d:b0:08:
+ 87:76:0e:4c:b2:d9:51:bb:11:02:f2:5c:dd:1c:bd:f3:55:96:
+ 0f:d4:06:c0:fc:e2:23:8a:24:70:d3:bb:f0:79:1a:a7:61:70:
+ 83:8a:af:06:c5:20:d8:a1:63:d0:6c:ae:4f:32:d7:ae:7c:18:
+ 45:75:05:29:77:df:42:40:64:64:86:be:2a:76:09:31:6f:1d:
+ 24:f4:99:d0:85:fe:f2:21:08:f9:c6:f6:f1:d0:59:ed:d6:56:
+ 3c:08:28:03:67:ba:f0:f9:f1:90:16:47:ae:67:e6:bc:80:48:
+ e9:42:76:34:97:55:69:24:0e:83:d6:a0:2d:b4:f5:f3:79:8a:
+ 49:28:74:1a:41:a1:c2:d3:24:88:35:30:60:94:17:b4:e1:04:
+ 22:31:3d:3b:2f:17:06:b2:b8:9d:86:2b:5a:69:ef:83:f5:4b:
+ c4:aa:b4:2a:f8:7c:a1:b1:85:94:8c:f4:0c:87:0c:f4:ac:40:
+ f8:59:49:98
+-----BEGIN CERTIFICATE-----
+MIIEaTCCA1GgAwIBAgILBAAAAAABRE7wQkcwDQYJKoZIhvcNAQELBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
+MDBaFw0yNDAyMjAxMDAwMDBaMGYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMTwwOgYDVQQDEzNHbG9iYWxTaWduIE9yZ2FuaXphdGlvbiBW
+YWxpZGF0aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDHDmw/I5N/zHClnSDDDlM/fsBOwphJykfVI+8DNIV0yKMCLkZc
+C33JiJ1Pi/D4nGyMVTXbv/Kz6vvjVudKRtkTIso21ZvBqOOWQ5PyDLzm+ebomchj
+SHh/VzZpGhkdWtHUfcKc1H/hgBKueuqI6lfYygoKOhJJomIZeg0k9zfrtHOSewUj
+mxK1zusp36QUArkBpdSmnENkiN74fv7j9R7l/tyjqORmMdlMJekYuYlZCa7pnRxt
+Nw9KHjUgKOKv1CGLAcRFrW4rY6uSa2EKTSDtc7p8zv4WtdufgPDWi2zZCHlKT3hl
+2pK8vjX5s8T5J4BO/5ZS5gIg4Qdz6V0rvbLxAgMBAAGjggElMIIBITAOBgNVHQ8B
+Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUlt5h8b0cFilT
+HMDMfTuDAEDmGnwwRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0
+dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCow
+KKAmoCSGImh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYB
+BQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNv
+bS9yb290cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZI
+hvcNAQELBQADggEBAEYq7l69rgFgNzERhnF0tkZJyBAW/i9iIxerH4f4gu3K3w4s
+32R1juUYcqeMOovJrKV3UPfvnqTgoI8UV6MqX+x+bRDmuo2wCId2Dkyy2VG7EQLy
+XN0cvfNVlg/UBsD84iOKJHDTu/B5GqdhcIOKrwbFINihY9Bsrk8y1658GEV1BSl3
+30JAZGSGvip2CTFvHST0mdCF/vIhCPnG9vHQWe3WVjwIKANnuvD58ZAWR65n5ryA
+SOlCdjSXVWkkDoPWoC209fN5ikkodBpBocLTJIg1MGCUF7ThBCIxPTsvFwayuJ2G
+K1pp74P1S8SqtCr4fKGxhZSM9AyHDPSsQPhZSZg=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert13[] = {
+ 0x30, 0x82, 0x04, 0x69, 0x30, 0x82, 0x03, 0x51, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x4e, 0xf0,
+ 0x42, 0x47, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+ 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61, 0x31,
+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x07, 0x52, 0x6f,
+ 0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
+ 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e,
+ 0x17, 0x0d, 0x31, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x66, 0x31, 0x0b, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
+ 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
+ 0x31, 0x3c, 0x30, 0x3a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x33, 0x47,
+ 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x4f, 0x72,
+ 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x56,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x41,
+ 0x20, 0x2d, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20,
+ 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc7,
+ 0x0e, 0x6c, 0x3f, 0x23, 0x93, 0x7f, 0xcc, 0x70, 0xa5, 0x9d, 0x20, 0xc3,
+ 0x0e, 0x53, 0x3f, 0x7e, 0xc0, 0x4e, 0xc2, 0x98, 0x49, 0xca, 0x47, 0xd5,
+ 0x23, 0xef, 0x03, 0x34, 0x85, 0x74, 0xc8, 0xa3, 0x02, 0x2e, 0x46, 0x5c,
+ 0x0b, 0x7d, 0xc9, 0x88, 0x9d, 0x4f, 0x8b, 0xf0, 0xf8, 0x9c, 0x6c, 0x8c,
+ 0x55, 0x35, 0xdb, 0xbf, 0xf2, 0xb3, 0xea, 0xfb, 0xe3, 0x56, 0xe7, 0x4a,
+ 0x46, 0xd9, 0x13, 0x22, 0xca, 0x36, 0xd5, 0x9b, 0xc1, 0xa8, 0xe3, 0x96,
+ 0x43, 0x93, 0xf2, 0x0c, 0xbc, 0xe6, 0xf9, 0xe6, 0xe8, 0x99, 0xc8, 0x63,
+ 0x48, 0x78, 0x7f, 0x57, 0x36, 0x69, 0x1a, 0x19, 0x1d, 0x5a, 0xd1, 0xd4,
+ 0x7d, 0xc2, 0x9c, 0xd4, 0x7f, 0xe1, 0x80, 0x12, 0xae, 0x7a, 0xea, 0x88,
+ 0xea, 0x57, 0xd8, 0xca, 0x0a, 0x0a, 0x3a, 0x12, 0x49, 0xa2, 0x62, 0x19,
+ 0x7a, 0x0d, 0x24, 0xf7, 0x37, 0xeb, 0xb4, 0x73, 0x92, 0x7b, 0x05, 0x23,
+ 0x9b, 0x12, 0xb5, 0xce, 0xeb, 0x29, 0xdf, 0xa4, 0x14, 0x02, 0xb9, 0x01,
+ 0xa5, 0xd4, 0xa6, 0x9c, 0x43, 0x64, 0x88, 0xde, 0xf8, 0x7e, 0xfe, 0xe3,
+ 0xf5, 0x1e, 0xe5, 0xfe, 0xdc, 0xa3, 0xa8, 0xe4, 0x66, 0x31, 0xd9, 0x4c,
+ 0x25, 0xe9, 0x18, 0xb9, 0x89, 0x59, 0x09, 0xae, 0xe9, 0x9d, 0x1c, 0x6d,
+ 0x37, 0x0f, 0x4a, 0x1e, 0x35, 0x20, 0x28, 0xe2, 0xaf, 0xd4, 0x21, 0x8b,
+ 0x01, 0xc4, 0x45, 0xad, 0x6e, 0x2b, 0x63, 0xab, 0x92, 0x6b, 0x61, 0x0a,
+ 0x4d, 0x20, 0xed, 0x73, 0xba, 0x7c, 0xce, 0xfe, 0x16, 0xb5, 0xdb, 0x9f,
+ 0x80, 0xf0, 0xd6, 0x8b, 0x6c, 0xd9, 0x08, 0x79, 0x4a, 0x4f, 0x78, 0x65,
+ 0xda, 0x92, 0xbc, 0xbe, 0x35, 0xf9, 0xb3, 0xc4, 0xf9, 0x27, 0x80, 0x4e,
+ 0xff, 0x96, 0x52, 0xe6, 0x02, 0x20, 0xe1, 0x07, 0x73, 0xe9, 0x5d, 0x2b,
+ 0xbd, 0xb2, 0xf1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x25,
+ 0x30, 0x82, 0x01, 0x21, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+ 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12, 0x06, 0x03,
+ 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+ 0xff, 0x02, 0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+ 0x16, 0x04, 0x14, 0x96, 0xde, 0x61, 0xf1, 0xbd, 0x1c, 0x16, 0x29, 0x53,
+ 0x1c, 0xc0, 0xcc, 0x7d, 0x3b, 0x83, 0x00, 0x40, 0xe6, 0x1a, 0x7c, 0x30,
+ 0x47, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x40, 0x30, 0x3e, 0x30, 0x3c,
+ 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x34, 0x30, 0x32, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x26, 0x68, 0x74,
+ 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6c,
+ 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+ 0x30, 0x33, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30,
+ 0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
+ 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f,
+ 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67,
+ 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x72, 0x31, 0x30, 0x1f, 0x06, 0x03,
+ 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66,
+ 0x1a, 0x45, 0x0d, 0x97, 0xca, 0x89, 0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34,
+ 0xa8, 0xff, 0xfc, 0xfd, 0x4b, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+ 0x00, 0x46, 0x2a, 0xee, 0x5e, 0xbd, 0xae, 0x01, 0x60, 0x37, 0x31, 0x11,
+ 0x86, 0x71, 0x74, 0xb6, 0x46, 0x49, 0xc8, 0x10, 0x16, 0xfe, 0x2f, 0x62,
+ 0x23, 0x17, 0xab, 0x1f, 0x87, 0xf8, 0x82, 0xed, 0xca, 0xdf, 0x0e, 0x2c,
+ 0xdf, 0x64, 0x75, 0x8e, 0xe5, 0x18, 0x72, 0xa7, 0x8c, 0x3a, 0x8b, 0xc9,
+ 0xac, 0xa5, 0x77, 0x50, 0xf7, 0xef, 0x9e, 0xa4, 0xe0, 0xa0, 0x8f, 0x14,
+ 0x57, 0xa3, 0x2a, 0x5f, 0xec, 0x7e, 0x6d, 0x10, 0xe6, 0xba, 0x8d, 0xb0,
+ 0x08, 0x87, 0x76, 0x0e, 0x4c, 0xb2, 0xd9, 0x51, 0xbb, 0x11, 0x02, 0xf2,
+ 0x5c, 0xdd, 0x1c, 0xbd, 0xf3, 0x55, 0x96, 0x0f, 0xd4, 0x06, 0xc0, 0xfc,
+ 0xe2, 0x23, 0x8a, 0x24, 0x70, 0xd3, 0xbb, 0xf0, 0x79, 0x1a, 0xa7, 0x61,
+ 0x70, 0x83, 0x8a, 0xaf, 0x06, 0xc5, 0x20, 0xd8, 0xa1, 0x63, 0xd0, 0x6c,
+ 0xae, 0x4f, 0x32, 0xd7, 0xae, 0x7c, 0x18, 0x45, 0x75, 0x05, 0x29, 0x77,
+ 0xdf, 0x42, 0x40, 0x64, 0x64, 0x86, 0xbe, 0x2a, 0x76, 0x09, 0x31, 0x6f,
+ 0x1d, 0x24, 0xf4, 0x99, 0xd0, 0x85, 0xfe, 0xf2, 0x21, 0x08, 0xf9, 0xc6,
+ 0xf6, 0xf1, 0xd0, 0x59, 0xed, 0xd6, 0x56, 0x3c, 0x08, 0x28, 0x03, 0x67,
+ 0xba, 0xf0, 0xf9, 0xf1, 0x90, 0x16, 0x47, 0xae, 0x67, 0xe6, 0xbc, 0x80,
+ 0x48, 0xe9, 0x42, 0x76, 0x34, 0x97, 0x55, 0x69, 0x24, 0x0e, 0x83, 0xd6,
+ 0xa0, 0x2d, 0xb4, 0xf5, 0xf3, 0x79, 0x8a, 0x49, 0x28, 0x74, 0x1a, 0x41,
+ 0xa1, 0xc2, 0xd3, 0x24, 0x88, 0x35, 0x30, 0x60, 0x94, 0x17, 0xb4, 0xe1,
+ 0x04, 0x22, 0x31, 0x3d, 0x3b, 0x2f, 0x17, 0x06, 0xb2, 0xb8, 0x9d, 0x86,
+ 0x2b, 0x5a, 0x69, 0xef, 0x83, 0xf5, 0x4b, 0xc4, 0xaa, 0xb4, 0x2a, 0xf8,
+ 0x7c, 0xa1, 0xb1, 0x85, 0x94, 0x8c, 0xf4, 0x0c, 0x87, 0x0c, 0xf4, 0xac,
+ 0x40, 0xf8, 0x59, 0x49, 0x98,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 4d:5f:2c:34:08:b2:4c:20:cd:6d:50:7e:24:4d:c9:ec
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+ Validity
+ Not Before: Feb 8 00:00:00 2010 GMT
+ Not After : Feb 7 23:59:59 2020 GMT
+ Subject: C=US, O=Thawte, Inc., CN=Thawte SSL CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:99:e4:85:5b:76:49:7d:2f:05:d8:c5:ac:c8:c8:
+ a9:d3:dc:98:e6:d7:34:a6:2f:0c:f2:22:26:d8:a3:
+ c9:14:4c:8f:05:a4:45:e8:14:0c:58:90:05:1a:b7:
+ c5:c1:06:a5:80:af:bb:1d:49:6b:52:34:88:c3:59:
+ e7:ef:6b:c4:27:41:8c:2b:66:1d:d0:e0:a3:97:98:
+ 19:34:4b:41:d5:98:d5:c7:05:ad:a2:e4:d7:ed:0c:
+ ad:4f:c1:b5:b0:21:fd:3e:50:53:b2:c4:90:d0:d4:
+ 30:67:6c:9a:f1:0e:74:c4:c2:dc:8a:e8:97:ff:c9:
+ 92:ae:01:8a:56:0a:98:32:b0:00:23:ec:90:1a:60:
+ c3:ed:bb:3a:cb:0f:63:9f:0d:44:c9:52:e1:25:96:
+ bf:ed:50:95:89:7f:56:14:b1:b7:61:1d:1c:07:8c:
+ 3a:2c:f7:ff:80:de:39:45:d5:af:1a:d1:78:d8:c7:
+ 71:6a:a3:19:a7:32:50:21:e9:f2:0e:a1:c6:13:03:
+ 44:48:d1:66:a8:52:57:d7:11:b4:93:8b:e5:99:9f:
+ 5d:e7:78:51:e5:4d:f6:b7:59:b4:76:b5:09:37:4d:
+ 06:38:13:7a:1c:08:98:5c:c4:48:4a:cb:52:a0:a9:
+ f8:b1:9d:8e:7b:79:b0:20:2f:3c:96:a8:11:62:47:
+ bb:11
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ Authority Information Access:
+ OCSP - URI:http://ocsp.thawte.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.thawte.com/ThawtePCA.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Alternative Name:
+ DirName:/CN=VeriSignMPKI-2-9
+ X509v3 Subject Key Identifier:
+ A7:A2:83:BB:34:45:40:3D:FC:D5:30:4F:12:B9:3E:A1:01:9F:F6:DB
+ X509v3 Authority Key Identifier:
+ keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 80:22:80:e0:6c:c8:95:16:d7:57:26:87:f3:72:34:db:c6:72:
+ 56:27:3e:d3:96:f6:2e:25:91:a5:3e:33:97:a7:4b:e5:2f:fb:
+ 25:7d:2f:07:61:fa:6f:83:74:4c:4c:53:72:20:a4:7a:cf:51:
+ 51:56:81:88:b0:6d:1f:36:2c:c8:2b:b1:88:99:c1:fe:44:ab:
+ 48:51:7c:d8:f2:44:64:2a:d8:71:a7:fb:1a:2f:f9:19:8d:34:
+ b2:23:bf:c4:4c:55:1d:8e:44:e8:aa:5d:9a:dd:9f:fd:03:c7:
+ ba:24:43:8d:2d:47:44:db:f6:d8:98:c8:b2:f9:da:ef:ed:29:
+ 5c:69:12:fa:d1:23:96:0f:bf:9c:0d:f2:79:45:53:37:9a:56:
+ 2f:e8:57:10:70:f6:ee:89:0c:49:89:9a:c1:23:f5:c2:2a:cc:
+ 41:cf:22:ab:65:6e:b7:94:82:6d:2f:40:5f:58:de:eb:95:2b:
+ a6:72:68:52:19:91:2a:ae:75:9d:4e:92:e6:ca:de:54:ea:18:
+ ab:25:3c:e6:64:a6:79:1f:26:7d:61:ed:7d:d2:e5:71:55:d8:
+ 93:17:7c:14:38:30:3c:df:86:e3:4c:ad:49:e3:97:59:ce:1b:
+ 9b:2b:ce:dc:65:d4:0b:28:6b:4e:84:46:51:44:f7:33:08:2d:
+ 58:97:21:ae
+-----BEGIN CERTIFICATE-----
+MIIEbDCCA1SgAwIBAgIQTV8sNAiyTCDNbVB+JE3J7DANBgkqhkiG9w0BAQUFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTAwMjA4MDAwMDAwWhcNMjAw
+MjA3MjM1OTU5WjA8MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMVGhhd3RlLCBJbmMu
+MRYwFAYDVQQDEw1UaGF3dGUgU1NMIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAmeSFW3ZJfS8F2MWsyMip09yY5tc0pi8M8iIm2KPJFEyPBaRF6BQM
+WJAFGrfFwQalgK+7HUlrUjSIw1nn72vEJ0GMK2Yd0OCjl5gZNEtB1ZjVxwWtouTX
+7QytT8G1sCH9PlBTssSQ0NQwZ2ya8Q50xMLciuiX/8mSrgGKVgqYMrAAI+yQGmDD
+7bs6yw9jnw1EyVLhJZa/7VCViX9WFLG3YR0cB4w6LPf/gN45RdWvGtF42MdxaqMZ
+pzJQIenyDqHGEwNESNFmqFJX1xG0k4vlmZ9d53hR5U32t1m0drUJN00GOBN6HAiY
+XMRISstSoKn4sZ2Oe3mwIC88lqgRYke7EQIDAQABo4H7MIH4MDIGCCsGAQUFBwEB
+BCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTASBgNVHRMB
+Af8ECDAGAQH/AgEAMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwudGhhd3Rl
+LmNvbS9UaGF3dGVQQ0EuY3JsMA4GA1UdDwEB/wQEAwIBBjAoBgNVHREEITAfpB0w
+GzEZMBcGA1UEAxMQVmVyaVNpZ25NUEtJLTItOTAdBgNVHQ4EFgQUp6KDuzRFQD38
+1TBPErk+oQGf9tswHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutXSFAwDQYJ
+KoZIhvcNAQEFBQADggEBAIAigOBsyJUW11cmh/NyNNvGclYnPtOW9i4lkaU+M5en
+S+Uv+yV9Lwdh+m+DdExMU3IgpHrPUVFWgYiwbR82LMgrsYiZwf5Eq0hRfNjyRGQq
+2HGn+xov+RmNNLIjv8RMVR2OROiqXZrdn/0Dx7okQ40tR0Tb9tiYyLL52u/tKVxp
+EvrRI5YPv5wN8nlFUzeaVi/oVxBw9u6JDEmJmsEj9cIqzEHPIqtlbreUgm0vQF9Y
+3uuVK6ZyaFIZkSqudZ1OkubK3lTqGKslPOZkpnkfJn1h7X3S5XFV2JMXfBQ4MDzf
+huNMrUnjl1nOG5srztxl1Asoa06ERlFE9zMILViXIa4=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert14[] = {
+ 0x30, 0x82, 0x04, 0x6c, 0x30, 0x82, 0x03, 0x54, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x4d, 0x5f, 0x2c, 0x34, 0x08, 0xb2, 0x4c, 0x20, 0xcd,
+ 0x6d, 0x50, 0x7e, 0x24, 0x4d, 0xc9, 0xec, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+ 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+ 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+ 0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+ 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x32, 0x30, 0x38,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30, 0x30,
+ 0x32, 0x30, 0x37, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x3c,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0d, 0x54,
+ 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+ 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+ 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x99, 0xe4, 0x85,
+ 0x5b, 0x76, 0x49, 0x7d, 0x2f, 0x05, 0xd8, 0xc5, 0xac, 0xc8, 0xc8, 0xa9,
+ 0xd3, 0xdc, 0x98, 0xe6, 0xd7, 0x34, 0xa6, 0x2f, 0x0c, 0xf2, 0x22, 0x26,
+ 0xd8, 0xa3, 0xc9, 0x14, 0x4c, 0x8f, 0x05, 0xa4, 0x45, 0xe8, 0x14, 0x0c,
+ 0x58, 0x90, 0x05, 0x1a, 0xb7, 0xc5, 0xc1, 0x06, 0xa5, 0x80, 0xaf, 0xbb,
+ 0x1d, 0x49, 0x6b, 0x52, 0x34, 0x88, 0xc3, 0x59, 0xe7, 0xef, 0x6b, 0xc4,
+ 0x27, 0x41, 0x8c, 0x2b, 0x66, 0x1d, 0xd0, 0xe0, 0xa3, 0x97, 0x98, 0x19,
+ 0x34, 0x4b, 0x41, 0xd5, 0x98, 0xd5, 0xc7, 0x05, 0xad, 0xa2, 0xe4, 0xd7,
+ 0xed, 0x0c, 0xad, 0x4f, 0xc1, 0xb5, 0xb0, 0x21, 0xfd, 0x3e, 0x50, 0x53,
+ 0xb2, 0xc4, 0x90, 0xd0, 0xd4, 0x30, 0x67, 0x6c, 0x9a, 0xf1, 0x0e, 0x74,
+ 0xc4, 0xc2, 0xdc, 0x8a, 0xe8, 0x97, 0xff, 0xc9, 0x92, 0xae, 0x01, 0x8a,
+ 0x56, 0x0a, 0x98, 0x32, 0xb0, 0x00, 0x23, 0xec, 0x90, 0x1a, 0x60, 0xc3,
+ 0xed, 0xbb, 0x3a, 0xcb, 0x0f, 0x63, 0x9f, 0x0d, 0x44, 0xc9, 0x52, 0xe1,
+ 0x25, 0x96, 0xbf, 0xed, 0x50, 0x95, 0x89, 0x7f, 0x56, 0x14, 0xb1, 0xb7,
+ 0x61, 0x1d, 0x1c, 0x07, 0x8c, 0x3a, 0x2c, 0xf7, 0xff, 0x80, 0xde, 0x39,
+ 0x45, 0xd5, 0xaf, 0x1a, 0xd1, 0x78, 0xd8, 0xc7, 0x71, 0x6a, 0xa3, 0x19,
+ 0xa7, 0x32, 0x50, 0x21, 0xe9, 0xf2, 0x0e, 0xa1, 0xc6, 0x13, 0x03, 0x44,
+ 0x48, 0xd1, 0x66, 0xa8, 0x52, 0x57, 0xd7, 0x11, 0xb4, 0x93, 0x8b, 0xe5,
+ 0x99, 0x9f, 0x5d, 0xe7, 0x78, 0x51, 0xe5, 0x4d, 0xf6, 0xb7, 0x59, 0xb4,
+ 0x76, 0xb5, 0x09, 0x37, 0x4d, 0x06, 0x38, 0x13, 0x7a, 0x1c, 0x08, 0x98,
+ 0x5c, 0xc4, 0x48, 0x4a, 0xcb, 0x52, 0xa0, 0xa9, 0xf8, 0xb1, 0x9d, 0x8e,
+ 0x7b, 0x79, 0xb0, 0x20, 0x2f, 0x3c, 0x96, 0xa8, 0x11, 0x62, 0x47, 0xbb,
+ 0x11, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xfb, 0x30, 0x81, 0xf8,
+ 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+ 0x04, 0x26, 0x30, 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x30, 0x01, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+ 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
+ 0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2d, 0x30, 0x2b, 0x30,
+ 0x29, 0xa0, 0x27, 0xa0, 0x25, 0x86, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50,
+ 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x28,
+ 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x21, 0x30, 0x1f, 0xa4, 0x1d, 0x30,
+ 0x1b, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x10,
+ 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49,
+ 0x2d, 0x32, 0x2d, 0x39, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+ 0x16, 0x04, 0x14, 0xa7, 0xa2, 0x83, 0xbb, 0x34, 0x45, 0x40, 0x3d, 0xfc,
+ 0xd5, 0x30, 0x4f, 0x12, 0xb9, 0x3e, 0xa1, 0x01, 0x9f, 0xf6, 0xdb, 0x30,
+ 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+ 0x7b, 0x5b, 0x45, 0xcf, 0xaf, 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a,
+ 0x6a, 0xb6, 0xf3, 0x46, 0xeb, 0x57, 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x01, 0x00, 0x80, 0x22, 0x80, 0xe0, 0x6c, 0xc8, 0x95, 0x16,
+ 0xd7, 0x57, 0x26, 0x87, 0xf3, 0x72, 0x34, 0xdb, 0xc6, 0x72, 0x56, 0x27,
+ 0x3e, 0xd3, 0x96, 0xf6, 0x2e, 0x25, 0x91, 0xa5, 0x3e, 0x33, 0x97, 0xa7,
+ 0x4b, 0xe5, 0x2f, 0xfb, 0x25, 0x7d, 0x2f, 0x07, 0x61, 0xfa, 0x6f, 0x83,
+ 0x74, 0x4c, 0x4c, 0x53, 0x72, 0x20, 0xa4, 0x7a, 0xcf, 0x51, 0x51, 0x56,
+ 0x81, 0x88, 0xb0, 0x6d, 0x1f, 0x36, 0x2c, 0xc8, 0x2b, 0xb1, 0x88, 0x99,
+ 0xc1, 0xfe, 0x44, 0xab, 0x48, 0x51, 0x7c, 0xd8, 0xf2, 0x44, 0x64, 0x2a,
+ 0xd8, 0x71, 0xa7, 0xfb, 0x1a, 0x2f, 0xf9, 0x19, 0x8d, 0x34, 0xb2, 0x23,
+ 0xbf, 0xc4, 0x4c, 0x55, 0x1d, 0x8e, 0x44, 0xe8, 0xaa, 0x5d, 0x9a, 0xdd,
+ 0x9f, 0xfd, 0x03, 0xc7, 0xba, 0x24, 0x43, 0x8d, 0x2d, 0x47, 0x44, 0xdb,
+ 0xf6, 0xd8, 0x98, 0xc8, 0xb2, 0xf9, 0xda, 0xef, 0xed, 0x29, 0x5c, 0x69,
+ 0x12, 0xfa, 0xd1, 0x23, 0x96, 0x0f, 0xbf, 0x9c, 0x0d, 0xf2, 0x79, 0x45,
+ 0x53, 0x37, 0x9a, 0x56, 0x2f, 0xe8, 0x57, 0x10, 0x70, 0xf6, 0xee, 0x89,
+ 0x0c, 0x49, 0x89, 0x9a, 0xc1, 0x23, 0xf5, 0xc2, 0x2a, 0xcc, 0x41, 0xcf,
+ 0x22, 0xab, 0x65, 0x6e, 0xb7, 0x94, 0x82, 0x6d, 0x2f, 0x40, 0x5f, 0x58,
+ 0xde, 0xeb, 0x95, 0x2b, 0xa6, 0x72, 0x68, 0x52, 0x19, 0x91, 0x2a, 0xae,
+ 0x75, 0x9d, 0x4e, 0x92, 0xe6, 0xca, 0xde, 0x54, 0xea, 0x18, 0xab, 0x25,
+ 0x3c, 0xe6, 0x64, 0xa6, 0x79, 0x1f, 0x26, 0x7d, 0x61, 0xed, 0x7d, 0xd2,
+ 0xe5, 0x71, 0x55, 0xd8, 0x93, 0x17, 0x7c, 0x14, 0x38, 0x30, 0x3c, 0xdf,
+ 0x86, 0xe3, 0x4c, 0xad, 0x49, 0xe3, 0x97, 0x59, 0xce, 0x1b, 0x9b, 0x2b,
+ 0xce, 0xdc, 0x65, 0xd4, 0x0b, 0x28, 0x6b, 0x4e, 0x84, 0x46, 0x51, 0x44,
+ 0xf7, 0x33, 0x08, 0x2d, 0x58, 0x97, 0x21, 0xae,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 6e:8a:90:eb:cf:f0:44:8a:72:0d:08:05:d0:82:a5:44
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Primary Certification Authority
+ Validity
+ Not Before: Oct 31 00:00:00 2013 GMT
+ Not After : Oct 30 23:59:59 2023 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust EV SSL CA - G4
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:d9:b4:05:f2:38:67:0f:09:e7:7c:f5:63:2a:e5:
+ b9:5e:a8:11:ae:75:71:d9:4c:84:67:ad:89:5d:fc:
+ 28:3d:2a:b0:a5:d5:d4:e6:30:0a:84:d4:e4:18:cb:
+ 85:37:c5:46:71:eb:1c:7b:69:db:65:69:8c:30:05:
+ 3e:07:e1:6f:3c:c1:0b:61:e6:38:44:fc:bc:8c:2f:
+ 4e:75:57:f5:96:99:7c:3e:87:1f:0f:90:4b:70:c3:
+ 3f:39:45:3b:3a:6b:cb:bb:7b:40:54:d1:8b:4b:a1:
+ 72:d2:04:e9:e0:72:1a:93:11:7a:2f:f1:ab:9d:9c:
+ 98:58:ae:2c:ea:77:5f:2f:2e:87:af:b8:6b:e3:e2:
+ e2:3f:d6:3d:e0:96:44:df:11:55:63:52:2f:f4:26:
+ 78:c4:0f:20:4d:0a:c0:68:70:15:86:38:ee:b7:76:
+ 88:ab:18:8f:4f:35:1e:d4:8c:c9:db:7e:3d:44:d4:
+ 36:8c:c1:37:b5:59:5b:87:f9:e9:f1:d4:c5:28:bd:
+ 1d:dc:cc:96:72:d1:7a:a1:a7:20:b5:b8:af:f8:6e:
+ a5:60:7b:2b:8d:1f:ee:f4:2b:d6:69:cd:af:ca:80:
+ 58:29:e8:4c:00:20:8a:49:0a:6e:8e:8c:a8:d1:00:
+ 12:84:b6:c5:e2:95:a2:c0:3b:a4:6b:f0:82:d0:96:
+ 5d:25
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://g2.symcb.com
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.geotrust.com/resources/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g1.symcb.com/GeoTrustPCA.crl
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-538
+ X509v3 Subject Key Identifier:
+ DE:CF:5C:50:B7:AE:02:1F:15:17:AA:16:E8:0D:B5:28:9D:6A:5A:F3
+ X509v3 Authority Key Identifier:
+ keyid:2C:D5:50:41:97:15:8B:F0:8F:36:61:5B:4A:FB:6B:D9:99:C9:33:92
+
+ Signature Algorithm: sha256WithRSAEncryption
+ b4:8e:bd:07:b9:9a:85:ec:3b:67:bd:07:60:61:e6:84:d1:d4:
+ ef:eb:1b:ba:0b:82:4b:95:64:b6:66:53:23:bd:b7:84:dd:e4:
+ 7b:8d:09:da:cf:b2:f5:f1:c3:bf:87:84:be:4e:a6:a8:c2:e7:
+ 12:39:28:34:e0:a4:56:44:40:0c:9f:88:a3:15:d3:e8:d3:5e:
+ e3:1c:04:60:fb:69:36:4f:6a:7e:0c:2a:28:c1:f3:aa:58:0e:
+ 6c:ce:1d:07:c3:4a:c0:9c:8d:c3:74:b1:ae:82:f0:1a:e1:f9:
+ 4e:29:bd:46:de:b7:1d:f9:7d:db:d9:0f:84:cb:92:45:cc:1c:
+ b3:18:f6:a0:cf:71:6f:0c:2e:9b:d2:2d:b3:99:93:83:44:ac:
+ 15:aa:9b:2e:67:ec:4f:88:69:05:56:7b:8b:b2:43:a9:3a:6c:
+ 1c:13:33:25:1b:fd:a8:c8:57:02:fb:1c:e0:d1:bd:3b:56:44:
+ 65:c3:63:f5:1b:ef:ec:30:d9:e3:6e:2e:13:e9:39:08:2a:0c:
+ 72:f3:9a:cc:f6:27:29:84:d3:ef:4c:c7:84:11:65:1f:c6:e3:
+ 81:03:db:87:cc:78:f7:b5:9d:96:3e:6a:7f:bc:11:85:7a:75:
+ e6:41:7d:0d:cf:f9:e5:85:69:25:8f:c7:8d:07:2d:f8:69:0f:
+ cb:41:53:00
+-----BEGIN CERTIFICATE-----
+MIIEbjCCA1agAwIBAgIQboqQ68/wRIpyDQgF0IKlRDANBgkqhkiG9w0BAQsFADBY
+MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
+R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMzEw
+MzEwMDAwMDBaFw0yMzEwMzAyMzU5NTlaMEcxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1HZW9UcnVzdCBJbmMuMSAwHgYDVQQDExdHZW9UcnVzdCBFViBTU0wgQ0EgLSBH
+NDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANm0BfI4Zw8J53z1Yyrl
+uV6oEa51cdlMhGetiV38KD0qsKXV1OYwCoTU5BjLhTfFRnHrHHtp22VpjDAFPgfh
+bzzBC2HmOET8vIwvTnVX9ZaZfD6HHw+QS3DDPzlFOzpry7t7QFTRi0uhctIE6eBy
+GpMRei/xq52cmFiuLOp3Xy8uh6+4a+Pi4j/WPeCWRN8RVWNSL/QmeMQPIE0KwGhw
+FYY47rd2iKsYj081HtSMydt+PUTUNozBN7VZW4f56fHUxSi9HdzMlnLReqGnILW4
+r/hupWB7K40f7vQr1mnNr8qAWCnoTAAgikkKbo6MqNEAEoS2xeKVosA7pGvwgtCW
+XSUCAwEAAaOCAUMwggE/MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQD
+AgEGMC8GCCsGAQUFBwEBBCMwITAfBggrBgEFBQcwAYYTaHR0cDovL2cyLnN5bWNi
+LmNvbTBHBgNVHSAEQDA+MDwGBFUdIAAwNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93
+d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwNAYDVR0fBC0wKzApoCegJYYj
+aHR0cDovL2cxLnN5bWNiLmNvbS9HZW9UcnVzdFBDQS5jcmwwKQYDVR0RBCIwIKQe
+MBwxGjAYBgNVBAMTEVN5bWFudGVjUEtJLTEtNTM4MB0GA1UdDgQWBBTez1xQt64C
+HxUXqhboDbUonWpa8zAfBgNVHSMEGDAWgBQs1VBBlxWL8I82YVtK+2vZmckzkjAN
+BgkqhkiG9w0BAQsFAAOCAQEAtI69B7mahew7Z70HYGHmhNHU7+sbuguCS5VktmZT
+I723hN3ke40J2s+y9fHDv4eEvk6mqMLnEjkoNOCkVkRADJ+IoxXT6NNe4xwEYPtp
+Nk9qfgwqKMHzqlgObM4dB8NKwJyNw3SxroLwGuH5Tim9Rt63Hfl929kPhMuSRcwc
+sxj2oM9xbwwum9Its5mTg0SsFaqbLmfsT4hpBVZ7i7JDqTpsHBMzJRv9qMhXAvsc
+4NG9O1ZEZcNj9Rvv7DDZ424uE+k5CCoMcvOazPYnKYTT70zHhBFlH8bjgQPbh8x4
+97Wdlj5qf7wRhXp15kF9Dc/55YVpJY/HjQct+GkPy0FTAA==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert15[] = {
+ 0x30, 0x82, 0x04, 0x6e, 0x30, 0x82, 0x03, 0x56, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x6e, 0x8a, 0x90, 0xeb, 0xcf, 0xf0, 0x44, 0x8a, 0x72,
+ 0x0d, 0x08, 0x05, 0xd0, 0x82, 0xa5, 0x44, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x58,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d,
+ 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x28,
+ 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30,
+ 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32,
+ 0x33, 0x31, 0x30, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a,
+ 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+ 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x17, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45,
+ 0x56, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47,
+ 0x34, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f,
+ 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xd9, 0xb4,
+ 0x05, 0xf2, 0x38, 0x67, 0x0f, 0x09, 0xe7, 0x7c, 0xf5, 0x63, 0x2a, 0xe5,
+ 0xb9, 0x5e, 0xa8, 0x11, 0xae, 0x75, 0x71, 0xd9, 0x4c, 0x84, 0x67, 0xad,
+ 0x89, 0x5d, 0xfc, 0x28, 0x3d, 0x2a, 0xb0, 0xa5, 0xd5, 0xd4, 0xe6, 0x30,
+ 0x0a, 0x84, 0xd4, 0xe4, 0x18, 0xcb, 0x85, 0x37, 0xc5, 0x46, 0x71, 0xeb,
+ 0x1c, 0x7b, 0x69, 0xdb, 0x65, 0x69, 0x8c, 0x30, 0x05, 0x3e, 0x07, 0xe1,
+ 0x6f, 0x3c, 0xc1, 0x0b, 0x61, 0xe6, 0x38, 0x44, 0xfc, 0xbc, 0x8c, 0x2f,
+ 0x4e, 0x75, 0x57, 0xf5, 0x96, 0x99, 0x7c, 0x3e, 0x87, 0x1f, 0x0f, 0x90,
+ 0x4b, 0x70, 0xc3, 0x3f, 0x39, 0x45, 0x3b, 0x3a, 0x6b, 0xcb, 0xbb, 0x7b,
+ 0x40, 0x54, 0xd1, 0x8b, 0x4b, 0xa1, 0x72, 0xd2, 0x04, 0xe9, 0xe0, 0x72,
+ 0x1a, 0x93, 0x11, 0x7a, 0x2f, 0xf1, 0xab, 0x9d, 0x9c, 0x98, 0x58, 0xae,
+ 0x2c, 0xea, 0x77, 0x5f, 0x2f, 0x2e, 0x87, 0xaf, 0xb8, 0x6b, 0xe3, 0xe2,
+ 0xe2, 0x3f, 0xd6, 0x3d, 0xe0, 0x96, 0x44, 0xdf, 0x11, 0x55, 0x63, 0x52,
+ 0x2f, 0xf4, 0x26, 0x78, 0xc4, 0x0f, 0x20, 0x4d, 0x0a, 0xc0, 0x68, 0x70,
+ 0x15, 0x86, 0x38, 0xee, 0xb7, 0x76, 0x88, 0xab, 0x18, 0x8f, 0x4f, 0x35,
+ 0x1e, 0xd4, 0x8c, 0xc9, 0xdb, 0x7e, 0x3d, 0x44, 0xd4, 0x36, 0x8c, 0xc1,
+ 0x37, 0xb5, 0x59, 0x5b, 0x87, 0xf9, 0xe9, 0xf1, 0xd4, 0xc5, 0x28, 0xbd,
+ 0x1d, 0xdc, 0xcc, 0x96, 0x72, 0xd1, 0x7a, 0xa1, 0xa7, 0x20, 0xb5, 0xb8,
+ 0xaf, 0xf8, 0x6e, 0xa5, 0x60, 0x7b, 0x2b, 0x8d, 0x1f, 0xee, 0xf4, 0x2b,
+ 0xd6, 0x69, 0xcd, 0xaf, 0xca, 0x80, 0x58, 0x29, 0xe8, 0x4c, 0x00, 0x20,
+ 0x8a, 0x49, 0x0a, 0x6e, 0x8e, 0x8c, 0xa8, 0xd1, 0x00, 0x12, 0x84, 0xb6,
+ 0xc5, 0xe2, 0x95, 0xa2, 0xc0, 0x3b, 0xa4, 0x6b, 0xf0, 0x82, 0xd0, 0x96,
+ 0x5d, 0x25, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x43, 0x30,
+ 0x82, 0x01, 0x3f, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+ 0x02, 0x01, 0x06, 0x30, 0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x01, 0x01, 0x04, 0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x47, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+ 0x40, 0x30, 0x3e, 0x30, 0x3c, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30,
+ 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+ 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77,
+ 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x2d, 0x30, 0x2b, 0x30, 0x29, 0xa0, 0x27, 0xa0, 0x25, 0x86, 0x23,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x31, 0x2e, 0x73, 0x79,
+ 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x6f, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x50, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+ 0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e,
+ 0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49,
+ 0x2d, 0x31, 0x2d, 0x35, 0x33, 0x38, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+ 0x0e, 0x04, 0x16, 0x04, 0x14, 0xde, 0xcf, 0x5c, 0x50, 0xb7, 0xae, 0x02,
+ 0x1f, 0x15, 0x17, 0xaa, 0x16, 0xe8, 0x0d, 0xb5, 0x28, 0x9d, 0x6a, 0x5a,
+ 0xf3, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0x2c, 0xd5, 0x50, 0x41, 0x97, 0x15, 0x8b, 0xf0, 0x8f, 0x36,
+ 0x61, 0x5b, 0x4a, 0xfb, 0x6b, 0xd9, 0x99, 0xc9, 0x33, 0x92, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xb4, 0x8e, 0xbd, 0x07, 0xb9, 0x9a,
+ 0x85, 0xec, 0x3b, 0x67, 0xbd, 0x07, 0x60, 0x61, 0xe6, 0x84, 0xd1, 0xd4,
+ 0xef, 0xeb, 0x1b, 0xba, 0x0b, 0x82, 0x4b, 0x95, 0x64, 0xb6, 0x66, 0x53,
+ 0x23, 0xbd, 0xb7, 0x84, 0xdd, 0xe4, 0x7b, 0x8d, 0x09, 0xda, 0xcf, 0xb2,
+ 0xf5, 0xf1, 0xc3, 0xbf, 0x87, 0x84, 0xbe, 0x4e, 0xa6, 0xa8, 0xc2, 0xe7,
+ 0x12, 0x39, 0x28, 0x34, 0xe0, 0xa4, 0x56, 0x44, 0x40, 0x0c, 0x9f, 0x88,
+ 0xa3, 0x15, 0xd3, 0xe8, 0xd3, 0x5e, 0xe3, 0x1c, 0x04, 0x60, 0xfb, 0x69,
+ 0x36, 0x4f, 0x6a, 0x7e, 0x0c, 0x2a, 0x28, 0xc1, 0xf3, 0xaa, 0x58, 0x0e,
+ 0x6c, 0xce, 0x1d, 0x07, 0xc3, 0x4a, 0xc0, 0x9c, 0x8d, 0xc3, 0x74, 0xb1,
+ 0xae, 0x82, 0xf0, 0x1a, 0xe1, 0xf9, 0x4e, 0x29, 0xbd, 0x46, 0xde, 0xb7,
+ 0x1d, 0xf9, 0x7d, 0xdb, 0xd9, 0x0f, 0x84, 0xcb, 0x92, 0x45, 0xcc, 0x1c,
+ 0xb3, 0x18, 0xf6, 0xa0, 0xcf, 0x71, 0x6f, 0x0c, 0x2e, 0x9b, 0xd2, 0x2d,
+ 0xb3, 0x99, 0x93, 0x83, 0x44, 0xac, 0x15, 0xaa, 0x9b, 0x2e, 0x67, 0xec,
+ 0x4f, 0x88, 0x69, 0x05, 0x56, 0x7b, 0x8b, 0xb2, 0x43, 0xa9, 0x3a, 0x6c,
+ 0x1c, 0x13, 0x33, 0x25, 0x1b, 0xfd, 0xa8, 0xc8, 0x57, 0x02, 0xfb, 0x1c,
+ 0xe0, 0xd1, 0xbd, 0x3b, 0x56, 0x44, 0x65, 0xc3, 0x63, 0xf5, 0x1b, 0xef,
+ 0xec, 0x30, 0xd9, 0xe3, 0x6e, 0x2e, 0x13, 0xe9, 0x39, 0x08, 0x2a, 0x0c,
+ 0x72, 0xf3, 0x9a, 0xcc, 0xf6, 0x27, 0x29, 0x84, 0xd3, 0xef, 0x4c, 0xc7,
+ 0x84, 0x11, 0x65, 0x1f, 0xc6, 0xe3, 0x81, 0x03, 0xdb, 0x87, 0xcc, 0x78,
+ 0xf7, 0xb5, 0x9d, 0x96, 0x3e, 0x6a, 0x7f, 0xbc, 0x11, 0x85, 0x7a, 0x75,
+ 0xe6, 0x41, 0x7d, 0x0d, 0xcf, 0xf9, 0xe5, 0x85, 0x69, 0x25, 0x8f, 0xc7,
+ 0x8d, 0x07, 0x2d, 0xf8, 0x69, 0x0f, 0xcb, 0x41, 0x53, 0x00,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 146035 (0x23a73)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+ Validity
+ Not Before: Jun 11 22:02:59 2014 GMT
+ Not After : May 20 22:02:59 2022 GMT
+ Subject: C=US, O=GeoTrust Inc., OU=Domain Validated SSL, CN=GeoTrust DV SSL CA - G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b3:44:3a:6c:b0:ae:cb:14:f9:8c:19:74:34:5c:
+ a9:69:e3:88:53:77:a5:a7:ff:bd:d1:3c:0d:27:e4:
+ de:ad:7f:bc:d1:90:58:93:d6:a6:da:39:9c:ad:e1:
+ 0e:56:46:ee:95:9e:10:68:4c:9c:2b:f6:6a:3a:8b:
+ 80:81:87:06:57:25:1a:56:52:94:dd:90:eb:67:3b:
+ de:fa:ae:36:68:d3:62:69:f6:6c:82:24:44:4f:87:
+ 5c:98:11:95:64:6b:e8:0c:d1:dd:e6:27:97:ae:cc:
+ e2:91:6a:41:12:b6:ab:e5:cc:6e:cc:23:b8:63:8a:
+ 1f:31:93:2d:06:c4:f7:e8:3d:58:cd:97:08:46:6c:
+ 7b:74:c0:f8:fc:31:3b:a7:7f:d7:8f:b0:c9:15:63:
+ 50:7a:12:4d:f5:12:1e:a3:7e:55:e3:75:b7:ea:1e:
+ ea:31:2c:08:4e:d8:cb:43:74:89:24:bc:d2:0e:1e:
+ f0:db:05:24:f6:8a:bf:10:27:84:41:1a:f6:18:53:
+ ee:91:d0:54:17:d3:7d:3e:7e:b2:7d:a8:bf:db:b9:
+ 21:2a:f0:89:b9:08:6e:5a:b3:5e:ea:82:b8:7e:27:
+ 0b:cc:56:73:81:05:4f:e3:96:2d:71:d5:78:a7:60:
+ c3:d7:ec:aa:39:1a:05:39:82:81:e0:15:2c:35:d1:
+ ee:25
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Authority Key Identifier:
+ keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+ X509v3 Subject Key Identifier:
+ AD:65:22:85:90:D0:3B:E3:A1:49:8B:37:F9:F1:0B:1D:5F:17:A0:77
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g.symcb.com/crls/gtglobal.crl
+
+ Authority Information Access:
+ OCSP - URI:http://g.symcd.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-699
+ Signature Algorithm: sha256WithRSAEncryption
+ 4e:27:b8:1a:c7:3b:dc:5d:bb:9e:1a:35:23:1e:88:55:90:d1:
+ ec:86:9c:88:b7:e0:1f:67:87:e2:7c:b5:43:03:0e:b6:02:e8:
+ e0:ff:86:84:19:71:e9:f2:4b:f5:9e:2e:2e:5e:db:ab:d6:1c:
+ 4e:c4:3e:b8:2c:78:86:71:10:ae:8d:c5:70:bf:a4:f9:89:e6:
+ b4:ed:e8:4b:ed:7c:09:2a:09:08:06:3e:d4:e1:de:82:92:0c:
+ 34:30:35:0a:c1:60:75:ca:b6:55:6b:aa:00:42:cb:3f:fb:10:
+ e1:fb:85:c1:21:90:72:2b:6e:c0:e8:9d:d9:b5:5a:50:8e:34:
+ 1e:bb:38:a7:3c:31:bd:7a:f2:43:8b:eb:16:ca:ad:9b:de:6b:
+ 1e:f8:4f:b6:5e:4a:29:1f:7a:14:ee:91:f4:94:4f:a4:bd:9b:
+ 76:7a:bc:f1:51:7a:96:a8:81:0e:83:87:3f:8b:ae:5e:32:9b:
+ 34:9e:b2:e7:db:2f:ec:02:a0:e1:fd:51:52:fe:2c:db:36:ba:
+ c1:d6:5e:4b:58:6d:de:c6:e1:e1:fa:9a:03:2c:5b:a2:e1:b3:
+ 9b:f9:36:ec:c1:73:fa:33:12:66:95:e3:69:10:b6:d7:aa:33:
+ fa:f6:9d:41:6d:96:2a:ba:be:83:31:41:7f:0c:0a:d2:69:d6:
+ fc:35:4c:c3
+-----BEGIN CERTIFICATE-----
+MIIEbzCCA1egAwIBAgIDAjpzMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTQwNjExMjIwMjU5WhcNMjIwNTIwMjIwMjU5WjBmMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UECxMURG9tYWluIFZh
+bGlkYXRlZCBTU0wxIDAeBgNVBAMTF0dlb1RydXN0IERWIFNTTCBDQSAtIEczMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs0Q6bLCuyxT5jBl0NFypaeOI
+U3elp/+90TwNJ+TerX+80ZBYk9am2jmcreEOVkbulZ4QaEycK/ZqOouAgYcGVyUa
+VlKU3ZDrZzve+q42aNNiafZsgiRET4dcmBGVZGvoDNHd5ieXrszikWpBErar5cxu
+zCO4Y4ofMZMtBsT36D1YzZcIRmx7dMD4/DE7p3/Xj7DJFWNQehJN9RIeo35V43W3
+6h7qMSwITtjLQ3SJJLzSDh7w2wUk9oq/ECeEQRr2GFPukdBUF9N9Pn6yfai/27kh
+KvCJuQhuWrNe6oK4ficLzFZzgQVP45YtcdV4p2DD1+yqORoFOYKB4BUsNdHuJQID
+AQABo4IBSDCCAUQwHwYDVR0jBBgwFoAUwHqYaI2J+6sFZAwRfap9ZbjKzE4wHQYD
+VR0OBBYEFK1lIoWQ0DvjoUmLN/nxCx1fF6B3MBIGA1UdEwEB/wQIMAYBAf8CAQAw
+DgYDVR0PAQH/BAQDAgEGMDUGA1UdHwQuMCwwKqAooCaGJGh0dHA6Ly9nLnN5bWNi
+LmNvbS9jcmxzL2d0Z2xvYmFsLmNybDAuBggrBgEFBQcBAQQiMCAwHgYIKwYBBQUH
+MAGGEmh0dHA6Ly9nLnN5bWNkLmNvbTBMBgNVHSAERTBDMEEGCmCGSAGG+EUBBzYw
+MzAxBggrBgEFBQcCARYlaHR0cDovL3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2Vz
+L2NwczApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0ktMS02OTkw
+DQYJKoZIhvcNAQELBQADggEBAE4nuBrHO9xdu54aNSMeiFWQ0eyGnIi34B9nh+J8
+tUMDDrYC6OD/hoQZcenyS/WeLi5e26vWHE7EPrgseIZxEK6NxXC/pPmJ5rTt6Evt
+fAkqCQgGPtTh3oKSDDQwNQrBYHXKtlVrqgBCyz/7EOH7hcEhkHIrbsDondm1WlCO
+NB67OKc8Mb168kOL6xbKrZveax74T7ZeSikfehTukfSUT6S9m3Z6vPFRepaogQ6D
+hz+Lrl4ymzSesufbL+wCoOH9UVL+LNs2usHWXktYbd7G4eH6mgMsW6Lhs5v5NuzB
+c/ozEmaV42kQtteqM/r2nUFtliq6voMxQX8MCtJp1vw1TMM=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert16[] = {
+ 0x30, 0x82, 0x04, 0x6f, 0x30, 0x82, 0x03, 0x57, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x02, 0x3a, 0x73, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+ 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+ 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30,
+ 0x36, 0x31, 0x31, 0x32, 0x32, 0x30, 0x32, 0x35, 0x39, 0x5a, 0x17, 0x0d,
+ 0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x32, 0x30, 0x32, 0x35, 0x39,
+ 0x5a, 0x30, 0x66, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x14, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61,
+ 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, 0x53, 0x53, 0x4c, 0x31,
+ 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x47, 0x65,
+ 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x44, 0x56, 0x20, 0x53, 0x53,
+ 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01,
+ 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+ 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xb3, 0x44, 0x3a, 0x6c, 0xb0, 0xae,
+ 0xcb, 0x14, 0xf9, 0x8c, 0x19, 0x74, 0x34, 0x5c, 0xa9, 0x69, 0xe3, 0x88,
+ 0x53, 0x77, 0xa5, 0xa7, 0xff, 0xbd, 0xd1, 0x3c, 0x0d, 0x27, 0xe4, 0xde,
+ 0xad, 0x7f, 0xbc, 0xd1, 0x90, 0x58, 0x93, 0xd6, 0xa6, 0xda, 0x39, 0x9c,
+ 0xad, 0xe1, 0x0e, 0x56, 0x46, 0xee, 0x95, 0x9e, 0x10, 0x68, 0x4c, 0x9c,
+ 0x2b, 0xf6, 0x6a, 0x3a, 0x8b, 0x80, 0x81, 0x87, 0x06, 0x57, 0x25, 0x1a,
+ 0x56, 0x52, 0x94, 0xdd, 0x90, 0xeb, 0x67, 0x3b, 0xde, 0xfa, 0xae, 0x36,
+ 0x68, 0xd3, 0x62, 0x69, 0xf6, 0x6c, 0x82, 0x24, 0x44, 0x4f, 0x87, 0x5c,
+ 0x98, 0x11, 0x95, 0x64, 0x6b, 0xe8, 0x0c, 0xd1, 0xdd, 0xe6, 0x27, 0x97,
+ 0xae, 0xcc, 0xe2, 0x91, 0x6a, 0x41, 0x12, 0xb6, 0xab, 0xe5, 0xcc, 0x6e,
+ 0xcc, 0x23, 0xb8, 0x63, 0x8a, 0x1f, 0x31, 0x93, 0x2d, 0x06, 0xc4, 0xf7,
+ 0xe8, 0x3d, 0x58, 0xcd, 0x97, 0x08, 0x46, 0x6c, 0x7b, 0x74, 0xc0, 0xf8,
+ 0xfc, 0x31, 0x3b, 0xa7, 0x7f, 0xd7, 0x8f, 0xb0, 0xc9, 0x15, 0x63, 0x50,
+ 0x7a, 0x12, 0x4d, 0xf5, 0x12, 0x1e, 0xa3, 0x7e, 0x55, 0xe3, 0x75, 0xb7,
+ 0xea, 0x1e, 0xea, 0x31, 0x2c, 0x08, 0x4e, 0xd8, 0xcb, 0x43, 0x74, 0x89,
+ 0x24, 0xbc, 0xd2, 0x0e, 0x1e, 0xf0, 0xdb, 0x05, 0x24, 0xf6, 0x8a, 0xbf,
+ 0x10, 0x27, 0x84, 0x41, 0x1a, 0xf6, 0x18, 0x53, 0xee, 0x91, 0xd0, 0x54,
+ 0x17, 0xd3, 0x7d, 0x3e, 0x7e, 0xb2, 0x7d, 0xa8, 0xbf, 0xdb, 0xb9, 0x21,
+ 0x2a, 0xf0, 0x89, 0xb9, 0x08, 0x6e, 0x5a, 0xb3, 0x5e, 0xea, 0x82, 0xb8,
+ 0x7e, 0x27, 0x0b, 0xcc, 0x56, 0x73, 0x81, 0x05, 0x4f, 0xe3, 0x96, 0x2d,
+ 0x71, 0xd5, 0x78, 0xa7, 0x60, 0xc3, 0xd7, 0xec, 0xaa, 0x39, 0x1a, 0x05,
+ 0x39, 0x82, 0x81, 0xe0, 0x15, 0x2c, 0x35, 0xd1, 0xee, 0x25, 0x02, 0x03,
+ 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x48, 0x30, 0x82, 0x01, 0x44, 0x30,
+ 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+ 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64, 0x0c, 0x11,
+ 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d, 0x06, 0x03,
+ 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xad, 0x65, 0x22, 0x85, 0x90,
+ 0xd0, 0x3b, 0xe3, 0xa1, 0x49, 0x8b, 0x37, 0xf9, 0xf1, 0x0b, 0x1d, 0x5f,
+ 0x17, 0xa0, 0x77, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+ 0x02, 0x01, 0x06, 0x30, 0x35, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2e,
+ 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67, 0x74,
+ 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x2e,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22,
+ 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67,
+ 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4c,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06,
+ 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30,
+ 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+ 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+ 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
+ 0x2f, 0x63, 0x70, 0x73, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04,
+ 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74,
+ 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x36, 0x39, 0x39, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x4e, 0x27, 0xb8, 0x1a, 0xc7,
+ 0x3b, 0xdc, 0x5d, 0xbb, 0x9e, 0x1a, 0x35, 0x23, 0x1e, 0x88, 0x55, 0x90,
+ 0xd1, 0xec, 0x86, 0x9c, 0x88, 0xb7, 0xe0, 0x1f, 0x67, 0x87, 0xe2, 0x7c,
+ 0xb5, 0x43, 0x03, 0x0e, 0xb6, 0x02, 0xe8, 0xe0, 0xff, 0x86, 0x84, 0x19,
+ 0x71, 0xe9, 0xf2, 0x4b, 0xf5, 0x9e, 0x2e, 0x2e, 0x5e, 0xdb, 0xab, 0xd6,
+ 0x1c, 0x4e, 0xc4, 0x3e, 0xb8, 0x2c, 0x78, 0x86, 0x71, 0x10, 0xae, 0x8d,
+ 0xc5, 0x70, 0xbf, 0xa4, 0xf9, 0x89, 0xe6, 0xb4, 0xed, 0xe8, 0x4b, 0xed,
+ 0x7c, 0x09, 0x2a, 0x09, 0x08, 0x06, 0x3e, 0xd4, 0xe1, 0xde, 0x82, 0x92,
+ 0x0c, 0x34, 0x30, 0x35, 0x0a, 0xc1, 0x60, 0x75, 0xca, 0xb6, 0x55, 0x6b,
+ 0xaa, 0x00, 0x42, 0xcb, 0x3f, 0xfb, 0x10, 0xe1, 0xfb, 0x85, 0xc1, 0x21,
+ 0x90, 0x72, 0x2b, 0x6e, 0xc0, 0xe8, 0x9d, 0xd9, 0xb5, 0x5a, 0x50, 0x8e,
+ 0x34, 0x1e, 0xbb, 0x38, 0xa7, 0x3c, 0x31, 0xbd, 0x7a, 0xf2, 0x43, 0x8b,
+ 0xeb, 0x16, 0xca, 0xad, 0x9b, 0xde, 0x6b, 0x1e, 0xf8, 0x4f, 0xb6, 0x5e,
+ 0x4a, 0x29, 0x1f, 0x7a, 0x14, 0xee, 0x91, 0xf4, 0x94, 0x4f, 0xa4, 0xbd,
+ 0x9b, 0x76, 0x7a, 0xbc, 0xf1, 0x51, 0x7a, 0x96, 0xa8, 0x81, 0x0e, 0x83,
+ 0x87, 0x3f, 0x8b, 0xae, 0x5e, 0x32, 0x9b, 0x34, 0x9e, 0xb2, 0xe7, 0xdb,
+ 0x2f, 0xec, 0x02, 0xa0, 0xe1, 0xfd, 0x51, 0x52, 0xfe, 0x2c, 0xdb, 0x36,
+ 0xba, 0xc1, 0xd6, 0x5e, 0x4b, 0x58, 0x6d, 0xde, 0xc6, 0xe1, 0xe1, 0xfa,
+ 0x9a, 0x03, 0x2c, 0x5b, 0xa2, 0xe1, 0xb3, 0x9b, 0xf9, 0x36, 0xec, 0xc1,
+ 0x73, 0xfa, 0x33, 0x12, 0x66, 0x95, 0xe3, 0x69, 0x10, 0xb6, 0xd7, 0xaa,
+ 0x33, 0xfa, 0xf6, 0x9d, 0x41, 0x6d, 0x96, 0x2a, 0xba, 0xbe, 0x83, 0x31,
+ 0x41, 0x7f, 0x0c, 0x0a, 0xd2, 0x69, 0xd6, 0xfc, 0x35, 0x4c, 0xc3,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 12037640545166866303 (0xa70e4a4c3482b77f)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=Starfield Technologies, Inc., OU=Starfield Class 2 Certification Authority
+ Validity
+ Not Before: Sep 2 00:00:00 2009 GMT
+ Not After : Jun 28 17:39:16 2034 GMT
+ Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Services Root Certificate Authority - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:d5:0c:3a:c4:2a:f9:4e:e2:f5:be:19:97:5f:8e:
+ 88:53:b1:1f:3f:cb:cf:9f:20:13:6d:29:3a:c8:0f:
+ 7d:3c:f7:6b:76:38:63:d9:36:60:a8:9b:5e:5c:00:
+ 80:b2:2f:59:7f:f6:87:f9:25:43:86:e7:69:1b:52:
+ 9a:90:e1:71:e3:d8:2d:0d:4e:6f:f6:c8:49:d9:b6:
+ f3:1a:56:ae:2b:b6:74:14:eb:cf:fb:26:e3:1a:ba:
+ 1d:96:2e:6a:3b:58:94:89:47:56:ff:25:a0:93:70:
+ 53:83:da:84:74:14:c3:67:9e:04:68:3a:df:8e:40:
+ 5a:1d:4a:4e:cf:43:91:3b:e7:56:d6:00:70:cb:52:
+ ee:7b:7d:ae:3a:e7:bc:31:f9:45:f6:c2:60:cf:13:
+ 59:02:2b:80:cc:34:47:df:b9:de:90:65:6d:02:cf:
+ 2c:91:a6:a6:e7:de:85:18:49:7c:66:4e:a3:3a:6d:
+ a9:b5:ee:34:2e:ba:0d:03:b8:33:df:47:eb:b1:6b:
+ 8d:25:d9:9b:ce:81:d1:45:46:32:96:70:87:de:02:
+ 0e:49:43:85:b6:6c:73:bb:64:ea:61:41:ac:c9:d4:
+ 54:df:87:2f:c7:22:b2:26:cc:9f:59:54:68:9f:fc:
+ be:2a:2f:c4:55:1c:75:40:60:17:85:02:55:39:8b:
+ 7f:05
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 9C:5F:00:DF:AA:01:D7:30:2B:38:88:A2:B8:6D:4A:9C:F2:11:91:83
+ X509v3 Authority Key Identifier:
+ keyid:BF:5F:B7:D1:CE:DD:1F:86:F4:5B:55:AC:DC:D7:10:C2:0E:A9:88:E7
+
+ Authority Information Access:
+ OCSP - URI:http://o.ss2.us/
+ CA Issuers - URI:http://x.ss2.us/x.cer
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://s.ss2.us/r.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 23:1d:e3:8a:57:ca:7d:e9:17:79:4c:f1:1e:55:fd:cc:53:6e:
+ 3e:47:0f:df:c6:55:f2:b2:04:36:ed:80:1f:53:c4:5d:34:28:
+ 6b:be:c7:55:fc:67:ea:cb:3f:7f:90:b2:33:cd:1b:58:10:82:
+ 02:f8:f8:2f:f5:13:60:d4:05:ce:f1:81:08:c1:dd:a7:75:97:
+ 4f:18:b9:6d:de:f7:93:91:08:ba:7e:40:2c:ed:c1:ea:bb:76:
+ 9e:33:06:77:1d:0d:08:7f:53:dd:1b:64:ab:82:27:f1:69:d5:
+ 4d:5e:ae:f4:a1:c3:75:a7:58:44:2d:f2:3c:70:98:ac:ba:69:
+ b6:95:77:7f:0f:31:5e:2c:fc:a0:87:3a:47:69:f0:79:5f:f4:
+ 14:54:a4:95:5e:11:78:12:60:27:ce:9f:c2:77:ff:23:53:77:
+ 5d:ba:ff:ea:59:e7:db:cf:af:92:96:ef:24:9a:35:10:7a:9c:
+ 91:c6:0e:7d:99:f6:3f:19:df:f5:72:54:e1:15:a9:07:59:7b:
+ 83:bf:52:2e:46:8c:b2:00:64:76:1c:48:d3:d8:79:e8:6e:56:
+ cc:ae:2c:03:90:d7:19:38:99:e4:ca:09:19:5b:ff:07:96:b0:
+ a8:7f:34:49:df:56:a9:f7:b0:5f:ed:33:ed:8c:47:b7:30:03:
+ 5d:f4:03:8c
+-----BEGIN CERTIFICATE-----
+MIIEdTCCA12gAwIBAgIJAKcOSkw0grd/MA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNV
+BAYTAlVTMSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTIw
+MAYDVQQLEylTdGFyZmllbGQgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eTAeFw0wOTA5MDIwMDAwMDBaFw0zNDA2MjgxNzM5MTZaMIGYMQswCQYDVQQGEwJV
+UzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTElMCMGA1UE
+ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjE7MDkGA1UEAxMyU3RhcmZp
+ZWxkIFNlcnZpY2VzIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVDDrEKvlO4vW+GZdfjohTsR8/
+y8+fIBNtKTrID30892t2OGPZNmCom15cAICyL1l/9of5JUOG52kbUpqQ4XHj2C0N
+Tm/2yEnZtvMaVq4rtnQU68/7JuMauh2WLmo7WJSJR1b/JaCTcFOD2oR0FMNnngRo
+Ot+OQFodSk7PQ5E751bWAHDLUu57fa4657wx+UX2wmDPE1kCK4DMNEffud6QZW0C
+zyyRpqbn3oUYSXxmTqM6bam17jQuug0DuDPfR+uxa40l2ZvOgdFFRjKWcIfeAg5J
+Q4W2bHO7ZOphQazJ1FTfhy/HIrImzJ9ZVGif/L4qL8RVHHVAYBeFAlU5i38FAgMB
+AAGjgfAwge0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0O
+BBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMB8GA1UdIwQYMBaAFL9ft9HO3R+G9FtV
+rNzXEMIOqYjnME8GCCsGAQUFBwEBBEMwQTAcBggrBgEFBQcwAYYQaHR0cDovL28u
+c3MyLnVzLzAhBggrBgEFBQcwAoYVaHR0cDovL3guc3MyLnVzL3guY2VyMCYGA1Ud
+HwQfMB0wG6AZoBeGFWh0dHA6Ly9zLnNzMi51cy9yLmNybDARBgNVHSAECjAIMAYG
+BFUdIAAwDQYJKoZIhvcNAQELBQADggEBACMd44pXyn3pF3lM8R5V/cxTbj5HD9/G
+VfKyBDbtgB9TxF00KGu+x1X8Z+rLP3+QsjPNG1gQggL4+C/1E2DUBc7xgQjB3ad1
+l08YuW3e95ORCLp+QCztweq7dp4zBncdDQh/U90bZKuCJ/Fp1U1ervShw3WnWEQt
+8jxwmKy6abaVd38PMV4s/KCHOkdp8Hlf9BRUpJVeEXgSYCfOn8J3/yNTd126/+pZ
+59vPr5KW7ySaNRB6nJHGDn2Z9j8Z3/VyVOEVqQdZe4O/Ui5GjLIAZHYcSNPYeehu
+VsyuLAOQ1xk4meTKCRlb/weWsKh/NEnfVqn3sF/tM+2MR7cwA130A4w=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert17[] = {
+ 0x30, 0x82, 0x04, 0x75, 0x30, 0x82, 0x03, 0x5d, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x09, 0x00, 0xa7, 0x0e, 0x4a, 0x4c, 0x34, 0x82, 0xb7, 0x7f,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x0b, 0x05, 0x00, 0x30, 0x68, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03,
+ 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65,
+ 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67,
+ 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x32, 0x30,
+ 0x30, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x29, 0x53, 0x74, 0x61, 0x72,
+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20,
+ 0x32, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
+ 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x39, 0x30, 0x39, 0x30, 0x32, 0x30,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x34, 0x30, 0x36,
+ 0x32, 0x38, 0x31, 0x37, 0x33, 0x39, 0x31, 0x36, 0x5a, 0x30, 0x81, 0x98,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07,
+ 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06,
+ 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73,
+ 0x64, 0x61, 0x6c, 0x65, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x1c, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64,
+ 0x20, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65,
+ 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x3b, 0x30, 0x39, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x32, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69,
+ 0x65, 0x6c, 0x64, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73,
+ 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+ 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xd5, 0x0c, 0x3a, 0xc4, 0x2a, 0xf9, 0x4e,
+ 0xe2, 0xf5, 0xbe, 0x19, 0x97, 0x5f, 0x8e, 0x88, 0x53, 0xb1, 0x1f, 0x3f,
+ 0xcb, 0xcf, 0x9f, 0x20, 0x13, 0x6d, 0x29, 0x3a, 0xc8, 0x0f, 0x7d, 0x3c,
+ 0xf7, 0x6b, 0x76, 0x38, 0x63, 0xd9, 0x36, 0x60, 0xa8, 0x9b, 0x5e, 0x5c,
+ 0x00, 0x80, 0xb2, 0x2f, 0x59, 0x7f, 0xf6, 0x87, 0xf9, 0x25, 0x43, 0x86,
+ 0xe7, 0x69, 0x1b, 0x52, 0x9a, 0x90, 0xe1, 0x71, 0xe3, 0xd8, 0x2d, 0x0d,
+ 0x4e, 0x6f, 0xf6, 0xc8, 0x49, 0xd9, 0xb6, 0xf3, 0x1a, 0x56, 0xae, 0x2b,
+ 0xb6, 0x74, 0x14, 0xeb, 0xcf, 0xfb, 0x26, 0xe3, 0x1a, 0xba, 0x1d, 0x96,
+ 0x2e, 0x6a, 0x3b, 0x58, 0x94, 0x89, 0x47, 0x56, 0xff, 0x25, 0xa0, 0x93,
+ 0x70, 0x53, 0x83, 0xda, 0x84, 0x74, 0x14, 0xc3, 0x67, 0x9e, 0x04, 0x68,
+ 0x3a, 0xdf, 0x8e, 0x40, 0x5a, 0x1d, 0x4a, 0x4e, 0xcf, 0x43, 0x91, 0x3b,
+ 0xe7, 0x56, 0xd6, 0x00, 0x70, 0xcb, 0x52, 0xee, 0x7b, 0x7d, 0xae, 0x3a,
+ 0xe7, 0xbc, 0x31, 0xf9, 0x45, 0xf6, 0xc2, 0x60, 0xcf, 0x13, 0x59, 0x02,
+ 0x2b, 0x80, 0xcc, 0x34, 0x47, 0xdf, 0xb9, 0xde, 0x90, 0x65, 0x6d, 0x02,
+ 0xcf, 0x2c, 0x91, 0xa6, 0xa6, 0xe7, 0xde, 0x85, 0x18, 0x49, 0x7c, 0x66,
+ 0x4e, 0xa3, 0x3a, 0x6d, 0xa9, 0xb5, 0xee, 0x34, 0x2e, 0xba, 0x0d, 0x03,
+ 0xb8, 0x33, 0xdf, 0x47, 0xeb, 0xb1, 0x6b, 0x8d, 0x25, 0xd9, 0x9b, 0xce,
+ 0x81, 0xd1, 0x45, 0x46, 0x32, 0x96, 0x70, 0x87, 0xde, 0x02, 0x0e, 0x49,
+ 0x43, 0x85, 0xb6, 0x6c, 0x73, 0xbb, 0x64, 0xea, 0x61, 0x41, 0xac, 0xc9,
+ 0xd4, 0x54, 0xdf, 0x87, 0x2f, 0xc7, 0x22, 0xb2, 0x26, 0xcc, 0x9f, 0x59,
+ 0x54, 0x68, 0x9f, 0xfc, 0xbe, 0x2a, 0x2f, 0xc4, 0x55, 0x1c, 0x75, 0x40,
+ 0x60, 0x17, 0x85, 0x02, 0x55, 0x39, 0x8b, 0x7f, 0x05, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x81, 0xf0, 0x30, 0x81, 0xed, 0x30, 0x0f, 0x06, 0x03,
+ 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01,
+ 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+ 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
+ 0x04, 0x16, 0x04, 0x14, 0x9c, 0x5f, 0x00, 0xdf, 0xaa, 0x01, 0xd7, 0x30,
+ 0x2b, 0x38, 0x88, 0xa2, 0xb8, 0x6d, 0x4a, 0x9c, 0xf2, 0x11, 0x91, 0x83,
+ 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
+ 0x14, 0xbf, 0x5f, 0xb7, 0xd1, 0xce, 0xdd, 0x1f, 0x86, 0xf4, 0x5b, 0x55,
+ 0xac, 0xdc, 0xd7, 0x10, 0xc2, 0x0e, 0xa9, 0x88, 0xe7, 0x30, 0x4f, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x43, 0x30,
+ 0x41, 0x30, 0x1c, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+ 0x01, 0x86, 0x10, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x2e,
+ 0x73, 0x73, 0x32, 0x2e, 0x75, 0x73, 0x2f, 0x30, 0x21, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x15, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x78, 0x2e, 0x73, 0x73, 0x32, 0x2e, 0x75, 0x73,
+ 0x2f, 0x78, 0x2e, 0x63, 0x65, 0x72, 0x30, 0x26, 0x06, 0x03, 0x55, 0x1d,
+ 0x1f, 0x04, 0x1f, 0x30, 0x1d, 0x30, 0x1b, 0xa0, 0x19, 0xa0, 0x17, 0x86,
+ 0x15, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x2e, 0x73, 0x73,
+ 0x32, 0x2e, 0x75, 0x73, 0x2f, 0x72, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x11,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x0a, 0x30, 0x08, 0x30, 0x06, 0x06,
+ 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+ 0x00, 0x23, 0x1d, 0xe3, 0x8a, 0x57, 0xca, 0x7d, 0xe9, 0x17, 0x79, 0x4c,
+ 0xf1, 0x1e, 0x55, 0xfd, 0xcc, 0x53, 0x6e, 0x3e, 0x47, 0x0f, 0xdf, 0xc6,
+ 0x55, 0xf2, 0xb2, 0x04, 0x36, 0xed, 0x80, 0x1f, 0x53, 0xc4, 0x5d, 0x34,
+ 0x28, 0x6b, 0xbe, 0xc7, 0x55, 0xfc, 0x67, 0xea, 0xcb, 0x3f, 0x7f, 0x90,
+ 0xb2, 0x33, 0xcd, 0x1b, 0x58, 0x10, 0x82, 0x02, 0xf8, 0xf8, 0x2f, 0xf5,
+ 0x13, 0x60, 0xd4, 0x05, 0xce, 0xf1, 0x81, 0x08, 0xc1, 0xdd, 0xa7, 0x75,
+ 0x97, 0x4f, 0x18, 0xb9, 0x6d, 0xde, 0xf7, 0x93, 0x91, 0x08, 0xba, 0x7e,
+ 0x40, 0x2c, 0xed, 0xc1, 0xea, 0xbb, 0x76, 0x9e, 0x33, 0x06, 0x77, 0x1d,
+ 0x0d, 0x08, 0x7f, 0x53, 0xdd, 0x1b, 0x64, 0xab, 0x82, 0x27, 0xf1, 0x69,
+ 0xd5, 0x4d, 0x5e, 0xae, 0xf4, 0xa1, 0xc3, 0x75, 0xa7, 0x58, 0x44, 0x2d,
+ 0xf2, 0x3c, 0x70, 0x98, 0xac, 0xba, 0x69, 0xb6, 0x95, 0x77, 0x7f, 0x0f,
+ 0x31, 0x5e, 0x2c, 0xfc, 0xa0, 0x87, 0x3a, 0x47, 0x69, 0xf0, 0x79, 0x5f,
+ 0xf4, 0x14, 0x54, 0xa4, 0x95, 0x5e, 0x11, 0x78, 0x12, 0x60, 0x27, 0xce,
+ 0x9f, 0xc2, 0x77, 0xff, 0x23, 0x53, 0x77, 0x5d, 0xba, 0xff, 0xea, 0x59,
+ 0xe7, 0xdb, 0xcf, 0xaf, 0x92, 0x96, 0xef, 0x24, 0x9a, 0x35, 0x10, 0x7a,
+ 0x9c, 0x91, 0xc6, 0x0e, 0x7d, 0x99, 0xf6, 0x3f, 0x19, 0xdf, 0xf5, 0x72,
+ 0x54, 0xe1, 0x15, 0xa9, 0x07, 0x59, 0x7b, 0x83, 0xbf, 0x52, 0x2e, 0x46,
+ 0x8c, 0xb2, 0x00, 0x64, 0x76, 0x1c, 0x48, 0xd3, 0xd8, 0x79, 0xe8, 0x6e,
+ 0x56, 0xcc, 0xae, 0x2c, 0x03, 0x90, 0xd7, 0x19, 0x38, 0x99, 0xe4, 0xca,
+ 0x09, 0x19, 0x5b, 0xff, 0x07, 0x96, 0xb0, 0xa8, 0x7f, 0x34, 0x49, 0xdf,
+ 0x56, 0xa9, 0xf7, 0xb0, 0x5f, 0xed, 0x33, 0xed, 0x8c, 0x47, 0xb7, 0x30,
+ 0x03, 0x5d, 0xf4, 0x03, 0x8c,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 120038006 (0x727a276)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+ Validity
+ Not Before: Feb 27 18:09:27 2014 GMT
+ Not After : Jun 9 17:07:29 2020 GMT
+ Subject: C=JP, O=Cybertrust Japan Co., Ltd., CN=Cybertrust Japan Public CA G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:94:56:a3:45:44:54:aa:60:64:bf:b8:57:9f:4e:
+ db:d4:79:68:5f:13:05:f4:3f:cd:25:dd:3c:5e:58:
+ 77:1c:9d:e6:9f:e3:32:49:ef:02:3a:34:53:8d:52:
+ e5:e3:39:66:1f:e7:33:61:b6:27:c6:24:55:50:27:
+ 02:65:f0:b0:8c:41:8d:30:5e:47:5b:82:6f:c7:9c:
+ a3:28:43:6d:58:7b:c8:15:98:4e:25:6f:cb:76:27:
+ 5b:0b:2c:2c:b5:98:23:e7:8b:7c:fd:77:1a:c4:52:
+ ba:5d:19:ee:78:21:4d:21:9a:d9:12:7c:33:15:6b:
+ 1a:c9:81:ea:da:da:57:b7:d5:2f:ce:1f:4b:fc:b4:
+ 33:e0:a0:c9:94:27:bb:27:40:b6:90:db:ac:9e:75:
+ a6:11:2b:49:19:2d:c3:c2:43:07:09:bb:3d:6e:88:
+ a3:e3:8a:c5:d2:86:f6:65:5b:34:c3:9f:4c:02:e5:
+ 09:ba:2c:c6:76:66:eb:d1:76:25:f4:30:13:fb:58:
+ 60:a8:58:e3:51:6f:4b:08:04:61:8d:ac:a9:30:2f:
+ 52:41:a3:22:c1:33:59:ab:7b:59:f9:93:67:4b:c9:
+ 89:75:52:ef:29:49:34:93:1c:9c:93:73:9c:19:ce:
+ 5c:18:cd:4c:09:27:c1:3f:f5:49:ec:f4:e2:df:4b:
+ af:8f
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.6334.1.0
+ CPS: http://cybertrust.omniroot.com/repository.cfm
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.omniroot.com/baltimoreroot
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Authority Key Identifier:
+ keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+ X509v3 Subject Key Identifier:
+ 73:A8:08:53:29:B8:15:FB:99:80:E5:C5:37:D8:F8:39:7B:A4:13:06
+ Signature Algorithm: sha256WithRSAEncryption
+ 68:df:fe:72:54:4e:1b:fb:5c:6e:5a:45:46:cf:42:be:b2:02:
+ 9c:9d:90:6a:09:2e:b7:36:64:24:b6:b1:e2:48:67:ce:17:46:
+ 9b:23:75:78:11:f6:c6:09:38:42:62:96:97:30:7b:51:77:df:
+ 33:b5:00:51:29:d5:24:fe:b7:98:a2:ac:6c:a1:13:7f:ca:f3:
+ b7:a6:52:c2:16:0d:ec:3a:bf:a3:37:77:4f:ae:7b:55:1d:46:
+ e9:10:da:c3:b4:05:5c:5b:f6:48:21:00:89:f4:bb:38:8e:1e:
+ 33:f3:49:97:81:31:6c:16:74:08:91:17:c0:d3:25:b3:bc:c1:
+ 15:b5:a4:cd:84:4d:b9:c8:eb:c5:59:42:10:14:25:79:f8:db:
+ b6:d0:e6:d3:a0:14:7c:17:1c:20:1e:ed:99:90:65:c0:41:71:
+ c3:ab:3f:29:41:67:f9:e2:d1:98:e3:f8:df:3a:b8:ca:a3:6f:
+ 68:8b:6c:9f:6e:88:7c:9d:41:5c:ba:cb:19:05:83:9c:99:f4:
+ 1a:d2:24:69:57:0a:0f:7a:c3:1b:2c:4b:06:d3:2a:97:7e:07:
+ b0:f9:20:5a:b5:92:4b:5b:a8:eb:eb:36:33:47:36:da:72:9c:
+ bf:68:45:81:31:be:d2:fd:3b:e9:72:d5:70:dd:a6:de:5f:0d:
+ b6:5e:00:49
+-----BEGIN CERTIFICATE-----
+MIIEeTCCA2GgAwIBAgIEByeidjANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE0MDIyNzE4MDkyN1oX
+DTIwMDYwOTE3MDcyOVowWjELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1
+c3QgSmFwYW4gQ28uLCBMdGQuMSYwJAYDVQQDEx1DeWJlcnRydXN0IEphcGFuIFB1
+YmxpYyBDQSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJRWo0VE
+VKpgZL+4V59O29R5aF8TBfQ/zSXdPF5Ydxyd5p/jMknvAjo0U41S5eM5Zh/nM2G2
+J8YkVVAnAmXwsIxBjTBeR1uCb8ecoyhDbVh7yBWYTiVvy3YnWwssLLWYI+eLfP13
+GsRSul0Z7nghTSGa2RJ8MxVrGsmB6traV7fVL84fS/y0M+CgyZQnuydAtpDbrJ51
+phErSRktw8JDBwm7PW6Io+OKxdKG9mVbNMOfTALlCbosxnZm69F2JfQwE/tYYKhY
+41FvSwgEYY2sqTAvUkGjIsEzWat7WfmTZ0vJiXVS7ylJNJMcnJNznBnOXBjNTAkn
+wT/1Sez04t9Lr48CAwEAAaOCAUUwggFBMBIGA1UdEwEB/wQIMAYBAf8CAQAwUwYD
+VR0gBEwwSjBIBgkrBgEEAbE+AQAwOzA5BggrBgEFBQcCARYtaHR0cDovL2N5YmVy
+dHJ1c3Qub21uaXJvb3QuY29tL3JlcG9zaXRvcnkuY2ZtMEIGCCsGAQUFBwEBBDYw
+NDAyBggrBgEFBQcwAYYmaHR0cDovL29jc3Aub21uaXJvb3QuY29tL2JhbHRpbW9y
+ZXJvb3QwDgYDVR0PAQH/BAQDAgEGMB8GA1UdIwQYMBaAFOWdWTCCR1jMrPoIVDaG
+ezq1BE3wMEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6Ly9jZHAxLnB1YmxpYy10cnVz
+dC5jb20vQ1JML09tbmlyb290MjAyNS5jcmwwHQYDVR0OBBYEFHOoCFMpuBX7mYDl
+xTfY+Dl7pBMGMA0GCSqGSIb3DQEBCwUAA4IBAQBo3/5yVE4b+1xuWkVGz0K+sgKc
+nZBqCS63NmQktrHiSGfOF0abI3V4EfbGCThCYpaXMHtRd98ztQBRKdUk/reYoqxs
+oRN/yvO3plLCFg3sOr+jN3dPrntVHUbpENrDtAVcW/ZIIQCJ9Ls4jh4z80mXgTFs
+FnQIkRfA0yWzvMEVtaTNhE25yOvFWUIQFCV5+Nu20ObToBR8FxwgHu2ZkGXAQXHD
+qz8pQWf54tGY4/jfOrjKo29oi2yfboh8nUFcussZBYOcmfQa0iRpVwoPesMbLEsG
+0yqXfgew+SBatZJLW6jr6zYzRzbacpy/aEWBMb7S/TvpctVw3abeXw22XgBJ
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert18[] = {
+ 0x30, 0x82, 0x04, 0x79, 0x30, 0x82, 0x03, 0x61, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x07, 0x27, 0xa2, 0x76, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+ 0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+ 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+ 0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+ 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+ 0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34,
+ 0x30, 0x32, 0x32, 0x37, 0x31, 0x38, 0x30, 0x39, 0x32, 0x37, 0x5a, 0x17,
+ 0x0d, 0x32, 0x30, 0x30, 0x36, 0x30, 0x39, 0x31, 0x37, 0x30, 0x37, 0x32,
+ 0x39, 0x5a, 0x30, 0x5a, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
+ 0x06, 0x13, 0x02, 0x4a, 0x50, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55,
+ 0x04, 0x0a, 0x13, 0x1a, 0x43, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x20, 0x4a, 0x61, 0x70, 0x61, 0x6e, 0x20, 0x43, 0x6f, 0x2e,
+ 0x2c, 0x20, 0x4c, 0x74, 0x64, 0x2e, 0x31, 0x26, 0x30, 0x24, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x1d, 0x43, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x20, 0x4a, 0x61, 0x70, 0x61, 0x6e, 0x20, 0x50, 0x75,
+ 0x62, 0x6c, 0x69, 0x63, 0x20, 0x43, 0x41, 0x20, 0x47, 0x33, 0x30, 0x82,
+ 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82,
+ 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x94, 0x56, 0xa3, 0x45, 0x44,
+ 0x54, 0xaa, 0x60, 0x64, 0xbf, 0xb8, 0x57, 0x9f, 0x4e, 0xdb, 0xd4, 0x79,
+ 0x68, 0x5f, 0x13, 0x05, 0xf4, 0x3f, 0xcd, 0x25, 0xdd, 0x3c, 0x5e, 0x58,
+ 0x77, 0x1c, 0x9d, 0xe6, 0x9f, 0xe3, 0x32, 0x49, 0xef, 0x02, 0x3a, 0x34,
+ 0x53, 0x8d, 0x52, 0xe5, 0xe3, 0x39, 0x66, 0x1f, 0xe7, 0x33, 0x61, 0xb6,
+ 0x27, 0xc6, 0x24, 0x55, 0x50, 0x27, 0x02, 0x65, 0xf0, 0xb0, 0x8c, 0x41,
+ 0x8d, 0x30, 0x5e, 0x47, 0x5b, 0x82, 0x6f, 0xc7, 0x9c, 0xa3, 0x28, 0x43,
+ 0x6d, 0x58, 0x7b, 0xc8, 0x15, 0x98, 0x4e, 0x25, 0x6f, 0xcb, 0x76, 0x27,
+ 0x5b, 0x0b, 0x2c, 0x2c, 0xb5, 0x98, 0x23, 0xe7, 0x8b, 0x7c, 0xfd, 0x77,
+ 0x1a, 0xc4, 0x52, 0xba, 0x5d, 0x19, 0xee, 0x78, 0x21, 0x4d, 0x21, 0x9a,
+ 0xd9, 0x12, 0x7c, 0x33, 0x15, 0x6b, 0x1a, 0xc9, 0x81, 0xea, 0xda, 0xda,
+ 0x57, 0xb7, 0xd5, 0x2f, 0xce, 0x1f, 0x4b, 0xfc, 0xb4, 0x33, 0xe0, 0xa0,
+ 0xc9, 0x94, 0x27, 0xbb, 0x27, 0x40, 0xb6, 0x90, 0xdb, 0xac, 0x9e, 0x75,
+ 0xa6, 0x11, 0x2b, 0x49, 0x19, 0x2d, 0xc3, 0xc2, 0x43, 0x07, 0x09, 0xbb,
+ 0x3d, 0x6e, 0x88, 0xa3, 0xe3, 0x8a, 0xc5, 0xd2, 0x86, 0xf6, 0x65, 0x5b,
+ 0x34, 0xc3, 0x9f, 0x4c, 0x02, 0xe5, 0x09, 0xba, 0x2c, 0xc6, 0x76, 0x66,
+ 0xeb, 0xd1, 0x76, 0x25, 0xf4, 0x30, 0x13, 0xfb, 0x58, 0x60, 0xa8, 0x58,
+ 0xe3, 0x51, 0x6f, 0x4b, 0x08, 0x04, 0x61, 0x8d, 0xac, 0xa9, 0x30, 0x2f,
+ 0x52, 0x41, 0xa3, 0x22, 0xc1, 0x33, 0x59, 0xab, 0x7b, 0x59, 0xf9, 0x93,
+ 0x67, 0x4b, 0xc9, 0x89, 0x75, 0x52, 0xef, 0x29, 0x49, 0x34, 0x93, 0x1c,
+ 0x9c, 0x93, 0x73, 0x9c, 0x19, 0xce, 0x5c, 0x18, 0xcd, 0x4c, 0x09, 0x27,
+ 0xc1, 0x3f, 0xf5, 0x49, 0xec, 0xf4, 0xe2, 0xdf, 0x4b, 0xaf, 0x8f, 0x02,
+ 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x45, 0x30, 0x82, 0x01, 0x41,
+ 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+ 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x53, 0x06, 0x03,
+ 0x55, 0x1d, 0x20, 0x04, 0x4c, 0x30, 0x4a, 0x30, 0x48, 0x06, 0x09, 0x2b,
+ 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e, 0x01, 0x00, 0x30, 0x3b, 0x30, 0x39,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x2d,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72,
+ 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f,
+ 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x63, 0x66, 0x6d, 0x30, 0x42, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x36, 0x30,
+ 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+ 0x01, 0x86, 0x26, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63,
+ 0x73, 0x70, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72,
+ 0x65, 0x72, 0x6f, 0x6f, 0x74, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f,
+ 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe5, 0x9d,
+ 0x59, 0x30, 0x82, 0x47, 0x58, 0xcc, 0xac, 0xfa, 0x08, 0x54, 0x36, 0x86,
+ 0x7b, 0x3a, 0xb5, 0x04, 0x4d, 0xf0, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1d,
+ 0x1f, 0x04, 0x3b, 0x30, 0x39, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86,
+ 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x64, 0x70, 0x31,
+ 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73,
+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x4f, 0x6d,
+ 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x32, 0x30, 0x32, 0x35, 0x2e, 0x63,
+ 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0x73, 0xa8, 0x08, 0x53, 0x29, 0xb8, 0x15, 0xfb, 0x99, 0x80, 0xe5,
+ 0xc5, 0x37, 0xd8, 0xf8, 0x39, 0x7b, 0xa4, 0x13, 0x06, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x01, 0x00, 0x68, 0xdf, 0xfe, 0x72, 0x54, 0x4e, 0x1b,
+ 0xfb, 0x5c, 0x6e, 0x5a, 0x45, 0x46, 0xcf, 0x42, 0xbe, 0xb2, 0x02, 0x9c,
+ 0x9d, 0x90, 0x6a, 0x09, 0x2e, 0xb7, 0x36, 0x64, 0x24, 0xb6, 0xb1, 0xe2,
+ 0x48, 0x67, 0xce, 0x17, 0x46, 0x9b, 0x23, 0x75, 0x78, 0x11, 0xf6, 0xc6,
+ 0x09, 0x38, 0x42, 0x62, 0x96, 0x97, 0x30, 0x7b, 0x51, 0x77, 0xdf, 0x33,
+ 0xb5, 0x00, 0x51, 0x29, 0xd5, 0x24, 0xfe, 0xb7, 0x98, 0xa2, 0xac, 0x6c,
+ 0xa1, 0x13, 0x7f, 0xca, 0xf3, 0xb7, 0xa6, 0x52, 0xc2, 0x16, 0x0d, 0xec,
+ 0x3a, 0xbf, 0xa3, 0x37, 0x77, 0x4f, 0xae, 0x7b, 0x55, 0x1d, 0x46, 0xe9,
+ 0x10, 0xda, 0xc3, 0xb4, 0x05, 0x5c, 0x5b, 0xf6, 0x48, 0x21, 0x00, 0x89,
+ 0xf4, 0xbb, 0x38, 0x8e, 0x1e, 0x33, 0xf3, 0x49, 0x97, 0x81, 0x31, 0x6c,
+ 0x16, 0x74, 0x08, 0x91, 0x17, 0xc0, 0xd3, 0x25, 0xb3, 0xbc, 0xc1, 0x15,
+ 0xb5, 0xa4, 0xcd, 0x84, 0x4d, 0xb9, 0xc8, 0xeb, 0xc5, 0x59, 0x42, 0x10,
+ 0x14, 0x25, 0x79, 0xf8, 0xdb, 0xb6, 0xd0, 0xe6, 0xd3, 0xa0, 0x14, 0x7c,
+ 0x17, 0x1c, 0x20, 0x1e, 0xed, 0x99, 0x90, 0x65, 0xc0, 0x41, 0x71, 0xc3,
+ 0xab, 0x3f, 0x29, 0x41, 0x67, 0xf9, 0xe2, 0xd1, 0x98, 0xe3, 0xf8, 0xdf,
+ 0x3a, 0xb8, 0xca, 0xa3, 0x6f, 0x68, 0x8b, 0x6c, 0x9f, 0x6e, 0x88, 0x7c,
+ 0x9d, 0x41, 0x5c, 0xba, 0xcb, 0x19, 0x05, 0x83, 0x9c, 0x99, 0xf4, 0x1a,
+ 0xd2, 0x24, 0x69, 0x57, 0x0a, 0x0f, 0x7a, 0xc3, 0x1b, 0x2c, 0x4b, 0x06,
+ 0xd3, 0x2a, 0x97, 0x7e, 0x07, 0xb0, 0xf9, 0x20, 0x5a, 0xb5, 0x92, 0x4b,
+ 0x5b, 0xa8, 0xeb, 0xeb, 0x36, 0x33, 0x47, 0x36, 0xda, 0x72, 0x9c, 0xbf,
+ 0x68, 0x45, 0x81, 0x31, 0xbe, 0xd2, 0xfd, 0x3b, 0xe9, 0x72, 0xd5, 0x70,
+ 0xdd, 0xa6, 0xde, 0x5f, 0x0d, 0xb6, 0x5e, 0x00, 0x49,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 1828629 (0x1be715)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority
+ Validity
+ Not Before: Jan 1 07:00:00 2014 GMT
+ Not After : May 30 07:00:00 2031 GMT
+ Subject: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:bf:71:62:08:f1:fa:59:34:f7:1b:c9:18:a3:f7:
+ 80:49:58:e9:22:83:13:a6:c5:20:43:01:3b:84:f1:
+ e6:85:49:9f:27:ea:f6:84:1b:4e:a0:b4:db:70:98:
+ c7:32:01:b1:05:3e:07:4e:ee:f4:fa:4f:2f:59:30:
+ 22:e7:ab:19:56:6b:e2:80:07:fc:f3:16:75:80:39:
+ 51:7b:e5:f9:35:b6:74:4e:a9:8d:82:13:e4:b6:3f:
+ a9:03:83:fa:a2:be:8a:15:6a:7f:de:0b:c3:b6:19:
+ 14:05:ca:ea:c3:a8:04:94:3b:46:7c:32:0d:f3:00:
+ 66:22:c8:8d:69:6d:36:8c:11:18:b7:d3:b2:1c:60:
+ b4:38:fa:02:8c:ce:d3:dd:46:07:de:0a:3e:eb:5d:
+ 7c:c8:7c:fb:b0:2b:53:a4:92:62:69:51:25:05:61:
+ 1a:44:81:8c:2c:a9:43:96:23:df:ac:3a:81:9a:0e:
+ 29:c5:1c:a9:e9:5d:1e:b6:9e:9e:30:0a:39:ce:f1:
+ 88:80:fb:4b:5d:cc:32:ec:85:62:43:25:34:02:56:
+ 27:01:91:b4:3b:70:2a:3f:6e:b1:e8:9c:88:01:7d:
+ 9f:d4:f9:db:53:6d:60:9d:bf:2c:e7:58:ab:b8:5f:
+ 46:fc:ce:c4:1b:03:3c:09:eb:49:31:5c:69:46:b3:
+ e0:47
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 3A:9A:85:07:10:67:28:B6:EF:F6:BD:05:41:6E:20:C1:94:DA:0F:DE
+ X509v3 Authority Key Identifier:
+ keyid:D2:C4:B0:D2:91:D4:4C:11:71:B3:61:CB:3D:A1:FE:DD:A8:6A:D4:E3
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.godaddy.com/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.godaddy.com/gdroot.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://certs.godaddy.com/repository/
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 59:0b:53:bd:92:86:11:a7:24:7b:ed:5b:31:cf:1d:1f:6c:70:
+ c5:b8:6e:be:4e:bb:f6:be:97:50:e1:30:7f:ba:28:5c:62:94:
+ c2:e3:7e:33:f7:fb:42:76:85:db:95:1c:8c:22:58:75:09:0c:
+ 88:65:67:39:0a:16:09:c5:a0:38:97:a4:c5:23:93:3f:b4:18:
+ a6:01:06:44:91:e3:a7:69:27:b4:5a:25:7f:3a:b7:32:cd:dd:
+ 84:ff:2a:38:29:33:a4:dd:67:b2:85:fe:a1:88:20:1c:50:89:
+ c8:dc:2a:f6:42:03:37:4c:e6:88:df:d5:af:24:f2:b1:c3:df:
+ cc:b5:ec:e0:99:5e:b7:49:54:20:3c:94:18:0c:c7:1c:52:18:
+ 49:a4:6d:e1:b3:58:0b:c9:d8:ec:d9:ae:1c:32:8e:28:70:0d:
+ e2:fe:a6:17:9e:84:0f:bd:57:70:b3:5a:e9:1f:a0:86:53:bb:
+ ef:7c:ff:69:0b:e0:48:c3:b7:93:0b:c8:0a:54:c4:ac:5d:14:
+ 67:37:6c:ca:a5:2f:31:08:37:aa:6e:6f:8c:bc:9b:e2:57:5d:
+ 24:81:af:97:97:9c:84:ad:6c:ac:37:4c:66:f3:61:91:11:20:
+ e4:be:30:9f:7a:a4:29:09:b0:e1:34:5f:64:77:18:40:51:df:
+ 8c:30:a6:af
+-----BEGIN CERTIFICATE-----
+MIIEfTCCA2WgAwIBAgIDG+cVMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVT
+MSEwHwYDVQQKExhUaGUgR28gRGFkZHkgR3JvdXAsIEluYy4xMTAvBgNVBAsTKEdv
+IERhZGR5IENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMTAx
+MDcwMDAwWhcNMzEwNTMwMDcwMDAwWjCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHku
+Y29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1
+dGhvcml0eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3Fi
+CPH6WTT3G8kYo/eASVjpIoMTpsUgQwE7hPHmhUmfJ+r2hBtOoLTbcJjHMgGxBT4H
+Tu70+k8vWTAi56sZVmvigAf88xZ1gDlRe+X5NbZ0TqmNghPktj+pA4P6or6KFWp/
+3gvDthkUBcrqw6gElDtGfDIN8wBmIsiNaW02jBEYt9OyHGC0OPoCjM7T3UYH3go+
+6118yHz7sCtTpJJiaVElBWEaRIGMLKlDliPfrDqBmg4pxRyp6V0etp6eMAo5zvGI
+gPtLXcwy7IViQyU0AlYnAZG0O3AqP26x6JyIAX2f1PnbU21gnb8s51iruF9G/M7E
+GwM8CetJMVxpRrPgRwIDAQABo4IBFzCCARMwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9BUFuIMGU2g/eMB8GA1Ud
+IwQYMBaAFNLEsNKR1EwRcbNhyz2h/t2oatTjMDQGCCsGAQUFBwEBBCgwJjAkBggr
+BgEFBQcwAYYYaHR0cDovL29jc3AuZ29kYWRkeS5jb20vMDIGA1UdHwQrMCkwJ6Al
+oCOGIWh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Ryb290LmNybDBGBgNVHSAEPzA9
+MDsGBFUdIAAwMzAxBggrBgEFBQcCARYlaHR0cHM6Ly9jZXJ0cy5nb2RhZGR5LmNv
+bS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWQtTvZKGEacke+1bMc8d
+H2xwxbhuvk679r6XUOEwf7ooXGKUwuN+M/f7QnaF25UcjCJYdQkMiGVnOQoWCcWg
+OJekxSOTP7QYpgEGRJHjp2kntFolfzq3Ms3dhP8qOCkzpN1nsoX+oYggHFCJyNwq
+9kIDN0zmiN/VryTyscPfzLXs4Jlet0lUIDyUGAzHHFIYSaRt4bNYC8nY7NmuHDKO
+KHAN4v6mF56ED71XcLNa6R+ghlO773z/aQvgSMO3kwvIClTErF0UZzdsyqUvMQg3
+qm5vjLyb4lddJIGvl5echK1srDdMZvNhkREg5L4wn3qkKQmw4TRfZHcYQFHfjDCm
+rw==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert19[] = {
+ 0x30, 0x82, 0x04, 0x7d, 0x30, 0x82, 0x03, 0x65, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x1b, 0xe7, 0x15, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x63, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x18, 0x54,
+ 0x68, 0x65, 0x20, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20,
+ 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31,
+ 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x28, 0x47, 0x6f,
+ 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73,
+ 0x20, 0x32, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x31, 0x30, 0x31,
+ 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x31, 0x30,
+ 0x35, 0x33, 0x30, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x81,
+ 0x83, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
+ 0x07, 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11,
+ 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74,
+ 0x73, 0x64, 0x61, 0x6c, 0x65, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55,
+ 0x04, 0x0a, 0x13, 0x11, 0x47, 0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30,
+ 0x2f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x28, 0x47, 0x6f, 0x20, 0x44,
+ 0x61, 0x64, 0x64, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65,
+ 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32,
+ 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+ 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbf, 0x71, 0x62,
+ 0x08, 0xf1, 0xfa, 0x59, 0x34, 0xf7, 0x1b, 0xc9, 0x18, 0xa3, 0xf7, 0x80,
+ 0x49, 0x58, 0xe9, 0x22, 0x83, 0x13, 0xa6, 0xc5, 0x20, 0x43, 0x01, 0x3b,
+ 0x84, 0xf1, 0xe6, 0x85, 0x49, 0x9f, 0x27, 0xea, 0xf6, 0x84, 0x1b, 0x4e,
+ 0xa0, 0xb4, 0xdb, 0x70, 0x98, 0xc7, 0x32, 0x01, 0xb1, 0x05, 0x3e, 0x07,
+ 0x4e, 0xee, 0xf4, 0xfa, 0x4f, 0x2f, 0x59, 0x30, 0x22, 0xe7, 0xab, 0x19,
+ 0x56, 0x6b, 0xe2, 0x80, 0x07, 0xfc, 0xf3, 0x16, 0x75, 0x80, 0x39, 0x51,
+ 0x7b, 0xe5, 0xf9, 0x35, 0xb6, 0x74, 0x4e, 0xa9, 0x8d, 0x82, 0x13, 0xe4,
+ 0xb6, 0x3f, 0xa9, 0x03, 0x83, 0xfa, 0xa2, 0xbe, 0x8a, 0x15, 0x6a, 0x7f,
+ 0xde, 0x0b, 0xc3, 0xb6, 0x19, 0x14, 0x05, 0xca, 0xea, 0xc3, 0xa8, 0x04,
+ 0x94, 0x3b, 0x46, 0x7c, 0x32, 0x0d, 0xf3, 0x00, 0x66, 0x22, 0xc8, 0x8d,
+ 0x69, 0x6d, 0x36, 0x8c, 0x11, 0x18, 0xb7, 0xd3, 0xb2, 0x1c, 0x60, 0xb4,
+ 0x38, 0xfa, 0x02, 0x8c, 0xce, 0xd3, 0xdd, 0x46, 0x07, 0xde, 0x0a, 0x3e,
+ 0xeb, 0x5d, 0x7c, 0xc8, 0x7c, 0xfb, 0xb0, 0x2b, 0x53, 0xa4, 0x92, 0x62,
+ 0x69, 0x51, 0x25, 0x05, 0x61, 0x1a, 0x44, 0x81, 0x8c, 0x2c, 0xa9, 0x43,
+ 0x96, 0x23, 0xdf, 0xac, 0x3a, 0x81, 0x9a, 0x0e, 0x29, 0xc5, 0x1c, 0xa9,
+ 0xe9, 0x5d, 0x1e, 0xb6, 0x9e, 0x9e, 0x30, 0x0a, 0x39, 0xce, 0xf1, 0x88,
+ 0x80, 0xfb, 0x4b, 0x5d, 0xcc, 0x32, 0xec, 0x85, 0x62, 0x43, 0x25, 0x34,
+ 0x02, 0x56, 0x27, 0x01, 0x91, 0xb4, 0x3b, 0x70, 0x2a, 0x3f, 0x6e, 0xb1,
+ 0xe8, 0x9c, 0x88, 0x01, 0x7d, 0x9f, 0xd4, 0xf9, 0xdb, 0x53, 0x6d, 0x60,
+ 0x9d, 0xbf, 0x2c, 0xe7, 0x58, 0xab, 0xb8, 0x5f, 0x46, 0xfc, 0xce, 0xc4,
+ 0x1b, 0x03, 0x3c, 0x09, 0xeb, 0x49, 0x31, 0x5c, 0x69, 0x46, 0xb3, 0xe0,
+ 0x47, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x17, 0x30, 0x82,
+ 0x01, 0x13, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
+ 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55,
+ 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x3a, 0x9a,
+ 0x85, 0x07, 0x10, 0x67, 0x28, 0xb6, 0xef, 0xf6, 0xbd, 0x05, 0x41, 0x6e,
+ 0x20, 0xc1, 0x94, 0xda, 0x0f, 0xde, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xd2, 0xc4, 0xb0, 0xd2, 0x91,
+ 0xd4, 0x4c, 0x11, 0x71, 0xb3, 0x61, 0xcb, 0x3d, 0xa1, 0xfe, 0xdd, 0xa8,
+ 0x6a, 0xd4, 0xe3, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6f, 0x64,
+ 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x32, 0x06,
+ 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30, 0x27, 0xa0, 0x25,
+ 0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+ 0x72, 0x6c, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x67, 0x64, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72,
+ 0x6c, 0x30, 0x46, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d,
+ 0x30, 0x3b, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x33, 0x30, 0x31,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25,
+ 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74,
+ 0x73, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
+ 0x2f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x59, 0x0b, 0x53,
+ 0xbd, 0x92, 0x86, 0x11, 0xa7, 0x24, 0x7b, 0xed, 0x5b, 0x31, 0xcf, 0x1d,
+ 0x1f, 0x6c, 0x70, 0xc5, 0xb8, 0x6e, 0xbe, 0x4e, 0xbb, 0xf6, 0xbe, 0x97,
+ 0x50, 0xe1, 0x30, 0x7f, 0xba, 0x28, 0x5c, 0x62, 0x94, 0xc2, 0xe3, 0x7e,
+ 0x33, 0xf7, 0xfb, 0x42, 0x76, 0x85, 0xdb, 0x95, 0x1c, 0x8c, 0x22, 0x58,
+ 0x75, 0x09, 0x0c, 0x88, 0x65, 0x67, 0x39, 0x0a, 0x16, 0x09, 0xc5, 0xa0,
+ 0x38, 0x97, 0xa4, 0xc5, 0x23, 0x93, 0x3f, 0xb4, 0x18, 0xa6, 0x01, 0x06,
+ 0x44, 0x91, 0xe3, 0xa7, 0x69, 0x27, 0xb4, 0x5a, 0x25, 0x7f, 0x3a, 0xb7,
+ 0x32, 0xcd, 0xdd, 0x84, 0xff, 0x2a, 0x38, 0x29, 0x33, 0xa4, 0xdd, 0x67,
+ 0xb2, 0x85, 0xfe, 0xa1, 0x88, 0x20, 0x1c, 0x50, 0x89, 0xc8, 0xdc, 0x2a,
+ 0xf6, 0x42, 0x03, 0x37, 0x4c, 0xe6, 0x88, 0xdf, 0xd5, 0xaf, 0x24, 0xf2,
+ 0xb1, 0xc3, 0xdf, 0xcc, 0xb5, 0xec, 0xe0, 0x99, 0x5e, 0xb7, 0x49, 0x54,
+ 0x20, 0x3c, 0x94, 0x18, 0x0c, 0xc7, 0x1c, 0x52, 0x18, 0x49, 0xa4, 0x6d,
+ 0xe1, 0xb3, 0x58, 0x0b, 0xc9, 0xd8, 0xec, 0xd9, 0xae, 0x1c, 0x32, 0x8e,
+ 0x28, 0x70, 0x0d, 0xe2, 0xfe, 0xa6, 0x17, 0x9e, 0x84, 0x0f, 0xbd, 0x57,
+ 0x70, 0xb3, 0x5a, 0xe9, 0x1f, 0xa0, 0x86, 0x53, 0xbb, 0xef, 0x7c, 0xff,
+ 0x69, 0x0b, 0xe0, 0x48, 0xc3, 0xb7, 0x93, 0x0b, 0xc8, 0x0a, 0x54, 0xc4,
+ 0xac, 0x5d, 0x14, 0x67, 0x37, 0x6c, 0xca, 0xa5, 0x2f, 0x31, 0x08, 0x37,
+ 0xaa, 0x6e, 0x6f, 0x8c, 0xbc, 0x9b, 0xe2, 0x57, 0x5d, 0x24, 0x81, 0xaf,
+ 0x97, 0x97, 0x9c, 0x84, 0xad, 0x6c, 0xac, 0x37, 0x4c, 0x66, 0xf3, 0x61,
+ 0x91, 0x11, 0x20, 0xe4, 0xbe, 0x30, 0x9f, 0x7a, 0xa4, 0x29, 0x09, 0xb0,
+ 0xe1, 0x34, 0x5f, 0x64, 0x77, 0x18, 0x40, 0x51, 0xdf, 0x8c, 0x30, 0xa6,
+ 0xaf,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 46:f0:8c:db:cf:2c:54:66:ef:33:01:dd:5f:34
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+ Validity
+ Not Before: Aug 19 00:00:00 2015 GMT
+ Not After : Aug 19 00:00:00 2025 GMT
+ Subject: C=BE, O=GlobalSign nv-sa, CN=GlobalSign CloudSSL CA - SHA256 - G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:a3:c0:75:e1:32:98:e5:d9:ae:84:7c:8d:e8:23:
+ 5f:46:95:5b:4c:a2:25:70:d7:90:04:85:80:c9:b5:
+ f4:8a:65:4d:92:cb:a5:c4:42:a0:b6:79:25:31:ed:
+ f1:85:20:cd:13:51:3d:67:ac:97:4d:68:9b:33:86:
+ 5c:b3:7b:2d:aa:df:77:a0:61:d1:f5:3c:fb:9a:fc:
+ d3:d5:94:ca:c9:1e:80:1b:90:90:c8:ac:8d:f6:60:
+ 17:9c:31:b8:c5:61:a2:e2:6e:57:25:08:6f:24:99:
+ 99:cf:94:bf:c7:8b:6b:b0:1f:ca:14:fa:18:9b:6c:
+ 10:7c:99:2b:da:4a:63:e5:b2:4e:c2:fd:3e:10:0b:
+ 48:f4:77:0b:2f:f0:96:4b:3a:ee:bd:35:de:85:8d:
+ da:13:0e:ce:01:c4:71:d3:d3:77:c5:08:a6:60:39:
+ 25:a7:27:69:5c:83:d1:6f:76:78:ee:c5:44:5b:45:
+ bd:29:3b:e2:c6:09:0f:a2:be:2b:dc:e3:5c:da:5a:
+ 6f:8e:e7:c9:07:6b:7e:a1:c0:53:95:82:89:e0:78:
+ 5c:72:a8:6c:be:67:6b:ab:e7:33:d9:87:f2:f8:5c:
+ 27:f4:f6:2a:3b:87:ef:da:c2:47:da:bf:ac:eb:27:
+ 64:7b:4c:53:eb:34:e1:2f:9b:20:4d:54:12:6b:7d:
+ 28:bd
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Subject Key Identifier:
+ A9:2B:87:E1:CE:24:47:3B:1B:BF:CF:85:37:02:55:9D:0D:94:58:E6
+ X509v3 Authority Key Identifier:
+ keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.globalsign.com/root.crl
+
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.4146.1.20
+ Policy: 2.23.140.1.2.2
+ CPS: https://www.globalsign.com/repository/
+
+ Signature Algorithm: sha256WithRSAEncryption
+ a2:1d:69:8a:0a:8e:c4:14:83:2a:2a:12:4d:39:27:90:4e:f0:
+ 8d:ac:d2:96:62:47:36:5e:92:d1:fa:c5:93:b5:37:07:65:29:
+ d2:f4:53:50:6b:c9:f4:fe:34:f5:dd:b8:1d:fa:fc:dc:14:ac:
+ 56:94:27:9c:42:aa:04:4d:b7:ed:58:d9:99:d2:49:e6:20:2f:
+ d3:a7:77:b8:2a:89:1a:ef:a7:cf:86:2d:d6:53:e9:0b:93:9c:
+ 4e:ab:d9:45:ee:a4:84:85:ff:34:e4:0e:c0:bb:a5:ce:5f:95:
+ 89:85:70:aa:c1:5d:ec:cf:2b:d3:d9:83:df:03:ca:81:a7:02:
+ 32:b7:77:61:10:25:4e:d9:74:f3:d9:79:82:b5:26:70:b4:52:
+ bc:8f:33:d7:8a:ae:19:d0:fc:92:ad:2f:ba:3c:a0:48:58:47:
+ 5e:fd:20:56:95:20:c1:72:1d:ab:66:99:a4:d5:78:37:48:1b:
+ 9f:b2:4c:37:67:7a:fd:42:d2:d3:56:9e:d3:1d:8e:c4:0c:68:
+ 96:b6:47:51:10:f7:7b:eb:15:09:64:f5:f9:f0:63:16:2d:3d:
+ df:23:42:3a:93:63:cc:ab:af:4f:57:06:c7:fe:14:55:62:ce:
+ 27:11:19:e1:f4:42:ed:22:30:6b:35:1a:4a:05:80:a4:65:df:
+ cc:cb:6f:d0
+-----BEGIN CERTIFICATE-----
+MIIEizCCA3OgAwIBAgIORvCM288sVGbvMwHdXzQwDQYJKoZIhvcNAQELBQAwVzEL
+MAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsT
+B1Jvb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNTA4MTkw
+MDAwMDBaFw0yNTA4MTkwMDAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBH
+bG9iYWxTaWduIG52LXNhMS0wKwYDVQQDEyRHbG9iYWxTaWduIENsb3VkU1NMIENB
+IC0gU0hBMjU2IC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCj
+wHXhMpjl2a6EfI3oI19GlVtMoiVw15AEhYDJtfSKZU2Sy6XEQqC2eSUx7fGFIM0T
+UT1nrJdNaJszhlyzey2q33egYdH1PPua/NPVlMrJHoAbkJDIrI32YBecMbjFYaLi
+blclCG8kmZnPlL/Hi2uwH8oU+hibbBB8mSvaSmPlsk7C/T4QC0j0dwsv8JZLOu69
+Nd6FjdoTDs4BxHHT03fFCKZgOSWnJ2lcg9FvdnjuxURbRb0pO+LGCQ+ivivc41za
+Wm+O58kHa36hwFOVgongeFxyqGy+Z2ur5zPZh/L4XCf09io7h+/awkfav6zrJ2R7
+TFPrNOEvmyBNVBJrfSi9AgMBAAGjggFTMIIBTzAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+HQYDVR0OBBYEFKkrh+HOJEc7G7/PhTcCVZ0NlFjmMB8GA1UdIwQYMBaAFGB7ZhpF
+DZfKiVAvfQTNNKj//P1LMD0GCCsGAQUFBwEBBDEwLzAtBggrBgEFBQcwAYYhaHR0
+cDovL29jc3AuZ2xvYmFsc2lnbi5jb20vcm9vdHIxMDMGA1UdHwQsMCowKKAmoCSG
+Imh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vcm9vdC5jcmwwVgYDVR0gBE8wTTAL
+BgkrBgEEAaAyARQwPgYGZ4EMAQICMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3
+Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMA0GCSqGSIb3DQEBCwUAA4IBAQCi
+HWmKCo7EFIMqKhJNOSeQTvCNrNKWYkc2XpLR+sWTtTcHZSnS9FNQa8n0/jT13bgd
++vzcFKxWlCecQqoETbftWNmZ0knmIC/Tp3e4Koka76fPhi3WU+kLk5xOq9lF7qSE
+hf805A7Au6XOX5WJhXCqwV3szyvT2YPfA8qBpwIyt3dhECVO2XTz2XmCtSZwtFK8
+jzPXiq4Z0PySrS+6PKBIWEde/SBWlSDBch2rZpmk1Xg3SBufskw3Z3r9QtLTVp7T
+HY7EDGiWtkdREPd76xUJZPX58GMWLT3fI0I6k2PMq69PVwbH/hRVYs4nERnh9ELt
+IjBrNRpKBYCkZd/My2/Q
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert20[] = {
+ 0x30, 0x82, 0x04, 0x8b, 0x30, 0x82, 0x03, 0x73, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x0e, 0x46, 0xf0, 0x8c, 0xdb, 0xcf, 0x2c, 0x54, 0x66, 0xef,
+ 0x33, 0x01, 0xdd, 0x5f, 0x34, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31,
+ 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c,
+ 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d,
+ 0x73, 0x61, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x07, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+ 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43,
+ 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x30, 0x38, 0x31, 0x39, 0x30,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x35, 0x30, 0x38,
+ 0x31, 0x39, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x57, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45,
+ 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47,
+ 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76,
+ 0x2d, 0x73, 0x61, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e,
+ 0x20, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+ 0x20, 0x2d, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20,
+ 0x47, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa3,
+ 0xc0, 0x75, 0xe1, 0x32, 0x98, 0xe5, 0xd9, 0xae, 0x84, 0x7c, 0x8d, 0xe8,
+ 0x23, 0x5f, 0x46, 0x95, 0x5b, 0x4c, 0xa2, 0x25, 0x70, 0xd7, 0x90, 0x04,
+ 0x85, 0x80, 0xc9, 0xb5, 0xf4, 0x8a, 0x65, 0x4d, 0x92, 0xcb, 0xa5, 0xc4,
+ 0x42, 0xa0, 0xb6, 0x79, 0x25, 0x31, 0xed, 0xf1, 0x85, 0x20, 0xcd, 0x13,
+ 0x51, 0x3d, 0x67, 0xac, 0x97, 0x4d, 0x68, 0x9b, 0x33, 0x86, 0x5c, 0xb3,
+ 0x7b, 0x2d, 0xaa, 0xdf, 0x77, 0xa0, 0x61, 0xd1, 0xf5, 0x3c, 0xfb, 0x9a,
+ 0xfc, 0xd3, 0xd5, 0x94, 0xca, 0xc9, 0x1e, 0x80, 0x1b, 0x90, 0x90, 0xc8,
+ 0xac, 0x8d, 0xf6, 0x60, 0x17, 0x9c, 0x31, 0xb8, 0xc5, 0x61, 0xa2, 0xe2,
+ 0x6e, 0x57, 0x25, 0x08, 0x6f, 0x24, 0x99, 0x99, 0xcf, 0x94, 0xbf, 0xc7,
+ 0x8b, 0x6b, 0xb0, 0x1f, 0xca, 0x14, 0xfa, 0x18, 0x9b, 0x6c, 0x10, 0x7c,
+ 0x99, 0x2b, 0xda, 0x4a, 0x63, 0xe5, 0xb2, 0x4e, 0xc2, 0xfd, 0x3e, 0x10,
+ 0x0b, 0x48, 0xf4, 0x77, 0x0b, 0x2f, 0xf0, 0x96, 0x4b, 0x3a, 0xee, 0xbd,
+ 0x35, 0xde, 0x85, 0x8d, 0xda, 0x13, 0x0e, 0xce, 0x01, 0xc4, 0x71, 0xd3,
+ 0xd3, 0x77, 0xc5, 0x08, 0xa6, 0x60, 0x39, 0x25, 0xa7, 0x27, 0x69, 0x5c,
+ 0x83, 0xd1, 0x6f, 0x76, 0x78, 0xee, 0xc5, 0x44, 0x5b, 0x45, 0xbd, 0x29,
+ 0x3b, 0xe2, 0xc6, 0x09, 0x0f, 0xa2, 0xbe, 0x2b, 0xdc, 0xe3, 0x5c, 0xda,
+ 0x5a, 0x6f, 0x8e, 0xe7, 0xc9, 0x07, 0x6b, 0x7e, 0xa1, 0xc0, 0x53, 0x95,
+ 0x82, 0x89, 0xe0, 0x78, 0x5c, 0x72, 0xa8, 0x6c, 0xbe, 0x67, 0x6b, 0xab,
+ 0xe7, 0x33, 0xd9, 0x87, 0xf2, 0xf8, 0x5c, 0x27, 0xf4, 0xf6, 0x2a, 0x3b,
+ 0x87, 0xef, 0xda, 0xc2, 0x47, 0xda, 0xbf, 0xac, 0xeb, 0x27, 0x64, 0x7b,
+ 0x4c, 0x53, 0xeb, 0x34, 0xe1, 0x2f, 0x9b, 0x20, 0x4d, 0x54, 0x12, 0x6b,
+ 0x7d, 0x28, 0xbd, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x53,
+ 0x30, 0x82, 0x01, 0x4f, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+ 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03,
+ 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x03, 0x02, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+ 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xa9, 0x2b,
+ 0x87, 0xe1, 0xce, 0x24, 0x47, 0x3b, 0x1b, 0xbf, 0xcf, 0x85, 0x37, 0x02,
+ 0x55, 0x9d, 0x0d, 0x94, 0x58, 0xe6, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66, 0x1a, 0x45,
+ 0x0d, 0x97, 0xca, 0x89, 0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34, 0xa8, 0xff,
+ 0xfc, 0xfd, 0x4b, 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x01, 0x01, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6c, 0x6f,
+ 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x72, 0x6f, 0x6f, 0x74, 0x72, 0x31, 0x30, 0x33, 0x06, 0x03, 0x55, 0x1d,
+ 0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30, 0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86,
+ 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e,
+ 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+ 0x56, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x4f, 0x30, 0x4d, 0x30, 0x0b,
+ 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xa0, 0x32, 0x01, 0x14, 0x30,
+ 0x3e, 0x06, 0x06, 0x67, 0x81, 0x0c, 0x01, 0x02, 0x02, 0x30, 0x34, 0x30,
+ 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16,
+ 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
+ 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
+ 0x72, 0x79, 0x2f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xa2,
+ 0x1d, 0x69, 0x8a, 0x0a, 0x8e, 0xc4, 0x14, 0x83, 0x2a, 0x2a, 0x12, 0x4d,
+ 0x39, 0x27, 0x90, 0x4e, 0xf0, 0x8d, 0xac, 0xd2, 0x96, 0x62, 0x47, 0x36,
+ 0x5e, 0x92, 0xd1, 0xfa, 0xc5, 0x93, 0xb5, 0x37, 0x07, 0x65, 0x29, 0xd2,
+ 0xf4, 0x53, 0x50, 0x6b, 0xc9, 0xf4, 0xfe, 0x34, 0xf5, 0xdd, 0xb8, 0x1d,
+ 0xfa, 0xfc, 0xdc, 0x14, 0xac, 0x56, 0x94, 0x27, 0x9c, 0x42, 0xaa, 0x04,
+ 0x4d, 0xb7, 0xed, 0x58, 0xd9, 0x99, 0xd2, 0x49, 0xe6, 0x20, 0x2f, 0xd3,
+ 0xa7, 0x77, 0xb8, 0x2a, 0x89, 0x1a, 0xef, 0xa7, 0xcf, 0x86, 0x2d, 0xd6,
+ 0x53, 0xe9, 0x0b, 0x93, 0x9c, 0x4e, 0xab, 0xd9, 0x45, 0xee, 0xa4, 0x84,
+ 0x85, 0xff, 0x34, 0xe4, 0x0e, 0xc0, 0xbb, 0xa5, 0xce, 0x5f, 0x95, 0x89,
+ 0x85, 0x70, 0xaa, 0xc1, 0x5d, 0xec, 0xcf, 0x2b, 0xd3, 0xd9, 0x83, 0xdf,
+ 0x03, 0xca, 0x81, 0xa7, 0x02, 0x32, 0xb7, 0x77, 0x61, 0x10, 0x25, 0x4e,
+ 0xd9, 0x74, 0xf3, 0xd9, 0x79, 0x82, 0xb5, 0x26, 0x70, 0xb4, 0x52, 0xbc,
+ 0x8f, 0x33, 0xd7, 0x8a, 0xae, 0x19, 0xd0, 0xfc, 0x92, 0xad, 0x2f, 0xba,
+ 0x3c, 0xa0, 0x48, 0x58, 0x47, 0x5e, 0xfd, 0x20, 0x56, 0x95, 0x20, 0xc1,
+ 0x72, 0x1d, 0xab, 0x66, 0x99, 0xa4, 0xd5, 0x78, 0x37, 0x48, 0x1b, 0x9f,
+ 0xb2, 0x4c, 0x37, 0x67, 0x7a, 0xfd, 0x42, 0xd2, 0xd3, 0x56, 0x9e, 0xd3,
+ 0x1d, 0x8e, 0xc4, 0x0c, 0x68, 0x96, 0xb6, 0x47, 0x51, 0x10, 0xf7, 0x7b,
+ 0xeb, 0x15, 0x09, 0x64, 0xf5, 0xf9, 0xf0, 0x63, 0x16, 0x2d, 0x3d, 0xdf,
+ 0x23, 0x42, 0x3a, 0x93, 0x63, 0xcc, 0xab, 0xaf, 0x4f, 0x57, 0x06, 0xc7,
+ 0xfe, 0x14, 0x55, 0x62, 0xce, 0x27, 0x11, 0x19, 0xe1, 0xf4, 0x42, 0xed,
+ 0x22, 0x30, 0x6b, 0x35, 0x1a, 0x4a, 0x05, 0x80, 0xa4, 0x65, 0xdf, 0xcc,
+ 0xcb, 0x6f, 0xd0,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 1b:09:3b:78:60:96:da:37:bb:a4:51:94:46:c8:96:78
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
+ Validity
+ Not Before: Nov 8 00:00:00 2006 GMT
+ Not After : Nov 7 23:59:59 2021 GMT
+ Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:af:24:08:08:29:7a:35:9e:60:0c:aa:e7:4b:3b:
+ 4e:dc:7c:bc:3c:45:1c:bb:2b:e0:fe:29:02:f9:57:
+ 08:a3:64:85:15:27:f5:f1:ad:c8:31:89:5d:22:e8:
+ 2a:aa:a6:42:b3:8f:f8:b9:55:b7:b1:b7:4b:b3:fe:
+ 8f:7e:07:57:ec:ef:43:db:66:62:15:61:cf:60:0d:
+ a4:d8:de:f8:e0:c3:62:08:3d:54:13:eb:49:ca:59:
+ 54:85:26:e5:2b:8f:1b:9f:eb:f5:a1:91:c2:33:49:
+ d8:43:63:6a:52:4b:d2:8f:e8:70:51:4d:d1:89:69:
+ 7b:c7:70:f6:b3:dc:12:74:db:7b:5d:4b:56:d3:96:
+ bf:15:77:a1:b0:f4:a2:25:f2:af:1c:92:67:18:e5:
+ f4:06:04:ef:90:b9:e4:00:e4:dd:3a:b5:19:ff:02:
+ ba:f4:3c:ee:e0:8b:eb:37:8b:ec:f4:d7:ac:f2:f6:
+ f0:3d:af:dd:75:91:33:19:1d:1c:40:cb:74:24:19:
+ 21:93:d9:14:fe:ac:2a:52:c7:8f:d5:04:49:e4:8d:
+ 63:47:88:3c:69:83:cb:fe:47:bd:2b:7e:4f:c5:95:
+ ae:0e:9d:d4:d1:43:c0:67:73:e3:14:08:7e:e5:3f:
+ 9f:73:b8:33:0a:cf:5d:3f:34:87:96:8a:ee:53:e8:
+ 25:15
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.verisign.com/pca3.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.verisign.com/cps
+
+ X509v3 Subject Key Identifier:
+ 7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+ 1.3.6.1.5.5.7.1.12:
+ 0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+ Authority Information Access:
+ OCSP - URI:http://ocsp.verisign.com
+
+ Signature Algorithm: sha1WithRSAEncryption
+ a3:cd:7d:1e:f7:c7:75:8d:48:e7:56:34:4c:00:90:75:a9:51:
+ a5:56:c1:6d:bc:fe:f5:53:22:e9:98:a2:ac:9a:7e:70:1e:b3:
+ 8e:3b:45:e3:86:95:31:da:6d:4c:fb:34:50:80:96:cd:24:f2:
+ 40:df:04:3f:e2:65:ce:34:22:61:15:ea:66:70:64:d2:f1:6e:
+ f3:ca:18:59:6a:41:46:7e:82:de:19:b0:70:31:56:69:0d:0c:
+ e6:1d:9d:71:58:dc:cc:de:62:f5:e1:7a:10:02:d8:7a:dc:3b:
+ fa:57:bd:c9:e9:8f:46:21:39:9f:51:65:4c:8e:3a:be:28:41:
+ 70:1d
+-----BEGIN CERTIFICATE-----
+MIIEkDCCA/mgAwIBAgIQGwk7eGCW2je7pFGURsiWeDANBgkqhkiG9w0BAQUFADBf
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
+LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv
+ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8
+RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb
+ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR
+TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH
+iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB
+AAGjggFbMIIBVzAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0
+dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjA9
+BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVy
+aXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwbQYI
+KwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQU
+j+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29t
+L3ZzbG9nby5naWYwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
+b2NzcC52ZXJpc2lnbi5jb20wDQYJKoZIhvcNAQEFBQADgYEAo819HvfHdY1I51Y0
+TACQdalRpVbBbbz+9VMi6ZiirJp+cB6zjjtF44aVMdptTPs0UICWzSTyQN8EP+Jl
+zjQiYRXqZnBk0vFu88oYWWpBRn6C3hmwcDFWaQ0M5h2dcVjczN5i9eF6EALYetw7
++le9yemPRiE5n1FlTI46vihBcB0=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert21[] = {
+ 0x30, 0x82, 0x04, 0x90, 0x30, 0x82, 0x03, 0xf9, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x1b, 0x09, 0x3b, 0x78, 0x60, 0x96, 0xda, 0x37, 0xbb,
+ 0xa4, 0x51, 0x94, 0x46, 0xc8, 0x96, 0x78, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e,
+ 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x37, 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62,
+ 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30,
+ 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x30, 0x38, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31, 0x30, 0x37,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xca, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+ 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3a, 0x30,
+ 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28, 0x63, 0x29, 0x20,
+ 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+ 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f,
+ 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64,
+ 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x45, 0x30,
+ 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
+ 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xaf, 0x24, 0x08, 0x08, 0x29, 0x7a, 0x35,
+ 0x9e, 0x60, 0x0c, 0xaa, 0xe7, 0x4b, 0x3b, 0x4e, 0xdc, 0x7c, 0xbc, 0x3c,
+ 0x45, 0x1c, 0xbb, 0x2b, 0xe0, 0xfe, 0x29, 0x02, 0xf9, 0x57, 0x08, 0xa3,
+ 0x64, 0x85, 0x15, 0x27, 0xf5, 0xf1, 0xad, 0xc8, 0x31, 0x89, 0x5d, 0x22,
+ 0xe8, 0x2a, 0xaa, 0xa6, 0x42, 0xb3, 0x8f, 0xf8, 0xb9, 0x55, 0xb7, 0xb1,
+ 0xb7, 0x4b, 0xb3, 0xfe, 0x8f, 0x7e, 0x07, 0x57, 0xec, 0xef, 0x43, 0xdb,
+ 0x66, 0x62, 0x15, 0x61, 0xcf, 0x60, 0x0d, 0xa4, 0xd8, 0xde, 0xf8, 0xe0,
+ 0xc3, 0x62, 0x08, 0x3d, 0x54, 0x13, 0xeb, 0x49, 0xca, 0x59, 0x54, 0x85,
+ 0x26, 0xe5, 0x2b, 0x8f, 0x1b, 0x9f, 0xeb, 0xf5, 0xa1, 0x91, 0xc2, 0x33,
+ 0x49, 0xd8, 0x43, 0x63, 0x6a, 0x52, 0x4b, 0xd2, 0x8f, 0xe8, 0x70, 0x51,
+ 0x4d, 0xd1, 0x89, 0x69, 0x7b, 0xc7, 0x70, 0xf6, 0xb3, 0xdc, 0x12, 0x74,
+ 0xdb, 0x7b, 0x5d, 0x4b, 0x56, 0xd3, 0x96, 0xbf, 0x15, 0x77, 0xa1, 0xb0,
+ 0xf4, 0xa2, 0x25, 0xf2, 0xaf, 0x1c, 0x92, 0x67, 0x18, 0xe5, 0xf4, 0x06,
+ 0x04, 0xef, 0x90, 0xb9, 0xe4, 0x00, 0xe4, 0xdd, 0x3a, 0xb5, 0x19, 0xff,
+ 0x02, 0xba, 0xf4, 0x3c, 0xee, 0xe0, 0x8b, 0xeb, 0x37, 0x8b, 0xec, 0xf4,
+ 0xd7, 0xac, 0xf2, 0xf6, 0xf0, 0x3d, 0xaf, 0xdd, 0x75, 0x91, 0x33, 0x19,
+ 0x1d, 0x1c, 0x40, 0xcb, 0x74, 0x24, 0x19, 0x21, 0x93, 0xd9, 0x14, 0xfe,
+ 0xac, 0x2a, 0x52, 0xc7, 0x8f, 0xd5, 0x04, 0x49, 0xe4, 0x8d, 0x63, 0x47,
+ 0x88, 0x3c, 0x69, 0x83, 0xcb, 0xfe, 0x47, 0xbd, 0x2b, 0x7e, 0x4f, 0xc5,
+ 0x95, 0xae, 0x0e, 0x9d, 0xd4, 0xd1, 0x43, 0xc0, 0x67, 0x73, 0xe3, 0x14,
+ 0x08, 0x7e, 0xe5, 0x3f, 0x9f, 0x73, 0xb8, 0x33, 0x0a, 0xcf, 0x5d, 0x3f,
+ 0x34, 0x87, 0x96, 0x8a, 0xee, 0x53, 0xe8, 0x25, 0x15, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x5b, 0x30, 0x82, 0x01, 0x57, 0x30, 0x0f,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+ 0x01, 0x01, 0xff, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a,
+ 0x30, 0x28, 0x30, 0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72,
+ 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63,
+ 0x61, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3d,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+ 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+ 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72,
+ 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70,
+ 0x73, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+ 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x6d, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f,
+ 0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09,
+ 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30,
+ 0x1f, 0x30, 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14,
+ 0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80,
+ 0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e,
+ 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30,
+ 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67,
+ 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00,
+ 0xa3, 0xcd, 0x7d, 0x1e, 0xf7, 0xc7, 0x75, 0x8d, 0x48, 0xe7, 0x56, 0x34,
+ 0x4c, 0x00, 0x90, 0x75, 0xa9, 0x51, 0xa5, 0x56, 0xc1, 0x6d, 0xbc, 0xfe,
+ 0xf5, 0x53, 0x22, 0xe9, 0x98, 0xa2, 0xac, 0x9a, 0x7e, 0x70, 0x1e, 0xb3,
+ 0x8e, 0x3b, 0x45, 0xe3, 0x86, 0x95, 0x31, 0xda, 0x6d, 0x4c, 0xfb, 0x34,
+ 0x50, 0x80, 0x96, 0xcd, 0x24, 0xf2, 0x40, 0xdf, 0x04, 0x3f, 0xe2, 0x65,
+ 0xce, 0x34, 0x22, 0x61, 0x15, 0xea, 0x66, 0x70, 0x64, 0xd2, 0xf1, 0x6e,
+ 0xf3, 0xca, 0x18, 0x59, 0x6a, 0x41, 0x46, 0x7e, 0x82, 0xde, 0x19, 0xb0,
+ 0x70, 0x31, 0x56, 0x69, 0x0d, 0x0c, 0xe6, 0x1d, 0x9d, 0x71, 0x58, 0xdc,
+ 0xcc, 0xde, 0x62, 0xf5, 0xe1, 0x7a, 0x10, 0x02, 0xd8, 0x7a, 0xdc, 0x3b,
+ 0xfa, 0x57, 0xbd, 0xc9, 0xe9, 0x8f, 0x46, 0x21, 0x39, 0x9f, 0x51, 0x65,
+ 0x4c, 0x8e, 0x3a, 0xbe, 0x28, 0x41, 0x70, 0x1d,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 0a:01:41:42:00:00:01:53:85:73:6a:0b:85:ec:a7:08
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: O=Digital Signature Trust Co., CN=DST Root CA X3
+ Validity
+ Not Before: Mar 17 16:40:46 2016 GMT
+ Not After : Mar 17 16:40:46 2021 GMT
+ Subject: C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:9c:d3:0c:f0:5a:e5:2e:47:b7:72:5d:37:83:b3:
+ 68:63:30:ea:d7:35:26:19:25:e1:bd:be:35:f1:70:
+ 92:2f:b7:b8:4b:41:05:ab:a9:9e:35:08:58:ec:b1:
+ 2a:c4:68:87:0b:a3:e3:75:e4:e6:f3:a7:62:71:ba:
+ 79:81:60:1f:d7:91:9a:9f:f3:d0:78:67:71:c8:69:
+ 0e:95:91:cf:fe:e6:99:e9:60:3c:48:cc:7e:ca:4d:
+ 77:12:24:9d:47:1b:5a:eb:b9:ec:1e:37:00:1c:9c:
+ ac:7b:a7:05:ea:ce:4a:eb:bd:41:e5:36:98:b9:cb:
+ fd:6d:3c:96:68:df:23:2a:42:90:0c:86:74:67:c8:
+ 7f:a5:9a:b8:52:61:14:13:3f:65:e9:82:87:cb:db:
+ fa:0e:56:f6:86:89:f3:85:3f:97:86:af:b0:dc:1a:
+ ef:6b:0d:95:16:7d:c4:2b:a0:65:b2:99:04:36:75:
+ 80:6b:ac:4a:f3:1b:90:49:78:2f:a2:96:4f:2a:20:
+ 25:29:04:c6:74:c0:d0:31:cd:8f:31:38:95:16:ba:
+ a8:33:b8:43:f1:b1:1f:c3:30:7f:a2:79:31:13:3d:
+ 2d:36:f8:e3:fc:f2:33:6a:b9:39:31:c5:af:c4:8d:
+ 0d:1d:64:16:33:aa:fa:84:29:b6:d4:0b:c0:d8:7d:
+ c3:93
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://isrg.trustid.ocsp.identrust.com
+ CA Issuers - URI:http://apps.identrust.com/roots/dstrootcax3.p7c
+
+ X509v3 Authority Key Identifier:
+ keyid:C4:A7:B1:A4:7B:2C:71:FA:DB:E1:4B:90:75:FF:C4:15:60:85:89:10
+
+ X509v3 Certificate Policies:
+ Policy: 2.23.140.1.2.1
+ Policy: 1.3.6.1.4.1.44947.1.1.1
+ CPS: http://cps.root-x1.letsencrypt.org
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.identrust.com/DSTROOTCAX3CRL.crl
+
+ X509v3 Subject Key Identifier:
+ A8:4A:6A:63:04:7D:DD:BA:E6:D1:39:B7:A6:45:65:EF:F3:A8:EC:A1
+ Signature Algorithm: sha256WithRSAEncryption
+ dd:33:d7:11:f3:63:58:38:dd:18:15:fb:09:55:be:76:56:b9:
+ 70:48:a5:69:47:27:7b:c2:24:08:92:f1:5a:1f:4a:12:29:37:
+ 24:74:51:1c:62:68:b8:cd:95:70:67:e5:f7:a4:bc:4e:28:51:
+ cd:9b:e8:ae:87:9d:ea:d8:ba:5a:a1:01:9a:dc:f0:dd:6a:1d:
+ 6a:d8:3e:57:23:9e:a6:1e:04:62:9a:ff:d7:05:ca:b7:1f:3f:
+ c0:0a:48:bc:94:b0:b6:65:62:e0:c1:54:e5:a3:2a:ad:20:c4:
+ e9:e6:bb:dc:c8:f6:b5:c3:32:a3:98:cc:77:a8:e6:79:65:07:
+ 2b:cb:28:fe:3a:16:52:81:ce:52:0c:2e:5f:83:e8:d5:06:33:
+ fb:77:6c:ce:40:ea:32:9e:1f:92:5c:41:c1:74:6c:5b:5d:0a:
+ 5f:33:cc:4d:9f:ac:38:f0:2f:7b:2c:62:9d:d9:a3:91:6f:25:
+ 1b:2f:90:b1:19:46:3d:f6:7e:1b:a6:7a:87:b9:a3:7a:6d:18:
+ fa:25:a5:91:87:15:e0:f2:16:2f:58:b0:06:2f:2c:68:26:c6:
+ 4b:98:cd:da:9f:0c:f9:7f:90:ed:43:4a:12:44:4e:6f:73:7a:
+ 28:ea:a4:aa:6e:7b:4c:7d:87:dd:e0:c9:02:44:a7:87:af:c3:
+ 34:5b:b4:42
+-----BEGIN CERTIFICATE-----
+MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
+MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
+DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
+SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
+GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
+q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
+SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
+Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
+a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
+/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
+AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
+CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
+bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
+c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
+VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
+ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
+MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
+Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
+AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
+uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
+wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
+X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
+PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
+KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert22[] = {
+ 0x30, 0x82, 0x04, 0x92, 0x30, 0x82, 0x03, 0x7a, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x0a, 0x01, 0x41, 0x42, 0x00, 0x00, 0x01, 0x53, 0x85,
+ 0x73, 0x6a, 0x0b, 0x85, 0xec, 0xa7, 0x08, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x3f,
+ 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1b, 0x44,
+ 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61,
+ 0x74, 0x75, 0x72, 0x65, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x43,
+ 0x6f, 0x2e, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x0e, 0x44, 0x53, 0x54, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+ 0x20, 0x58, 0x33, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x36, 0x30, 0x33, 0x31,
+ 0x37, 0x31, 0x36, 0x34, 0x30, 0x34, 0x36, 0x5a, 0x17, 0x0d, 0x32, 0x31,
+ 0x30, 0x33, 0x31, 0x37, 0x31, 0x36, 0x34, 0x30, 0x34, 0x36, 0x5a, 0x30,
+ 0x4a, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0d, 0x4c, 0x65, 0x74, 0x27, 0x73, 0x20, 0x45, 0x6e, 0x63, 0x72, 0x79,
+ 0x70, 0x74, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x1a, 0x4c, 0x65, 0x74, 0x27, 0x73, 0x20, 0x45, 0x6e, 0x63, 0x72, 0x79,
+ 0x70, 0x74, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79,
+ 0x20, 0x58, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0x9c, 0xd3, 0x0c, 0xf0, 0x5a, 0xe5, 0x2e, 0x47, 0xb7, 0x72, 0x5d, 0x37,
+ 0x83, 0xb3, 0x68, 0x63, 0x30, 0xea, 0xd7, 0x35, 0x26, 0x19, 0x25, 0xe1,
+ 0xbd, 0xbe, 0x35, 0xf1, 0x70, 0x92, 0x2f, 0xb7, 0xb8, 0x4b, 0x41, 0x05,
+ 0xab, 0xa9, 0x9e, 0x35, 0x08, 0x58, 0xec, 0xb1, 0x2a, 0xc4, 0x68, 0x87,
+ 0x0b, 0xa3, 0xe3, 0x75, 0xe4, 0xe6, 0xf3, 0xa7, 0x62, 0x71, 0xba, 0x79,
+ 0x81, 0x60, 0x1f, 0xd7, 0x91, 0x9a, 0x9f, 0xf3, 0xd0, 0x78, 0x67, 0x71,
+ 0xc8, 0x69, 0x0e, 0x95, 0x91, 0xcf, 0xfe, 0xe6, 0x99, 0xe9, 0x60, 0x3c,
+ 0x48, 0xcc, 0x7e, 0xca, 0x4d, 0x77, 0x12, 0x24, 0x9d, 0x47, 0x1b, 0x5a,
+ 0xeb, 0xb9, 0xec, 0x1e, 0x37, 0x00, 0x1c, 0x9c, 0xac, 0x7b, 0xa7, 0x05,
+ 0xea, 0xce, 0x4a, 0xeb, 0xbd, 0x41, 0xe5, 0x36, 0x98, 0xb9, 0xcb, 0xfd,
+ 0x6d, 0x3c, 0x96, 0x68, 0xdf, 0x23, 0x2a, 0x42, 0x90, 0x0c, 0x86, 0x74,
+ 0x67, 0xc8, 0x7f, 0xa5, 0x9a, 0xb8, 0x52, 0x61, 0x14, 0x13, 0x3f, 0x65,
+ 0xe9, 0x82, 0x87, 0xcb, 0xdb, 0xfa, 0x0e, 0x56, 0xf6, 0x86, 0x89, 0xf3,
+ 0x85, 0x3f, 0x97, 0x86, 0xaf, 0xb0, 0xdc, 0x1a, 0xef, 0x6b, 0x0d, 0x95,
+ 0x16, 0x7d, 0xc4, 0x2b, 0xa0, 0x65, 0xb2, 0x99, 0x04, 0x36, 0x75, 0x80,
+ 0x6b, 0xac, 0x4a, 0xf3, 0x1b, 0x90, 0x49, 0x78, 0x2f, 0xa2, 0x96, 0x4f,
+ 0x2a, 0x20, 0x25, 0x29, 0x04, 0xc6, 0x74, 0xc0, 0xd0, 0x31, 0xcd, 0x8f,
+ 0x31, 0x38, 0x95, 0x16, 0xba, 0xa8, 0x33, 0xb8, 0x43, 0xf1, 0xb1, 0x1f,
+ 0xc3, 0x30, 0x7f, 0xa2, 0x79, 0x31, 0x13, 0x3d, 0x2d, 0x36, 0xf8, 0xe3,
+ 0xfc, 0xf2, 0x33, 0x6a, 0xb9, 0x39, 0x31, 0xc5, 0xaf, 0xc4, 0x8d, 0x0d,
+ 0x1d, 0x64, 0x16, 0x33, 0xaa, 0xfa, 0x84, 0x29, 0xb6, 0xd4, 0x0b, 0xc0,
+ 0xd8, 0x7d, 0xc3, 0x93, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
+ 0x7d, 0x30, 0x82, 0x01, 0x79, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+ 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+ 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x7f, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x73, 0x30, 0x71, 0x30, 0x32, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x26, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x69, 0x73, 0x72, 0x67, 0x2e, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x69, 0x64, 0x2e, 0x6f, 0x63, 0x73, 0x70, 0x2e,
+ 0x69, 0x64, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x30, 0x3b, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+ 0x02, 0x86, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x70,
+ 0x70, 0x73, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x2f, 0x64,
+ 0x73, 0x74, 0x72, 0x6f, 0x6f, 0x74, 0x63, 0x61, 0x78, 0x33, 0x2e, 0x70,
+ 0x37, 0x63, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0xc4, 0xa7, 0xb1, 0xa4, 0x7b, 0x2c, 0x71, 0xfa, 0xdb,
+ 0xe1, 0x4b, 0x90, 0x75, 0xff, 0xc4, 0x15, 0x60, 0x85, 0x89, 0x10, 0x30,
+ 0x54, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x4d, 0x30, 0x4b, 0x30, 0x08,
+ 0x06, 0x06, 0x67, 0x81, 0x0c, 0x01, 0x02, 0x01, 0x30, 0x3f, 0x06, 0x0b,
+ 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xdf, 0x13, 0x01, 0x01, 0x01, 0x30,
+ 0x30, 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+ 0x01, 0x16, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x70,
+ 0x73, 0x2e, 0x72, 0x6f, 0x6f, 0x74, 0x2d, 0x78, 0x31, 0x2e, 0x6c, 0x65,
+ 0x74, 0x73, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x2e, 0x6f, 0x72,
+ 0x67, 0x30, 0x3c, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x35, 0x30, 0x33,
+ 0x30, 0x31, 0xa0, 0x2f, 0xa0, 0x2d, 0x86, 0x2b, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x53, 0x54,
+ 0x52, 0x4f, 0x4f, 0x54, 0x43, 0x41, 0x58, 0x33, 0x43, 0x52, 0x4c, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16,
+ 0x04, 0x14, 0xa8, 0x4a, 0x6a, 0x63, 0x04, 0x7d, 0xdd, 0xba, 0xe6, 0xd1,
+ 0x39, 0xb7, 0xa6, 0x45, 0x65, 0xef, 0xf3, 0xa8, 0xec, 0xa1, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xdd, 0x33, 0xd7, 0x11, 0xf3, 0x63,
+ 0x58, 0x38, 0xdd, 0x18, 0x15, 0xfb, 0x09, 0x55, 0xbe, 0x76, 0x56, 0xb9,
+ 0x70, 0x48, 0xa5, 0x69, 0x47, 0x27, 0x7b, 0xc2, 0x24, 0x08, 0x92, 0xf1,
+ 0x5a, 0x1f, 0x4a, 0x12, 0x29, 0x37, 0x24, 0x74, 0x51, 0x1c, 0x62, 0x68,
+ 0xb8, 0xcd, 0x95, 0x70, 0x67, 0xe5, 0xf7, 0xa4, 0xbc, 0x4e, 0x28, 0x51,
+ 0xcd, 0x9b, 0xe8, 0xae, 0x87, 0x9d, 0xea, 0xd8, 0xba, 0x5a, 0xa1, 0x01,
+ 0x9a, 0xdc, 0xf0, 0xdd, 0x6a, 0x1d, 0x6a, 0xd8, 0x3e, 0x57, 0x23, 0x9e,
+ 0xa6, 0x1e, 0x04, 0x62, 0x9a, 0xff, 0xd7, 0x05, 0xca, 0xb7, 0x1f, 0x3f,
+ 0xc0, 0x0a, 0x48, 0xbc, 0x94, 0xb0, 0xb6, 0x65, 0x62, 0xe0, 0xc1, 0x54,
+ 0xe5, 0xa3, 0x2a, 0xad, 0x20, 0xc4, 0xe9, 0xe6, 0xbb, 0xdc, 0xc8, 0xf6,
+ 0xb5, 0xc3, 0x32, 0xa3, 0x98, 0xcc, 0x77, 0xa8, 0xe6, 0x79, 0x65, 0x07,
+ 0x2b, 0xcb, 0x28, 0xfe, 0x3a, 0x16, 0x52, 0x81, 0xce, 0x52, 0x0c, 0x2e,
+ 0x5f, 0x83, 0xe8, 0xd5, 0x06, 0x33, 0xfb, 0x77, 0x6c, 0xce, 0x40, 0xea,
+ 0x32, 0x9e, 0x1f, 0x92, 0x5c, 0x41, 0xc1, 0x74, 0x6c, 0x5b, 0x5d, 0x0a,
+ 0x5f, 0x33, 0xcc, 0x4d, 0x9f, 0xac, 0x38, 0xf0, 0x2f, 0x7b, 0x2c, 0x62,
+ 0x9d, 0xd9, 0xa3, 0x91, 0x6f, 0x25, 0x1b, 0x2f, 0x90, 0xb1, 0x19, 0x46,
+ 0x3d, 0xf6, 0x7e, 0x1b, 0xa6, 0x7a, 0x87, 0xb9, 0xa3, 0x7a, 0x6d, 0x18,
+ 0xfa, 0x25, 0xa5, 0x91, 0x87, 0x15, 0xe0, 0xf2, 0x16, 0x2f, 0x58, 0xb0,
+ 0x06, 0x2f, 0x2c, 0x68, 0x26, 0xc6, 0x4b, 0x98, 0xcd, 0xda, 0x9f, 0x0c,
+ 0xf9, 0x7f, 0x90, 0xed, 0x43, 0x4a, 0x12, 0x44, 0x4e, 0x6f, 0x73, 0x7a,
+ 0x28, 0xea, 0xa4, 0xaa, 0x6e, 0x7b, 0x4c, 0x7d, 0x87, 0xdd, 0xe0, 0xc9,
+ 0x02, 0x44, 0xa7, 0x87, 0xaf, 0xc3, 0x34, 0x5b, 0xb4, 0x42,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 06:7f:94:4a:2a:27:cd:f3:fa:c2:ae:2b:01:f9:08:ee:b9:c4:c6
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Services Root Certificate Authority - G2
+ Validity
+ Not Before: May 25 12:00:00 2015 GMT
+ Not After : Dec 31 01:00:00 2037 GMT
+ Subject: C=US, O=Amazon, CN=Amazon Root CA 1
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b2:78:80:71:ca:78:d5:e3:71:af:47:80:50:74:
+ 7d:6e:d8:d7:88:76:f4:99:68:f7:58:21:60:f9:74:
+ 84:01:2f:ac:02:2d:86:d3:a0:43:7a:4e:b2:a4:d0:
+ 36:ba:01:be:8d:db:48:c8:07:17:36:4c:f4:ee:88:
+ 23:c7:3e:eb:37:f5:b5:19:f8:49:68:b0:de:d7:b9:
+ 76:38:1d:61:9e:a4:fe:82:36:a5:e5:4a:56:e4:45:
+ e1:f9:fd:b4:16:fa:74:da:9c:9b:35:39:2f:fa:b0:
+ 20:50:06:6c:7a:d0:80:b2:a6:f9:af:ec:47:19:8f:
+ 50:38:07:dc:a2:87:39:58:f8:ba:d5:a9:f9:48:67:
+ 30:96:ee:94:78:5e:6f:89:a3:51:c0:30:86:66:a1:
+ 45:66:ba:54:eb:a3:c3:91:f9:48:dc:ff:d1:e8:30:
+ 2d:7d:2d:74:70:35:d7:88:24:f7:9e:c4:59:6e:bb:
+ 73:87:17:f2:32:46:28:b8:43:fa:b7:1d:aa:ca:b4:
+ f2:9f:24:0e:2d:4b:f7:71:5c:5e:69:ff:ea:95:02:
+ cb:38:8a:ae:50:38:6f:db:fb:2d:62:1b:c5:c7:1e:
+ 54:e1:77:e0:67:c8:0f:9c:87:23:d6:3f:40:20:7f:
+ 20:80:c4:80:4c:3e:3b:24:26:8e:04:ae:6c:9a:c8:
+ aa:0d
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 84:18:CC:85:34:EC:BC:0C:94:94:2E:08:59:9C:C7:B2:10:4E:0A:08
+ X509v3 Authority Key Identifier:
+ keyid:9C:5F:00:DF:AA:01:D7:30:2B:38:88:A2:B8:6D:4A:9C:F2:11:91:83
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.rootg2.amazontrust.com
+ CA Issuers - URI:http://crt.rootg2.amazontrust.com/rootg2.cer
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.rootg2.amazontrust.com/rootg2.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 62:37:42:5c:bc:10:b5:3e:8b:2c:e9:0c:9b:6c:45:e2:07:00:
+ 7a:f9:c5:58:0b:b9:08:8c:3e:ed:b3:25:3c:b5:6f:50:e4:cd:
+ 35:6a:a7:93:34:96:32:21:a9:48:44:ab:9c:ed:3d:b4:aa:73:
+ 6d:e4:7f:16:80:89:6c:cf:28:03:18:83:47:79:a3:10:7e:30:
+ 5b:ac:3b:b0:60:e0:77:d4:08:a6:e1:1d:7c:5e:c0:bb:f9:9a:
+ 7b:22:9d:a7:00:09:7e:ac:46:17:83:dc:9c:26:57:99:30:39:
+ 62:96:8f:ed:da:de:aa:c5:cc:1b:3e:ca:43:68:6c:57:16:bc:
+ d5:0e:20:2e:fe:ff:c2:6a:5d:2e:a0:4a:6d:14:58:87:94:e6:
+ 39:31:5f:7c:73:cb:90:88:6a:84:11:96:27:a6:ed:d9:81:46:
+ a6:7e:a3:72:00:0a:52:3e:83:88:07:63:77:89:69:17:0f:39:
+ 85:d2:ab:08:45:4d:d0:51:3a:fd:5d:5d:37:64:4c:7e:30:b2:
+ 55:24:42:9d:36:b0:5d:9c:17:81:61:f1:ca:f9:10:02:24:ab:
+ eb:0d:74:91:8d:7b:45:29:50:39:88:b2:a6:89:35:25:1e:14:
+ 6a:47:23:31:2f:5c:9a:fa:ad:9a:0e:62:51:a4:2a:a9:c4:f9:
+ 34:9d:21:18
+-----BEGIN CERTIFICATE-----
+MIIEkjCCA3qgAwIBAgITBn+USionzfP6wq4rAfkI7rnExjANBgkqhkiG9w0BAQsF
+ADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNj
+b3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4x
+OzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1
+dGhvcml0eSAtIEcyMB4XDTE1MDUyNTEyMDAwMFoXDTM3MTIzMTAxMDAwMFowOTEL
+MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
+b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj
+ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM
+9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw
+IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6
+VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L
+93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm
+jgSubJrIqg0CAwEAAaOCATEwggEtMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgGGMB0GA1UdDgQWBBSEGMyFNOy8DJSULghZnMeyEE4KCDAfBgNVHSMEGDAW
+gBScXwDfqgHXMCs4iKK4bUqc8hGRgzB4BggrBgEFBQcBAQRsMGowLgYIKwYBBQUH
+MAGGImh0dHA6Ly9vY3NwLnJvb3RnMi5hbWF6b250cnVzdC5jb20wOAYIKwYBBQUH
+MAKGLGh0dHA6Ly9jcnQucm9vdGcyLmFtYXpvbnRydXN0LmNvbS9yb290ZzIuY2Vy
+MD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly9jcmwucm9vdGcyLmFtYXpvbnRydXN0
+LmNvbS9yb290ZzIuY3JsMBEGA1UdIAQKMAgwBgYEVR0gADANBgkqhkiG9w0BAQsF
+AAOCAQEAYjdCXLwQtT6LLOkMm2xF4gcAevnFWAu5CIw+7bMlPLVvUOTNNWqnkzSW
+MiGpSESrnO09tKpzbeR/FoCJbM8oAxiDR3mjEH4wW6w7sGDgd9QIpuEdfF7Au/ma
+eyKdpwAJfqxGF4PcnCZXmTA5YpaP7dreqsXMGz7KQ2hsVxa81Q4gLv7/wmpdLqBK
+bRRYh5TmOTFffHPLkIhqhBGWJ6bt2YFGpn6jcgAKUj6DiAdjd4lpFw85hdKrCEVN
+0FE6/V1dN2RMfjCyVSRCnTawXZwXgWHxyvkQAiSr6w10kY17RSlQOYiypok1JR4U
+akcjMS9cmvqtmg5iUaQqqcT5NJ0hGA==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert23[] = {
+ 0x30, 0x82, 0x04, 0x92, 0x30, 0x82, 0x03, 0x7a, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x13, 0x06, 0x7f, 0x94, 0x4a, 0x2a, 0x27, 0xcd, 0xf3, 0xfa,
+ 0xc2, 0xae, 0x2b, 0x01, 0xf9, 0x08, 0xee, 0xb9, 0xc4, 0xc6, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+ 0x00, 0x30, 0x81, 0x98, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
+ 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55,
+ 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31,
+ 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63,
+ 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65, 0x31, 0x25, 0x30, 0x23,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53, 0x74, 0x61, 0x72, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c,
+ 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31,
+ 0x3b, 0x30, 0x39, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x32, 0x53, 0x74,
+ 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x53, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x73, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65,
+ 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32,
+ 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x30, 0x35, 0x32, 0x35, 0x31, 0x32,
+ 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x37, 0x31, 0x32, 0x33,
+ 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x39, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x06, 0x41, 0x6d,
+ 0x61, 0x7a, 0x6f, 0x6e, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x10, 0x41, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x20, 0x52, 0x6f,
+ 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x31, 0x30, 0x82, 0x01, 0x22, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+ 0x82, 0x01, 0x01, 0x00, 0xb2, 0x78, 0x80, 0x71, 0xca, 0x78, 0xd5, 0xe3,
+ 0x71, 0xaf, 0x47, 0x80, 0x50, 0x74, 0x7d, 0x6e, 0xd8, 0xd7, 0x88, 0x76,
+ 0xf4, 0x99, 0x68, 0xf7, 0x58, 0x21, 0x60, 0xf9, 0x74, 0x84, 0x01, 0x2f,
+ 0xac, 0x02, 0x2d, 0x86, 0xd3, 0xa0, 0x43, 0x7a, 0x4e, 0xb2, 0xa4, 0xd0,
+ 0x36, 0xba, 0x01, 0xbe, 0x8d, 0xdb, 0x48, 0xc8, 0x07, 0x17, 0x36, 0x4c,
+ 0xf4, 0xee, 0x88, 0x23, 0xc7, 0x3e, 0xeb, 0x37, 0xf5, 0xb5, 0x19, 0xf8,
+ 0x49, 0x68, 0xb0, 0xde, 0xd7, 0xb9, 0x76, 0x38, 0x1d, 0x61, 0x9e, 0xa4,
+ 0xfe, 0x82, 0x36, 0xa5, 0xe5, 0x4a, 0x56, 0xe4, 0x45, 0xe1, 0xf9, 0xfd,
+ 0xb4, 0x16, 0xfa, 0x74, 0xda, 0x9c, 0x9b, 0x35, 0x39, 0x2f, 0xfa, 0xb0,
+ 0x20, 0x50, 0x06, 0x6c, 0x7a, 0xd0, 0x80, 0xb2, 0xa6, 0xf9, 0xaf, 0xec,
+ 0x47, 0x19, 0x8f, 0x50, 0x38, 0x07, 0xdc, 0xa2, 0x87, 0x39, 0x58, 0xf8,
+ 0xba, 0xd5, 0xa9, 0xf9, 0x48, 0x67, 0x30, 0x96, 0xee, 0x94, 0x78, 0x5e,
+ 0x6f, 0x89, 0xa3, 0x51, 0xc0, 0x30, 0x86, 0x66, 0xa1, 0x45, 0x66, 0xba,
+ 0x54, 0xeb, 0xa3, 0xc3, 0x91, 0xf9, 0x48, 0xdc, 0xff, 0xd1, 0xe8, 0x30,
+ 0x2d, 0x7d, 0x2d, 0x74, 0x70, 0x35, 0xd7, 0x88, 0x24, 0xf7, 0x9e, 0xc4,
+ 0x59, 0x6e, 0xbb, 0x73, 0x87, 0x17, 0xf2, 0x32, 0x46, 0x28, 0xb8, 0x43,
+ 0xfa, 0xb7, 0x1d, 0xaa, 0xca, 0xb4, 0xf2, 0x9f, 0x24, 0x0e, 0x2d, 0x4b,
+ 0xf7, 0x71, 0x5c, 0x5e, 0x69, 0xff, 0xea, 0x95, 0x02, 0xcb, 0x38, 0x8a,
+ 0xae, 0x50, 0x38, 0x6f, 0xdb, 0xfb, 0x2d, 0x62, 0x1b, 0xc5, 0xc7, 0x1e,
+ 0x54, 0xe1, 0x77, 0xe0, 0x67, 0xc8, 0x0f, 0x9c, 0x87, 0x23, 0xd6, 0x3f,
+ 0x40, 0x20, 0x7f, 0x20, 0x80, 0xc4, 0x80, 0x4c, 0x3e, 0x3b, 0x24, 0x26,
+ 0x8e, 0x04, 0xae, 0x6c, 0x9a, 0xc8, 0xaa, 0x0d, 0x02, 0x03, 0x01, 0x00,
+ 0x01, 0xa3, 0x82, 0x01, 0x31, 0x30, 0x82, 0x01, 0x2d, 0x30, 0x0f, 0x06,
+ 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01,
+ 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+ 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+ 0x0e, 0x04, 0x16, 0x04, 0x14, 0x84, 0x18, 0xcc, 0x85, 0x34, 0xec, 0xbc,
+ 0x0c, 0x94, 0x94, 0x2e, 0x08, 0x59, 0x9c, 0xc7, 0xb2, 0x10, 0x4e, 0x0a,
+ 0x08, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0x9c, 0x5f, 0x00, 0xdf, 0xaa, 0x01, 0xd7, 0x30, 0x2b, 0x38,
+ 0x88, 0xa2, 0xb8, 0x6d, 0x4a, 0x9c, 0xf2, 0x11, 0x91, 0x83, 0x30, 0x78,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x6c,
+ 0x30, 0x6a, 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x01, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f,
+ 0x63, 0x73, 0x70, 0x2e, 0x72, 0x6f, 0x6f, 0x74, 0x67, 0x32, 0x2e, 0x61,
+ 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x30, 0x38, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x02, 0x86, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+ 0x72, 0x74, 0x2e, 0x72, 0x6f, 0x6f, 0x74, 0x67, 0x32, 0x2e, 0x61, 0x6d,
+ 0x61, 0x7a, 0x6f, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x67, 0x32, 0x2e, 0x63, 0x65, 0x72,
+ 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x36, 0x30, 0x34, 0x30,
+ 0x32, 0xa0, 0x30, 0xa0, 0x2e, 0x86, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x72, 0x6f, 0x6f, 0x74, 0x67, 0x32,
+ 0x2e, 0x61, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x67, 0x32, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x11, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x0a,
+ 0x30, 0x08, 0x30, 0x06, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x62, 0x37, 0x42, 0x5c, 0xbc, 0x10,
+ 0xb5, 0x3e, 0x8b, 0x2c, 0xe9, 0x0c, 0x9b, 0x6c, 0x45, 0xe2, 0x07, 0x00,
+ 0x7a, 0xf9, 0xc5, 0x58, 0x0b, 0xb9, 0x08, 0x8c, 0x3e, 0xed, 0xb3, 0x25,
+ 0x3c, 0xb5, 0x6f, 0x50, 0xe4, 0xcd, 0x35, 0x6a, 0xa7, 0x93, 0x34, 0x96,
+ 0x32, 0x21, 0xa9, 0x48, 0x44, 0xab, 0x9c, 0xed, 0x3d, 0xb4, 0xaa, 0x73,
+ 0x6d, 0xe4, 0x7f, 0x16, 0x80, 0x89, 0x6c, 0xcf, 0x28, 0x03, 0x18, 0x83,
+ 0x47, 0x79, 0xa3, 0x10, 0x7e, 0x30, 0x5b, 0xac, 0x3b, 0xb0, 0x60, 0xe0,
+ 0x77, 0xd4, 0x08, 0xa6, 0xe1, 0x1d, 0x7c, 0x5e, 0xc0, 0xbb, 0xf9, 0x9a,
+ 0x7b, 0x22, 0x9d, 0xa7, 0x00, 0x09, 0x7e, 0xac, 0x46, 0x17, 0x83, 0xdc,
+ 0x9c, 0x26, 0x57, 0x99, 0x30, 0x39, 0x62, 0x96, 0x8f, 0xed, 0xda, 0xde,
+ 0xaa, 0xc5, 0xcc, 0x1b, 0x3e, 0xca, 0x43, 0x68, 0x6c, 0x57, 0x16, 0xbc,
+ 0xd5, 0x0e, 0x20, 0x2e, 0xfe, 0xff, 0xc2, 0x6a, 0x5d, 0x2e, 0xa0, 0x4a,
+ 0x6d, 0x14, 0x58, 0x87, 0x94, 0xe6, 0x39, 0x31, 0x5f, 0x7c, 0x73, 0xcb,
+ 0x90, 0x88, 0x6a, 0x84, 0x11, 0x96, 0x27, 0xa6, 0xed, 0xd9, 0x81, 0x46,
+ 0xa6, 0x7e, 0xa3, 0x72, 0x00, 0x0a, 0x52, 0x3e, 0x83, 0x88, 0x07, 0x63,
+ 0x77, 0x89, 0x69, 0x17, 0x0f, 0x39, 0x85, 0xd2, 0xab, 0x08, 0x45, 0x4d,
+ 0xd0, 0x51, 0x3a, 0xfd, 0x5d, 0x5d, 0x37, 0x64, 0x4c, 0x7e, 0x30, 0xb2,
+ 0x55, 0x24, 0x42, 0x9d, 0x36, 0xb0, 0x5d, 0x9c, 0x17, 0x81, 0x61, 0xf1,
+ 0xca, 0xf9, 0x10, 0x02, 0x24, 0xab, 0xeb, 0x0d, 0x74, 0x91, 0x8d, 0x7b,
+ 0x45, 0x29, 0x50, 0x39, 0x88, 0xb2, 0xa6, 0x89, 0x35, 0x25, 0x1e, 0x14,
+ 0x6a, 0x47, 0x23, 0x31, 0x2f, 0x5c, 0x9a, 0xfa, 0xad, 0x9a, 0x0e, 0x62,
+ 0x51, 0xa4, 0x2a, 0xa9, 0xc4, 0xf9, 0x34, 0x9d, 0x21, 0x18,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 01:fd:a3:eb:6e:ca:75:c8:88:43:8b:72:4b:cf:bc:91
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA
+ Validity
+ Not Before: Mar 8 12:00:00 2013 GMT
+ Not After : Mar 8 12:00:00 2023 GMT
+ Subject: C=US, O=DigiCert Inc, CN=DigiCert SHA2 Secure Server CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:dc:ae:58:90:4d:c1:c4:30:15:90:35:5b:6e:3c:
+ 82:15:f5:2c:5c:bd:e3:db:ff:71:43:fa:64:25:80:
+ d4:ee:18:a2:4d:f0:66:d0:0a:73:6e:11:98:36:17:
+ 64:af:37:9d:fd:fa:41:84:af:c7:af:8c:fe:1a:73:
+ 4d:cf:33:97:90:a2:96:87:53:83:2b:b9:a6:75:48:
+ 2d:1d:56:37:7b:da:31:32:1a:d7:ac:ab:06:f4:aa:
+ 5d:4b:b7:47:46:dd:2a:93:c3:90:2e:79:80:80:ef:
+ 13:04:6a:14:3b:b5:9b:92:be:c2:07:65:4e:fc:da:
+ fc:ff:7a:ae:dc:5c:7e:55:31:0c:e8:39:07:a4:d7:
+ be:2f:d3:0b:6a:d2:b1:df:5f:fe:57:74:53:3b:35:
+ 80:dd:ae:8e:44:98:b3:9f:0e:d3:da:e0:d7:f4:6b:
+ 29:ab:44:a7:4b:58:84:6d:92:4b:81:c3:da:73:8b:
+ 12:97:48:90:04:45:75:1a:dd:37:31:97:92:e8:cd:
+ 54:0d:3b:e4:c1:3f:39:5e:2e:b8:f3:5c:7e:10:8e:
+ 86:41:00:8d:45:66:47:b0:a1:65:ce:a0:aa:29:09:
+ 4e:f3:97:eb:e8:2e:ab:0f:72:a7:30:0e:fa:c7:f4:
+ fd:14:77:c3:a4:5b:28:57:c2:b3:f9:82:fd:b7:45:
+ 58:9b
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://ocsp.digicert.com
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl3.digicert.com/DigiCertGlobalRootCA.crl
+
+ Full Name:
+ URI:http://crl4.digicert.com/DigiCertGlobalRootCA.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.digicert.com/CPS
+
+ X509v3 Subject Key Identifier:
+ 0F:80:61:1C:82:31:61:D5:2F:28:E7:8D:46:38:B4:2C:E1:C6:D9:E2
+ X509v3 Authority Key Identifier:
+ keyid:03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 23:3e:df:4b:d2:31:42:a5:b6:7e:42:5c:1a:44:cc:69:d1:68:
+ b4:5d:4b:e0:04:21:6c:4b:e2:6d:cc:b1:e0:97:8f:a6:53:09:
+ cd:aa:2a:65:e5:39:4f:1e:83:a5:6e:5c:98:a2:24:26:e6:fb:
+ a1:ed:93:c7:2e:02:c6:4d:4a:bf:b0:42:df:78:da:b3:a8:f9:
+ 6d:ff:21:85:53:36:60:4c:76:ce:ec:38:dc:d6:51:80:f0:c5:
+ d6:e5:d4:4d:27:64:ab:9b:c7:3e:71:fb:48:97:b8:33:6d:c9:
+ 13:07:ee:96:a2:1b:18:15:f6:5c:4c:40:ed:b3:c2:ec:ff:71:
+ c1:e3:47:ff:d4:b9:00:b4:37:42:da:20:c9:ea:6e:8a:ee:14:
+ 06:ae:7d:a2:59:98:88:a8:1b:6f:2d:f4:f2:c9:14:5f:26:cf:
+ 2c:8d:7e:ed:37:c0:a9:d5:39:b9:82:bf:19:0c:ea:34:af:00:
+ 21:68:f8:ad:73:e2:c9:32:da:38:25:0b:55:d3:9a:1d:f0:68:
+ 86:ed:2e:41:34:ef:7c:a5:50:1d:bf:3a:f9:d3:c1:08:0c:e6:
+ ed:1e:8a:58:25:e4:b8:77:ad:2d:6e:f5:52:dd:b4:74:8f:ab:
+ 49:2e:9d:3b:93:34:28:1f:78:ce:94:ea:c7:bd:d3:c9:6d:1c:
+ de:5c:32:f3
+-----BEGIN CERTIFICATE-----
+MIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaME0xCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg
+U2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANyuWJBNwcQwFZA1W248ghX1LFy949v/cUP6ZCWA1O4Yok3wZtAKc24RmDYXZK83
+nf36QYSvx6+M/hpzTc8zl5CilodTgyu5pnVILR1WN3vaMTIa16yrBvSqXUu3R0bd
+KpPDkC55gIDvEwRqFDu1m5K+wgdlTvza/P96rtxcflUxDOg5B6TXvi/TC2rSsd9f
+/ld0Uzs1gN2ujkSYs58O09rg1/RrKatEp0tYhG2SS4HD2nOLEpdIkARFdRrdNzGX
+kujNVA075ME/OV4uuPNcfhCOhkEAjUVmR7ChZc6gqikJTvOX6+guqw9ypzAO+sf0
+/RR3w6RbKFfCs/mC/bdFWJsCAwEAAaOCAVowggFWMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwDgYDVR0PAQH/BAQDAgGGMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYY
+aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMHsGA1UdHwR0MHIwN6A1oDOGMWh0dHA6
+Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwN6A1
+oDOGMWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RD
+QS5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
+d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwHQYDVR0OBBYEFA+AYRyCMWHVLyjnjUY4tCzh
+xtniMB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA0GCSqGSIb3DQEB
+CwUAA4IBAQAjPt9L0jFCpbZ+QlwaRMxp0Wi0XUvgBCFsS+JtzLHgl4+mUwnNqipl
+5TlPHoOlblyYoiQm5vuh7ZPHLgLGTUq/sELfeNqzqPlt/yGFUzZgTHbO7Djc1lGA
+8MXW5dRNJ2Srm8c+cftIl7gzbckTB+6WohsYFfZcTEDts8Ls/3HB40f/1LkAtDdC
+2iDJ6m6K7hQGrn2iWZiIqBtvLfTyyRRfJs8sjX7tN8Cp1Tm5gr8ZDOo0rwAhaPit
+c+LJMto4JQtV05od8GiG7S5BNO98pVAdvzr508EIDObtHopYJeS4d60tbvVS3bR0
+j6tJLp07kzQoH3jOlOrHvdPJbRzeXDLz
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert24[] = {
+ 0x30, 0x82, 0x04, 0x94, 0x30, 0x82, 0x03, 0x7c, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x01, 0xfd, 0xa3, 0xeb, 0x6e, 0xca, 0x75, 0xc8, 0x88,
+ 0x43, 0x8b, 0x72, 0x4b, 0xcf, 0xbc, 0x91, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x61,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+ 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+ 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x17, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x47,
+ 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43,
+ 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x30, 0x33, 0x30, 0x38, 0x31,
+ 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x33,
+ 0x30, 0x38, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x4d, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44,
+ 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31,
+ 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1e, 0x44, 0x69,
+ 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x48, 0x41, 0x32, 0x20,
+ 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+ 0x00, 0xdc, 0xae, 0x58, 0x90, 0x4d, 0xc1, 0xc4, 0x30, 0x15, 0x90, 0x35,
+ 0x5b, 0x6e, 0x3c, 0x82, 0x15, 0xf5, 0x2c, 0x5c, 0xbd, 0xe3, 0xdb, 0xff,
+ 0x71, 0x43, 0xfa, 0x64, 0x25, 0x80, 0xd4, 0xee, 0x18, 0xa2, 0x4d, 0xf0,
+ 0x66, 0xd0, 0x0a, 0x73, 0x6e, 0x11, 0x98, 0x36, 0x17, 0x64, 0xaf, 0x37,
+ 0x9d, 0xfd, 0xfa, 0x41, 0x84, 0xaf, 0xc7, 0xaf, 0x8c, 0xfe, 0x1a, 0x73,
+ 0x4d, 0xcf, 0x33, 0x97, 0x90, 0xa2, 0x96, 0x87, 0x53, 0x83, 0x2b, 0xb9,
+ 0xa6, 0x75, 0x48, 0x2d, 0x1d, 0x56, 0x37, 0x7b, 0xda, 0x31, 0x32, 0x1a,
+ 0xd7, 0xac, 0xab, 0x06, 0xf4, 0xaa, 0x5d, 0x4b, 0xb7, 0x47, 0x46, 0xdd,
+ 0x2a, 0x93, 0xc3, 0x90, 0x2e, 0x79, 0x80, 0x80, 0xef, 0x13, 0x04, 0x6a,
+ 0x14, 0x3b, 0xb5, 0x9b, 0x92, 0xbe, 0xc2, 0x07, 0x65, 0x4e, 0xfc, 0xda,
+ 0xfc, 0xff, 0x7a, 0xae, 0xdc, 0x5c, 0x7e, 0x55, 0x31, 0x0c, 0xe8, 0x39,
+ 0x07, 0xa4, 0xd7, 0xbe, 0x2f, 0xd3, 0x0b, 0x6a, 0xd2, 0xb1, 0xdf, 0x5f,
+ 0xfe, 0x57, 0x74, 0x53, 0x3b, 0x35, 0x80, 0xdd, 0xae, 0x8e, 0x44, 0x98,
+ 0xb3, 0x9f, 0x0e, 0xd3, 0xda, 0xe0, 0xd7, 0xf4, 0x6b, 0x29, 0xab, 0x44,
+ 0xa7, 0x4b, 0x58, 0x84, 0x6d, 0x92, 0x4b, 0x81, 0xc3, 0xda, 0x73, 0x8b,
+ 0x12, 0x97, 0x48, 0x90, 0x04, 0x45, 0x75, 0x1a, 0xdd, 0x37, 0x31, 0x97,
+ 0x92, 0xe8, 0xcd, 0x54, 0x0d, 0x3b, 0xe4, 0xc1, 0x3f, 0x39, 0x5e, 0x2e,
+ 0xb8, 0xf3, 0x5c, 0x7e, 0x10, 0x8e, 0x86, 0x41, 0x00, 0x8d, 0x45, 0x66,
+ 0x47, 0xb0, 0xa1, 0x65, 0xce, 0xa0, 0xaa, 0x29, 0x09, 0x4e, 0xf3, 0x97,
+ 0xeb, 0xe8, 0x2e, 0xab, 0x0f, 0x72, 0xa7, 0x30, 0x0e, 0xfa, 0xc7, 0xf4,
+ 0xfd, 0x14, 0x77, 0xc3, 0xa4, 0x5b, 0x28, 0x57, 0xc2, 0xb3, 0xf9, 0x82,
+ 0xfd, 0xb7, 0x45, 0x58, 0x9b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+ 0x01, 0x5a, 0x30, 0x82, 0x01, 0x56, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+ 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+ 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+ 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e,
+ 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x30, 0x7b, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x74, 0x30, 0x72, 0x30,
+ 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x33, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63,
+ 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69,
+ 0x43, 0x65, 0x72, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x6f,
+ 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x37, 0xa0, 0x35,
+ 0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+ 0x72, 0x6c, 0x34, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72,
+ 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x43,
+ 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x20,
+ 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00,
+ 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
+ 0x77, 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03,
+ 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x0f, 0x80, 0x61, 0x1c, 0x82,
+ 0x31, 0x61, 0xd5, 0x2f, 0x28, 0xe7, 0x8d, 0x46, 0x38, 0xb4, 0x2c, 0xe1,
+ 0xc6, 0xd9, 0xe2, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
+ 0x30, 0x16, 0x80, 0x14, 0x03, 0xde, 0x50, 0x35, 0x56, 0xd1, 0x4c, 0xbb,
+ 0x66, 0xf0, 0xa3, 0xe2, 0x1b, 0x1b, 0xc3, 0x97, 0xb2, 0x3d, 0xd1, 0x55,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x23, 0x3e, 0xdf, 0x4b,
+ 0xd2, 0x31, 0x42, 0xa5, 0xb6, 0x7e, 0x42, 0x5c, 0x1a, 0x44, 0xcc, 0x69,
+ 0xd1, 0x68, 0xb4, 0x5d, 0x4b, 0xe0, 0x04, 0x21, 0x6c, 0x4b, 0xe2, 0x6d,
+ 0xcc, 0xb1, 0xe0, 0x97, 0x8f, 0xa6, 0x53, 0x09, 0xcd, 0xaa, 0x2a, 0x65,
+ 0xe5, 0x39, 0x4f, 0x1e, 0x83, 0xa5, 0x6e, 0x5c, 0x98, 0xa2, 0x24, 0x26,
+ 0xe6, 0xfb, 0xa1, 0xed, 0x93, 0xc7, 0x2e, 0x02, 0xc6, 0x4d, 0x4a, 0xbf,
+ 0xb0, 0x42, 0xdf, 0x78, 0xda, 0xb3, 0xa8, 0xf9, 0x6d, 0xff, 0x21, 0x85,
+ 0x53, 0x36, 0x60, 0x4c, 0x76, 0xce, 0xec, 0x38, 0xdc, 0xd6, 0x51, 0x80,
+ 0xf0, 0xc5, 0xd6, 0xe5, 0xd4, 0x4d, 0x27, 0x64, 0xab, 0x9b, 0xc7, 0x3e,
+ 0x71, 0xfb, 0x48, 0x97, 0xb8, 0x33, 0x6d, 0xc9, 0x13, 0x07, 0xee, 0x96,
+ 0xa2, 0x1b, 0x18, 0x15, 0xf6, 0x5c, 0x4c, 0x40, 0xed, 0xb3, 0xc2, 0xec,
+ 0xff, 0x71, 0xc1, 0xe3, 0x47, 0xff, 0xd4, 0xb9, 0x00, 0xb4, 0x37, 0x42,
+ 0xda, 0x20, 0xc9, 0xea, 0x6e, 0x8a, 0xee, 0x14, 0x06, 0xae, 0x7d, 0xa2,
+ 0x59, 0x98, 0x88, 0xa8, 0x1b, 0x6f, 0x2d, 0xf4, 0xf2, 0xc9, 0x14, 0x5f,
+ 0x26, 0xcf, 0x2c, 0x8d, 0x7e, 0xed, 0x37, 0xc0, 0xa9, 0xd5, 0x39, 0xb9,
+ 0x82, 0xbf, 0x19, 0x0c, 0xea, 0x34, 0xaf, 0x00, 0x21, 0x68, 0xf8, 0xad,
+ 0x73, 0xe2, 0xc9, 0x32, 0xda, 0x38, 0x25, 0x0b, 0x55, 0xd3, 0x9a, 0x1d,
+ 0xf0, 0x68, 0x86, 0xed, 0x2e, 0x41, 0x34, 0xef, 0x7c, 0xa5, 0x50, 0x1d,
+ 0xbf, 0x3a, 0xf9, 0xd3, 0xc1, 0x08, 0x0c, 0xe6, 0xed, 0x1e, 0x8a, 0x58,
+ 0x25, 0xe4, 0xb8, 0x77, 0xad, 0x2d, 0x6e, 0xf5, 0x52, 0xdd, 0xb4, 0x74,
+ 0x8f, 0xab, 0x49, 0x2e, 0x9d, 0x3b, 0x93, 0x34, 0x28, 0x1f, 0x78, 0xce,
+ 0x94, 0xea, 0xc7, 0xbd, 0xd3, 0xc9, 0x6d, 0x1c, 0xde, 0x5c, 0x32, 0xf3,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 3740804 (0x391484)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=Starfield Technologies, Inc., OU=Starfield Class 2 Certification Authority
+ Validity
+ Not Before: Jan 1 07:00:00 2014 GMT
+ Not After : May 30 07:00:00 2031 GMT
+ Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Root Certificate Authority - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:bd:ed:c1:03:fc:f6:8f:fc:02:b1:6f:5b:9f:48:
+ d9:9d:79:e2:a2:b7:03:61:56:18:c3:47:b6:d7:ca:
+ 3d:35:2e:89:43:f7:a1:69:9b:de:8a:1a:fd:13:20:
+ 9c:b4:49:77:32:29:56:fd:b9:ec:8c:dd:22:fa:72:
+ dc:27:61:97:ee:f6:5a:84:ec:6e:19:b9:89:2c:dc:
+ 84:5b:d5:74:fb:6b:5f:c5:89:a5:10:52:89:46:55:
+ f4:b8:75:1c:e6:7f:e4:54:ae:4b:f8:55:72:57:02:
+ 19:f8:17:71:59:eb:1e:28:07:74:c5:9d:48:be:6c:
+ b4:f4:a4:b0:f3:64:37:79:92:c0:ec:46:5e:7f:e1:
+ 6d:53:4c:62:af:cd:1f:0b:63:bb:3a:9d:fb:fc:79:
+ 00:98:61:74:cf:26:82:40:63:f3:b2:72:6a:19:0d:
+ 99:ca:d4:0e:75:cc:37:fb:8b:89:c1:59:f1:62:7f:
+ 5f:b3:5f:65:30:f8:a7:b7:4d:76:5a:1e:76:5e:34:
+ c0:e8:96:56:99:8a:b3:f0:7f:a4:cd:bd:dc:32:31:
+ 7c:91:cf:e0:5f:11:f8:6b:aa:49:5c:d1:99:94:d1:
+ a2:e3:63:5b:09:76:b5:56:62:e1:4b:74:1d:96:d4:
+ 26:d4:08:04:59:d0:98:0e:0e:e6:de:fc:c3:ec:1f:
+ 90:f1
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 7C:0C:32:1F:A7:D9:30:7F:C4:7D:68:A3:62:A8:A1:CE:AB:07:5B:27
+ X509v3 Authority Key Identifier:
+ keyid:BF:5F:B7:D1:CE:DD:1F:86:F4:5B:55:AC:DC:D7:10:C2:0E:A9:88:E7
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.starfieldtech.com/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.starfieldtech.com/sfroot.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://certs.starfieldtech.com/repository/
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 85:63:c1:d9:dd:b9:ff:a9:bd:a6:19:dc:bf:13:3a:11:38:22:
+ 54:b1:ac:05:10:fb:7c:b3:96:3f:31:8b:66:ff:88:f3:e1:bf:
+ fb:c7:1f:00:ff:46:6a:8b:61:32:c9:01:51:76:fb:9a:c6:fa:
+ 20:51:c8:46:c4:98:d7:79:a3:e3:04:72:3f:8b:4d:34:53:67:
+ ec:33:2c:7b:e8:94:01:28:7c:3a:34:5b:02:77:16:8d:40:25:
+ 33:b0:bc:6c:97:d7:05:7a:ff:8c:85:ce:6f:a0:53:00:17:6e:
+ 1e:6c:bd:22:d7:0a:88:37:f6:7d:eb:99:41:ef:27:cb:8c:60:
+ 6b:4c:01:7e:65:50:0b:4f:b8:95:9a:9a:6e:34:fd:73:3a:33:
+ f1:91:d5:f3:4e:2d:74:e8:ef:d3:90:35:f1:06:68:64:d4:d0:
+ 13:fd:52:d3:c6:6d:c1:3a:8a:31:dd:05:26:35:4a:8c:65:b8:
+ 52:6b:81:ec:d2:9c:b5:34:10:97:9c:3e:c6:2f:ed:8e:42:42:
+ 24:2e:e9:73:9a:25:f9:11:f1:f2:23:69:cb:e5:94:69:a0:d2:
+ dc:b0:fc:44:89:ac:17:a8:cc:d5:37:77:16:c5:80:b9:0c:8f:
+ 57:02:55:99:85:7b:49:f0:2e:5b:a0:c2:57:53:5d:a2:e8:a6:
+ 37:c3:01:fa
+-----BEGIN CERTIFICATE-----
+MIIEoDCCA4igAwIBAgIDORSEMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYTAlVT
+MSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQL
+EylTdGFyZmllbGQgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
+NDAxMDEwNzAwMDBaFw0zMTA1MzAwNzAwMDBaMIGPMQswCQYDVQQGEwJVUzEQMA4G
+A1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTElMCMGA1UEChMcU3Rh
+cmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UEAxMpU3RhcmZpZWxkIFJv
+b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQC97cED/PaP/AKxb1ufSNmdeeKitwNhVhjDR7bXyj01LolD
+96Fpm96KGv0TIJy0SXcyKVb9ueyM3SL6ctwnYZfu9lqE7G4ZuYks3IRb1XT7a1/F
+iaUQUolGVfS4dRzmf+RUrkv4VXJXAhn4F3FZ6x4oB3TFnUi+bLT0pLDzZDd5ksDs
+Rl5/4W1TTGKvzR8LY7s6nfv8eQCYYXTPJoJAY/OycmoZDZnK1A51zDf7i4nBWfFi
+f1+zX2Uw+Ke3TXZaHnZeNMDollaZirPwf6TNvdwyMXyRz+BfEfhrqklc0ZmU0aLj
+Y1sJdrVWYuFLdB2W1CbUCARZ0JgODube/MPsH5DxAgMBAAGjggEpMIIBJTAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfAwyH6fZMH/E
+fWijYqihzqsHWycwHwYDVR0jBBgwFoAUv1+30c7dH4b0W1Ws3NcQwg6piOcwOgYI
+KwYBBQUHAQEELjAsMCoGCCsGAQUFBzABhh5odHRwOi8vb2NzcC5zdGFyZmllbGR0
+ZWNoLmNvbS8wOAYDVR0fBDEwLzAtoCugKYYnaHR0cDovL2NybC5zdGFyZmllbGR0
+ZWNoLmNvbS9zZnJvb3QuY3JsMEwGA1UdIARFMEMwQQYEVR0gADA5MDcGCCsGAQUF
+BwIBFitodHRwczovL2NlcnRzLnN0YXJmaWVsZHRlY2guY29tL3JlcG9zaXRvcnkv
+MA0GCSqGSIb3DQEBCwUAA4IBAQCFY8HZ3bn/qb2mGdy/EzoROCJUsawFEPt8s5Y/
+MYtm/4jz4b/7xx8A/0Zqi2EyyQFRdvuaxvogUchGxJjXeaPjBHI/i000U2fsMyx7
+6JQBKHw6NFsCdxaNQCUzsLxsl9cFev+Mhc5voFMAF24ebL0i1wqIN/Z965lB7yfL
+jGBrTAF+ZVALT7iVmppuNP1zOjPxkdXzTi106O/TkDXxBmhk1NAT/VLTxm3BOoox
+3QUmNUqMZbhSa4Hs0py1NBCXnD7GL+2OQkIkLulzmiX5EfHyI2nL5ZRpoNLcsPxE
+iawXqMzVN3cWxYC5DI9XAlWZhXtJ8C5boMJXU12i6KY3wwH6
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert25[] = {
+ 0x30, 0x82, 0x04, 0xa0, 0x30, 0x82, 0x03, 0x88, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x03, 0x39, 0x14, 0x84, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x68, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+ 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53,
+ 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63,
+ 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x29, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20,
+ 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x32, 0x20, 0x43, 0x65, 0x72, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+ 0x34, 0x30, 0x31, 0x30, 0x31, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x5a,
+ 0x17, 0x0d, 0x33, 0x31, 0x30, 0x35, 0x33, 0x30, 0x30, 0x37, 0x30, 0x30,
+ 0x30, 0x30, 0x5a, 0x30, 0x81, 0x8f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
+ 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30, 0x0e, 0x06,
+ 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e,
+ 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a,
+ 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65, 0x31, 0x25,
+ 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53, 0x74, 0x61,
+ 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63, 0x68, 0x6e,
+ 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x29,
+ 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x52, 0x6f,
+ 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79,
+ 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+ 0x01, 0x00, 0xbd, 0xed, 0xc1, 0x03, 0xfc, 0xf6, 0x8f, 0xfc, 0x02, 0xb1,
+ 0x6f, 0x5b, 0x9f, 0x48, 0xd9, 0x9d, 0x79, 0xe2, 0xa2, 0xb7, 0x03, 0x61,
+ 0x56, 0x18, 0xc3, 0x47, 0xb6, 0xd7, 0xca, 0x3d, 0x35, 0x2e, 0x89, 0x43,
+ 0xf7, 0xa1, 0x69, 0x9b, 0xde, 0x8a, 0x1a, 0xfd, 0x13, 0x20, 0x9c, 0xb4,
+ 0x49, 0x77, 0x32, 0x29, 0x56, 0xfd, 0xb9, 0xec, 0x8c, 0xdd, 0x22, 0xfa,
+ 0x72, 0xdc, 0x27, 0x61, 0x97, 0xee, 0xf6, 0x5a, 0x84, 0xec, 0x6e, 0x19,
+ 0xb9, 0x89, 0x2c, 0xdc, 0x84, 0x5b, 0xd5, 0x74, 0xfb, 0x6b, 0x5f, 0xc5,
+ 0x89, 0xa5, 0x10, 0x52, 0x89, 0x46, 0x55, 0xf4, 0xb8, 0x75, 0x1c, 0xe6,
+ 0x7f, 0xe4, 0x54, 0xae, 0x4b, 0xf8, 0x55, 0x72, 0x57, 0x02, 0x19, 0xf8,
+ 0x17, 0x71, 0x59, 0xeb, 0x1e, 0x28, 0x07, 0x74, 0xc5, 0x9d, 0x48, 0xbe,
+ 0x6c, 0xb4, 0xf4, 0xa4, 0xb0, 0xf3, 0x64, 0x37, 0x79, 0x92, 0xc0, 0xec,
+ 0x46, 0x5e, 0x7f, 0xe1, 0x6d, 0x53, 0x4c, 0x62, 0xaf, 0xcd, 0x1f, 0x0b,
+ 0x63, 0xbb, 0x3a, 0x9d, 0xfb, 0xfc, 0x79, 0x00, 0x98, 0x61, 0x74, 0xcf,
+ 0x26, 0x82, 0x40, 0x63, 0xf3, 0xb2, 0x72, 0x6a, 0x19, 0x0d, 0x99, 0xca,
+ 0xd4, 0x0e, 0x75, 0xcc, 0x37, 0xfb, 0x8b, 0x89, 0xc1, 0x59, 0xf1, 0x62,
+ 0x7f, 0x5f, 0xb3, 0x5f, 0x65, 0x30, 0xf8, 0xa7, 0xb7, 0x4d, 0x76, 0x5a,
+ 0x1e, 0x76, 0x5e, 0x34, 0xc0, 0xe8, 0x96, 0x56, 0x99, 0x8a, 0xb3, 0xf0,
+ 0x7f, 0xa4, 0xcd, 0xbd, 0xdc, 0x32, 0x31, 0x7c, 0x91, 0xcf, 0xe0, 0x5f,
+ 0x11, 0xf8, 0x6b, 0xaa, 0x49, 0x5c, 0xd1, 0x99, 0x94, 0xd1, 0xa2, 0xe3,
+ 0x63, 0x5b, 0x09, 0x76, 0xb5, 0x56, 0x62, 0xe1, 0x4b, 0x74, 0x1d, 0x96,
+ 0xd4, 0x26, 0xd4, 0x08, 0x04, 0x59, 0xd0, 0x98, 0x0e, 0x0e, 0xe6, 0xde,
+ 0xfc, 0xc3, 0xec, 0x1f, 0x90, 0xf1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
+ 0x82, 0x01, 0x29, 0x30, 0x82, 0x01, 0x25, 0x30, 0x0f, 0x06, 0x03, 0x55,
+ 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff,
+ 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
+ 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+ 0x16, 0x04, 0x14, 0x7c, 0x0c, 0x32, 0x1f, 0xa7, 0xd9, 0x30, 0x7f, 0xc4,
+ 0x7d, 0x68, 0xa3, 0x62, 0xa8, 0xa1, 0xce, 0xab, 0x07, 0x5b, 0x27, 0x30,
+ 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+ 0xbf, 0x5f, 0xb7, 0xd1, 0xce, 0xdd, 0x1f, 0x86, 0xf4, 0x5b, 0x55, 0xac,
+ 0xdc, 0xd7, 0x10, 0xc2, 0x0e, 0xa9, 0x88, 0xe7, 0x30, 0x3a, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x2e, 0x30, 0x2c,
+ 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+ 0x86, 0x1e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+ 0x70, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74,
+ 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x38, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0xa0, 0x2b, 0xa0,
+ 0x29, 0x86, 0x27, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x6c, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74,
+ 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x72, 0x6f,
+ 0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d,
+ 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06, 0x04, 0x55, 0x1d, 0x20,
+ 0x00, 0x30, 0x39, 0x30, 0x37, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x2b, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+ 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x85, 0x63, 0xc1, 0xd9,
+ 0xdd, 0xb9, 0xff, 0xa9, 0xbd, 0xa6, 0x19, 0xdc, 0xbf, 0x13, 0x3a, 0x11,
+ 0x38, 0x22, 0x54, 0xb1, 0xac, 0x05, 0x10, 0xfb, 0x7c, 0xb3, 0x96, 0x3f,
+ 0x31, 0x8b, 0x66, 0xff, 0x88, 0xf3, 0xe1, 0xbf, 0xfb, 0xc7, 0x1f, 0x00,
+ 0xff, 0x46, 0x6a, 0x8b, 0x61, 0x32, 0xc9, 0x01, 0x51, 0x76, 0xfb, 0x9a,
+ 0xc6, 0xfa, 0x20, 0x51, 0xc8, 0x46, 0xc4, 0x98, 0xd7, 0x79, 0xa3, 0xe3,
+ 0x04, 0x72, 0x3f, 0x8b, 0x4d, 0x34, 0x53, 0x67, 0xec, 0x33, 0x2c, 0x7b,
+ 0xe8, 0x94, 0x01, 0x28, 0x7c, 0x3a, 0x34, 0x5b, 0x02, 0x77, 0x16, 0x8d,
+ 0x40, 0x25, 0x33, 0xb0, 0xbc, 0x6c, 0x97, 0xd7, 0x05, 0x7a, 0xff, 0x8c,
+ 0x85, 0xce, 0x6f, 0xa0, 0x53, 0x00, 0x17, 0x6e, 0x1e, 0x6c, 0xbd, 0x22,
+ 0xd7, 0x0a, 0x88, 0x37, 0xf6, 0x7d, 0xeb, 0x99, 0x41, 0xef, 0x27, 0xcb,
+ 0x8c, 0x60, 0x6b, 0x4c, 0x01, 0x7e, 0x65, 0x50, 0x0b, 0x4f, 0xb8, 0x95,
+ 0x9a, 0x9a, 0x6e, 0x34, 0xfd, 0x73, 0x3a, 0x33, 0xf1, 0x91, 0xd5, 0xf3,
+ 0x4e, 0x2d, 0x74, 0xe8, 0xef, 0xd3, 0x90, 0x35, 0xf1, 0x06, 0x68, 0x64,
+ 0xd4, 0xd0, 0x13, 0xfd, 0x52, 0xd3, 0xc6, 0x6d, 0xc1, 0x3a, 0x8a, 0x31,
+ 0xdd, 0x05, 0x26, 0x35, 0x4a, 0x8c, 0x65, 0xb8, 0x52, 0x6b, 0x81, 0xec,
+ 0xd2, 0x9c, 0xb5, 0x34, 0x10, 0x97, 0x9c, 0x3e, 0xc6, 0x2f, 0xed, 0x8e,
+ 0x42, 0x42, 0x24, 0x2e, 0xe9, 0x73, 0x9a, 0x25, 0xf9, 0x11, 0xf1, 0xf2,
+ 0x23, 0x69, 0xcb, 0xe5, 0x94, 0x69, 0xa0, 0xd2, 0xdc, 0xb0, 0xfc, 0x44,
+ 0x89, 0xac, 0x17, 0xa8, 0xcc, 0xd5, 0x37, 0x77, 0x16, 0xc5, 0x80, 0xb9,
+ 0x0c, 0x8f, 0x57, 0x02, 0x55, 0x99, 0x85, 0x7b, 0x49, 0xf0, 0x2e, 0x5b,
+ 0xa0, 0xc2, 0x57, 0x53, 0x5d, 0xa2, 0xe8, 0xa6, 0x37, 0xc3, 0x01, 0xfa,
+};
+
--- /dev/null
+/* Copyright (c) 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.
+ */
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 28:1c:89:29:66:14:43:80:42:63:55:3a:32:40:ae:b3
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., OU=(c) 2008 GeoTrust Inc. - For authorized use only, CN=GeoTrust Primary Certification Authority - G3
+ Validity
+ Not Before: Jun 30 00:00:00 2015 GMT
+ Not After : Jun 29 23:59:59 2025 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=RapidSSL SHA256 CA - G4
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:c0:9e:3a:0f:9a:b2:ba:d3:d2:dc:15:ec:d0:30:
+ 54:59:30:4d:40:51:ae:42:71:71:d2:8d:53:73:81:
+ fe:b8:e0:c4:96:c5:8e:7e:c2:f1:b7:63:4a:cf:a7:
+ 1e:3f:a8:e7:ce:53:a0:fa:2d:f7:d6:e6:ce:70:11:
+ a6:ee:e1:03:52:d2:68:de:3d:08:0d:87:fd:1c:d7:
+ 0b:97:62:6d:82:30:76:1b:47:3a:c4:f7:ce:ed:1d:
+ 7c:8c:b7:17:8e:53:80:1e:1d:0f:5d:8c:f9:90:e4:
+ 04:1e:02:7e:cb:b0:49:ef:da:52:25:fb:fb:67:ed:
+ dd:84:74:59:84:0e:f3:de:70:66:8d:e4:52:38:f7:
+ 53:5a:37:13:67:0b:3e:bb:a8:58:b7:2e:ed:ff:b7:
+ 5e:11:73:b9:77:45:52:67:46:ae:c4:dc:24:81:89:
+ 76:0a:ca:a1:6c:66:73:04:82:aa:f5:70:6c:5f:1b:
+ 9a:00:79:46:d6:7f:7a:26:17:30:cf:39:4b:2c:74:
+ d9:89:44:76:10:d0:ed:f7:8b:bb:89:05:75:4d:0b:
+ 0d:b3:da:e9:bf:f1:6a:7d:2a:11:db:1e:9f:8c:e3:
+ c4:06:69:e1:1d:88:45:39:d1:6e:55:d8:aa:b7:9b:
+ 6f:ea:f4:de:ac:17:11:92:5d:40:9b:83:7b:9a:e2:
+ f7:a9
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ Authority Information Access:
+ OCSP - URI:http://g.symcd.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 2.23.140.1.2.1
+ CPS: https://www.geotrust.com/resources/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g.symcb.com/GeoTrustPCA-G3.crl
+
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ F3:B5:56:0C:C4:09:B0:B4:CF:1F:AA:F9:DD:23:56:F0:77:E8:A1:F9
+ X509v3 Authority Key Identifier:
+ keyid:C4:79:CA:8E:A1:4E:03:1D:1C:DC:6B:DB:31:5B:94:3E:3F:30:7F:2D
+
+ Signature Algorithm: sha256WithRSAEncryption
+ c3:7e:d8:83:4b:04:4c:55:29:2a:4f:14:9d:9a:6e:de:90:70:
+ c1:a4:26:4c:88:8e:78:48:ef:bd:9c:b0:a0:f5:f0:66:fc:fe:
+ 59:26:e1:79:ef:c8:b7:60:64:a8:8b:47:ea:2f:e0:83:99:da:
+ 41:19:d7:c5:be:05:fa:f2:90:11:f0:0a:ff:6c:dc:05:b4:d8:
+ 06:6f:a4:6f:8d:be:20:2b:54:db:f9:a2:45:83:9a:1e:a5:21:
+ 89:35:1d:7c:20:5c:17:fd:04:2e:45:d8:b2:c6:f8:42:99:fc:
+ 54:08:4e:4b:80:5f:39:37:ba:95:4e:a6:37:0a:9e:93:5e:87:
+ 5b:e9:90:d6:a8:b6:65:08:8d:61:49:eb:83:20:a9:5d:1b:16:
+ 60:62:6b:2f:54:fb:5a:02:0d:7a:27:e2:4b:e1:05:14:c2:e4:
+ e9:f9:70:c0:d9:f7:34:65:0e:a2:91:4b:ac:28:f2:b7:08:0f:
+ 98:ca:d7:3e:70:b6:c8:0b:f1:8b:9c:51:f8:c6:10:6c:d2:53:
+ 4f:62:8c:11:00:3e:88:df:bf:e6:d2:cc:70:bd:ed:25:9c:fb:
+ dd:24:0a:bd:59:91:4a:42:03:38:12:71:32:88:76:a0:8e:7c:
+ bb:32:ef:88:2a:1b:d4:6a:6f:50:b9:52:67:8b:ab:30:fa:1f:
+ fd:e3:24:9a
+-----BEGIN CERTIFICATE-----
+MIIEpjCCA46gAwIBAgIQKByJKWYUQ4BCY1U6MkCuszANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
+MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEczMB4XDTE1MDYzMDAwMDAwMFoXDTI1MDYyOTIzNTk1OVowRzELMAkG
+A1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xIDAeBgNVBAMTF1JhcGlk
+U1NMIFNIQTI1NiBDQSAtIEc0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAwJ46D5qyutPS3BXs0DBUWTBNQFGuQnFx0o1Tc4H+uODElsWOfsLxt2NKz6ce
+P6jnzlOg+i331ubOcBGm7uEDUtJo3j0IDYf9HNcLl2JtgjB2G0c6xPfO7R18jLcX
+jlOAHh0PXYz5kOQEHgJ+y7BJ79pSJfv7Z+3dhHRZhA7z3nBmjeRSOPdTWjcTZws+
+u6hYty7t/7deEXO5d0VSZ0auxNwkgYl2CsqhbGZzBIKq9XBsXxuaAHlG1n96Jhcw
+zzlLLHTZiUR2ENDt94u7iQV1TQsNs9rpv/FqfSoR2x6fjOPEBmnhHYhFOdFuVdiq
+t5tv6vTerBcRkl1Am4N7muL3qQIDAQABo4IBOjCCATYwLgYIKwYBBQUHAQEEIjAg
+MB4GCCsGAQUFBzABhhJodHRwOi8vZy5zeW1jZC5jb20wEgYDVR0TAQH/BAgwBgEB
+/wIBADBJBgNVHSAEQjBAMD4GBmeBDAECATA0MDIGCCsGAQUFBwIBFiZodHRwczov
+L3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2VzL2NwczA2BgNVHR8ELzAtMCugKaAn
+hiVodHRwOi8vZy5zeW1jYi5jb20vR2VvVHJ1c3RQQ0EtRzMuY3JsMB0GA1UdJQQW
+MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FPO1VgzECbC0zx+q+d0jVvB36KH5MB8GA1UdIwQYMBaAFMR5yo6hTgMdHNxr2zFb
+lD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQDDftiDSwRMVSkqTxSdmm7ekHDBpCZM
+iI54SO+9nLCg9fBm/P5ZJuF578i3YGSoi0fqL+CDmdpBGdfFvgX68pAR8Ar/bNwF
+tNgGb6Rvjb4gK1Tb+aJFg5oepSGJNR18IFwX/QQuRdiyxvhCmfxUCE5LgF85N7qV
+TqY3Cp6TXodb6ZDWqLZlCI1hSeuDIKldGxZgYmsvVPtaAg16J+JL4QUUwuTp+XDA
+2fc0ZQ6ikUusKPK3CA+Yytc+cLbIC/GLnFH4xhBs0lNPYowRAD6I37/m0sxwve0l
+nPvdJAq9WZFKQgM4EnEyiHagjny7Mu+IKhvUam9QuVJni6sw+h/94ySa
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert26[] = {
+ 0x30, 0x82, 0x04, 0xa6, 0x30, 0x82, 0x03, 0x8e, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x28, 0x1c, 0x89, 0x29, 0x66, 0x14, 0x43, 0x80, 0x42,
+ 0x63, 0x55, 0x3a, 0x32, 0x40, 0xae, 0xb3, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0x98, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x38, 0x20, 0x47, 0x65,
+ 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20,
+ 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c,
+ 0x79, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d,
+ 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x35, 0x30, 0x36, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
+ 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x35, 0x30, 0x36, 0x32, 0x39, 0x32, 0x33,
+ 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72,
+ 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x52, 0x61, 0x70, 0x69, 0x64,
+ 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43,
+ 0x41, 0x20, 0x2d, 0x20, 0x47, 0x34, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+ 0x01, 0x01, 0x00, 0xc0, 0x9e, 0x3a, 0x0f, 0x9a, 0xb2, 0xba, 0xd3, 0xd2,
+ 0xdc, 0x15, 0xec, 0xd0, 0x30, 0x54, 0x59, 0x30, 0x4d, 0x40, 0x51, 0xae,
+ 0x42, 0x71, 0x71, 0xd2, 0x8d, 0x53, 0x73, 0x81, 0xfe, 0xb8, 0xe0, 0xc4,
+ 0x96, 0xc5, 0x8e, 0x7e, 0xc2, 0xf1, 0xb7, 0x63, 0x4a, 0xcf, 0xa7, 0x1e,
+ 0x3f, 0xa8, 0xe7, 0xce, 0x53, 0xa0, 0xfa, 0x2d, 0xf7, 0xd6, 0xe6, 0xce,
+ 0x70, 0x11, 0xa6, 0xee, 0xe1, 0x03, 0x52, 0xd2, 0x68, 0xde, 0x3d, 0x08,
+ 0x0d, 0x87, 0xfd, 0x1c, 0xd7, 0x0b, 0x97, 0x62, 0x6d, 0x82, 0x30, 0x76,
+ 0x1b, 0x47, 0x3a, 0xc4, 0xf7, 0xce, 0xed, 0x1d, 0x7c, 0x8c, 0xb7, 0x17,
+ 0x8e, 0x53, 0x80, 0x1e, 0x1d, 0x0f, 0x5d, 0x8c, 0xf9, 0x90, 0xe4, 0x04,
+ 0x1e, 0x02, 0x7e, 0xcb, 0xb0, 0x49, 0xef, 0xda, 0x52, 0x25, 0xfb, 0xfb,
+ 0x67, 0xed, 0xdd, 0x84, 0x74, 0x59, 0x84, 0x0e, 0xf3, 0xde, 0x70, 0x66,
+ 0x8d, 0xe4, 0x52, 0x38, 0xf7, 0x53, 0x5a, 0x37, 0x13, 0x67, 0x0b, 0x3e,
+ 0xbb, 0xa8, 0x58, 0xb7, 0x2e, 0xed, 0xff, 0xb7, 0x5e, 0x11, 0x73, 0xb9,
+ 0x77, 0x45, 0x52, 0x67, 0x46, 0xae, 0xc4, 0xdc, 0x24, 0x81, 0x89, 0x76,
+ 0x0a, 0xca, 0xa1, 0x6c, 0x66, 0x73, 0x04, 0x82, 0xaa, 0xf5, 0x70, 0x6c,
+ 0x5f, 0x1b, 0x9a, 0x00, 0x79, 0x46, 0xd6, 0x7f, 0x7a, 0x26, 0x17, 0x30,
+ 0xcf, 0x39, 0x4b, 0x2c, 0x74, 0xd9, 0x89, 0x44, 0x76, 0x10, 0xd0, 0xed,
+ 0xf7, 0x8b, 0xbb, 0x89, 0x05, 0x75, 0x4d, 0x0b, 0x0d, 0xb3, 0xda, 0xe9,
+ 0xbf, 0xf1, 0x6a, 0x7d, 0x2a, 0x11, 0xdb, 0x1e, 0x9f, 0x8c, 0xe3, 0xc4,
+ 0x06, 0x69, 0xe1, 0x1d, 0x88, 0x45, 0x39, 0xd1, 0x6e, 0x55, 0xd8, 0xaa,
+ 0xb7, 0x9b, 0x6f, 0xea, 0xf4, 0xde, 0xac, 0x17, 0x11, 0x92, 0x5d, 0x40,
+ 0x9b, 0x83, 0x7b, 0x9a, 0xe2, 0xf7, 0xa9, 0x02, 0x03, 0x01, 0x00, 0x01,
+ 0xa3, 0x82, 0x01, 0x3a, 0x30, 0x82, 0x01, 0x36, 0x30, 0x2e, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22, 0x30, 0x20,
+ 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+ 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73,
+ 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03,
+ 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+ 0xff, 0x02, 0x01, 0x00, 0x30, 0x49, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+ 0x42, 0x30, 0x40, 0x30, 0x3e, 0x06, 0x06, 0x67, 0x81, 0x0c, 0x01, 0x02,
+ 0x01, 0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+ 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73,
+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x36, 0x06, 0x03, 0x55,
+ 0x1d, 0x1f, 0x04, 0x2f, 0x30, 0x2d, 0x30, 0x2b, 0xa0, 0x29, 0xa0, 0x27,
+ 0x86, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73,
+ 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x6f,
+ 0x54, 0x72, 0x75, 0x73, 0x74, 0x50, 0x43, 0x41, 0x2d, 0x47, 0x33, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16,
+ 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x0e,
+ 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
+ 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0xf3, 0xb5, 0x56, 0x0c, 0xc4, 0x09, 0xb0, 0xb4, 0xcf, 0x1f, 0xaa,
+ 0xf9, 0xdd, 0x23, 0x56, 0xf0, 0x77, 0xe8, 0xa1, 0xf9, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xc4, 0x79,
+ 0xca, 0x8e, 0xa1, 0x4e, 0x03, 0x1d, 0x1c, 0xdc, 0x6b, 0xdb, 0x31, 0x5b,
+ 0x94, 0x3e, 0x3f, 0x30, 0x7f, 0x2d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x01, 0x00, 0xc3, 0x7e, 0xd8, 0x83, 0x4b, 0x04, 0x4c, 0x55, 0x29, 0x2a,
+ 0x4f, 0x14, 0x9d, 0x9a, 0x6e, 0xde, 0x90, 0x70, 0xc1, 0xa4, 0x26, 0x4c,
+ 0x88, 0x8e, 0x78, 0x48, 0xef, 0xbd, 0x9c, 0xb0, 0xa0, 0xf5, 0xf0, 0x66,
+ 0xfc, 0xfe, 0x59, 0x26, 0xe1, 0x79, 0xef, 0xc8, 0xb7, 0x60, 0x64, 0xa8,
+ 0x8b, 0x47, 0xea, 0x2f, 0xe0, 0x83, 0x99, 0xda, 0x41, 0x19, 0xd7, 0xc5,
+ 0xbe, 0x05, 0xfa, 0xf2, 0x90, 0x11, 0xf0, 0x0a, 0xff, 0x6c, 0xdc, 0x05,
+ 0xb4, 0xd8, 0x06, 0x6f, 0xa4, 0x6f, 0x8d, 0xbe, 0x20, 0x2b, 0x54, 0xdb,
+ 0xf9, 0xa2, 0x45, 0x83, 0x9a, 0x1e, 0xa5, 0x21, 0x89, 0x35, 0x1d, 0x7c,
+ 0x20, 0x5c, 0x17, 0xfd, 0x04, 0x2e, 0x45, 0xd8, 0xb2, 0xc6, 0xf8, 0x42,
+ 0x99, 0xfc, 0x54, 0x08, 0x4e, 0x4b, 0x80, 0x5f, 0x39, 0x37, 0xba, 0x95,
+ 0x4e, 0xa6, 0x37, 0x0a, 0x9e, 0x93, 0x5e, 0x87, 0x5b, 0xe9, 0x90, 0xd6,
+ 0xa8, 0xb6, 0x65, 0x08, 0x8d, 0x61, 0x49, 0xeb, 0x83, 0x20, 0xa9, 0x5d,
+ 0x1b, 0x16, 0x60, 0x62, 0x6b, 0x2f, 0x54, 0xfb, 0x5a, 0x02, 0x0d, 0x7a,
+ 0x27, 0xe2, 0x4b, 0xe1, 0x05, 0x14, 0xc2, 0xe4, 0xe9, 0xf9, 0x70, 0xc0,
+ 0xd9, 0xf7, 0x34, 0x65, 0x0e, 0xa2, 0x91, 0x4b, 0xac, 0x28, 0xf2, 0xb7,
+ 0x08, 0x0f, 0x98, 0xca, 0xd7, 0x3e, 0x70, 0xb6, 0xc8, 0x0b, 0xf1, 0x8b,
+ 0x9c, 0x51, 0xf8, 0xc6, 0x10, 0x6c, 0xd2, 0x53, 0x4f, 0x62, 0x8c, 0x11,
+ 0x00, 0x3e, 0x88, 0xdf, 0xbf, 0xe6, 0xd2, 0xcc, 0x70, 0xbd, 0xed, 0x25,
+ 0x9c, 0xfb, 0xdd, 0x24, 0x0a, 0xbd, 0x59, 0x91, 0x4a, 0x42, 0x03, 0x38,
+ 0x12, 0x71, 0x32, 0x88, 0x76, 0xa0, 0x8e, 0x7c, 0xbb, 0x32, 0xef, 0x88,
+ 0x2a, 0x1b, 0xd4, 0x6a, 0x6f, 0x50, 0xb9, 0x52, 0x67, 0x8b, 0xab, 0x30,
+ 0xfa, 0x1f, 0xfd, 0xe3, 0x24, 0x9a,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ e4:05:47:83:0e:0c:64:52:97:6f:7a:35:49:c0:dd:48
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=PL, O=Unizeto Technologies S.A., OU=Certum Certification Authority, CN=Certum Trusted Network CA
+ Validity
+ Not Before: Jan 21 12:00:00 2015 GMT
+ Not After : Jan 18 12:00:00 2025 GMT
+ Subject: C=RU, O=Yandex LLC, OU=Yandex Certification Authority, CN=Yandex CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:a6:05:24:76:61:b9:9e:42:60:22:63:85:59:e5:
+ 9d:88:0d:df:ef:21:64:5a:26:94:71:3a:a4:7f:2b:
+ 53:c3:ac:7b:ba:95:42:6d:6a:5b:d6:7e:78:0c:67:
+ 40:98:2f:6a:2d:d0:b7:18:3a:7e:99:60:01:e5:27:
+ bf:ff:49:f5:cd:c4:58:c3:4c:e1:70:d5:fd:08:a8:
+ 79:95:76:1c:0e:05:41:fa:bd:80:38:2a:87:4f:c1:
+ 67:42:aa:17:a6:ee:a7:8c:8e:ef:2d:7f:7a:1d:05:
+ 17:8f:7e:3b:92:35:f5:68:ed:93:03:55:23:4f:4b:
+ a2:00:86:65:91:0f:eb:f6:3c:d5:db:6d:0e:ed:e8:
+ 7c:3a:c8:ba:b7:53:c1:a4:d8:40:02:e5:b5:a2:ca:
+ bf:da:9c:94:0d:fc:c5:1c:2a:59:88:62:57:93:2e:
+ 11:f0:38:2c:7a:81:2a:f2:25:15:17:35:70:2c:4b:
+ f7:23:4c:82:ef:33:9f:c2:9a:0b:a3:e2:5d:6b:38:
+ 77:f9:60:33:cf:2e:7b:56:b7:13:93:1f:34:97:71:
+ 99:76:02:46:35:14:7c:dc:ca:48:8a:0a:72:4b:78:
+ 6d:82:34:96:13:45:cf:02:2f:50:13:39:43:89:c0:
+ e1:74:d7:28:71:21:e5:aa:97:0e:ee:46:ec:93:f7:
+ 23:7d
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Subject Key Identifier:
+ 37:5C:E3:19:E0:B2:8E:A1:A8:4E:D2:CF:AB:D0:DC:E3:0B:5C:35:4D
+ X509v3 Authority Key Identifier:
+ keyid:08:76:CD:CB:07:FF:24:F6:C5:CD:ED:BB:90:BC:E2:84:37:46:75:F7
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.certum.pl/ctnca.crl
+
+ Authority Information Access:
+ OCSP - URI:http://subca.ocsp-certum.com
+ CA Issuers - URI:http://repository.certum.pl/ctnca.cer
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.certum.pl/CPS
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 02:5e:8e:7b:e0:66:a1:c6:ab:8b:18:1f:0e:b9:c4:cd:71:db:
+ 44:5c:03:7d:65:ea:b8:47:b5:1e:ce:24:70:a0:7f:d3:df:66:
+ 4b:8c:90:e2:a5:ed:9b:94:36:b4:a8:be:f0:74:8c:26:92:75:
+ 9d:56:50:9e:ad:d0:1a:a0:df:a4:14:56:10:75:93:7a:c1:f4:
+ 53:a0:76:74:2c:72:ba:b5:d1:c9:e2:dc:46:86:3f:1d:f6:33:
+ 87:59:ec:9c:dc:2d:1e:4d:43:1a:ce:ba:d9:87:7e:e2:47:45:
+ 72:3d:28:03:c9:0a:4d:e0:57:a3:5e:6e:7e:cc:5a:c8:c4:78:
+ 01:57:68:7a:38:3b:53:36:e7:92:6d:8a:2c:2f:d7:8b:b6:34:
+ a8:d1:b6:f8:5e:3b:ab:ed:a5:8f:39:6f:45:ad:cb:63:ed:6a:
+ 64:c9:10:a7:03:08:12:53:b1:1c:af:ca:f7:53:fc:d8:29:4b:
+ 1b:fb:38:cd:c0:63:ff:5f:e4:b9:8d:5e:aa:2b:d2:c3:22:35:
+ 31:f6:30:0e:53:32:f4:93:c5:43:cb:c8:f0:15:56:8f:00:19:
+ 87:ca:78:22:8d:a0:2e:db:2f:a0:c3:7e:29:5d:91:25:84:1d:
+ 1d:39:ab:1b:c5:d6:91:fe:69:0e:46:80:bc:45:7b:35:53:2a:
+ df:00:b6:77
+-----BEGIN CERTIFICATE-----
+MIIEqDCCA5CgAwIBAgIRAOQFR4MODGRSl296NUnA3UgwDQYJKoZIhvcNAQELBQAw
+fjELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
+QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEiMCAG
+A1UEAxMZQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQTAeFw0xNTAxMjExMjAwMDBa
+Fw0yNTAxMTgxMjAwMDBaMF8xCzAJBgNVBAYTAlJVMRMwEQYDVQQKEwpZYW5kZXgg
+TExDMScwJQYDVQQLEx5ZYW5kZXggQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEjAQ
+BgNVBAMTCVlhbmRleCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AKYFJHZhuZ5CYCJjhVnlnYgN3+8hZFomlHE6pH8rU8Ose7qVQm1qW9Z+eAxnQJgv
+ai3Qtxg6fplgAeUnv/9J9c3EWMNM4XDV/QioeZV2HA4FQfq9gDgqh0/BZ0KqF6bu
+p4yO7y1/eh0FF49+O5I19WjtkwNVI09LogCGZZEP6/Y81dttDu3ofDrIurdTwaTY
+QALltaLKv9qclA38xRwqWYhiV5MuEfA4LHqBKvIlFRc1cCxL9yNMgu8zn8KaC6Pi
+XWs4d/lgM88ue1a3E5MfNJdxmXYCRjUUfNzKSIoKckt4bYI0lhNFzwIvUBM5Q4nA
+4XTXKHEh5aqXDu5G7JP3I30CAwEAAaOCAT4wggE6MA8GA1UdEwEB/wQFMAMBAf8w
+HQYDVR0OBBYEFDdc4xngso6hqE7Sz6vQ3OMLXDVNMB8GA1UdIwQYMBaAFAh2zcsH
+/yT2xc3tu5C84oQ3RnX3MA4GA1UdDwEB/wQEAwIBBjAvBgNVHR8EKDAmMCSgIqAg
+hh5odHRwOi8vY3JsLmNlcnR1bS5wbC9jdG5jYS5jcmwwawYIKwYBBQUHAQEEXzBd
+MCgGCCsGAQUFBzABhhxodHRwOi8vc3ViY2Eub2NzcC1jZXJ0dW0uY29tMDEGCCsG
+AQUFBzAChiVodHRwOi8vcmVwb3NpdG9yeS5jZXJ0dW0ucGwvY3RuY2EuY2VyMDkG
+A1UdIAQyMDAwLgYEVR0gADAmMCQGCCsGAQUFBwIBFhhodHRwOi8vd3d3LmNlcnR1
+bS5wbC9DUFMwDQYJKoZIhvcNAQELBQADggEBAAJejnvgZqHGq4sYHw65xM1x20Rc
+A31l6rhHtR7OJHCgf9PfZkuMkOKl7ZuUNrSovvB0jCaSdZ1WUJ6t0Bqg36QUVhB1
+k3rB9FOgdnQscrq10cni3EaGPx32M4dZ7JzcLR5NQxrOutmHfuJHRXI9KAPJCk3g
+V6Nebn7MWsjEeAFXaHo4O1M255Jtiiwv14u2NKjRtvheO6vtpY85b0Wty2PtamTJ
+EKcDCBJTsRyvyvdT/NgpSxv7OM3AY/9f5LmNXqor0sMiNTH2MA5TMvSTxUPLyPAV
+Vo8AGYfKeCKNoC7bL6DDfildkSWEHR05qxvF1pH+aQ5GgLxFezVTKt8Atnc=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert27[] = {
+ 0x30, 0x82, 0x04, 0xa8, 0x30, 0x82, 0x03, 0x90, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x11, 0x00, 0xe4, 0x05, 0x47, 0x83, 0x0e, 0x0c, 0x64, 0x52,
+ 0x97, 0x6f, 0x7a, 0x35, 0x49, 0xc0, 0xdd, 0x48, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30,
+ 0x7e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x50, 0x4c, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x19, 0x55, 0x6e, 0x69, 0x7a, 0x65, 0x74, 0x6f, 0x20, 0x54, 0x65, 0x63,
+ 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x20, 0x53, 0x2e,
+ 0x41, 0x2e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x1e, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x20, 0x43, 0x65, 0x72, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 0x22, 0x30, 0x20, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x19, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d,
+ 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x20, 0x4e, 0x65, 0x74,
+ 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+ 0x35, 0x30, 0x31, 0x32, 0x31, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a,
+ 0x17, 0x0d, 0x32, 0x35, 0x30, 0x31, 0x31, 0x38, 0x31, 0x32, 0x30, 0x30,
+ 0x30, 0x30, 0x5a, 0x30, 0x5f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x52, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
+ 0x55, 0x04, 0x0a, 0x13, 0x0a, 0x59, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x20,
+ 0x4c, 0x4c, 0x43, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x1e, 0x59, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x43, 0x65, 0x72,
+ 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41,
+ 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 0x12, 0x30, 0x10,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x09, 0x59, 0x61, 0x6e, 0x64, 0x65,
+ 0x78, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+ 0x00, 0xa6, 0x05, 0x24, 0x76, 0x61, 0xb9, 0x9e, 0x42, 0x60, 0x22, 0x63,
+ 0x85, 0x59, 0xe5, 0x9d, 0x88, 0x0d, 0xdf, 0xef, 0x21, 0x64, 0x5a, 0x26,
+ 0x94, 0x71, 0x3a, 0xa4, 0x7f, 0x2b, 0x53, 0xc3, 0xac, 0x7b, 0xba, 0x95,
+ 0x42, 0x6d, 0x6a, 0x5b, 0xd6, 0x7e, 0x78, 0x0c, 0x67, 0x40, 0x98, 0x2f,
+ 0x6a, 0x2d, 0xd0, 0xb7, 0x18, 0x3a, 0x7e, 0x99, 0x60, 0x01, 0xe5, 0x27,
+ 0xbf, 0xff, 0x49, 0xf5, 0xcd, 0xc4, 0x58, 0xc3, 0x4c, 0xe1, 0x70, 0xd5,
+ 0xfd, 0x08, 0xa8, 0x79, 0x95, 0x76, 0x1c, 0x0e, 0x05, 0x41, 0xfa, 0xbd,
+ 0x80, 0x38, 0x2a, 0x87, 0x4f, 0xc1, 0x67, 0x42, 0xaa, 0x17, 0xa6, 0xee,
+ 0xa7, 0x8c, 0x8e, 0xef, 0x2d, 0x7f, 0x7a, 0x1d, 0x05, 0x17, 0x8f, 0x7e,
+ 0x3b, 0x92, 0x35, 0xf5, 0x68, 0xed, 0x93, 0x03, 0x55, 0x23, 0x4f, 0x4b,
+ 0xa2, 0x00, 0x86, 0x65, 0x91, 0x0f, 0xeb, 0xf6, 0x3c, 0xd5, 0xdb, 0x6d,
+ 0x0e, 0xed, 0xe8, 0x7c, 0x3a, 0xc8, 0xba, 0xb7, 0x53, 0xc1, 0xa4, 0xd8,
+ 0x40, 0x02, 0xe5, 0xb5, 0xa2, 0xca, 0xbf, 0xda, 0x9c, 0x94, 0x0d, 0xfc,
+ 0xc5, 0x1c, 0x2a, 0x59, 0x88, 0x62, 0x57, 0x93, 0x2e, 0x11, 0xf0, 0x38,
+ 0x2c, 0x7a, 0x81, 0x2a, 0xf2, 0x25, 0x15, 0x17, 0x35, 0x70, 0x2c, 0x4b,
+ 0xf7, 0x23, 0x4c, 0x82, 0xef, 0x33, 0x9f, 0xc2, 0x9a, 0x0b, 0xa3, 0xe2,
+ 0x5d, 0x6b, 0x38, 0x77, 0xf9, 0x60, 0x33, 0xcf, 0x2e, 0x7b, 0x56, 0xb7,
+ 0x13, 0x93, 0x1f, 0x34, 0x97, 0x71, 0x99, 0x76, 0x02, 0x46, 0x35, 0x14,
+ 0x7c, 0xdc, 0xca, 0x48, 0x8a, 0x0a, 0x72, 0x4b, 0x78, 0x6d, 0x82, 0x34,
+ 0x96, 0x13, 0x45, 0xcf, 0x02, 0x2f, 0x50, 0x13, 0x39, 0x43, 0x89, 0xc0,
+ 0xe1, 0x74, 0xd7, 0x28, 0x71, 0x21, 0xe5, 0xaa, 0x97, 0x0e, 0xee, 0x46,
+ 0xec, 0x93, 0xf7, 0x23, 0x7d, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+ 0x01, 0x3e, 0x30, 0x82, 0x01, 0x3a, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
+ 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x37, 0x5c,
+ 0xe3, 0x19, 0xe0, 0xb2, 0x8e, 0xa1, 0xa8, 0x4e, 0xd2, 0xcf, 0xab, 0xd0,
+ 0xdc, 0xe3, 0x0b, 0x5c, 0x35, 0x4d, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x08, 0x76, 0xcd, 0xcb, 0x07,
+ 0xff, 0x24, 0xf6, 0xc5, 0xcd, 0xed, 0xbb, 0x90, 0xbc, 0xe2, 0x84, 0x37,
+ 0x46, 0x75, 0xf7, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2f, 0x06, 0x03, 0x55,
+ 0x1d, 0x1f, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0xa0, 0x22, 0xa0, 0x20,
+ 0x86, 0x1e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c,
+ 0x2e, 0x63, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x2e, 0x70, 0x6c, 0x2f, 0x63,
+ 0x74, 0x6e, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x6b, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x5f, 0x30, 0x5d,
+ 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+ 0x86, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x75, 0x62,
+ 0x63, 0x61, 0x2e, 0x6f, 0x63, 0x73, 0x70, 0x2d, 0x63, 0x65, 0x72, 0x74,
+ 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x25, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72,
+ 0x79, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x2e, 0x70, 0x6c, 0x2f,
+ 0x63, 0x74, 0x6e, 0x63, 0x61, 0x2e, 0x63, 0x65, 0x72, 0x30, 0x39, 0x06,
+ 0x03, 0x55, 0x1d, 0x20, 0x04, 0x32, 0x30, 0x30, 0x30, 0x2e, 0x06, 0x04,
+ 0x55, 0x1d, 0x20, 0x00, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x18, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x75,
+ 0x6d, 0x2e, 0x70, 0x6c, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x01, 0x00, 0x02, 0x5e, 0x8e, 0x7b, 0xe0, 0x66, 0xa1, 0xc6,
+ 0xab, 0x8b, 0x18, 0x1f, 0x0e, 0xb9, 0xc4, 0xcd, 0x71, 0xdb, 0x44, 0x5c,
+ 0x03, 0x7d, 0x65, 0xea, 0xb8, 0x47, 0xb5, 0x1e, 0xce, 0x24, 0x70, 0xa0,
+ 0x7f, 0xd3, 0xdf, 0x66, 0x4b, 0x8c, 0x90, 0xe2, 0xa5, 0xed, 0x9b, 0x94,
+ 0x36, 0xb4, 0xa8, 0xbe, 0xf0, 0x74, 0x8c, 0x26, 0x92, 0x75, 0x9d, 0x56,
+ 0x50, 0x9e, 0xad, 0xd0, 0x1a, 0xa0, 0xdf, 0xa4, 0x14, 0x56, 0x10, 0x75,
+ 0x93, 0x7a, 0xc1, 0xf4, 0x53, 0xa0, 0x76, 0x74, 0x2c, 0x72, 0xba, 0xb5,
+ 0xd1, 0xc9, 0xe2, 0xdc, 0x46, 0x86, 0x3f, 0x1d, 0xf6, 0x33, 0x87, 0x59,
+ 0xec, 0x9c, 0xdc, 0x2d, 0x1e, 0x4d, 0x43, 0x1a, 0xce, 0xba, 0xd9, 0x87,
+ 0x7e, 0xe2, 0x47, 0x45, 0x72, 0x3d, 0x28, 0x03, 0xc9, 0x0a, 0x4d, 0xe0,
+ 0x57, 0xa3, 0x5e, 0x6e, 0x7e, 0xcc, 0x5a, 0xc8, 0xc4, 0x78, 0x01, 0x57,
+ 0x68, 0x7a, 0x38, 0x3b, 0x53, 0x36, 0xe7, 0x92, 0x6d, 0x8a, 0x2c, 0x2f,
+ 0xd7, 0x8b, 0xb6, 0x34, 0xa8, 0xd1, 0xb6, 0xf8, 0x5e, 0x3b, 0xab, 0xed,
+ 0xa5, 0x8f, 0x39, 0x6f, 0x45, 0xad, 0xcb, 0x63, 0xed, 0x6a, 0x64, 0xc9,
+ 0x10, 0xa7, 0x03, 0x08, 0x12, 0x53, 0xb1, 0x1c, 0xaf, 0xca, 0xf7, 0x53,
+ 0xfc, 0xd8, 0x29, 0x4b, 0x1b, 0xfb, 0x38, 0xcd, 0xc0, 0x63, 0xff, 0x5f,
+ 0xe4, 0xb9, 0x8d, 0x5e, 0xaa, 0x2b, 0xd2, 0xc3, 0x22, 0x35, 0x31, 0xf6,
+ 0x30, 0x0e, 0x53, 0x32, 0xf4, 0x93, 0xc5, 0x43, 0xcb, 0xc8, 0xf0, 0x15,
+ 0x56, 0x8f, 0x00, 0x19, 0x87, 0xca, 0x78, 0x22, 0x8d, 0xa0, 0x2e, 0xdb,
+ 0x2f, 0xa0, 0xc3, 0x7e, 0x29, 0x5d, 0x91, 0x25, 0x84, 0x1d, 0x1d, 0x39,
+ 0xab, 0x1b, 0xc5, 0xd6, 0x91, 0xfe, 0x69, 0x0e, 0x46, 0x80, 0xbc, 0x45,
+ 0x7b, 0x35, 0x53, 0x2a, 0xdf, 0x00, 0xb6, 0x77,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 5d:72:fb:33:76:20:f6:4c:72:80:db:e9:12:81:ff:6a
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+ Validity
+ Not Before: Oct 31 00:00:00 2013 GMT
+ Not After : Oct 30 23:59:59 2023 GMT
+ Subject: C=US, O=thawte, Inc., CN=thawte EV SSL CA - G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:c4:dd:da:94:1e:32:b2:2e:a0:83:c0:a6:7d:5f:
+ 65:2d:fd:27:b8:73:0e:f8:0b:a9:d4:56:26:69:98:
+ 67:35:39:64:58:ce:82:6f:98:94:d1:8f:e0:90:d6:
+ ed:55:4b:98:4b:d7:10:59:34:02:1b:e7:51:31:51:
+ c4:38:c2:bc:db:03:5c:ca:e1:7c:dc:4f:59:97:ea:
+ 07:7f:0f:85:3e:92:ea:aa:a7:d9:be:01:41:e4:62:
+ 56:47:36:bd:57:91:e6:21:d3:f8:41:0b:d8:ba:e8:
+ ed:81:ad:70:c0:8b:6e:f3:89:6e:27:9e:a6:a6:73:
+ 59:bb:71:00:d4:4f:4b:48:e9:d5:c9:27:36:9c:7c:
+ 1c:02:aa:ac:bd:3b:d1:53:83:6a:1f:e6:08:47:33:
+ a7:b1:9f:02:be:9b:47:ed:33:04:dc:1c:80:27:d1:
+ 4a:33:a0:8c:eb:01:47:a1:32:90:64:7b:c4:e0:84:
+ c9:32:e9:dd:34:1f:8a:68:67:f3:ad:10:63:eb:ee:
+ 8a:9a:b1:2a:1b:26:74:a1:2a:b0:8f:fe:52:98:46:
+ 97:cf:a3:56:1c:6f:6e:99:97:8d:26:0e:a9:ec:c2:
+ 53:70:fc:7a:a5:19:49:bd:b5:17:82:55:de:97:e0:
+ 5d:62:84:81:f0:70:a8:34:53:4f:14:fd:3d:5d:3d:
+ 6f:b9
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://t2.symcb.com
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.thawte.com/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://t1.symcb.com/ThawtePCA.crl
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-536
+ X509v3 Subject Key Identifier:
+ F0:70:51:DA:D3:2A:91:4F:52:77:D7:86:77:74:0F:CE:71:1A:6C:22
+ X509v3 Authority Key Identifier:
+ keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+ Signature Algorithm: sha256WithRSAEncryption
+ a1:2e:94:3e:9b:16:f4:58:1a:6f:c1:fa:c1:7e:43:93:b2:c3:
+ f7:89:eb:13:62:5d:dd:cc:61:13:2b:1d:4e:88:79:11:62:14:
+ 37:30:46:ff:89:62:10:85:2a:87:1e:f8:e2:af:fe:93:02:93:
+ ca:f2:e9:46:03:6b:a1:1a:ac:d5:f0:80:1b:98:6f:b8:3a:50:
+ f8:54:71:06:03:e7:84:cc:8e:61:d2:5f:4d:0c:97:02:65:b5:
+ 8c:26:bc:05:98:f4:dc:c6:af:e4:57:7f:e3:dc:a1:d7:27:47:
+ 2a:e0:2c:3f:09:74:dc:5a:e5:b5:7c:fa:82:9a:15:fa:74:2b:
+ 84:2e:6b:ac:ef:35:a6:30:fa:47:4a:aa:36:44:f6:5a:91:07:
+ d3:e4:4e:97:3f:a6:53:d8:29:33:32:6f:8b:3d:b5:a5:0d:e5:
+ e4:8a:e8:f5:c0:fa:af:d8:37:28:27:c3:ed:34:31:d9:7c:a6:
+ af:4d:12:4f:d0:2b:92:9c:69:95:f2:28:a6:fe:a8:c6:e0:2c:
+ 4d:36:eb:11:34:d6:e1:81:99:9d:41:f2:e7:c5:57:05:0e:19:
+ ca:af:42:39:1f:a7:27:5e:e0:0a:17:b8:ae:47:ab:92:f1:8a:
+ 04:df:30:e0:bb:4f:8a:f9:1b:88:4f:03:b4:25:7a:78:de:2e:
+ 7d:29:d1:31
+-----BEGIN CERTIFICATE-----
+MIIErzCCA5egAwIBAgIQXXL7M3Yg9kxygNvpEoH/ajANBgkqhkiG9w0BAQsFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTMxMDMxMDAwMDAwWhcNMjMx
+MDMwMjM1OTU5WjBEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
+MR4wHAYDVQQDExV0aGF3dGUgRVYgU1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQDE3dqUHjKyLqCDwKZ9X2Ut/Se4cw74C6nUViZpmGc1
+OWRYzoJvmJTRj+CQ1u1VS5hL1xBZNAIb51ExUcQ4wrzbA1zK4XzcT1mX6gd/D4U+
+kuqqp9m+AUHkYlZHNr1XkeYh0/hBC9i66O2BrXDAi27ziW4nnqamc1m7cQDUT0tI
+6dXJJzacfBwCqqy9O9FTg2of5ghHM6exnwK+m0ftMwTcHIAn0UozoIzrAUehMpBk
+e8TghMky6d00H4poZ/OtEGPr7oqasSobJnShKrCP/lKYRpfPo1Ycb26Zl40mDqns
+wlNw/HqlGUm9tReCVd6X4F1ihIHwcKg0U08U/T1dPW+5AgMBAAGjggE1MIIBMTAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAvBggrBgEFBQcBAQQj
+MCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly90Mi5zeW1jYi5jb20wOwYDVR0gBDQwMjAw
+BgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHBzOi8vd3d3LnRoYXd0ZS5jb20vY3Bz
+MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly90MS5zeW1jYi5jb20vVGhhd3RlUENB
+LmNybDApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0ktMS01MzYw
+HQYDVR0OBBYEFPBwUdrTKpFPUnfXhnd0D85xGmwiMB8GA1UdIwQYMBaAFHtbRc+v
+zst6/TGSGmq280brV0hQMA0GCSqGSIb3DQEBCwUAA4IBAQChLpQ+mxb0WBpvwfrB
+fkOTssP3iesTYl3dzGETKx1OiHkRYhQ3MEb/iWIQhSqHHvjir/6TApPK8ulGA2uh
+GqzV8IAbmG+4OlD4VHEGA+eEzI5h0l9NDJcCZbWMJrwFmPTcxq/kV3/j3KHXJ0cq
+4Cw/CXTcWuW1fPqCmhX6dCuELmus7zWmMPpHSqo2RPZakQfT5E6XP6ZT2CkzMm+L
+PbWlDeXkiuj1wPqv2DcoJ8PtNDHZfKavTRJP0CuSnGmV8iim/qjG4CxNNusRNNbh
+gZmdQfLnxVcFDhnKr0I5H6cnXuAKF7iuR6uS8YoE3zDgu0+K+RuITwO0JXp43i59
+KdEx
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert28[] = {
+ 0x30, 0x82, 0x04, 0xaf, 0x30, 0x82, 0x03, 0x97, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x5d, 0x72, 0xfb, 0x33, 0x76, 0x20, 0xf6, 0x4c, 0x72,
+ 0x80, 0xdb, 0xe9, 0x12, 0x81, 0xff, 0x6a, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+ 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+ 0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+ 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31,
+ 0x30, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x44,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x15, 0x74,
+ 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x45, 0x56, 0x20, 0x53, 0x53, 0x4c,
+ 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xc4, 0xdd, 0xda, 0x94, 0x1e, 0x32, 0xb2,
+ 0x2e, 0xa0, 0x83, 0xc0, 0xa6, 0x7d, 0x5f, 0x65, 0x2d, 0xfd, 0x27, 0xb8,
+ 0x73, 0x0e, 0xf8, 0x0b, 0xa9, 0xd4, 0x56, 0x26, 0x69, 0x98, 0x67, 0x35,
+ 0x39, 0x64, 0x58, 0xce, 0x82, 0x6f, 0x98, 0x94, 0xd1, 0x8f, 0xe0, 0x90,
+ 0xd6, 0xed, 0x55, 0x4b, 0x98, 0x4b, 0xd7, 0x10, 0x59, 0x34, 0x02, 0x1b,
+ 0xe7, 0x51, 0x31, 0x51, 0xc4, 0x38, 0xc2, 0xbc, 0xdb, 0x03, 0x5c, 0xca,
+ 0xe1, 0x7c, 0xdc, 0x4f, 0x59, 0x97, 0xea, 0x07, 0x7f, 0x0f, 0x85, 0x3e,
+ 0x92, 0xea, 0xaa, 0xa7, 0xd9, 0xbe, 0x01, 0x41, 0xe4, 0x62, 0x56, 0x47,
+ 0x36, 0xbd, 0x57, 0x91, 0xe6, 0x21, 0xd3, 0xf8, 0x41, 0x0b, 0xd8, 0xba,
+ 0xe8, 0xed, 0x81, 0xad, 0x70, 0xc0, 0x8b, 0x6e, 0xf3, 0x89, 0x6e, 0x27,
+ 0x9e, 0xa6, 0xa6, 0x73, 0x59, 0xbb, 0x71, 0x00, 0xd4, 0x4f, 0x4b, 0x48,
+ 0xe9, 0xd5, 0xc9, 0x27, 0x36, 0x9c, 0x7c, 0x1c, 0x02, 0xaa, 0xac, 0xbd,
+ 0x3b, 0xd1, 0x53, 0x83, 0x6a, 0x1f, 0xe6, 0x08, 0x47, 0x33, 0xa7, 0xb1,
+ 0x9f, 0x02, 0xbe, 0x9b, 0x47, 0xed, 0x33, 0x04, 0xdc, 0x1c, 0x80, 0x27,
+ 0xd1, 0x4a, 0x33, 0xa0, 0x8c, 0xeb, 0x01, 0x47, 0xa1, 0x32, 0x90, 0x64,
+ 0x7b, 0xc4, 0xe0, 0x84, 0xc9, 0x32, 0xe9, 0xdd, 0x34, 0x1f, 0x8a, 0x68,
+ 0x67, 0xf3, 0xad, 0x10, 0x63, 0xeb, 0xee, 0x8a, 0x9a, 0xb1, 0x2a, 0x1b,
+ 0x26, 0x74, 0xa1, 0x2a, 0xb0, 0x8f, 0xfe, 0x52, 0x98, 0x46, 0x97, 0xcf,
+ 0xa3, 0x56, 0x1c, 0x6f, 0x6e, 0x99, 0x97, 0x8d, 0x26, 0x0e, 0xa9, 0xec,
+ 0xc2, 0x53, 0x70, 0xfc, 0x7a, 0xa5, 0x19, 0x49, 0xbd, 0xb5, 0x17, 0x82,
+ 0x55, 0xde, 0x97, 0xe0, 0x5d, 0x62, 0x84, 0x81, 0xf0, 0x70, 0xa8, 0x34,
+ 0x53, 0x4f, 0x14, 0xfd, 0x3d, 0x5d, 0x3d, 0x6f, 0xb9, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x35, 0x30, 0x82, 0x01, 0x31, 0x30, 0x12,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06,
+ 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2f,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x23,
+ 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x74,
+ 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+ 0x3b, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30,
+ 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74,
+ 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68,
+ 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73,
+ 0x30, 0x32, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30,
+ 0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x74, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41,
+ 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04,
+ 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74,
+ 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x35, 0x33, 0x36, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xf0, 0x70,
+ 0x51, 0xda, 0xd3, 0x2a, 0x91, 0x4f, 0x52, 0x77, 0xd7, 0x86, 0x77, 0x74,
+ 0x0f, 0xce, 0x71, 0x1a, 0x6c, 0x22, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7b, 0x5b, 0x45, 0xcf, 0xaf,
+ 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a, 0x6a, 0xb6, 0xf3, 0x46, 0xeb,
+ 0x57, 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xa1,
+ 0x2e, 0x94, 0x3e, 0x9b, 0x16, 0xf4, 0x58, 0x1a, 0x6f, 0xc1, 0xfa, 0xc1,
+ 0x7e, 0x43, 0x93, 0xb2, 0xc3, 0xf7, 0x89, 0xeb, 0x13, 0x62, 0x5d, 0xdd,
+ 0xcc, 0x61, 0x13, 0x2b, 0x1d, 0x4e, 0x88, 0x79, 0x11, 0x62, 0x14, 0x37,
+ 0x30, 0x46, 0xff, 0x89, 0x62, 0x10, 0x85, 0x2a, 0x87, 0x1e, 0xf8, 0xe2,
+ 0xaf, 0xfe, 0x93, 0x02, 0x93, 0xca, 0xf2, 0xe9, 0x46, 0x03, 0x6b, 0xa1,
+ 0x1a, 0xac, 0xd5, 0xf0, 0x80, 0x1b, 0x98, 0x6f, 0xb8, 0x3a, 0x50, 0xf8,
+ 0x54, 0x71, 0x06, 0x03, 0xe7, 0x84, 0xcc, 0x8e, 0x61, 0xd2, 0x5f, 0x4d,
+ 0x0c, 0x97, 0x02, 0x65, 0xb5, 0x8c, 0x26, 0xbc, 0x05, 0x98, 0xf4, 0xdc,
+ 0xc6, 0xaf, 0xe4, 0x57, 0x7f, 0xe3, 0xdc, 0xa1, 0xd7, 0x27, 0x47, 0x2a,
+ 0xe0, 0x2c, 0x3f, 0x09, 0x74, 0xdc, 0x5a, 0xe5, 0xb5, 0x7c, 0xfa, 0x82,
+ 0x9a, 0x15, 0xfa, 0x74, 0x2b, 0x84, 0x2e, 0x6b, 0xac, 0xef, 0x35, 0xa6,
+ 0x30, 0xfa, 0x47, 0x4a, 0xaa, 0x36, 0x44, 0xf6, 0x5a, 0x91, 0x07, 0xd3,
+ 0xe4, 0x4e, 0x97, 0x3f, 0xa6, 0x53, 0xd8, 0x29, 0x33, 0x32, 0x6f, 0x8b,
+ 0x3d, 0xb5, 0xa5, 0x0d, 0xe5, 0xe4, 0x8a, 0xe8, 0xf5, 0xc0, 0xfa, 0xaf,
+ 0xd8, 0x37, 0x28, 0x27, 0xc3, 0xed, 0x34, 0x31, 0xd9, 0x7c, 0xa6, 0xaf,
+ 0x4d, 0x12, 0x4f, 0xd0, 0x2b, 0x92, 0x9c, 0x69, 0x95, 0xf2, 0x28, 0xa6,
+ 0xfe, 0xa8, 0xc6, 0xe0, 0x2c, 0x4d, 0x36, 0xeb, 0x11, 0x34, 0xd6, 0xe1,
+ 0x81, 0x99, 0x9d, 0x41, 0xf2, 0xe7, 0xc5, 0x57, 0x05, 0x0e, 0x19, 0xca,
+ 0xaf, 0x42, 0x39, 0x1f, 0xa7, 0x27, 0x5e, 0xe0, 0x0a, 0x17, 0xb8, 0xae,
+ 0x47, 0xab, 0x92, 0xf1, 0x8a, 0x04, 0xdf, 0x30, 0xe0, 0xbb, 0x4f, 0x8a,
+ 0xf9, 0x1b, 0x88, 0x4f, 0x03, 0xb4, 0x25, 0x7a, 0x78, 0xde, 0x2e, 0x7d,
+ 0x29, 0xd1, 0x31,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 04:e1:e7:a4:dc:5c:f2:f3:6d:c0:2b:42:b8:5d:15:9f
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
+ Validity
+ Not Before: Oct 22 12:00:00 2013 GMT
+ Not After : Oct 22 12:00:00 2028 GMT
+ Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 High Assurance Server CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b6:e0:2f:c2:24:06:c8:6d:04:5f:d7:ef:0a:64:
+ 06:b2:7d:22:26:65:16:ae:42:40:9b:ce:dc:9f:9f:
+ 76:07:3e:c3:30:55:87:19:b9:4f:94:0e:5a:94:1f:
+ 55:56:b4:c2:02:2a:af:d0:98:ee:0b:40:d7:c4:d0:
+ 3b:72:c8:14:9e:ef:90:b1:11:a9:ae:d2:c8:b8:43:
+ 3a:d9:0b:0b:d5:d5:95:f5:40:af:c8:1d:ed:4d:9c:
+ 5f:57:b7:86:50:68:99:f5:8a:da:d2:c7:05:1f:a8:
+ 97:c9:dc:a4:b1:82:84:2d:c6:ad:a5:9c:c7:19:82:
+ a6:85:0f:5e:44:58:2a:37:8f:fd:35:f1:0b:08:27:
+ 32:5a:f5:bb:8b:9e:a4:bd:51:d0:27:e2:dd:3b:42:
+ 33:a3:05:28:c4:bb:28:cc:9a:ac:2b:23:0d:78:c6:
+ 7b:e6:5e:71:b7:4a:3e:08:fb:81:b7:16:16:a1:9d:
+ 23:12:4d:e5:d7:92:08:ac:75:a4:9c:ba:cd:17:b2:
+ 1e:44:35:65:7f:53:25:39:d1:1c:0a:9a:63:1b:19:
+ 92:74:68:0a:37:c2:c2:52:48:cb:39:5a:a2:b6:e1:
+ 5d:c1:dd:a0:20:b8:21:a2:93:26:6f:14:4a:21:41:
+ c7:ed:6d:9b:f2:48:2f:f3:03:f5:a2:68:92:53:2f:
+ 5e:e3
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication
+ Authority Information Access:
+ OCSP - URI:http://ocsp.digicert.com
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl4.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.digicert.com/CPS
+
+ X509v3 Subject Key Identifier:
+ 51:68:FF:90:AF:02:07:75:3C:CC:D9:65:64:62:A2:12:B8:59:72:3B
+ X509v3 Authority Key Identifier:
+ keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 18:8a:95:89:03:e6:6d:df:5c:fc:1d:68:ea:4a:8f:83:d6:51:
+ 2f:8d:6b:44:16:9e:ac:63:f5:d2:6e:6c:84:99:8b:aa:81:71:
+ 84:5b:ed:34:4e:b0:b7:79:92:29:cc:2d:80:6a:f0:8e:20:e1:
+ 79:a4:fe:03:47:13:ea:f5:86:ca:59:71:7d:f4:04:96:6b:d3:
+ 59:58:3d:fe:d3:31:25:5c:18:38:84:a3:e6:9f:82:fd:8c:5b:
+ 98:31:4e:cd:78:9e:1a:fd:85:cb:49:aa:f2:27:8b:99:72:fc:
+ 3e:aa:d5:41:0b:da:d5:36:a1:bf:1c:6e:47:49:7f:5e:d9:48:
+ 7c:03:d9:fd:8b:49:a0:98:26:42:40:eb:d6:92:11:a4:64:0a:
+ 57:54:c4:f5:1d:d6:02:5e:6b:ac:ee:c4:80:9a:12:72:fa:56:
+ 93:d7:ff:bf:30:85:06:30:bf:0b:7f:4e:ff:57:05:9d:24:ed:
+ 85:c3:2b:fb:a6:75:a8:ac:2d:16:ef:7d:79:27:b2:eb:c2:9d:
+ 0b:07:ea:aa:85:d3:01:a3:20:28:41:59:43:28:d2:81:e3:aa:
+ f6:ec:7b:3b:77:b6:40:62:80:05:41:45:01:ef:17:06:3e:de:
+ c0:33:9b:67:d3:61:2e:72:87:e4:69:fc:12:00:57:40:1e:70:
+ f5:1e:c9:b4
+-----BEGIN CERTIFICATE-----
+MIIEsTCCA5mgAwIBAgIQBOHnpNxc8vNtwCtCuF0VnzANBgkqhkiG9w0BAQsFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowcDEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTEvMC0GA1UEAxMmRGlnaUNlcnQgU0hBMiBIaWdoIEFzc3Vy
+YW5jZSBTZXJ2ZXIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2
+4C/CJAbIbQRf1+8KZAayfSImZRauQkCbztyfn3YHPsMwVYcZuU+UDlqUH1VWtMIC
+Kq/QmO4LQNfE0DtyyBSe75CxEamu0si4QzrZCwvV1ZX1QK/IHe1NnF9Xt4ZQaJn1
+itrSxwUfqJfJ3KSxgoQtxq2lnMcZgqaFD15EWCo3j/018QsIJzJa9buLnqS9UdAn
+4t07QjOjBSjEuyjMmqwrIw14xnvmXnG3Sj4I+4G3FhahnSMSTeXXkgisdaScus0X
+sh5ENWV/UyU50RwKmmMbGZJ0aAo3wsJSSMs5WqK24V3B3aAguCGikyZvFEohQcft
+bZvySC/zA/WiaJJTL17jAgMBAAGjggFJMIIBRTASBgNVHRMBAf8ECDAGAQH/AgEA
+MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
+NAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy
+dC5jb20wSwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNlcnQuY29t
+L0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDA9BgNVHSAENjA0MDIG
+BFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQ
+UzAdBgNVHQ4EFgQUUWj/kK8CB3U8zNllZGKiErhZcjswHwYDVR0jBBgwFoAUsT7D
+aQP4v0cB1JgmGggC72NkK8MwDQYJKoZIhvcNAQELBQADggEBABiKlYkD5m3fXPwd
+aOpKj4PWUS+Na0QWnqxj9dJubISZi6qBcYRb7TROsLd5kinMLYBq8I4g4Xmk/gNH
+E+r1hspZcX30BJZr01lYPf7TMSVcGDiEo+afgv2MW5gxTs14nhr9hctJqvIni5ly
+/D6q1UEL2tU2ob8cbkdJf17ZSHwD2f2LSaCYJkJA69aSEaRkCldUxPUd1gJea6zu
+xICaEnL6VpPX/78whQYwvwt/Tv9XBZ0k7YXDK/umdaisLRbvfXknsuvCnQsH6qqF
+0wGjIChBWUMo0oHjqvbsezt3tkBigAVBRQHvFwY+3sAzm2fTYS5yh+Rp/BIAV0Ae
+cPUeybQ=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert29[] = {
+ 0x30, 0x82, 0x04, 0xb1, 0x30, 0x82, 0x03, 0x99, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x04, 0xe1, 0xe7, 0xa4, 0xdc, 0x5c, 0xf2, 0xf3, 0x6d,
+ 0xc0, 0x2b, 0x42, 0xb8, 0x5d, 0x15, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x6c,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+ 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+ 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x22, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48,
+ 0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63,
+ 0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+ 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x32, 0x32, 0x31, 0x32,
+ 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x38, 0x31, 0x30, 0x32,
+ 0x32, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x70, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44, 0x69,
+ 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x19,
+ 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77, 0x77, 0x77,
+ 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x31, 0x2f, 0x30, 0x2d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x26,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x48, 0x41,
+ 0x32, 0x20, 0x48, 0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72,
+ 0x61, 0x6e, 0x63, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20,
+ 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xb6,
+ 0xe0, 0x2f, 0xc2, 0x24, 0x06, 0xc8, 0x6d, 0x04, 0x5f, 0xd7, 0xef, 0x0a,
+ 0x64, 0x06, 0xb2, 0x7d, 0x22, 0x26, 0x65, 0x16, 0xae, 0x42, 0x40, 0x9b,
+ 0xce, 0xdc, 0x9f, 0x9f, 0x76, 0x07, 0x3e, 0xc3, 0x30, 0x55, 0x87, 0x19,
+ 0xb9, 0x4f, 0x94, 0x0e, 0x5a, 0x94, 0x1f, 0x55, 0x56, 0xb4, 0xc2, 0x02,
+ 0x2a, 0xaf, 0xd0, 0x98, 0xee, 0x0b, 0x40, 0xd7, 0xc4, 0xd0, 0x3b, 0x72,
+ 0xc8, 0x14, 0x9e, 0xef, 0x90, 0xb1, 0x11, 0xa9, 0xae, 0xd2, 0xc8, 0xb8,
+ 0x43, 0x3a, 0xd9, 0x0b, 0x0b, 0xd5, 0xd5, 0x95, 0xf5, 0x40, 0xaf, 0xc8,
+ 0x1d, 0xed, 0x4d, 0x9c, 0x5f, 0x57, 0xb7, 0x86, 0x50, 0x68, 0x99, 0xf5,
+ 0x8a, 0xda, 0xd2, 0xc7, 0x05, 0x1f, 0xa8, 0x97, 0xc9, 0xdc, 0xa4, 0xb1,
+ 0x82, 0x84, 0x2d, 0xc6, 0xad, 0xa5, 0x9c, 0xc7, 0x19, 0x82, 0xa6, 0x85,
+ 0x0f, 0x5e, 0x44, 0x58, 0x2a, 0x37, 0x8f, 0xfd, 0x35, 0xf1, 0x0b, 0x08,
+ 0x27, 0x32, 0x5a, 0xf5, 0xbb, 0x8b, 0x9e, 0xa4, 0xbd, 0x51, 0xd0, 0x27,
+ 0xe2, 0xdd, 0x3b, 0x42, 0x33, 0xa3, 0x05, 0x28, 0xc4, 0xbb, 0x28, 0xcc,
+ 0x9a, 0xac, 0x2b, 0x23, 0x0d, 0x78, 0xc6, 0x7b, 0xe6, 0x5e, 0x71, 0xb7,
+ 0x4a, 0x3e, 0x08, 0xfb, 0x81, 0xb7, 0x16, 0x16, 0xa1, 0x9d, 0x23, 0x12,
+ 0x4d, 0xe5, 0xd7, 0x92, 0x08, 0xac, 0x75, 0xa4, 0x9c, 0xba, 0xcd, 0x17,
+ 0xb2, 0x1e, 0x44, 0x35, 0x65, 0x7f, 0x53, 0x25, 0x39, 0xd1, 0x1c, 0x0a,
+ 0x9a, 0x63, 0x1b, 0x19, 0x92, 0x74, 0x68, 0x0a, 0x37, 0xc2, 0xc2, 0x52,
+ 0x48, 0xcb, 0x39, 0x5a, 0xa2, 0xb6, 0xe1, 0x5d, 0xc1, 0xdd, 0xa0, 0x20,
+ 0xb8, 0x21, 0xa2, 0x93, 0x26, 0x6f, 0x14, 0x4a, 0x21, 0x41, 0xc7, 0xed,
+ 0x6d, 0x9b, 0xf2, 0x48, 0x2f, 0xf3, 0x03, 0xf5, 0xa2, 0x68, 0x92, 0x53,
+ 0x2f, 0x5e, 0xe3, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x49,
+ 0x30, 0x82, 0x01, 0x45, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+ 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
+ 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
+ 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04,
+ 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03,
+ 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30,
+ 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72,
+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4b, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x44, 0x30, 0x42, 0x30, 0x40, 0xa0, 0x3e, 0xa0, 0x3c, 0x86, 0x3a,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x34, 0x2e,
+ 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x48, 0x69, 0x67,
+ 0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x56,
+ 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3d,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+ 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+ 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67,
+ 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x50,
+ 0x53, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x51, 0x68, 0xff, 0x90, 0xaf, 0x02, 0x07, 0x75, 0x3c, 0xcc, 0xd9, 0x65,
+ 0x64, 0x62, 0xa2, 0x12, 0xb8, 0x59, 0x72, 0x3b, 0x30, 0x1f, 0x06, 0x03,
+ 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb1, 0x3e, 0xc3,
+ 0x69, 0x03, 0xf8, 0xbf, 0x47, 0x01, 0xd4, 0x98, 0x26, 0x1a, 0x08, 0x02,
+ 0xef, 0x63, 0x64, 0x2b, 0xc3, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+ 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+ 0x00, 0x18, 0x8a, 0x95, 0x89, 0x03, 0xe6, 0x6d, 0xdf, 0x5c, 0xfc, 0x1d,
+ 0x68, 0xea, 0x4a, 0x8f, 0x83, 0xd6, 0x51, 0x2f, 0x8d, 0x6b, 0x44, 0x16,
+ 0x9e, 0xac, 0x63, 0xf5, 0xd2, 0x6e, 0x6c, 0x84, 0x99, 0x8b, 0xaa, 0x81,
+ 0x71, 0x84, 0x5b, 0xed, 0x34, 0x4e, 0xb0, 0xb7, 0x79, 0x92, 0x29, 0xcc,
+ 0x2d, 0x80, 0x6a, 0xf0, 0x8e, 0x20, 0xe1, 0x79, 0xa4, 0xfe, 0x03, 0x47,
+ 0x13, 0xea, 0xf5, 0x86, 0xca, 0x59, 0x71, 0x7d, 0xf4, 0x04, 0x96, 0x6b,
+ 0xd3, 0x59, 0x58, 0x3d, 0xfe, 0xd3, 0x31, 0x25, 0x5c, 0x18, 0x38, 0x84,
+ 0xa3, 0xe6, 0x9f, 0x82, 0xfd, 0x8c, 0x5b, 0x98, 0x31, 0x4e, 0xcd, 0x78,
+ 0x9e, 0x1a, 0xfd, 0x85, 0xcb, 0x49, 0xaa, 0xf2, 0x27, 0x8b, 0x99, 0x72,
+ 0xfc, 0x3e, 0xaa, 0xd5, 0x41, 0x0b, 0xda, 0xd5, 0x36, 0xa1, 0xbf, 0x1c,
+ 0x6e, 0x47, 0x49, 0x7f, 0x5e, 0xd9, 0x48, 0x7c, 0x03, 0xd9, 0xfd, 0x8b,
+ 0x49, 0xa0, 0x98, 0x26, 0x42, 0x40, 0xeb, 0xd6, 0x92, 0x11, 0xa4, 0x64,
+ 0x0a, 0x57, 0x54, 0xc4, 0xf5, 0x1d, 0xd6, 0x02, 0x5e, 0x6b, 0xac, 0xee,
+ 0xc4, 0x80, 0x9a, 0x12, 0x72, 0xfa, 0x56, 0x93, 0xd7, 0xff, 0xbf, 0x30,
+ 0x85, 0x06, 0x30, 0xbf, 0x0b, 0x7f, 0x4e, 0xff, 0x57, 0x05, 0x9d, 0x24,
+ 0xed, 0x85, 0xc3, 0x2b, 0xfb, 0xa6, 0x75, 0xa8, 0xac, 0x2d, 0x16, 0xef,
+ 0x7d, 0x79, 0x27, 0xb2, 0xeb, 0xc2, 0x9d, 0x0b, 0x07, 0xea, 0xaa, 0x85,
+ 0xd3, 0x01, 0xa3, 0x20, 0x28, 0x41, 0x59, 0x43, 0x28, 0xd2, 0x81, 0xe3,
+ 0xaa, 0xf6, 0xec, 0x7b, 0x3b, 0x77, 0xb6, 0x40, 0x62, 0x80, 0x05, 0x41,
+ 0x45, 0x01, 0xef, 0x17, 0x06, 0x3e, 0xde, 0xc0, 0x33, 0x9b, 0x67, 0xd3,
+ 0x61, 0x2e, 0x72, 0x87, 0xe4, 0x69, 0xfc, 0x12, 0x00, 0x57, 0x40, 0x1e,
+ 0x70, 0xf5, 0x1e, 0xc9, 0xb4,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 16:87:d6:88:6d:e2:30:06:85:23:3d:bf:11:bf:65:97
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+ Validity
+ Not Before: Oct 31 00:00:00 2013 GMT
+ Not After : Oct 30 23:59:59 2023 GMT
+ Subject: C=US, O=thawte, Inc., CN=thawte SSL CA - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b2:fc:06:fb:04:93:d2:ea:59:20:3b:44:85:97:
+ 52:39:e7:10:f0:7a:e0:b0:94:40:da:46:f8:0c:28:
+ bb:b9:ce:60:38:3f:d2:d8:11:42:1b:91:ad:49:ee:
+ 8f:c7:de:6c:de:37:6f:fd:8b:20:3c:6d:e7:74:d3:
+ dc:d5:24:88:41:80:89:ee:36:be:c4:d5:be:8d:53:
+ 13:aa:e4:a5:b8:93:0a:be:ec:da:cd:3c:d4:32:56:
+ ef:d0:4e:a0:b8:97:bb:39:50:1e:6e:65:c3:fd:b2:
+ ce:e0:59:a9:48:09:c6:fe:be:ae:fc:3e:3b:81:20:
+ 97:8b:8f:46:df:60:64:07:75:bb:1b:86:38:9f:47:
+ 7b:34:ce:a1:d1:97:ad:76:d8:9f:b7:26:db:79:80:
+ 36:48:f2:c5:37:f8:d9:32:ae:7c:a4:53:81:c7:99:
+ a1:54:38:2f:4f:75:a0:bb:5a:a5:bb:cd:ac:02:5b:
+ 19:02:d5:13:18:a7:ce:ac:74:55:12:05:8b:9b:a2:
+ 95:46:64:72:38:cd:5a:1b:3a:16:a7:be:71:99:8c:
+ 54:03:b8:96:6c:01:d3:3e:06:98:3f:21:81:3b:02:
+ 7e:00:47:53:01:1e:0e:46:43:fb:4b:2d:dc:0b:1a:
+ e8:2f:98:f8:7e:d1:99:ab:13:6c:a4:17:de:6f:f6:
+ 15:f5
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://t1.symcb.com/ThawtePCA.crl
+
+ Authority Information Access:
+ OCSP - URI:http://t2.symcb.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: https://www.thawte.com/cps
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-537
+ X509v3 Subject Key Identifier:
+ C2:4F:48:57:FC:D1:4F:9A:C0:5D:38:7D:0E:05:DB:D9:2E:B5:52:60
+ X509v3 Authority Key Identifier:
+ keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 8d:06:de:43:c9:76:02:ca:d9:23:97:5e:f3:63:d7:7d:44:c2:
+ 0f:6b:0a:f5:07:e5:8b:b8:fa:e0:a3:fa:6b:80:92:b5:03:2c:
+ c5:37:e0:c2:e5:95:b5:92:70:18:28:42:94:ee:4b:77:6a:01:
+ 0f:8b:23:ec:56:4d:f4:00:69:e5:84:c8:e2:ea:de:5b:3e:f6:
+ 3c:07:3a:94:ca:6c:27:b1:cc:83:1a:60:71:27:d2:bf:02:f5:
+ 1e:44:d3:48:d5:a6:d3:76:21:00:9c:fa:98:64:eb:17:36:3f:
+ eb:1b:3c:3e:a6:b1:d9:58:06:0e:72:d9:68:be:f1:a7:20:d7:
+ 52:e4:a4:77:1f:71:70:9d:55:35:85:37:e1:1d:4d:94:c2:70:
+ 7f:95:40:6e:4b:7d:b2:b4:29:2a:03:79:c8:b9:4c:67:61:04:
+ a0:8b:27:ff:59:00:eb:55:7f:c6:b7:33:35:2d:5e:4e:ac:b8:
+ ea:12:c5:e8:f7:b9:ab:be:74:92:2c:b7:d9:4d:ca:84:2f:1c:
+ c2:f0:72:7c:b2:31:6e:cf:80:e5:88:07:36:51:7b:ba:61:af:
+ 6d:8d:23:5b:34:a3:95:bc:a2:31:7f:f2:f5:e7:b7:e8:ef:c4:
+ b5:27:32:e9:f7:9e:69:c7:2b:e8:be:bb:0c:aa:e7:ea:60:12:
+ ea:26:8a:78
+-----BEGIN CERTIFICATE-----
+MIIEsjCCA5qgAwIBAgIQFofWiG3iMAaFIz2/Eb9llzANBgkqhkiG9w0BAQsFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTMxMDMxMDAwMDAwWhcNMjMx
+MDMwMjM1OTU5WjBBMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
+MRswGQYDVQQDExJ0aGF3dGUgU1NMIENBIC0gRzIwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCy/Ab7BJPS6lkgO0SFl1I55xDweuCwlEDaRvgMKLu5zmA4
+P9LYEUIbka1J7o/H3mzeN2/9iyA8bed009zVJIhBgInuNr7E1b6NUxOq5KW4kwq+
+7NrNPNQyVu/QTqC4l7s5UB5uZcP9ss7gWalICcb+vq78PjuBIJeLj0bfYGQHdbsb
+hjifR3s0zqHRl6122J+3Jtt5gDZI8sU3+NkyrnykU4HHmaFUOC9PdaC7WqW7zawC
+WxkC1RMYp86sdFUSBYubopVGZHI4zVobOhanvnGZjFQDuJZsAdM+Bpg/IYE7An4A
+R1MBHg5GQ/tLLdwLGugvmPh+0ZmrE2ykF95v9hX1AgMBAAGjggE7MIIBNzASBgNV
+HRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAyBgNVHR8EKzApMCegJaAj
+hiFodHRwOi8vdDEuc3ltY2IuY29tL1RoYXd0ZVBDQS5jcmwwLwYIKwYBBQUHAQEE
+IzAhMB8GCCsGAQUFBzABhhNodHRwOi8vdDIuc3ltY2IuY29tMEEGA1UdIAQ6MDgw
+NgYKYIZIAYb4RQEHNjAoMCYGCCsGAQUFBwIBFhpodHRwczovL3d3dy50aGF3dGUu
+Y29tL2NwczApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0ktMS01
+MzcwHQYDVR0OBBYEFMJPSFf80U+awF04fQ4F29kutVJgMB8GA1UdIwQYMBaAFHtb
+Rc+vzst6/TGSGmq280brV0hQMA0GCSqGSIb3DQEBCwUAA4IBAQCNBt5DyXYCytkj
+l17zY9d9RMIPawr1B+WLuPrgo/prgJK1AyzFN+DC5ZW1knAYKEKU7kt3agEPiyPs
+Vk30AGnlhMji6t5bPvY8BzqUymwnscyDGmBxJ9K/AvUeRNNI1abTdiEAnPqYZOsX
+Nj/rGzw+prHZWAYOctlovvGnINdS5KR3H3FwnVU1hTfhHU2UwnB/lUBuS32ytCkq
+A3nIuUxnYQSgiyf/WQDrVX/GtzM1LV5OrLjqEsXo97mrvnSSLLfZTcqELxzC8HJ8
+sjFuz4DliAc2UXu6Ya9tjSNbNKOVvKIxf/L157fo78S1JzLp955pxyvovrsMqufq
+YBLqJop4
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert30[] = {
+ 0x30, 0x82, 0x04, 0xb2, 0x30, 0x82, 0x03, 0x9a, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x16, 0x87, 0xd6, 0x88, 0x6d, 0xe2, 0x30, 0x06, 0x85,
+ 0x23, 0x3d, 0xbf, 0x11, 0xbf, 0x65, 0x97, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+ 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+ 0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+ 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31,
+ 0x30, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x41,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x74,
+ 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+ 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+ 0x01, 0x00, 0xb2, 0xfc, 0x06, 0xfb, 0x04, 0x93, 0xd2, 0xea, 0x59, 0x20,
+ 0x3b, 0x44, 0x85, 0x97, 0x52, 0x39, 0xe7, 0x10, 0xf0, 0x7a, 0xe0, 0xb0,
+ 0x94, 0x40, 0xda, 0x46, 0xf8, 0x0c, 0x28, 0xbb, 0xb9, 0xce, 0x60, 0x38,
+ 0x3f, 0xd2, 0xd8, 0x11, 0x42, 0x1b, 0x91, 0xad, 0x49, 0xee, 0x8f, 0xc7,
+ 0xde, 0x6c, 0xde, 0x37, 0x6f, 0xfd, 0x8b, 0x20, 0x3c, 0x6d, 0xe7, 0x74,
+ 0xd3, 0xdc, 0xd5, 0x24, 0x88, 0x41, 0x80, 0x89, 0xee, 0x36, 0xbe, 0xc4,
+ 0xd5, 0xbe, 0x8d, 0x53, 0x13, 0xaa, 0xe4, 0xa5, 0xb8, 0x93, 0x0a, 0xbe,
+ 0xec, 0xda, 0xcd, 0x3c, 0xd4, 0x32, 0x56, 0xef, 0xd0, 0x4e, 0xa0, 0xb8,
+ 0x97, 0xbb, 0x39, 0x50, 0x1e, 0x6e, 0x65, 0xc3, 0xfd, 0xb2, 0xce, 0xe0,
+ 0x59, 0xa9, 0x48, 0x09, 0xc6, 0xfe, 0xbe, 0xae, 0xfc, 0x3e, 0x3b, 0x81,
+ 0x20, 0x97, 0x8b, 0x8f, 0x46, 0xdf, 0x60, 0x64, 0x07, 0x75, 0xbb, 0x1b,
+ 0x86, 0x38, 0x9f, 0x47, 0x7b, 0x34, 0xce, 0xa1, 0xd1, 0x97, 0xad, 0x76,
+ 0xd8, 0x9f, 0xb7, 0x26, 0xdb, 0x79, 0x80, 0x36, 0x48, 0xf2, 0xc5, 0x37,
+ 0xf8, 0xd9, 0x32, 0xae, 0x7c, 0xa4, 0x53, 0x81, 0xc7, 0x99, 0xa1, 0x54,
+ 0x38, 0x2f, 0x4f, 0x75, 0xa0, 0xbb, 0x5a, 0xa5, 0xbb, 0xcd, 0xac, 0x02,
+ 0x5b, 0x19, 0x02, 0xd5, 0x13, 0x18, 0xa7, 0xce, 0xac, 0x74, 0x55, 0x12,
+ 0x05, 0x8b, 0x9b, 0xa2, 0x95, 0x46, 0x64, 0x72, 0x38, 0xcd, 0x5a, 0x1b,
+ 0x3a, 0x16, 0xa7, 0xbe, 0x71, 0x99, 0x8c, 0x54, 0x03, 0xb8, 0x96, 0x6c,
+ 0x01, 0xd3, 0x3e, 0x06, 0x98, 0x3f, 0x21, 0x81, 0x3b, 0x02, 0x7e, 0x00,
+ 0x47, 0x53, 0x01, 0x1e, 0x0e, 0x46, 0x43, 0xfb, 0x4b, 0x2d, 0xdc, 0x0b,
+ 0x1a, 0xe8, 0x2f, 0x98, 0xf8, 0x7e, 0xd1, 0x99, 0xab, 0x13, 0x6c, 0xa4,
+ 0x17, 0xde, 0x6f, 0xf6, 0x15, 0xf5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
+ 0x82, 0x01, 0x3b, 0x30, 0x82, 0x01, 0x37, 0x30, 0x12, 0x06, 0x03, 0x55,
+ 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+ 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x32, 0x06, 0x03, 0x55,
+ 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30, 0x27, 0xa0, 0x25, 0xa0, 0x23,
+ 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x74, 0x31, 0x2e,
+ 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x68,
+ 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+ 0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x74, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3a, 0x30, 0x38, 0x30,
+ 0x36, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07,
+ 0x36, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+ 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x29, 0x06, 0x03, 0x55,
+ 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a,
+ 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d,
+ 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x35,
+ 0x33, 0x37, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0xc2, 0x4f, 0x48, 0x57, 0xfc, 0xd1, 0x4f, 0x9a, 0xc0, 0x5d, 0x38,
+ 0x7d, 0x0e, 0x05, 0xdb, 0xd9, 0x2e, 0xb5, 0x52, 0x60, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7b, 0x5b,
+ 0x45, 0xcf, 0xaf, 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a, 0x6a, 0xb6,
+ 0xf3, 0x46, 0xeb, 0x57, 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x01, 0x00, 0x8d, 0x06, 0xde, 0x43, 0xc9, 0x76, 0x02, 0xca, 0xd9, 0x23,
+ 0x97, 0x5e, 0xf3, 0x63, 0xd7, 0x7d, 0x44, 0xc2, 0x0f, 0x6b, 0x0a, 0xf5,
+ 0x07, 0xe5, 0x8b, 0xb8, 0xfa, 0xe0, 0xa3, 0xfa, 0x6b, 0x80, 0x92, 0xb5,
+ 0x03, 0x2c, 0xc5, 0x37, 0xe0, 0xc2, 0xe5, 0x95, 0xb5, 0x92, 0x70, 0x18,
+ 0x28, 0x42, 0x94, 0xee, 0x4b, 0x77, 0x6a, 0x01, 0x0f, 0x8b, 0x23, 0xec,
+ 0x56, 0x4d, 0xf4, 0x00, 0x69, 0xe5, 0x84, 0xc8, 0xe2, 0xea, 0xde, 0x5b,
+ 0x3e, 0xf6, 0x3c, 0x07, 0x3a, 0x94, 0xca, 0x6c, 0x27, 0xb1, 0xcc, 0x83,
+ 0x1a, 0x60, 0x71, 0x27, 0xd2, 0xbf, 0x02, 0xf5, 0x1e, 0x44, 0xd3, 0x48,
+ 0xd5, 0xa6, 0xd3, 0x76, 0x21, 0x00, 0x9c, 0xfa, 0x98, 0x64, 0xeb, 0x17,
+ 0x36, 0x3f, 0xeb, 0x1b, 0x3c, 0x3e, 0xa6, 0xb1, 0xd9, 0x58, 0x06, 0x0e,
+ 0x72, 0xd9, 0x68, 0xbe, 0xf1, 0xa7, 0x20, 0xd7, 0x52, 0xe4, 0xa4, 0x77,
+ 0x1f, 0x71, 0x70, 0x9d, 0x55, 0x35, 0x85, 0x37, 0xe1, 0x1d, 0x4d, 0x94,
+ 0xc2, 0x70, 0x7f, 0x95, 0x40, 0x6e, 0x4b, 0x7d, 0xb2, 0xb4, 0x29, 0x2a,
+ 0x03, 0x79, 0xc8, 0xb9, 0x4c, 0x67, 0x61, 0x04, 0xa0, 0x8b, 0x27, 0xff,
+ 0x59, 0x00, 0xeb, 0x55, 0x7f, 0xc6, 0xb7, 0x33, 0x35, 0x2d, 0x5e, 0x4e,
+ 0xac, 0xb8, 0xea, 0x12, 0xc5, 0xe8, 0xf7, 0xb9, 0xab, 0xbe, 0x74, 0x92,
+ 0x2c, 0xb7, 0xd9, 0x4d, 0xca, 0x84, 0x2f, 0x1c, 0xc2, 0xf0, 0x72, 0x7c,
+ 0xb2, 0x31, 0x6e, 0xcf, 0x80, 0xe5, 0x88, 0x07, 0x36, 0x51, 0x7b, 0xba,
+ 0x61, 0xaf, 0x6d, 0x8d, 0x23, 0x5b, 0x34, 0xa3, 0x95, 0xbc, 0xa2, 0x31,
+ 0x7f, 0xf2, 0xf5, 0xe7, 0xb7, 0xe8, 0xef, 0xc4, 0xb5, 0x27, 0x32, 0xe9,
+ 0xf7, 0x9e, 0x69, 0xc7, 0x2b, 0xe8, 0xbe, 0xbb, 0x0c, 0xaa, 0xe7, 0xea,
+ 0x60, 0x12, 0xea, 0x26, 0x8a, 0x78,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 93:92:85:40:01:65:71:5f:94:7f:28:8f:ef:c9:9b:28
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=PL, O=Unizeto Sp. z o.o., CN=Certum CA
+ Validity
+ Not Before: Oct 22 12:07:37 2008 GMT
+ Not After : Jun 10 10:46:39 2027 GMT
+ Subject: C=PL, O=Unizeto Technologies S.A., OU=Certum Certification Authority, CN=Certum Trusted Network CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:e3:fb:7d:a3:72:ba:c2:f0:c9:14:87:f5:6b:01:
+ 4e:e1:6e:40:07:ba:6d:27:5d:7f:f7:5b:2d:b3:5a:
+ c7:51:5f:ab:a4:32:a6:61:87:b6:6e:0f:86:d2:30:
+ 02:97:f8:d7:69:57:a1:18:39:5d:6a:64:79:c6:01:
+ 59:ac:3c:31:4a:38:7c:d2:04:d2:4b:28:e8:20:5f:
+ 3b:07:a2:cc:4d:73:db:f3:ae:4f:c7:56:d5:5a:a7:
+ 96:89:fa:f3:ab:68:d4:23:86:59:27:cf:09:27:bc:
+ ac:6e:72:83:1c:30:72:df:e0:a2:e9:d2:e1:74:75:
+ 19:bd:2a:9e:7b:15:54:04:1b:d7:43:39:ad:55:28:
+ c5:e2:1a:bb:f4:c0:e4:ae:38:49:33:cc:76:85:9f:
+ 39:45:d2:a4:9e:f2:12:8c:51:f8:7c:e4:2d:7f:f5:
+ ac:5f:eb:16:9f:b1:2d:d1:ba:cc:91:42:77:4c:25:
+ c9:90:38:6f:db:f0:cc:fb:8e:1e:97:59:3e:d5:60:
+ 4e:e6:05:28:ed:49:79:13:4b:ba:48:db:2f:f9:72:
+ d3:39:ca:fe:1f:d8:34:72:f5:b4:40:cf:31:01:c3:
+ ec:de:11:2d:17:5d:1f:b8:50:d1:5e:19:a7:69:de:
+ 07:33:28:ca:50:95:f9:a7:54:cb:54:86:50:45:a9:
+ f9:49
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Subject Key Identifier:
+ 08:76:CD:CB:07:FF:24:F6:C5:CD:ED:BB:90:BC:E2:84:37:46:75:F7
+ X509v3 Authority Key Identifier:
+ DirName:/C=PL/O=Unizeto Sp. z o.o./CN=Certum CA
+ serial:01:00:20
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.certum.pl/ca.crl
+
+ Authority Information Access:
+ OCSP - URI:http://subca.ocsp-certum.com
+ CA Issuers - URI:http://repository.certum.pl/ca.cer
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.certum.pl/CPS
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 8d:e6:fd:40:66:a3:4c:9c:a7:ab:a1:da:84:dd:1c:30:07:e6:
+ db:c7:2d:ec:83:a1:56:e4:1d:3c:26:a1:a5:09:2b:e8:7d:62:
+ be:b2:75:94:dd:08:f2:7f:28:41:e4:80:67:02:4e:8a:8f:c3:
+ 35:d0:d5:a9:27:28:ea:d2:f4:ab:06:86:43:ae:8c:e3:f9:88:
+ 7d:e0:db:bd:42:81:80:02:12:75:b2:e8:17:71:ab:21:95:31:
+ 46:42:0d:88:10:39:d3:6f:ec:2f:42:ea:40:53:62:bf:eb:ca:
+ 78:9e:ab:a2:d5:2e:05:ea:33:ab:e9:d6:97:94:42:5e:04:ed:
+ 2c:ed:6a:9c:7a:95:7d:05:2a:05:7f:08:5d:66:ad:61:d4:76:
+ ac:75:96:97:73:63:bd:1a:41:59:29:a5:5e:22:83:c3:8b:59:
+ fa:9a:a2:f6:bd:30:bf:72:1d:1c:99:86:9c:f2:85:3c:1d:f7:
+ 26:96:2f:2e:f9:02:b1:b5:a9:50:e8:38:fa:9b:0a:5e:b4:04:
+ c0:ce:4e:39:2c:ca:0b:5b:62:f0:4d:58:50:34:99:e6:9a:2c:
+ d2:90:d7:09:81:d6:c0:aa:5e:ce:fe:d2:f7:a1:ba:4b:d9:d6:
+ 86:8e:19:1f:a6:06:47:42:72:e0:56:0a:00:1c:78:b9:8d:cc:
+ 99:04:37:49
+-----BEGIN CERTIFICATE-----
+MIIEtDCCA5ygAwIBAgIRAJOShUABZXFflH8oj+/JmygwDQYJKoZIhvcNAQELBQAw
+PjELMAkGA1UEBhMCUEwxGzAZBgNVBAoTElVuaXpldG8gU3AuIHogby5vLjESMBAG
+A1UEAxMJQ2VydHVtIENBMB4XDTA4MTAyMjEyMDczN1oXDTI3MDYxMDEwNDYzOVow
+fjELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
+QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEiMCAG
+A1UEAxMZQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQTCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAOP7faNyusLwyRSH9WsBTuFuQAe6bSddf/dbLbNax1Ff
+q6QypmGHtm4PhtIwApf412lXoRg5XWpkecYBWaw8MUo4fNIE0kso6CBfOweizE1z
+2/OuT8dW1Vqnlon686to1COGWSfPCSe8rG5ygxwwct/gounS4XR1Gb0qnnsVVAQb
+10M5rVUoxeIau/TA5K44STPMdoWfOUXSpJ7yEoxR+HzkLX/1rF/rFp+xLdG6zJFC
+d0wlyZA4b9vwzPuOHpdZPtVgTuYFKO1JeRNLukjbL/ly0znK/h/YNHL1tEDPMQHD
+7N4RLRddH7hQ0V4Zp2neBzMoylCV+adUy1SGUEWp+UkCAwEAAaOCAWswggFnMA8G
+A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAh2zcsH/yT2xc3tu5C84oQ3RnX3MFIG
+A1UdIwRLMEmhQqRAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNw
+LiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQYIDAQAgMA4GA1UdDwEB/wQEAwIB
+BjAsBgNVHR8EJTAjMCGgH6AdhhtodHRwOi8vY3JsLmNlcnR1bS5wbC9jYS5jcmww
+aAYIKwYBBQUHAQEEXDBaMCgGCCsGAQUFBzABhhxodHRwOi8vc3ViY2Eub2NzcC1j
+ZXJ0dW0uY29tMC4GCCsGAQUFBzAChiJodHRwOi8vcmVwb3NpdG9yeS5jZXJ0dW0u
+cGwvY2EuY2VyMDkGA1UdIAQyMDAwLgYEVR0gADAmMCQGCCsGAQUFBwIBFhhodHRw
+Oi8vd3d3LmNlcnR1bS5wbC9DUFMwDQYJKoZIhvcNAQELBQADggEBAI3m/UBmo0yc
+p6uh2oTdHDAH5tvHLeyDoVbkHTwmoaUJK+h9Yr6ydZTdCPJ/KEHkgGcCToqPwzXQ
+1aknKOrS9KsGhkOujOP5iH3g271CgYACEnWy6BdxqyGVMUZCDYgQOdNv7C9C6kBT
+Yr/rynieq6LVLgXqM6vp1peUQl4E7Sztapx6lX0FKgV/CF1mrWHUdqx1lpdzY70a
+QVkppV4ig8OLWfqaova9ML9yHRyZhpzyhTwd9yaWLy75ArG1qVDoOPqbCl60BMDO
+TjksygtbYvBNWFA0meaaLNKQ1wmB1sCqXs7+0vehukvZ1oaOGR+mBkdCcuBWCgAc
+eLmNzJkEN0k=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert31[] = {
+ 0x30, 0x82, 0x04, 0xb4, 0x30, 0x82, 0x03, 0x9c, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x11, 0x00, 0x93, 0x92, 0x85, 0x40, 0x01, 0x65, 0x71, 0x5f,
+ 0x94, 0x7f, 0x28, 0x8f, 0xef, 0xc9, 0x9b, 0x28, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30,
+ 0x3e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x50, 0x4c, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x12, 0x55, 0x6e, 0x69, 0x7a, 0x65, 0x74, 0x6f, 0x20, 0x53, 0x70, 0x2e,
+ 0x20, 0x7a, 0x20, 0x6f, 0x2e, 0x6f, 0x2e, 0x31, 0x12, 0x30, 0x10, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x09, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d,
+ 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x38, 0x31, 0x30, 0x32,
+ 0x32, 0x31, 0x32, 0x30, 0x37, 0x33, 0x37, 0x5a, 0x17, 0x0d, 0x32, 0x37,
+ 0x30, 0x36, 0x31, 0x30, 0x31, 0x30, 0x34, 0x36, 0x33, 0x39, 0x5a, 0x30,
+ 0x7e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x50, 0x4c, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x19, 0x55, 0x6e, 0x69, 0x7a, 0x65, 0x74, 0x6f, 0x20, 0x54, 0x65, 0x63,
+ 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x20, 0x53, 0x2e,
+ 0x41, 0x2e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x1e, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x20, 0x43, 0x65, 0x72, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 0x22, 0x30, 0x20, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x19, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d,
+ 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x20, 0x4e, 0x65, 0x74,
+ 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+ 0x82, 0x01, 0x01, 0x00, 0xe3, 0xfb, 0x7d, 0xa3, 0x72, 0xba, 0xc2, 0xf0,
+ 0xc9, 0x14, 0x87, 0xf5, 0x6b, 0x01, 0x4e, 0xe1, 0x6e, 0x40, 0x07, 0xba,
+ 0x6d, 0x27, 0x5d, 0x7f, 0xf7, 0x5b, 0x2d, 0xb3, 0x5a, 0xc7, 0x51, 0x5f,
+ 0xab, 0xa4, 0x32, 0xa6, 0x61, 0x87, 0xb6, 0x6e, 0x0f, 0x86, 0xd2, 0x30,
+ 0x02, 0x97, 0xf8, 0xd7, 0x69, 0x57, 0xa1, 0x18, 0x39, 0x5d, 0x6a, 0x64,
+ 0x79, 0xc6, 0x01, 0x59, 0xac, 0x3c, 0x31, 0x4a, 0x38, 0x7c, 0xd2, 0x04,
+ 0xd2, 0x4b, 0x28, 0xe8, 0x20, 0x5f, 0x3b, 0x07, 0xa2, 0xcc, 0x4d, 0x73,
+ 0xdb, 0xf3, 0xae, 0x4f, 0xc7, 0x56, 0xd5, 0x5a, 0xa7, 0x96, 0x89, 0xfa,
+ 0xf3, 0xab, 0x68, 0xd4, 0x23, 0x86, 0x59, 0x27, 0xcf, 0x09, 0x27, 0xbc,
+ 0xac, 0x6e, 0x72, 0x83, 0x1c, 0x30, 0x72, 0xdf, 0xe0, 0xa2, 0xe9, 0xd2,
+ 0xe1, 0x74, 0x75, 0x19, 0xbd, 0x2a, 0x9e, 0x7b, 0x15, 0x54, 0x04, 0x1b,
+ 0xd7, 0x43, 0x39, 0xad, 0x55, 0x28, 0xc5, 0xe2, 0x1a, 0xbb, 0xf4, 0xc0,
+ 0xe4, 0xae, 0x38, 0x49, 0x33, 0xcc, 0x76, 0x85, 0x9f, 0x39, 0x45, 0xd2,
+ 0xa4, 0x9e, 0xf2, 0x12, 0x8c, 0x51, 0xf8, 0x7c, 0xe4, 0x2d, 0x7f, 0xf5,
+ 0xac, 0x5f, 0xeb, 0x16, 0x9f, 0xb1, 0x2d, 0xd1, 0xba, 0xcc, 0x91, 0x42,
+ 0x77, 0x4c, 0x25, 0xc9, 0x90, 0x38, 0x6f, 0xdb, 0xf0, 0xcc, 0xfb, 0x8e,
+ 0x1e, 0x97, 0x59, 0x3e, 0xd5, 0x60, 0x4e, 0xe6, 0x05, 0x28, 0xed, 0x49,
+ 0x79, 0x13, 0x4b, 0xba, 0x48, 0xdb, 0x2f, 0xf9, 0x72, 0xd3, 0x39, 0xca,
+ 0xfe, 0x1f, 0xd8, 0x34, 0x72, 0xf5, 0xb4, 0x40, 0xcf, 0x31, 0x01, 0xc3,
+ 0xec, 0xde, 0x11, 0x2d, 0x17, 0x5d, 0x1f, 0xb8, 0x50, 0xd1, 0x5e, 0x19,
+ 0xa7, 0x69, 0xde, 0x07, 0x33, 0x28, 0xca, 0x50, 0x95, 0xf9, 0xa7, 0x54,
+ 0xcb, 0x54, 0x86, 0x50, 0x45, 0xa9, 0xf9, 0x49, 0x02, 0x03, 0x01, 0x00,
+ 0x01, 0xa3, 0x82, 0x01, 0x6b, 0x30, 0x82, 0x01, 0x67, 0x30, 0x0f, 0x06,
+ 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01,
+ 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0x08, 0x76, 0xcd, 0xcb, 0x07, 0xff, 0x24, 0xf6, 0xc5, 0xcd, 0xed,
+ 0xbb, 0x90, 0xbc, 0xe2, 0x84, 0x37, 0x46, 0x75, 0xf7, 0x30, 0x52, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x4b, 0x30, 0x49, 0xa1, 0x42, 0xa4, 0x40,
+ 0x30, 0x3e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+ 0x02, 0x50, 0x4c, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x13, 0x12, 0x55, 0x6e, 0x69, 0x7a, 0x65, 0x74, 0x6f, 0x20, 0x53, 0x70,
+ 0x2e, 0x20, 0x7a, 0x20, 0x6f, 0x2e, 0x6f, 0x2e, 0x31, 0x12, 0x30, 0x10,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x09, 0x43, 0x65, 0x72, 0x74, 0x75,
+ 0x6d, 0x20, 0x43, 0x41, 0x82, 0x03, 0x01, 0x00, 0x20, 0x30, 0x0e, 0x06,
+ 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+ 0x06, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x25, 0x30, 0x23,
+ 0x30, 0x21, 0xa0, 0x1f, 0xa0, 0x1d, 0x86, 0x1b, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x75,
+ 0x6d, 0x2e, 0x70, 0x6c, 0x2f, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+ 0x68, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x5c, 0x30, 0x5a, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x73, 0x75, 0x62, 0x63, 0x61, 0x2e, 0x6f, 0x63, 0x73, 0x70, 0x2d, 0x63,
+ 0x65, 0x72, 0x74, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x2e, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x22, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69,
+ 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x2e,
+ 0x70, 0x6c, 0x2f, 0x63, 0x61, 0x2e, 0x63, 0x65, 0x72, 0x30, 0x39, 0x06,
+ 0x03, 0x55, 0x1d, 0x20, 0x04, 0x32, 0x30, 0x30, 0x30, 0x2e, 0x06, 0x04,
+ 0x55, 0x1d, 0x20, 0x00, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x18, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x75,
+ 0x6d, 0x2e, 0x70, 0x6c, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x01, 0x00, 0x8d, 0xe6, 0xfd, 0x40, 0x66, 0xa3, 0x4c, 0x9c,
+ 0xa7, 0xab, 0xa1, 0xda, 0x84, 0xdd, 0x1c, 0x30, 0x07, 0xe6, 0xdb, 0xc7,
+ 0x2d, 0xec, 0x83, 0xa1, 0x56, 0xe4, 0x1d, 0x3c, 0x26, 0xa1, 0xa5, 0x09,
+ 0x2b, 0xe8, 0x7d, 0x62, 0xbe, 0xb2, 0x75, 0x94, 0xdd, 0x08, 0xf2, 0x7f,
+ 0x28, 0x41, 0xe4, 0x80, 0x67, 0x02, 0x4e, 0x8a, 0x8f, 0xc3, 0x35, 0xd0,
+ 0xd5, 0xa9, 0x27, 0x28, 0xea, 0xd2, 0xf4, 0xab, 0x06, 0x86, 0x43, 0xae,
+ 0x8c, 0xe3, 0xf9, 0x88, 0x7d, 0xe0, 0xdb, 0xbd, 0x42, 0x81, 0x80, 0x02,
+ 0x12, 0x75, 0xb2, 0xe8, 0x17, 0x71, 0xab, 0x21, 0x95, 0x31, 0x46, 0x42,
+ 0x0d, 0x88, 0x10, 0x39, 0xd3, 0x6f, 0xec, 0x2f, 0x42, 0xea, 0x40, 0x53,
+ 0x62, 0xbf, 0xeb, 0xca, 0x78, 0x9e, 0xab, 0xa2, 0xd5, 0x2e, 0x05, 0xea,
+ 0x33, 0xab, 0xe9, 0xd6, 0x97, 0x94, 0x42, 0x5e, 0x04, 0xed, 0x2c, 0xed,
+ 0x6a, 0x9c, 0x7a, 0x95, 0x7d, 0x05, 0x2a, 0x05, 0x7f, 0x08, 0x5d, 0x66,
+ 0xad, 0x61, 0xd4, 0x76, 0xac, 0x75, 0x96, 0x97, 0x73, 0x63, 0xbd, 0x1a,
+ 0x41, 0x59, 0x29, 0xa5, 0x5e, 0x22, 0x83, 0xc3, 0x8b, 0x59, 0xfa, 0x9a,
+ 0xa2, 0xf6, 0xbd, 0x30, 0xbf, 0x72, 0x1d, 0x1c, 0x99, 0x86, 0x9c, 0xf2,
+ 0x85, 0x3c, 0x1d, 0xf7, 0x26, 0x96, 0x2f, 0x2e, 0xf9, 0x02, 0xb1, 0xb5,
+ 0xa9, 0x50, 0xe8, 0x38, 0xfa, 0x9b, 0x0a, 0x5e, 0xb4, 0x04, 0xc0, 0xce,
+ 0x4e, 0x39, 0x2c, 0xca, 0x0b, 0x5b, 0x62, 0xf0, 0x4d, 0x58, 0x50, 0x34,
+ 0x99, 0xe6, 0x9a, 0x2c, 0xd2, 0x90, 0xd7, 0x09, 0x81, 0xd6, 0xc0, 0xaa,
+ 0x5e, 0xce, 0xfe, 0xd2, 0xf7, 0xa1, 0xba, 0x4b, 0xd9, 0xd6, 0x86, 0x8e,
+ 0x19, 0x1f, 0xa6, 0x06, 0x47, 0x42, 0x72, 0xe0, 0x56, 0x0a, 0x00, 0x1c,
+ 0x78, 0xb9, 0x8d, 0xcc, 0x99, 0x04, 0x37, 0x49,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 48:e9:94:40:d4:36:49:1c:b8:b8:82:3d:09:43:94:c7
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., OU=(c) 2008 GeoTrust Inc. - For authorized use only, CN=GeoTrust Primary Certification Authority - G3
+ Validity
+ Not Before: Jun 10 00:00:00 2014 GMT
+ Not After : Jun 9 23:59:59 2024 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=RapidSSL SHA256 CA - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:c4:95:63:28:d0:4e:30:45:af:8b:97:34:14:45:
+ f8:5c:58:4a:fa:33:8e:6e:9c:60:ab:f3:86:ff:34:
+ 74:b2:2b:be:a1:8c:d5:a2:a3:60:7a:40:b9:e1:fc:
+ 22:ca:67:ba:60:aa:c7:9a:f9:06:7f:ee:f7:ba:85:
+ 05:b0:03:ff:72:ae:15:41:4a:98:64:d7:17:4b:54:
+ ef:05:c6:98:07:93:27:3e:4f:dc:0f:c6:7b:8b:e7:
+ f3:06:5e:8d:e8:b4:ae:29:b4:1e:1e:2d:16:90:d3:
+ ea:aa:e7:8c:3b:6d:af:36:59:ff:c5:0a:fa:c7:4c:
+ bd:36:8b:64:c4:4a:f5:ce:33:f9:07:be:7f:45:90:
+ a8:08:14:b0:d0:a5:4f:df:82:80:da:1b:ee:c3:13:
+ b0:98:f5:0f:f9:7e:76:b5:e6:b9:5d:68:b9:5c:50:
+ 90:89:a4:36:b1:70:16:ea:b1:10:b5:6a:76:df:e1:
+ bb:fc:78:f2:72:99:cf:c9:a2:d4:73:54:77:bf:c0:
+ 39:77:e5:ae:12:c5:78:5a:19:45:d4:41:19:d3:7c:
+ f5:6f:99:6b:d7:8b:bc:2d:09:9d:4b:10:61:c0:da:
+ 52:c3:af:22:43:c6:eb:37:7e:63:74:30:0d:6a:71:
+ 8e:de:5d:5b:8a:c8:c5:d7:9b:29:e8:ae:b6:25:61:
+ 81:eb
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ Authority Information Access:
+ OCSP - URI:http://g.symcd.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://g.symcb.com/GeoTrustPCA-G3.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-697
+ X509v3 Subject Key Identifier:
+ 4C:F4:BF:E8:3B:BE:C2:24:F3:1B:47:3B:B5:6E:48:8E:16:AB:AF:12
+ X509v3 Authority Key Identifier:
+ keyid:C4:79:CA:8E:A1:4E:03:1D:1C:DC:6B:DB:31:5B:94:3E:3F:30:7F:2D
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 7a:53:b5:de:b6:ef:52:a3:5f:8a:f5:89:f1:42:cc:5e:46:88:
+ ae:a5:08:87:51:de:0f:0f:02:eb:0c:82:78:e3:73:7d:71:bd:
+ 43:e9:ca:8a:3f:e0:25:92:9b:33:33:74:49:5e:00:d9:73:14:
+ 1c:0b:46:76:1c:8a:0d:4d:8c:6c:7e:4b:f7:60:d8:81:78:a0:
+ 78:d0:25:62:ab:10:ca:22:e8:1c:19:dd:52:83:64:05:e5:87:
+ 66:ae:e7:7a:a4:3b:3e:d8:70:7a:76:a2:67:39:d4:c9:fa:e5:
+ b7:1e:41:e2:09:39:88:1c:18:55:0a:c4:41:af:b2:f3:f3:0f:
+ 42:14:61:74:81:e3:da:87:5a:9a:4d:8b:d3:c9:8f:89:66:13:
+ 29:11:e4:ff:e2:df:8e:96:0c:5a:a1:aa:6b:9b:fd:fc:03:3b:
+ 55:0d:a6:a2:25:48:17:1f:42:a8:da:6c:7e:69:6e:a0:df:67:
+ d2:6d:f4:0e:6a:12:79:f5:7c:c8:a5:32:1c:c4:31:b2:e6:bb:
+ a8:6b:6a:a2:8a:60:69:c0:57:7d:b2:f2:31:0c:98:65:32:ec:
+ 08:5a:ce:c6:98:e9:21:97:3f:2c:79:29:03:f5:f6:94:2b:53:
+ 31:f3:93:68:57:e1:d7:4f:3a:d1:61:a1:60:ce:b9:ab:98:ae:
+ 35:54:63:8b
+-----BEGIN CERTIFICATE-----
+MIIEtTCCA52gAwIBAgIQSOmUQNQ2SRy4uII9CUOUxzANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
+MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEczMB4XDTE0MDYxMDAwMDAwMFoXDTI0MDYwOTIzNTk1OVowRzELMAkG
+A1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xIDAeBgNVBAMTF1JhcGlk
+U1NMIFNIQTI1NiBDQSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAxJVjKNBOMEWvi5c0FEX4XFhK+jOObpxgq/OG/zR0siu+oYzVoqNgekC54fwi
+yme6YKrHmvkGf+73uoUFsAP/cq4VQUqYZNcXS1TvBcaYB5MnPk/cD8Z7i+fzBl6N
+6LSuKbQeHi0WkNPqqueMO22vNln/xQr6x0y9NotkxEr1zjP5B75/RZCoCBSw0KVP
+34KA2hvuwxOwmPUP+X52tea5XWi5XFCQiaQ2sXAW6rEQtWp23+G7/HjycpnPyaLU
+c1R3v8A5d+WuEsV4WhlF1EEZ03z1b5lr14u8LQmdSxBhwNpSw68iQ8brN35jdDAN
+anGO3l1bisjF15sp6K62JWGB6wIDAQABo4IBSTCCAUUwLgYIKwYBBQUHAQEEIjAg
+MB4GCCsGAQUFBzABhhJodHRwOi8vZy5zeW1jZC5jb20wEgYDVR0TAQH/BAgwBgEB
+/wIBADBMBgNVHSAERTBDMEEGCmCGSAGG+EUBBzYwMzAxBggrBgEFBQcCARYlaHR0
+cDovL3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2VzL2NwczA2BgNVHR8ELzAtMCug
+KaAnhiVodHRwOi8vZy5zeW1jYi5jb20vR2VvVHJ1c3RQQ0EtRzMuY3JsMA4GA1Ud
+DwEB/wQEAwIBBjApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0kt
+MS02OTcwHQYDVR0OBBYEFEz0v+g7vsIk8xtHO7VuSI4Wq68SMB8GA1UdIwQYMBaA
+FMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQB6U7Xetu9S
+o1+K9YnxQsxeRoiupQiHUd4PDwLrDIJ443N9cb1D6cqKP+AlkpszM3RJXgDZcxQc
+C0Z2HIoNTYxsfkv3YNiBeKB40CViqxDKIugcGd1Sg2QF5Ydmrud6pDs+2HB6dqJn
+OdTJ+uW3HkHiCTmIHBhVCsRBr7Lz8w9CFGF0gePah1qaTYvTyY+JZhMpEeT/4t+O
+lgxaoaprm/38AztVDaaiJUgXH0Ko2mx+aW6g32fSbfQOahJ59XzIpTIcxDGy5ruo
+a2qiimBpwFd9svIxDJhlMuwIWs7GmOkhlz8seSkD9faUK1Mx85NoV+HXTzrRYaFg
+zrmrmK41VGOL
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert32[] = {
+ 0x30, 0x82, 0x04, 0xb5, 0x30, 0x82, 0x03, 0x9d, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x48, 0xe9, 0x94, 0x40, 0xd4, 0x36, 0x49, 0x1c, 0xb8,
+ 0xb8, 0x82, 0x3d, 0x09, 0x43, 0x94, 0xc7, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0x98, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x38, 0x20, 0x47, 0x65,
+ 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20,
+ 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c,
+ 0x79, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d,
+ 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x34, 0x30, 0x36, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
+ 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x36, 0x30, 0x39, 0x32, 0x33,
+ 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72,
+ 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x52, 0x61, 0x70, 0x69, 0x64,
+ 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43,
+ 0x41, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+ 0x01, 0x01, 0x00, 0xc4, 0x95, 0x63, 0x28, 0xd0, 0x4e, 0x30, 0x45, 0xaf,
+ 0x8b, 0x97, 0x34, 0x14, 0x45, 0xf8, 0x5c, 0x58, 0x4a, 0xfa, 0x33, 0x8e,
+ 0x6e, 0x9c, 0x60, 0xab, 0xf3, 0x86, 0xff, 0x34, 0x74, 0xb2, 0x2b, 0xbe,
+ 0xa1, 0x8c, 0xd5, 0xa2, 0xa3, 0x60, 0x7a, 0x40, 0xb9, 0xe1, 0xfc, 0x22,
+ 0xca, 0x67, 0xba, 0x60, 0xaa, 0xc7, 0x9a, 0xf9, 0x06, 0x7f, 0xee, 0xf7,
+ 0xba, 0x85, 0x05, 0xb0, 0x03, 0xff, 0x72, 0xae, 0x15, 0x41, 0x4a, 0x98,
+ 0x64, 0xd7, 0x17, 0x4b, 0x54, 0xef, 0x05, 0xc6, 0x98, 0x07, 0x93, 0x27,
+ 0x3e, 0x4f, 0xdc, 0x0f, 0xc6, 0x7b, 0x8b, 0xe7, 0xf3, 0x06, 0x5e, 0x8d,
+ 0xe8, 0xb4, 0xae, 0x29, 0xb4, 0x1e, 0x1e, 0x2d, 0x16, 0x90, 0xd3, 0xea,
+ 0xaa, 0xe7, 0x8c, 0x3b, 0x6d, 0xaf, 0x36, 0x59, 0xff, 0xc5, 0x0a, 0xfa,
+ 0xc7, 0x4c, 0xbd, 0x36, 0x8b, 0x64, 0xc4, 0x4a, 0xf5, 0xce, 0x33, 0xf9,
+ 0x07, 0xbe, 0x7f, 0x45, 0x90, 0xa8, 0x08, 0x14, 0xb0, 0xd0, 0xa5, 0x4f,
+ 0xdf, 0x82, 0x80, 0xda, 0x1b, 0xee, 0xc3, 0x13, 0xb0, 0x98, 0xf5, 0x0f,
+ 0xf9, 0x7e, 0x76, 0xb5, 0xe6, 0xb9, 0x5d, 0x68, 0xb9, 0x5c, 0x50, 0x90,
+ 0x89, 0xa4, 0x36, 0xb1, 0x70, 0x16, 0xea, 0xb1, 0x10, 0xb5, 0x6a, 0x76,
+ 0xdf, 0xe1, 0xbb, 0xfc, 0x78, 0xf2, 0x72, 0x99, 0xcf, 0xc9, 0xa2, 0xd4,
+ 0x73, 0x54, 0x77, 0xbf, 0xc0, 0x39, 0x77, 0xe5, 0xae, 0x12, 0xc5, 0x78,
+ 0x5a, 0x19, 0x45, 0xd4, 0x41, 0x19, 0xd3, 0x7c, 0xf5, 0x6f, 0x99, 0x6b,
+ 0xd7, 0x8b, 0xbc, 0x2d, 0x09, 0x9d, 0x4b, 0x10, 0x61, 0xc0, 0xda, 0x52,
+ 0xc3, 0xaf, 0x22, 0x43, 0xc6, 0xeb, 0x37, 0x7e, 0x63, 0x74, 0x30, 0x0d,
+ 0x6a, 0x71, 0x8e, 0xde, 0x5d, 0x5b, 0x8a, 0xc8, 0xc5, 0xd7, 0x9b, 0x29,
+ 0xe8, 0xae, 0xb6, 0x25, 0x61, 0x81, 0xeb, 0x02, 0x03, 0x01, 0x00, 0x01,
+ 0xa3, 0x82, 0x01, 0x49, 0x30, 0x82, 0x01, 0x45, 0x30, 0x2e, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22, 0x30, 0x20,
+ 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+ 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73,
+ 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03,
+ 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+ 0xff, 0x02, 0x01, 0x00, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+ 0x45, 0x30, 0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86,
+ 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x36,
+ 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2f, 0x30, 0x2d, 0x30, 0x2b, 0xa0,
+ 0x29, 0xa0, 0x27, 0x86, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x50, 0x43, 0x41, 0x2d,
+ 0x47, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x29,
+ 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30,
+ 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11,
+ 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d,
+ 0x31, 0x2d, 0x36, 0x39, 0x37, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
+ 0x04, 0x16, 0x04, 0x14, 0x4c, 0xf4, 0xbf, 0xe8, 0x3b, 0xbe, 0xc2, 0x24,
+ 0xf3, 0x1b, 0x47, 0x3b, 0xb5, 0x6e, 0x48, 0x8e, 0x16, 0xab, 0xaf, 0x12,
+ 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
+ 0x14, 0xc4, 0x79, 0xca, 0x8e, 0xa1, 0x4e, 0x03, 0x1d, 0x1c, 0xdc, 0x6b,
+ 0xdb, 0x31, 0x5b, 0x94, 0x3e, 0x3f, 0x30, 0x7f, 0x2d, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x01, 0x00, 0x7a, 0x53, 0xb5, 0xde, 0xb6, 0xef, 0x52,
+ 0xa3, 0x5f, 0x8a, 0xf5, 0x89, 0xf1, 0x42, 0xcc, 0x5e, 0x46, 0x88, 0xae,
+ 0xa5, 0x08, 0x87, 0x51, 0xde, 0x0f, 0x0f, 0x02, 0xeb, 0x0c, 0x82, 0x78,
+ 0xe3, 0x73, 0x7d, 0x71, 0xbd, 0x43, 0xe9, 0xca, 0x8a, 0x3f, 0xe0, 0x25,
+ 0x92, 0x9b, 0x33, 0x33, 0x74, 0x49, 0x5e, 0x00, 0xd9, 0x73, 0x14, 0x1c,
+ 0x0b, 0x46, 0x76, 0x1c, 0x8a, 0x0d, 0x4d, 0x8c, 0x6c, 0x7e, 0x4b, 0xf7,
+ 0x60, 0xd8, 0x81, 0x78, 0xa0, 0x78, 0xd0, 0x25, 0x62, 0xab, 0x10, 0xca,
+ 0x22, 0xe8, 0x1c, 0x19, 0xdd, 0x52, 0x83, 0x64, 0x05, 0xe5, 0x87, 0x66,
+ 0xae, 0xe7, 0x7a, 0xa4, 0x3b, 0x3e, 0xd8, 0x70, 0x7a, 0x76, 0xa2, 0x67,
+ 0x39, 0xd4, 0xc9, 0xfa, 0xe5, 0xb7, 0x1e, 0x41, 0xe2, 0x09, 0x39, 0x88,
+ 0x1c, 0x18, 0x55, 0x0a, 0xc4, 0x41, 0xaf, 0xb2, 0xf3, 0xf3, 0x0f, 0x42,
+ 0x14, 0x61, 0x74, 0x81, 0xe3, 0xda, 0x87, 0x5a, 0x9a, 0x4d, 0x8b, 0xd3,
+ 0xc9, 0x8f, 0x89, 0x66, 0x13, 0x29, 0x11, 0xe4, 0xff, 0xe2, 0xdf, 0x8e,
+ 0x96, 0x0c, 0x5a, 0xa1, 0xaa, 0x6b, 0x9b, 0xfd, 0xfc, 0x03, 0x3b, 0x55,
+ 0x0d, 0xa6, 0xa2, 0x25, 0x48, 0x17, 0x1f, 0x42, 0xa8, 0xda, 0x6c, 0x7e,
+ 0x69, 0x6e, 0xa0, 0xdf, 0x67, 0xd2, 0x6d, 0xf4, 0x0e, 0x6a, 0x12, 0x79,
+ 0xf5, 0x7c, 0xc8, 0xa5, 0x32, 0x1c, 0xc4, 0x31, 0xb2, 0xe6, 0xbb, 0xa8,
+ 0x6b, 0x6a, 0xa2, 0x8a, 0x60, 0x69, 0xc0, 0x57, 0x7d, 0xb2, 0xf2, 0x31,
+ 0x0c, 0x98, 0x65, 0x32, 0xec, 0x08, 0x5a, 0xce, 0xc6, 0x98, 0xe9, 0x21,
+ 0x97, 0x3f, 0x2c, 0x79, 0x29, 0x03, 0xf5, 0xf6, 0x94, 0x2b, 0x53, 0x31,
+ 0xf3, 0x93, 0x68, 0x57, 0xe1, 0xd7, 0x4f, 0x3a, 0xd1, 0x61, 0xa1, 0x60,
+ 0xce, 0xb9, 0xab, 0x98, 0xae, 0x35, 0x54, 0x63, 0x8b,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 0c:79:a9:44:b0:8c:11:95:20:92:61:5f:e2:6b:1d:83
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
+ Validity
+ Not Before: Oct 22 12:00:00 2013 GMT
+ Not After : Oct 22 12:00:00 2028 GMT
+ Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 Extended Validation Server CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:d7:53:a4:04:51:f8:99:a6:16:48:4b:67:27:aa:
+ 93:49:d0:39:ed:0c:b0:b0:00:87:f1:67:28:86:85:
+ 8c:8e:63:da:bc:b1:40:38:e2:d3:f5:ec:a5:05:18:
+ b8:3d:3e:c5:99:17:32:ec:18:8c:fa:f1:0c:a6:64:
+ 21:85:cb:07:10:34:b0:52:88:2b:1f:68:9b:d2:b1:
+ 8f:12:b0:b3:d2:e7:88:1f:1f:ef:38:77:54:53:5f:
+ 80:79:3f:2e:1a:aa:a8:1e:4b:2b:0d:ab:b7:63:b9:
+ 35:b7:7d:14:bc:59:4b:df:51:4a:d2:a1:e2:0c:e2:
+ 90:82:87:6a:ae:ea:d7:64:d6:98:55:e8:fd:af:1a:
+ 50:6c:54:bc:11:f2:fd:4a:f2:9d:bb:7f:0e:f4:d5:
+ be:8e:16:89:12:55:d8:c0:71:34:ee:f6:dc:2d:ec:
+ c4:87:25:86:8d:d8:21:e4:b0:4d:0c:89:dc:39:26:
+ 17:dd:f6:d7:94:85:d8:04:21:70:9d:6f:6f:ff:5c:
+ ba:19:e1:45:cb:56:57:28:7e:1c:0d:41:57:aa:b7:
+ b8:27:bb:b1:e4:fa:2a:ef:21:23:75:1a:ad:2d:9b:
+ 86:35:8c:9c:77:b5:73:ad:d8:94:2d:e4:f3:0c:9d:
+ ee:c1:4e:62:7e:17:c0:71:9e:2c:de:f1:f9:10:28:
+ 19:33
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication
+ Authority Information Access:
+ OCSP - URI:http://ocsp.digicert.com
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl4.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.digicert.com/CPS
+
+ X509v3 Subject Key Identifier:
+ 3D:D3:50:A5:D6:A0:AD:EE:F3:4A:60:0A:65:D3:21:D4:F8:F8:D6:0F
+ X509v3 Authority Key Identifier:
+ keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 9d:b6:d0:90:86:e1:86:02:ed:c5:a0:f0:34:1c:74:c1:8d:76:
+ cc:86:0a:a8:f0:4a:8a:42:d6:3f:c8:a9:4d:ad:7c:08:ad:e6:
+ b6:50:b8:a2:1a:4d:88:07:b1:29:21:dc:e7:da:c6:3c:21:e0:
+ e3:11:49:70:ac:7a:1d:01:a4:ca:11:3a:57:ab:7d:57:2a:40:
+ 74:fd:d3:1d:85:18:50:df:57:47:75:a1:7d:55:20:2e:47:37:
+ 50:72:8c:7f:82:1b:d2:62:8f:2d:03:5a:da:c3:c8:a1:ce:2c:
+ 52:a2:00:63:eb:73:ba:71:c8:49:27:23:97:64:85:9e:38:0e:
+ ad:63:68:3c:ba:52:81:58:79:a3:2c:0c:df:de:6d:eb:31:f2:
+ ba:a0:7c:6c:f1:2c:d4:e1:bd:77:84:37:03:ce:32:b5:c8:9a:
+ 81:1a:4a:92:4e:3b:46:9a:85:fe:83:a2:f9:9e:8c:a3:cc:0d:
+ 5e:b3:3d:cf:04:78:8f:14:14:7b:32:9c:c7:00:a6:5c:c4:b5:
+ a1:55:8d:5a:56:68:a4:22:70:aa:3c:81:71:d9:9d:a8:45:3b:
+ f4:e5:f6:a2:51:dd:c7:7b:62:e8:6f:0c:74:eb:b8:da:f8:bf:
+ 87:0d:79:50:91:90:9b:18:3b:91:59:27:f1:35:28:13:ab:26:
+ 7e:d5:f7:7a
+-----BEGIN CERTIFICATE-----
+MIIEtjCCA56gAwIBAgIQDHmpRLCMEZUgkmFf4msdgzANBgkqhkiG9w0BAQsFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowdTEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTE0MDIGA1UEAxMrRGlnaUNlcnQgU0hBMiBFeHRlbmRlZCBW
+YWxpZGF0aW9uIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBANdTpARR+JmmFkhLZyeqk0nQOe0MsLAAh/FnKIaFjI5j2ryxQDji0/XspQUY
+uD0+xZkXMuwYjPrxDKZkIYXLBxA0sFKIKx9om9KxjxKws9LniB8f7zh3VFNfgHk/
+LhqqqB5LKw2rt2O5Nbd9FLxZS99RStKh4gzikIKHaq7q12TWmFXo/a8aUGxUvBHy
+/Urynbt/DvTVvo4WiRJV2MBxNO723C3sxIclho3YIeSwTQyJ3DkmF93215SF2AQh
+cJ1vb/9cuhnhRctWVyh+HA1BV6q3uCe7seT6Ku8hI3UarS2bhjWMnHe1c63YlC3k
+8wyd7sFOYn4XwHGeLN7x+RAoGTMCAwEAAaOCAUkwggFFMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
+BQcDAjA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp
+Z2ljZXJ0LmNvbTBLBgNVHR8ERDBCMECgPqA8hjpodHRwOi8vY3JsNC5kaWdpY2Vy
+dC5jb20vRGlnaUNlcnRIaWdoQXNzdXJhbmNlRVZSb290Q0EuY3JsMD0GA1UdIAQ2
+MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5j
+b20vQ1BTMB0GA1UdDgQWBBQ901Cl1qCt7vNKYApl0yHU+PjWDzAfBgNVHSMEGDAW
+gBSxPsNpA/i/RwHUmCYaCALvY2QrwzANBgkqhkiG9w0BAQsFAAOCAQEAnbbQkIbh
+hgLtxaDwNBx0wY12zIYKqPBKikLWP8ipTa18CK3mtlC4ohpNiAexKSHc59rGPCHg
+4xFJcKx6HQGkyhE6V6t9VypAdP3THYUYUN9XR3WhfVUgLkc3UHKMf4Ib0mKPLQNa
+2sPIoc4sUqIAY+tzunHISScjl2SFnjgOrWNoPLpSgVh5oywM395t6zHyuqB8bPEs
+1OG9d4Q3A84ytciagRpKkk47RpqF/oOi+Z6Mo8wNXrM9zwR4jxQUezKcxwCmXMS1
+oVWNWlZopCJwqjyBcdmdqEU79OX2olHdx3ti6G8MdOu42vi/hw15UJGQmxg7kVkn
+8TUoE6smftX3eg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert33[] = {
+ 0x30, 0x82, 0x04, 0xb6, 0x30, 0x82, 0x03, 0x9e, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x0c, 0x79, 0xa9, 0x44, 0xb0, 0x8c, 0x11, 0x95, 0x20,
+ 0x92, 0x61, 0x5f, 0xe2, 0x6b, 0x1d, 0x83, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x6c,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+ 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+ 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x22, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48,
+ 0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63,
+ 0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+ 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x32, 0x32, 0x31, 0x32,
+ 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x38, 0x31, 0x30, 0x32,
+ 0x32, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x75, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44, 0x69,
+ 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x19,
+ 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77, 0x77, 0x77,
+ 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x31, 0x34, 0x30, 0x32, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2b,
+ 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x48, 0x41,
+ 0x32, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x56,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+ 0x82, 0x01, 0x01, 0x00, 0xd7, 0x53, 0xa4, 0x04, 0x51, 0xf8, 0x99, 0xa6,
+ 0x16, 0x48, 0x4b, 0x67, 0x27, 0xaa, 0x93, 0x49, 0xd0, 0x39, 0xed, 0x0c,
+ 0xb0, 0xb0, 0x00, 0x87, 0xf1, 0x67, 0x28, 0x86, 0x85, 0x8c, 0x8e, 0x63,
+ 0xda, 0xbc, 0xb1, 0x40, 0x38, 0xe2, 0xd3, 0xf5, 0xec, 0xa5, 0x05, 0x18,
+ 0xb8, 0x3d, 0x3e, 0xc5, 0x99, 0x17, 0x32, 0xec, 0x18, 0x8c, 0xfa, 0xf1,
+ 0x0c, 0xa6, 0x64, 0x21, 0x85, 0xcb, 0x07, 0x10, 0x34, 0xb0, 0x52, 0x88,
+ 0x2b, 0x1f, 0x68, 0x9b, 0xd2, 0xb1, 0x8f, 0x12, 0xb0, 0xb3, 0xd2, 0xe7,
+ 0x88, 0x1f, 0x1f, 0xef, 0x38, 0x77, 0x54, 0x53, 0x5f, 0x80, 0x79, 0x3f,
+ 0x2e, 0x1a, 0xaa, 0xa8, 0x1e, 0x4b, 0x2b, 0x0d, 0xab, 0xb7, 0x63, 0xb9,
+ 0x35, 0xb7, 0x7d, 0x14, 0xbc, 0x59, 0x4b, 0xdf, 0x51, 0x4a, 0xd2, 0xa1,
+ 0xe2, 0x0c, 0xe2, 0x90, 0x82, 0x87, 0x6a, 0xae, 0xea, 0xd7, 0x64, 0xd6,
+ 0x98, 0x55, 0xe8, 0xfd, 0xaf, 0x1a, 0x50, 0x6c, 0x54, 0xbc, 0x11, 0xf2,
+ 0xfd, 0x4a, 0xf2, 0x9d, 0xbb, 0x7f, 0x0e, 0xf4, 0xd5, 0xbe, 0x8e, 0x16,
+ 0x89, 0x12, 0x55, 0xd8, 0xc0, 0x71, 0x34, 0xee, 0xf6, 0xdc, 0x2d, 0xec,
+ 0xc4, 0x87, 0x25, 0x86, 0x8d, 0xd8, 0x21, 0xe4, 0xb0, 0x4d, 0x0c, 0x89,
+ 0xdc, 0x39, 0x26, 0x17, 0xdd, 0xf6, 0xd7, 0x94, 0x85, 0xd8, 0x04, 0x21,
+ 0x70, 0x9d, 0x6f, 0x6f, 0xff, 0x5c, 0xba, 0x19, 0xe1, 0x45, 0xcb, 0x56,
+ 0x57, 0x28, 0x7e, 0x1c, 0x0d, 0x41, 0x57, 0xaa, 0xb7, 0xb8, 0x27, 0xbb,
+ 0xb1, 0xe4, 0xfa, 0x2a, 0xef, 0x21, 0x23, 0x75, 0x1a, 0xad, 0x2d, 0x9b,
+ 0x86, 0x35, 0x8c, 0x9c, 0x77, 0xb5, 0x73, 0xad, 0xd8, 0x94, 0x2d, 0xe4,
+ 0xf3, 0x0c, 0x9d, 0xee, 0xc1, 0x4e, 0x62, 0x7e, 0x17, 0xc0, 0x71, 0x9e,
+ 0x2c, 0xde, 0xf1, 0xf9, 0x10, 0x28, 0x19, 0x33, 0x02, 0x03, 0x01, 0x00,
+ 0x01, 0xa3, 0x82, 0x01, 0x49, 0x30, 0x82, 0x01, 0x45, 0x30, 0x12, 0x06,
+ 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01,
+ 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f,
+ 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06,
+ 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x03, 0x02, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x64, 0x69,
+ 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4b,
+ 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x44, 0x30, 0x42, 0x30, 0x40, 0xa0,
+ 0x3e, 0xa0, 0x3c, 0x86, 0x3a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x63, 0x72, 0x6c, 0x34, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72,
+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65,
+ 0x72, 0x74, 0x48, 0x69, 0x67, 0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61,
+ 0x6e, 0x63, 0x65, 0x45, 0x56, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36,
+ 0x30, 0x34, 0x30, 0x32, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a,
+ 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01,
+ 0x16, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+ 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+ 0x0e, 0x04, 0x16, 0x04, 0x14, 0x3d, 0xd3, 0x50, 0xa5, 0xd6, 0xa0, 0xad,
+ 0xee, 0xf3, 0x4a, 0x60, 0x0a, 0x65, 0xd3, 0x21, 0xd4, 0xf8, 0xf8, 0xd6,
+ 0x0f, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0xb1, 0x3e, 0xc3, 0x69, 0x03, 0xf8, 0xbf, 0x47, 0x01, 0xd4,
+ 0x98, 0x26, 0x1a, 0x08, 0x02, 0xef, 0x63, 0x64, 0x2b, 0xc3, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x9d, 0xb6, 0xd0, 0x90, 0x86, 0xe1,
+ 0x86, 0x02, 0xed, 0xc5, 0xa0, 0xf0, 0x34, 0x1c, 0x74, 0xc1, 0x8d, 0x76,
+ 0xcc, 0x86, 0x0a, 0xa8, 0xf0, 0x4a, 0x8a, 0x42, 0xd6, 0x3f, 0xc8, 0xa9,
+ 0x4d, 0xad, 0x7c, 0x08, 0xad, 0xe6, 0xb6, 0x50, 0xb8, 0xa2, 0x1a, 0x4d,
+ 0x88, 0x07, 0xb1, 0x29, 0x21, 0xdc, 0xe7, 0xda, 0xc6, 0x3c, 0x21, 0xe0,
+ 0xe3, 0x11, 0x49, 0x70, 0xac, 0x7a, 0x1d, 0x01, 0xa4, 0xca, 0x11, 0x3a,
+ 0x57, 0xab, 0x7d, 0x57, 0x2a, 0x40, 0x74, 0xfd, 0xd3, 0x1d, 0x85, 0x18,
+ 0x50, 0xdf, 0x57, 0x47, 0x75, 0xa1, 0x7d, 0x55, 0x20, 0x2e, 0x47, 0x37,
+ 0x50, 0x72, 0x8c, 0x7f, 0x82, 0x1b, 0xd2, 0x62, 0x8f, 0x2d, 0x03, 0x5a,
+ 0xda, 0xc3, 0xc8, 0xa1, 0xce, 0x2c, 0x52, 0xa2, 0x00, 0x63, 0xeb, 0x73,
+ 0xba, 0x71, 0xc8, 0x49, 0x27, 0x23, 0x97, 0x64, 0x85, 0x9e, 0x38, 0x0e,
+ 0xad, 0x63, 0x68, 0x3c, 0xba, 0x52, 0x81, 0x58, 0x79, 0xa3, 0x2c, 0x0c,
+ 0xdf, 0xde, 0x6d, 0xeb, 0x31, 0xf2, 0xba, 0xa0, 0x7c, 0x6c, 0xf1, 0x2c,
+ 0xd4, 0xe1, 0xbd, 0x77, 0x84, 0x37, 0x03, 0xce, 0x32, 0xb5, 0xc8, 0x9a,
+ 0x81, 0x1a, 0x4a, 0x92, 0x4e, 0x3b, 0x46, 0x9a, 0x85, 0xfe, 0x83, 0xa2,
+ 0xf9, 0x9e, 0x8c, 0xa3, 0xcc, 0x0d, 0x5e, 0xb3, 0x3d, 0xcf, 0x04, 0x78,
+ 0x8f, 0x14, 0x14, 0x7b, 0x32, 0x9c, 0xc7, 0x00, 0xa6, 0x5c, 0xc4, 0xb5,
+ 0xa1, 0x55, 0x8d, 0x5a, 0x56, 0x68, 0xa4, 0x22, 0x70, 0xaa, 0x3c, 0x81,
+ 0x71, 0xd9, 0x9d, 0xa8, 0x45, 0x3b, 0xf4, 0xe5, 0xf6, 0xa2, 0x51, 0xdd,
+ 0xc7, 0x7b, 0x62, 0xe8, 0x6f, 0x0c, 0x74, 0xeb, 0xb8, 0xda, 0xf8, 0xbf,
+ 0x87, 0x0d, 0x79, 0x50, 0x91, 0x90, 0x9b, 0x18, 0x3b, 0x91, 0x59, 0x27,
+ 0xf1, 0x35, 0x28, 0x13, 0xab, 0x26, 0x7e, 0xd5, 0xf7, 0x7a,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 36:34:9e:18:c9:9c:26:69:b6:56:2e:6c:e5:ad:71:32
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2008 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA - G3
+ Validity
+ Not Before: May 23 00:00:00 2013 GMT
+ Not After : May 22 23:59:59 2023 GMT
+ Subject: C=US, O=thawte, Inc., CN=thawte SHA256 SSL CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:a3:63:2b:d4:ba:5d:38:ae:b0:cf:b9:4c:38:df:
+ 20:7d:f1:2b:47:71:1d:8b:68:f3:56:f9:9c:da:aa:
+ e5:84:26:de:a5:71:30:bc:f3:31:23:9d:e8:3b:80:
+ c8:66:57:75:b6:57:0e:db:93:f5:26:8e:70:ba:64:
+ 52:66:8a:2a:88:5c:44:18:4d:a8:a2:7c:bd:56:61:
+ 32:90:12:f9:35:87:48:60:b0:6e:90:67:44:01:8d:
+ e7:c9:0d:63:68:72:72:ab:63:3c:86:b8:1f:7d:ad:
+ 88:25:a7:6a:88:29:fb:59:c6:78:71:5f:2c:ba:89:
+ e6:d3:80:fd:57:ec:b9:51:5f:43:33:2e:7e:25:3b:
+ a4:04:d1:60:8c:b3:44:33:93:0c:ad:2a:b6:44:a2:
+ 19:3b:af:c4:90:6f:7b:05:87:86:9b:2c:6a:9d:2b:
+ 6c:77:c9:00:9f:c9:cf:ac:ed:3e:1b:f7:c3:f3:d9:
+ f8:6c:d4:a0:57:c4:fb:28:32:aa:33:f0:e6:ba:98:
+ df:e5:c2:4e:9c:74:bf:8a:48:c2:f2:1b:f0:77:40:
+ 41:07:04:b2:3a:d5:4c:c4:29:a9:11:40:3f:02:46:
+ f0:91:d5:d2:81:83:86:13:b3:31:ed:46:ab:a8:87:
+ 76:a9:99:7d:bc:cd:31:50:f4:a5:b5:dc:a5:32:b3:
+ 8b:8b
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ Authority Information Access:
+ OCSP - URI:http://ocsp.thawte.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: https://www.thawte.com/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.thawte.com/ThawtePCA-G3.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Alternative Name:
+ DirName:/CN=VeriSignMPKI-2-415
+ X509v3 Subject Key Identifier:
+ 2B:9A:35:AE:01:18:38:30:E1:70:7A:05:E0:11:76:A3:CE:BD:90:14
+ X509v3 Authority Key Identifier:
+ keyid:AD:6C:AA:94:60:9C:ED:E4:FF:FA:3E:0A:74:2B:63:03:F7:B6:59:BF
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 74:a6:56:e8:af:93:96:19:fb:26:f9:0d:b0:44:a5:cd:e9:7a:
+ 48:03:74:01:6c:13:71:b7:e0:82:90:99:62:23:e3:d6:99:af:
+ f0:c7:1e:9e:a8:18:21:db:b4:94:3f:34:56:1b:99:55:2f:8e:
+ f0:45:33:32:b7:72:c1:13:5b:34:d3:f5:60:e5:2e:18:d1:5c:
+ c5:6a:c1:aa:87:50:0c:1c:9d:64:2b:ff:1b:dc:d5:2e:61:0b:
+ e7:b9:b6:91:53:86:d9:03:2a:d1:3d:7b:4a:da:2b:07:be:29:
+ f2:60:42:a9:91:1a:0e:2e:3c:d1:7d:a5:13:14:02:fa:ee:8b:
+ 8d:b6:c8:b8:3e:56:81:57:21:24:3f:65:c3:b4:c9:ce:5c:8d:
+ 46:ac:53:f3:f9:55:74:c8:2b:fd:d2:78:70:f5:f8:11:e5:f4:
+ a7:ad:20:f5:9d:f1:ec:70:f6:13:ac:e6:8c:8d:db:3f:c6:f2:
+ 79:0e:ab:52:f2:cc:1b:79:27:cf:16:b3:d6:f3:c6:36:80:43:
+ ec:c5:94:f0:dd:90:8d:f8:c6:52:46:56:eb:74:47:be:a6:f3:
+ 19:ae:71:4c:c0:e1:e7:d4:cf:ed:d4:06:28:2a:11:3c:ba:d9:
+ 41:6e:00:e7:81:37:93:e4:da:62:c6:1d:67:6f:63:b4:14:86:
+ d9:a6:62:f0
+-----BEGIN CERTIFICATE-----
+MIIEwjCCA6qgAwIBAgIQNjSeGMmcJmm2Vi5s5a1xMjANBgkqhkiG9w0BAQsFADCB
+rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
+BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0xMzA1MjMwMDAwMDBa
+Fw0yMzA1MjIyMzU5NTlaMEMxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUs
+IEluYy4xHTAbBgNVBAMTFHRoYXd0ZSBTSEEyNTYgU1NMIENBMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo2Mr1LpdOK6wz7lMON8gffErR3Edi2jzVvmc
+2qrlhCbepXEwvPMxI53oO4DIZld1tlcO25P1Jo5wumRSZooqiFxEGE2oony9VmEy
+kBL5NYdIYLBukGdEAY3nyQ1jaHJyq2M8hrgffa2IJadqiCn7WcZ4cV8suonm04D9
+V+y5UV9DMy5+JTukBNFgjLNEM5MMrSq2RKIZO6/EkG97BYeGmyxqnStsd8kAn8nP
+rO0+G/fD89n4bNSgV8T7KDKqM/Dmupjf5cJOnHS/ikjC8hvwd0BBBwSyOtVMxCmp
+EUA/AkbwkdXSgYOGE7Mx7UarqId2qZl9vM0xUPSltdylMrOLiwIDAQABo4IBRDCC
+AUAwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC50aGF3
+dGUuY29tMBIGA1UdEwEB/wQIMAYBAf8CAQAwQQYDVR0gBDowODA2BgpghkgBhvhF
+AQc2MCgwJgYIKwYBBQUHAgEWGmh0dHBzOi8vd3d3LnRoYXd0ZS5jb20vY3BzMDcG
+A1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVQQ0Et
+RzMuY3JsMA4GA1UdDwEB/wQEAwIBBjAqBgNVHREEIzAhpB8wHTEbMBkGA1UEAxMS
+VmVyaVNpZ25NUEtJLTItNDE1MB0GA1UdDgQWBBQrmjWuARg4MOFwegXgEXajzr2Q
+FDAfBgNVHSMEGDAWgBStbKqUYJzt5P/6Pgp0K2MD97ZZvzANBgkqhkiG9w0BAQsF
+AAOCAQEAdKZW6K+Tlhn7JvkNsESlzel6SAN0AWwTcbfggpCZYiPj1pmv8McenqgY
+Idu0lD80VhuZVS+O8EUzMrdywRNbNNP1YOUuGNFcxWrBqodQDBydZCv/G9zVLmEL
+57m2kVOG2QMq0T17StorB74p8mBCqZEaDi480X2lExQC+u6LjbbIuD5WgVchJD9l
+w7TJzlyNRqxT8/lVdMgr/dJ4cPX4EeX0p60g9Z3x7HD2E6zmjI3bP8byeQ6rUvLM
+G3knzxaz1vPGNoBD7MWU8N2QjfjGUkZW63RHvqbzGa5xTMDh59TP7dQGKCoRPLrZ
+QW4A54E3k+TaYsYdZ29jtBSG2aZi8A==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert34[] = {
+ 0x30, 0x82, 0x04, 0xc2, 0x30, 0x82, 0x03, 0xaa, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x36, 0x34, 0x9e, 0x18, 0xc9, 0x9c, 0x26, 0x69, 0xb6,
+ 0x56, 0x2e, 0x6c, 0xe5, 0xad, 0x71, 0x32, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xae, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+ 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+ 0x30, 0x38, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x1b, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+ 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+ 0x33, 0x30, 0x35, 0x32, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a,
+ 0x17, 0x0d, 0x32, 0x33, 0x30, 0x35, 0x32, 0x32, 0x32, 0x33, 0x35, 0x39,
+ 0x35, 0x39, 0x5a, 0x30, 0x43, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03,
+ 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c,
+ 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x14, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53,
+ 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+ 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+ 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x63, 0x2b,
+ 0xd4, 0xba, 0x5d, 0x38, 0xae, 0xb0, 0xcf, 0xb9, 0x4c, 0x38, 0xdf, 0x20,
+ 0x7d, 0xf1, 0x2b, 0x47, 0x71, 0x1d, 0x8b, 0x68, 0xf3, 0x56, 0xf9, 0x9c,
+ 0xda, 0xaa, 0xe5, 0x84, 0x26, 0xde, 0xa5, 0x71, 0x30, 0xbc, 0xf3, 0x31,
+ 0x23, 0x9d, 0xe8, 0x3b, 0x80, 0xc8, 0x66, 0x57, 0x75, 0xb6, 0x57, 0x0e,
+ 0xdb, 0x93, 0xf5, 0x26, 0x8e, 0x70, 0xba, 0x64, 0x52, 0x66, 0x8a, 0x2a,
+ 0x88, 0x5c, 0x44, 0x18, 0x4d, 0xa8, 0xa2, 0x7c, 0xbd, 0x56, 0x61, 0x32,
+ 0x90, 0x12, 0xf9, 0x35, 0x87, 0x48, 0x60, 0xb0, 0x6e, 0x90, 0x67, 0x44,
+ 0x01, 0x8d, 0xe7, 0xc9, 0x0d, 0x63, 0x68, 0x72, 0x72, 0xab, 0x63, 0x3c,
+ 0x86, 0xb8, 0x1f, 0x7d, 0xad, 0x88, 0x25, 0xa7, 0x6a, 0x88, 0x29, 0xfb,
+ 0x59, 0xc6, 0x78, 0x71, 0x5f, 0x2c, 0xba, 0x89, 0xe6, 0xd3, 0x80, 0xfd,
+ 0x57, 0xec, 0xb9, 0x51, 0x5f, 0x43, 0x33, 0x2e, 0x7e, 0x25, 0x3b, 0xa4,
+ 0x04, 0xd1, 0x60, 0x8c, 0xb3, 0x44, 0x33, 0x93, 0x0c, 0xad, 0x2a, 0xb6,
+ 0x44, 0xa2, 0x19, 0x3b, 0xaf, 0xc4, 0x90, 0x6f, 0x7b, 0x05, 0x87, 0x86,
+ 0x9b, 0x2c, 0x6a, 0x9d, 0x2b, 0x6c, 0x77, 0xc9, 0x00, 0x9f, 0xc9, 0xcf,
+ 0xac, 0xed, 0x3e, 0x1b, 0xf7, 0xc3, 0xf3, 0xd9, 0xf8, 0x6c, 0xd4, 0xa0,
+ 0x57, 0xc4, 0xfb, 0x28, 0x32, 0xaa, 0x33, 0xf0, 0xe6, 0xba, 0x98, 0xdf,
+ 0xe5, 0xc2, 0x4e, 0x9c, 0x74, 0xbf, 0x8a, 0x48, 0xc2, 0xf2, 0x1b, 0xf0,
+ 0x77, 0x40, 0x41, 0x07, 0x04, 0xb2, 0x3a, 0xd5, 0x4c, 0xc4, 0x29, 0xa9,
+ 0x11, 0x40, 0x3f, 0x02, 0x46, 0xf0, 0x91, 0xd5, 0xd2, 0x81, 0x83, 0x86,
+ 0x13, 0xb3, 0x31, 0xed, 0x46, 0xab, 0xa8, 0x87, 0x76, 0xa9, 0x99, 0x7d,
+ 0xbc, 0xcd, 0x31, 0x50, 0xf4, 0xa5, 0xb5, 0xdc, 0xa5, 0x32, 0xb3, 0x8b,
+ 0x8b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x44, 0x30, 0x82,
+ 0x01, 0x40, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x01, 0x01, 0x04, 0x26, 0x30, 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77,
+ 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+ 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+ 0x01, 0x00, 0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3a, 0x30,
+ 0x38, 0x30, 0x36, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45,
+ 0x01, 0x07, 0x36, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73,
+ 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74,
+ 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x37, 0x06,
+ 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x30, 0x30, 0x2e, 0x30, 0x2c, 0xa0, 0x2a,
+ 0xa0, 0x28, 0x86, 0x26, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+ 0x72, 0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41, 0x2d,
+ 0x47, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2a,
+ 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x23, 0x30, 0x21, 0xa4, 0x1f, 0x30,
+ 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12,
+ 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49,
+ 0x2d, 0x32, 0x2d, 0x34, 0x31, 0x35, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+ 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2b, 0x9a, 0x35, 0xae, 0x01, 0x18, 0x38,
+ 0x30, 0xe1, 0x70, 0x7a, 0x05, 0xe0, 0x11, 0x76, 0xa3, 0xce, 0xbd, 0x90,
+ 0x14, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0xad, 0x6c, 0xaa, 0x94, 0x60, 0x9c, 0xed, 0xe4, 0xff, 0xfa,
+ 0x3e, 0x0a, 0x74, 0x2b, 0x63, 0x03, 0xf7, 0xb6, 0x59, 0xbf, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x74, 0xa6, 0x56, 0xe8, 0xaf, 0x93,
+ 0x96, 0x19, 0xfb, 0x26, 0xf9, 0x0d, 0xb0, 0x44, 0xa5, 0xcd, 0xe9, 0x7a,
+ 0x48, 0x03, 0x74, 0x01, 0x6c, 0x13, 0x71, 0xb7, 0xe0, 0x82, 0x90, 0x99,
+ 0x62, 0x23, 0xe3, 0xd6, 0x99, 0xaf, 0xf0, 0xc7, 0x1e, 0x9e, 0xa8, 0x18,
+ 0x21, 0xdb, 0xb4, 0x94, 0x3f, 0x34, 0x56, 0x1b, 0x99, 0x55, 0x2f, 0x8e,
+ 0xf0, 0x45, 0x33, 0x32, 0xb7, 0x72, 0xc1, 0x13, 0x5b, 0x34, 0xd3, 0xf5,
+ 0x60, 0xe5, 0x2e, 0x18, 0xd1, 0x5c, 0xc5, 0x6a, 0xc1, 0xaa, 0x87, 0x50,
+ 0x0c, 0x1c, 0x9d, 0x64, 0x2b, 0xff, 0x1b, 0xdc, 0xd5, 0x2e, 0x61, 0x0b,
+ 0xe7, 0xb9, 0xb6, 0x91, 0x53, 0x86, 0xd9, 0x03, 0x2a, 0xd1, 0x3d, 0x7b,
+ 0x4a, 0xda, 0x2b, 0x07, 0xbe, 0x29, 0xf2, 0x60, 0x42, 0xa9, 0x91, 0x1a,
+ 0x0e, 0x2e, 0x3c, 0xd1, 0x7d, 0xa5, 0x13, 0x14, 0x02, 0xfa, 0xee, 0x8b,
+ 0x8d, 0xb6, 0xc8, 0xb8, 0x3e, 0x56, 0x81, 0x57, 0x21, 0x24, 0x3f, 0x65,
+ 0xc3, 0xb4, 0xc9, 0xce, 0x5c, 0x8d, 0x46, 0xac, 0x53, 0xf3, 0xf9, 0x55,
+ 0x74, 0xc8, 0x2b, 0xfd, 0xd2, 0x78, 0x70, 0xf5, 0xf8, 0x11, 0xe5, 0xf4,
+ 0xa7, 0xad, 0x20, 0xf5, 0x9d, 0xf1, 0xec, 0x70, 0xf6, 0x13, 0xac, 0xe6,
+ 0x8c, 0x8d, 0xdb, 0x3f, 0xc6, 0xf2, 0x79, 0x0e, 0xab, 0x52, 0xf2, 0xcc,
+ 0x1b, 0x79, 0x27, 0xcf, 0x16, 0xb3, 0xd6, 0xf3, 0xc6, 0x36, 0x80, 0x43,
+ 0xec, 0xc5, 0x94, 0xf0, 0xdd, 0x90, 0x8d, 0xf8, 0xc6, 0x52, 0x46, 0x56,
+ 0xeb, 0x74, 0x47, 0xbe, 0xa6, 0xf3, 0x19, 0xae, 0x71, 0x4c, 0xc0, 0xe1,
+ 0xe7, 0xd4, 0xcf, 0xed, 0xd4, 0x06, 0x28, 0x2a, 0x11, 0x3c, 0xba, 0xd9,
+ 0x41, 0x6e, 0x00, 0xe7, 0x81, 0x37, 0x93, 0xe4, 0xda, 0x62, 0xc6, 0x1d,
+ 0x67, 0x6f, 0x63, 0xb4, 0x14, 0x86, 0xd9, 0xa6, 0x62, 0xf0,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 41:82:12:7d:12:d9:c6:b3:21:39:43:12:56:64:00:b8
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=GeoTrust Inc., OU=(c) 2008 GeoTrust Inc. - For authorized use only, CN=GeoTrust Primary Certification Authority - G3
+ Validity
+ Not Before: May 23 00:00:00 2013 GMT
+ Not After : May 22 23:59:59 2023 GMT
+ Subject: C=US, O=GeoTrust Inc., CN=GeoTrust SHA256 SSL CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:c6:a9:0b:5d:17:a5:7d:c6:cf:2a:ef:c6:66:d1:
+ 42:1e:5f:83:78:68:91:af:e6:a7:8b:f0:1d:44:01:
+ 0a:19:ca:9c:d4:8b:1d:e1:a1:90:a3:c1:5b:b4:d7:
+ 5b:6a:8b:fc:0e:49:1e:c2:62:29:fe:80:15:39:8b:
+ 81:2a:27:b5:fb:12:a8:05:22:0b:c5:2c:f5:d9:98:
+ dd:16:2f:3b:66:e7:62:a2:43:32:ac:8f:b5:85:c8:
+ 52:06:2c:5c:c0:77:fa:67:f7:83:e8:5e:05:8d:c8:
+ ab:a1:16:32:8a:d2:40:ec:86:3a:1c:23:a9:8d:b5:
+ 00:de:72:bd:85:55:fe:06:01:60:5d:ad:b3:e0:65:
+ 73:a5:92:14:9e:94:56:6f:93:ee:af:a9:3a:30:25:
+ 4a:8e:09:84:ef:b7:d2:d5:d7:9b:49:cd:e9:c0:5e:
+ 67:71:22:ac:50:90:43:20:5d:a1:a3:15:83:fd:fc:
+ a7:39:bc:6b:65:48:12:60:ff:dd:23:b3:3a:aa:f4:
+ 9f:9c:37:53:41:a2:47:93:81:33:09:e5:22:c6:c8:
+ 1c:49:a1:6e:8d:cc:83:b3:9a:cd:ea:43:f2:19:d3:
+ 24:cb:a8:29:ae:52:cc:f4:08:27:b0:84:ea:ce:27:
+ b5:e1:34:13:73:92:5c:87:86:2a:c6:b0:68:36:ad:
+ cb:09
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ Authority Information Access:
+ OCSP - URI:http://pca-g3-ocsp.geotrust.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.geotrust.com/resources/cps
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.geotrust.com/GeoTrustPCA-G3.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Alternative Name:
+ DirName:/CN=VeriSignMPKI-2-416
+ X509v3 Subject Key Identifier:
+ 14:67:8E:ED:83:4F:D6:1E:9D:40:04:0C:04:46:A1:70:34:B2:0F:72
+ X509v3 Authority Key Identifier:
+ keyid:C4:79:CA:8E:A1:4E:03:1D:1C:DC:6B:DB:31:5B:94:3E:3F:30:7F:2D
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 10:10:ea:f2:10:d6:08:46:e2:c1:8f:3e:36:59:c8:2b:0f:fe:
+ 4d:ec:e3:f8:b6:56:31:78:25:d4:76:f2:08:dd:ef:3f:cd:8b:
+ 1c:7e:aa:7f:fc:0b:a8:23:64:51:b3:87:d6:09:fa:22:fa:c7:
+ 0a:51:e8:ce:b8:f6:03:70:e0:1b:5a:b9:b1:b2:93:11:10:f9:
+ 97:05:07:29:6c:6d:57:25:54:e8:f9:66:9b:0e:fb:db:9f:ee:
+ 96:6f:65:cb:1f:d8:55:ce:31:fa:cf:02:f4:d0:7f:50:66:ff:
+ 2f:79:9b:a5:c2:df:d6:cf:c8:15:83:96:84:98:b2:46:d4:5f:
+ 13:a8:3e:a7:34:9c:05:38:da:cf:d6:69:95:a9:26:87:76:01:
+ d7:b2:51:0f:81:69:46:26:1c:99:b6:83:58:e3:3b:58:8f:dc:
+ b4:71:c0:b9:bf:42:9c:1c:03:9e:e4:46:a8:ea:b9:c1:cd:f6:
+ 5b:a9:3c:96:fb:79:a4:33:73:a7:9e:78:b9:70:dc:72:74:c4:
+ 32:c8:00:1b:c9:ef:48:d3:fb:3a:9b:fa:fe:7a:9a:40:69:1c:
+ c8:da:28:37:0b:d3:a3:b9:7e:96:cc:2b:28:c3:56:6c:6f:e9:
+ db:52:b1:fa:9a:fb:e7:af:b5:97:a6:22:c3:c5:a8:93:b1:00:
+ c9:07:b2:7d
+-----BEGIN CERTIFICATE-----
+MIIExzCCA6+gAwIBAgIQQYISfRLZxrMhOUMSVmQAuDANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
+MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEczMB4XDTEzMDUyMzAwMDAwMFoXDTIzMDUyMjIzNTk1OVowRjELMAkG
+A1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHzAdBgNVBAMTFkdlb1Ry
+dXN0IFNIQTI1NiBTU0wgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQDGqQtdF6V9xs8q78Zm0UIeX4N4aJGv5qeL8B1EAQoZypzUix3hoZCjwVu011tq
+i/wOSR7CYin+gBU5i4EqJ7X7EqgFIgvFLPXZmN0WLztm52KiQzKsj7WFyFIGLFzA
+d/pn94PoXgWNyKuhFjKK0kDshjocI6mNtQDecr2FVf4GAWBdrbPgZXOlkhSelFZv
+k+6vqTowJUqOCYTvt9LV15tJzenAXmdxIqxQkEMgXaGjFYP9/Kc5vGtlSBJg/90j
+szqq9J+cN1NBokeTgTMJ5SLGyBxJoW6NzIOzms3qQ/IZ0yTLqCmuUsz0CCewhOrO
+J7XhNBNzklyHhirGsGg2rcsJAgMBAAGjggFcMIIBWDA7BggrBgEFBQcBAQQvMC0w
+KwYIKwYBBQUHMAGGH2h0dHA6Ly9wY2EtZzMtb2NzcC5nZW90cnVzdC5jb20wEgYD
+VR0TAQH/BAgwBgEB/wIBADBMBgNVHSAERTBDMEEGCmCGSAGG+EUBBzYwMzAxBggr
+BgEFBQcCARYlaHR0cDovL3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2VzL2NwczA7
+BgNVHR8ENDAyMDCgLqAshipodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9HZW9UcnVz
+dFBDQS1HMy5jcmwwDgYDVR0PAQH/BAQDAgEGMCoGA1UdEQQjMCGkHzAdMRswGQYD
+VQQDExJWZXJpU2lnbk1QS0ktMi00MTYwHQYDVR0OBBYEFBRnju2DT9YenUAEDARG
+oXA0sg9yMB8GA1UdIwQYMBaAFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3
+DQEBCwUAA4IBAQAQEOryENYIRuLBjz42WcgrD/5N7OP4tlYxeCXUdvII3e8/zYsc
+fqp//AuoI2RRs4fWCfoi+scKUejOuPYDcOAbWrmxspMREPmXBQcpbG1XJVTo+Wab
+Dvvbn+6Wb2XLH9hVzjH6zwL00H9QZv8veZulwt/Wz8gVg5aEmLJG1F8TqD6nNJwF
+ONrP1mmVqSaHdgHXslEPgWlGJhyZtoNY4ztYj9y0ccC5v0KcHAOe5Eao6rnBzfZb
+qTyW+3mkM3Onnni5cNxydMQyyAAbye9I0/s6m/r+eppAaRzI2ig3C9OjuX6WzCso
+w1Zsb+nbUrH6mvvnr7WXpiLDxaiTsQDJB7J9
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert35[] = {
+ 0x30, 0x82, 0x04, 0xc7, 0x30, 0x82, 0x03, 0xaf, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x41, 0x82, 0x12, 0x7d, 0x12, 0xd9, 0xc6, 0xb3, 0x21,
+ 0x39, 0x43, 0x12, 0x56, 0x64, 0x00, 0xb8, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0x98, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x38, 0x20, 0x47, 0x65,
+ 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20,
+ 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c,
+ 0x79, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d,
+ 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x33, 0x30, 0x35, 0x32, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30,
+ 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x35, 0x32, 0x32, 0x32, 0x33,
+ 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x46, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72,
+ 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x16, 0x47, 0x65, 0x6f, 0x54, 0x72,
+ 0x75, 0x73, 0x74, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x53,
+ 0x53, 0x4c, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+ 0x01, 0x00, 0xc6, 0xa9, 0x0b, 0x5d, 0x17, 0xa5, 0x7d, 0xc6, 0xcf, 0x2a,
+ 0xef, 0xc6, 0x66, 0xd1, 0x42, 0x1e, 0x5f, 0x83, 0x78, 0x68, 0x91, 0xaf,
+ 0xe6, 0xa7, 0x8b, 0xf0, 0x1d, 0x44, 0x01, 0x0a, 0x19, 0xca, 0x9c, 0xd4,
+ 0x8b, 0x1d, 0xe1, 0xa1, 0x90, 0xa3, 0xc1, 0x5b, 0xb4, 0xd7, 0x5b, 0x6a,
+ 0x8b, 0xfc, 0x0e, 0x49, 0x1e, 0xc2, 0x62, 0x29, 0xfe, 0x80, 0x15, 0x39,
+ 0x8b, 0x81, 0x2a, 0x27, 0xb5, 0xfb, 0x12, 0xa8, 0x05, 0x22, 0x0b, 0xc5,
+ 0x2c, 0xf5, 0xd9, 0x98, 0xdd, 0x16, 0x2f, 0x3b, 0x66, 0xe7, 0x62, 0xa2,
+ 0x43, 0x32, 0xac, 0x8f, 0xb5, 0x85, 0xc8, 0x52, 0x06, 0x2c, 0x5c, 0xc0,
+ 0x77, 0xfa, 0x67, 0xf7, 0x83, 0xe8, 0x5e, 0x05, 0x8d, 0xc8, 0xab, 0xa1,
+ 0x16, 0x32, 0x8a, 0xd2, 0x40, 0xec, 0x86, 0x3a, 0x1c, 0x23, 0xa9, 0x8d,
+ 0xb5, 0x00, 0xde, 0x72, 0xbd, 0x85, 0x55, 0xfe, 0x06, 0x01, 0x60, 0x5d,
+ 0xad, 0xb3, 0xe0, 0x65, 0x73, 0xa5, 0x92, 0x14, 0x9e, 0x94, 0x56, 0x6f,
+ 0x93, 0xee, 0xaf, 0xa9, 0x3a, 0x30, 0x25, 0x4a, 0x8e, 0x09, 0x84, 0xef,
+ 0xb7, 0xd2, 0xd5, 0xd7, 0x9b, 0x49, 0xcd, 0xe9, 0xc0, 0x5e, 0x67, 0x71,
+ 0x22, 0xac, 0x50, 0x90, 0x43, 0x20, 0x5d, 0xa1, 0xa3, 0x15, 0x83, 0xfd,
+ 0xfc, 0xa7, 0x39, 0xbc, 0x6b, 0x65, 0x48, 0x12, 0x60, 0xff, 0xdd, 0x23,
+ 0xb3, 0x3a, 0xaa, 0xf4, 0x9f, 0x9c, 0x37, 0x53, 0x41, 0xa2, 0x47, 0x93,
+ 0x81, 0x33, 0x09, 0xe5, 0x22, 0xc6, 0xc8, 0x1c, 0x49, 0xa1, 0x6e, 0x8d,
+ 0xcc, 0x83, 0xb3, 0x9a, 0xcd, 0xea, 0x43, 0xf2, 0x19, 0xd3, 0x24, 0xcb,
+ 0xa8, 0x29, 0xae, 0x52, 0xcc, 0xf4, 0x08, 0x27, 0xb0, 0x84, 0xea, 0xce,
+ 0x27, 0xb5, 0xe1, 0x34, 0x13, 0x73, 0x92, 0x5c, 0x87, 0x86, 0x2a, 0xc6,
+ 0xb0, 0x68, 0x36, 0xad, 0xcb, 0x09, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
+ 0x82, 0x01, 0x5c, 0x30, 0x82, 0x01, 0x58, 0x30, 0x3b, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x2f, 0x30, 0x2d, 0x30,
+ 0x2b, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86,
+ 0x1f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x70, 0x63, 0x61, 0x2d,
+ 0x67, 0x33, 0x2d, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x65, 0x6f, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03,
+ 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+ 0xff, 0x02, 0x01, 0x00, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+ 0x45, 0x30, 0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86,
+ 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x3b,
+ 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0xa0,
+ 0x2e, 0xa0, 0x2c, 0x86, 0x2a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x63, 0x72, 0x6c, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x50, 0x43, 0x41, 0x2d, 0x47, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+ 0x02, 0x01, 0x06, 0x30, 0x2a, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x23,
+ 0x30, 0x21, 0xa4, 0x1f, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x12, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+ 0x6e, 0x4d, 0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x34, 0x31, 0x36, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x14, 0x67,
+ 0x8e, 0xed, 0x83, 0x4f, 0xd6, 0x1e, 0x9d, 0x40, 0x04, 0x0c, 0x04, 0x46,
+ 0xa1, 0x70, 0x34, 0xb2, 0x0f, 0x72, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xc4, 0x79, 0xca, 0x8e, 0xa1,
+ 0x4e, 0x03, 0x1d, 0x1c, 0xdc, 0x6b, 0xdb, 0x31, 0x5b, 0x94, 0x3e, 0x3f,
+ 0x30, 0x7f, 0x2d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x10,
+ 0x10, 0xea, 0xf2, 0x10, 0xd6, 0x08, 0x46, 0xe2, 0xc1, 0x8f, 0x3e, 0x36,
+ 0x59, 0xc8, 0x2b, 0x0f, 0xfe, 0x4d, 0xec, 0xe3, 0xf8, 0xb6, 0x56, 0x31,
+ 0x78, 0x25, 0xd4, 0x76, 0xf2, 0x08, 0xdd, 0xef, 0x3f, 0xcd, 0x8b, 0x1c,
+ 0x7e, 0xaa, 0x7f, 0xfc, 0x0b, 0xa8, 0x23, 0x64, 0x51, 0xb3, 0x87, 0xd6,
+ 0x09, 0xfa, 0x22, 0xfa, 0xc7, 0x0a, 0x51, 0xe8, 0xce, 0xb8, 0xf6, 0x03,
+ 0x70, 0xe0, 0x1b, 0x5a, 0xb9, 0xb1, 0xb2, 0x93, 0x11, 0x10, 0xf9, 0x97,
+ 0x05, 0x07, 0x29, 0x6c, 0x6d, 0x57, 0x25, 0x54, 0xe8, 0xf9, 0x66, 0x9b,
+ 0x0e, 0xfb, 0xdb, 0x9f, 0xee, 0x96, 0x6f, 0x65, 0xcb, 0x1f, 0xd8, 0x55,
+ 0xce, 0x31, 0xfa, 0xcf, 0x02, 0xf4, 0xd0, 0x7f, 0x50, 0x66, 0xff, 0x2f,
+ 0x79, 0x9b, 0xa5, 0xc2, 0xdf, 0xd6, 0xcf, 0xc8, 0x15, 0x83, 0x96, 0x84,
+ 0x98, 0xb2, 0x46, 0xd4, 0x5f, 0x13, 0xa8, 0x3e, 0xa7, 0x34, 0x9c, 0x05,
+ 0x38, 0xda, 0xcf, 0xd6, 0x69, 0x95, 0xa9, 0x26, 0x87, 0x76, 0x01, 0xd7,
+ 0xb2, 0x51, 0x0f, 0x81, 0x69, 0x46, 0x26, 0x1c, 0x99, 0xb6, 0x83, 0x58,
+ 0xe3, 0x3b, 0x58, 0x8f, 0xdc, 0xb4, 0x71, 0xc0, 0xb9, 0xbf, 0x42, 0x9c,
+ 0x1c, 0x03, 0x9e, 0xe4, 0x46, 0xa8, 0xea, 0xb9, 0xc1, 0xcd, 0xf6, 0x5b,
+ 0xa9, 0x3c, 0x96, 0xfb, 0x79, 0xa4, 0x33, 0x73, 0xa7, 0x9e, 0x78, 0xb9,
+ 0x70, 0xdc, 0x72, 0x74, 0xc4, 0x32, 0xc8, 0x00, 0x1b, 0xc9, 0xef, 0x48,
+ 0xd3, 0xfb, 0x3a, 0x9b, 0xfa, 0xfe, 0x7a, 0x9a, 0x40, 0x69, 0x1c, 0xc8,
+ 0xda, 0x28, 0x37, 0x0b, 0xd3, 0xa3, 0xb9, 0x7e, 0x96, 0xcc, 0x2b, 0x28,
+ 0xc3, 0x56, 0x6c, 0x6f, 0xe9, 0xdb, 0x52, 0xb1, 0xfa, 0x9a, 0xfb, 0xe7,
+ 0xaf, 0xb5, 0x97, 0xa6, 0x22, 0xc3, 0xc5, 0xa8, 0x93, 0xb1, 0x00, 0xc9,
+ 0x07, 0xb2, 0x7d,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 7 (0x7)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2
+ Validity
+ Not Before: May 3 07:00:00 2011 GMT
+ Not After : May 3 07:00:00 2031 GMT
+ Subject: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certs.godaddy.com/repository/, CN=Go Daddy Secure Certificate Authority - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b9:e0:cb:10:d4:af:76:bd:d4:93:62:eb:30:64:
+ b8:81:08:6c:c3:04:d9:62:17:8e:2f:ff:3e:65:cf:
+ 8f:ce:62:e6:3c:52:1c:da:16:45:4b:55:ab:78:6b:
+ 63:83:62:90:ce:0f:69:6c:99:c8:1a:14:8b:4c:cc:
+ 45:33:ea:88:dc:9e:a3:af:2b:fe:80:61:9d:79:57:
+ c4:cf:2e:f4:3f:30:3c:5d:47:fc:9a:16:bc:c3:37:
+ 96:41:51:8e:11:4b:54:f8:28:be:d0:8c:be:f0:30:
+ 38:1e:f3:b0:26:f8:66:47:63:6d:de:71:26:47:8f:
+ 38:47:53:d1:46:1d:b4:e3:dc:00:ea:45:ac:bd:bc:
+ 71:d9:aa:6f:00:db:db:cd:30:3a:79:4f:5f:4c:47:
+ f8:1d:ef:5b:c2:c4:9d:60:3b:b1:b2:43:91:d8:a4:
+ 33:4e:ea:b3:d6:27:4f:ad:25:8a:a5:c6:f4:d5:d0:
+ a6:ae:74:05:64:57:88:b5:44:55:d4:2d:2a:3a:3e:
+ f8:b8:bd:e9:32:0a:02:94:64:c4:16:3a:50:f1:4a:
+ ae:e7:79:33:af:0c:20:07:7f:e8:df:04:39:c2:69:
+ 02:6c:63:52:fa:77:c1:1b:c8:74:87:c8:b9:93:18:
+ 50:54:35:4b:69:4e:bc:3b:d3:49:2e:1f:dc:c1:d2:
+ 52:fb
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 40:C2:BD:27:8E:CC:34:83:30:A2:33:D7:FB:6C:B3:F0:B4:2C:80:CE
+ X509v3 Authority Key Identifier:
+ keyid:3A:9A:85:07:10:67:28:B6:EF:F6:BD:05:41:6E:20:C1:94:DA:0F:DE
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.godaddy.com/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.godaddy.com/gdroot-g2.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://certs.godaddy.com/repository/
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 08:7e:6c:93:10:c8:38:b8:96:a9:90:4b:ff:a1:5f:4f:04:ef:
+ 6c:3e:9c:88:06:c9:50:8f:a6:73:f7:57:31:1b:be:bc:e4:2f:
+ db:f8:ba:d3:5b:e0:b4:e7:e6:79:62:0e:0c:a2:d7:6a:63:73:
+ 31:b5:f5:a8:48:a4:3b:08:2d:a2:5d:90:d7:b4:7c:25:4f:11:
+ 56:30:c4:b6:44:9d:7b:2c:9d:e5:5e:e6:ef:0c:61:aa:bf:e4:
+ 2a:1b:ee:84:9e:b8:83:7d:c1:43:ce:44:a7:13:70:0d:91:1f:
+ f4:c8:13:ad:83:60:d9:d8:72:a8:73:24:1e:b5:ac:22:0e:ca:
+ 17:89:62:58:44:1b:ab:89:25:01:00:0f:cd:c4:1b:62:db:51:
+ b4:d3:0f:51:2a:9b:f4:bc:73:fc:76:ce:36:a4:cd:d9:d8:2c:
+ ea:ae:9b:f5:2a:b2:90:d1:4d:75:18:8a:3f:8a:41:90:23:7d:
+ 5b:4b:fe:a4:03:58:9b:46:b2:c3:60:60:83:f8:7d:50:41:ce:
+ c2:a1:90:c3:bb:ef:02:2f:d2:15:54:ee:44:15:d9:0a:ae:a7:
+ 8a:33:ed:b1:2d:76:36:26:dc:04:eb:9f:f7:61:1f:15:dc:87:
+ 6f:ee:46:96:28:ad:a1:26:7d:0a:09:a7:2e:04:a3:8d:bc:f8:
+ bc:04:30:01
+-----BEGIN CERTIFICATE-----
+MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
+EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
+ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3
+MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
+EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE
+CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD
+EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD
+BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv
+K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e
+cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY
+pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n
+eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB
+AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
+HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv
+9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
+b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n
+b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG
+CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv
+MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz
+91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2
+RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi
+DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11
+GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x
+LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert36[] = {
+ 0x30, 0x82, 0x04, 0xd0, 0x30, 0x82, 0x03, 0xb8, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x01, 0x07, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x83, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72,
+ 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
+ 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61,
+ 0x6c, 0x65, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x11, 0x47, 0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x28, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64,
+ 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37, 0x30, 0x30, 0x30,
+ 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37,
+ 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x81, 0xb4, 0x31, 0x0b, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a,
+ 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07,
+ 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65,
+ 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x47,
+ 0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2c, 0x20,
+ 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x65,
+ 0x72, 0x74, 0x73, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
+ 0x72, 0x79, 0x2f, 0x31, 0x33, 0x30, 0x31, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x2a, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20, 0x53,
+ 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+ 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xb9, 0xe0, 0xcb, 0x10, 0xd4, 0xaf, 0x76,
+ 0xbd, 0xd4, 0x93, 0x62, 0xeb, 0x30, 0x64, 0xb8, 0x81, 0x08, 0x6c, 0xc3,
+ 0x04, 0xd9, 0x62, 0x17, 0x8e, 0x2f, 0xff, 0x3e, 0x65, 0xcf, 0x8f, 0xce,
+ 0x62, 0xe6, 0x3c, 0x52, 0x1c, 0xda, 0x16, 0x45, 0x4b, 0x55, 0xab, 0x78,
+ 0x6b, 0x63, 0x83, 0x62, 0x90, 0xce, 0x0f, 0x69, 0x6c, 0x99, 0xc8, 0x1a,
+ 0x14, 0x8b, 0x4c, 0xcc, 0x45, 0x33, 0xea, 0x88, 0xdc, 0x9e, 0xa3, 0xaf,
+ 0x2b, 0xfe, 0x80, 0x61, 0x9d, 0x79, 0x57, 0xc4, 0xcf, 0x2e, 0xf4, 0x3f,
+ 0x30, 0x3c, 0x5d, 0x47, 0xfc, 0x9a, 0x16, 0xbc, 0xc3, 0x37, 0x96, 0x41,
+ 0x51, 0x8e, 0x11, 0x4b, 0x54, 0xf8, 0x28, 0xbe, 0xd0, 0x8c, 0xbe, 0xf0,
+ 0x30, 0x38, 0x1e, 0xf3, 0xb0, 0x26, 0xf8, 0x66, 0x47, 0x63, 0x6d, 0xde,
+ 0x71, 0x26, 0x47, 0x8f, 0x38, 0x47, 0x53, 0xd1, 0x46, 0x1d, 0xb4, 0xe3,
+ 0xdc, 0x00, 0xea, 0x45, 0xac, 0xbd, 0xbc, 0x71, 0xd9, 0xaa, 0x6f, 0x00,
+ 0xdb, 0xdb, 0xcd, 0x30, 0x3a, 0x79, 0x4f, 0x5f, 0x4c, 0x47, 0xf8, 0x1d,
+ 0xef, 0x5b, 0xc2, 0xc4, 0x9d, 0x60, 0x3b, 0xb1, 0xb2, 0x43, 0x91, 0xd8,
+ 0xa4, 0x33, 0x4e, 0xea, 0xb3, 0xd6, 0x27, 0x4f, 0xad, 0x25, 0x8a, 0xa5,
+ 0xc6, 0xf4, 0xd5, 0xd0, 0xa6, 0xae, 0x74, 0x05, 0x64, 0x57, 0x88, 0xb5,
+ 0x44, 0x55, 0xd4, 0x2d, 0x2a, 0x3a, 0x3e, 0xf8, 0xb8, 0xbd, 0xe9, 0x32,
+ 0x0a, 0x02, 0x94, 0x64, 0xc4, 0x16, 0x3a, 0x50, 0xf1, 0x4a, 0xae, 0xe7,
+ 0x79, 0x33, 0xaf, 0x0c, 0x20, 0x07, 0x7f, 0xe8, 0xdf, 0x04, 0x39, 0xc2,
+ 0x69, 0x02, 0x6c, 0x63, 0x52, 0xfa, 0x77, 0xc1, 0x1b, 0xc8, 0x74, 0x87,
+ 0xc8, 0xb9, 0x93, 0x18, 0x50, 0x54, 0x35, 0x4b, 0x69, 0x4e, 0xbc, 0x3b,
+ 0xd3, 0x49, 0x2e, 0x1f, 0xdc, 0xc1, 0xd2, 0x52, 0xfb, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x1a, 0x30, 0x82, 0x01, 0x16, 0x30, 0x0f,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+ 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x40, 0xc2, 0xbd, 0x27, 0x8e, 0xcc,
+ 0x34, 0x83, 0x30, 0xa2, 0x33, 0xd7, 0xfb, 0x6c, 0xb3, 0xf0, 0xb4, 0x2c,
+ 0x80, 0xce, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0x3a, 0x9a, 0x85, 0x07, 0x10, 0x67, 0x28, 0xb6, 0xef,
+ 0xf6, 0xbd, 0x05, 0x41, 0x6e, 0x20, 0xc1, 0x94, 0xda, 0x0f, 0xde, 0x30,
+ 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x35, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67,
+ 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67,
+ 0x64, 0x72, 0x6f, 0x6f, 0x74, 0x2d, 0x67, 0x32, 0x2e, 0x63, 0x72, 0x6c,
+ 0x30, 0x46, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d, 0x30,
+ 0x3b, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x33, 0x30, 0x31, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68,
+ 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73,
+ 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x08, 0x7e, 0x6c, 0x93,
+ 0x10, 0xc8, 0x38, 0xb8, 0x96, 0xa9, 0x90, 0x4b, 0xff, 0xa1, 0x5f, 0x4f,
+ 0x04, 0xef, 0x6c, 0x3e, 0x9c, 0x88, 0x06, 0xc9, 0x50, 0x8f, 0xa6, 0x73,
+ 0xf7, 0x57, 0x31, 0x1b, 0xbe, 0xbc, 0xe4, 0x2f, 0xdb, 0xf8, 0xba, 0xd3,
+ 0x5b, 0xe0, 0xb4, 0xe7, 0xe6, 0x79, 0x62, 0x0e, 0x0c, 0xa2, 0xd7, 0x6a,
+ 0x63, 0x73, 0x31, 0xb5, 0xf5, 0xa8, 0x48, 0xa4, 0x3b, 0x08, 0x2d, 0xa2,
+ 0x5d, 0x90, 0xd7, 0xb4, 0x7c, 0x25, 0x4f, 0x11, 0x56, 0x30, 0xc4, 0xb6,
+ 0x44, 0x9d, 0x7b, 0x2c, 0x9d, 0xe5, 0x5e, 0xe6, 0xef, 0x0c, 0x61, 0xaa,
+ 0xbf, 0xe4, 0x2a, 0x1b, 0xee, 0x84, 0x9e, 0xb8, 0x83, 0x7d, 0xc1, 0x43,
+ 0xce, 0x44, 0xa7, 0x13, 0x70, 0x0d, 0x91, 0x1f, 0xf4, 0xc8, 0x13, 0xad,
+ 0x83, 0x60, 0xd9, 0xd8, 0x72, 0xa8, 0x73, 0x24, 0x1e, 0xb5, 0xac, 0x22,
+ 0x0e, 0xca, 0x17, 0x89, 0x62, 0x58, 0x44, 0x1b, 0xab, 0x89, 0x25, 0x01,
+ 0x00, 0x0f, 0xcd, 0xc4, 0x1b, 0x62, 0xdb, 0x51, 0xb4, 0xd3, 0x0f, 0x51,
+ 0x2a, 0x9b, 0xf4, 0xbc, 0x73, 0xfc, 0x76, 0xce, 0x36, 0xa4, 0xcd, 0xd9,
+ 0xd8, 0x2c, 0xea, 0xae, 0x9b, 0xf5, 0x2a, 0xb2, 0x90, 0xd1, 0x4d, 0x75,
+ 0x18, 0x8a, 0x3f, 0x8a, 0x41, 0x90, 0x23, 0x7d, 0x5b, 0x4b, 0xfe, 0xa4,
+ 0x03, 0x58, 0x9b, 0x46, 0xb2, 0xc3, 0x60, 0x60, 0x83, 0xf8, 0x7d, 0x50,
+ 0x41, 0xce, 0xc2, 0xa1, 0x90, 0xc3, 0xbb, 0xef, 0x02, 0x2f, 0xd2, 0x15,
+ 0x54, 0xee, 0x44, 0x15, 0xd9, 0x0a, 0xae, 0xa7, 0x8a, 0x33, 0xed, 0xb1,
+ 0x2d, 0x76, 0x36, 0x26, 0xdc, 0x04, 0xeb, 0x9f, 0xf7, 0x61, 0x1f, 0x15,
+ 0xdc, 0x87, 0x6f, 0xee, 0x46, 0x96, 0x28, 0xad, 0xa1, 0x26, 0x7d, 0x0a,
+ 0x09, 0xa7, 0x2e, 0x04, 0xa3, 0x8d, 0xbc, 0xf8, 0xbc, 0x04, 0x30, 0x01,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 25:0c:e8:e0:30:61:2e:9f:2b:89:f7:05:4d:7c:f8:fd
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
+ Validity
+ Not Before: Nov 8 00:00:00 2006 GMT
+ Not After : Nov 7 23:59:59 2021 GMT
+ Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:af:24:08:08:29:7a:35:9e:60:0c:aa:e7:4b:3b:
+ 4e:dc:7c:bc:3c:45:1c:bb:2b:e0:fe:29:02:f9:57:
+ 08:a3:64:85:15:27:f5:f1:ad:c8:31:89:5d:22:e8:
+ 2a:aa:a6:42:b3:8f:f8:b9:55:b7:b1:b7:4b:b3:fe:
+ 8f:7e:07:57:ec:ef:43:db:66:62:15:61:cf:60:0d:
+ a4:d8:de:f8:e0:c3:62:08:3d:54:13:eb:49:ca:59:
+ 54:85:26:e5:2b:8f:1b:9f:eb:f5:a1:91:c2:33:49:
+ d8:43:63:6a:52:4b:d2:8f:e8:70:51:4d:d1:89:69:
+ 7b:c7:70:f6:b3:dc:12:74:db:7b:5d:4b:56:d3:96:
+ bf:15:77:a1:b0:f4:a2:25:f2:af:1c:92:67:18:e5:
+ f4:06:04:ef:90:b9:e4:00:e4:dd:3a:b5:19:ff:02:
+ ba:f4:3c:ee:e0:8b:eb:37:8b:ec:f4:d7:ac:f2:f6:
+ f0:3d:af:dd:75:91:33:19:1d:1c:40:cb:74:24:19:
+ 21:93:d9:14:fe:ac:2a:52:c7:8f:d5:04:49:e4:8d:
+ 63:47:88:3c:69:83:cb:fe:47:bd:2b:7e:4f:c5:95:
+ ae:0e:9d:d4:d1:43:c0:67:73:e3:14:08:7e:e5:3f:
+ 9f:73:b8:33:0a:cf:5d:3f:34:87:96:8a:ee:53:e8:
+ 25:15
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.verisign.com/pca3.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://www.verisign.com/cps
+
+ X509v3 Subject Key Identifier:
+ 7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+ 1.3.6.1.5.5.7.1.12:
+ 0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+ Authority Information Access:
+ OCSP - URI:http://ocsp.verisign.com
+
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication, Code Signing, Netscape Server Gated Crypto, 2.16.840.1.113733.1.8.1
+ Signature Algorithm: sha1WithRSAEncryption
+ 13:02:dd:f8:e8:86:00:f2:5a:f8:f8:20:0c:59:88:62:07:ce:
+ ce:f7:4e:f9:bb:59:a1:98:e5:e1:38:dd:4e:bc:66:18:d3:ad:
+ eb:18:f2:0d:c9:6d:3e:4a:94:20:c3:3c:ba:bd:65:54:c6:af:
+ 44:b3:10:ad:2c:6b:3e:ab:d7:07:b6:b8:81:63:c5:f9:5e:2e:
+ e5:2a:67:ce:cd:33:0c:2a:d7:89:56:03:23:1f:b3:be:e8:3a:
+ 08:59:b4:ec:45:35:f7:8a:5b:ff:66:cf:50:af:c6:6d:57:8d:
+ 19:78:b7:b9:a2:d1:57:ea:1f:9a:4b:af:ba:c9:8e:12:7e:c6:
+ bd:ff
+-----BEGIN CERTIFICATE-----
+MIIE0DCCBDmgAwIBAgIQJQzo4DBhLp8rifcFTXz4/TANBgkqhkiG9w0BAQUFADBf
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
+LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv
+ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8
+RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb
+ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR
+TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH
+iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB
+AAGjggGbMIIBlzAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0
+dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjA9
+BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVy
+aXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwbQYI
+KwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQU
+j+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29t
+L3ZzbG9nby5naWYwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
+b2NzcC52ZXJpc2lnbi5jb20wPgYDVR0lBDcwNQYIKwYBBQUHAwEGCCsGAQUFBwMC
+BggrBgEFBQcDAwYJYIZIAYb4QgQBBgpghkgBhvhFAQgBMA0GCSqGSIb3DQEBBQUA
+A4GBABMC3fjohgDyWvj4IAxZiGIHzs73Tvm7WaGY5eE43U68ZhjTresY8g3JbT5K
+lCDDPLq9ZVTGr0SzEK0saz6r1we2uIFjxfleLuUqZ87NMwwq14lWAyMfs77oOghZ
+tOxFNfeKW/9mz1Cvxm1XjRl4t7mi0VfqH5pLr7rJjhJ+xr3/
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert37[] = {
+ 0x30, 0x82, 0x04, 0xd0, 0x30, 0x82, 0x04, 0x39, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x25, 0x0c, 0xe8, 0xe0, 0x30, 0x61, 0x2e, 0x9f, 0x2b,
+ 0x89, 0xf7, 0x05, 0x4d, 0x7c, 0xf8, 0xfd, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e,
+ 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x37, 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62,
+ 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30,
+ 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x30, 0x38, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31, 0x30, 0x37,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xca, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+ 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3a, 0x30,
+ 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28, 0x63, 0x29, 0x20,
+ 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+ 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f,
+ 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64,
+ 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x45, 0x30,
+ 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
+ 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xaf, 0x24, 0x08, 0x08, 0x29, 0x7a, 0x35,
+ 0x9e, 0x60, 0x0c, 0xaa, 0xe7, 0x4b, 0x3b, 0x4e, 0xdc, 0x7c, 0xbc, 0x3c,
+ 0x45, 0x1c, 0xbb, 0x2b, 0xe0, 0xfe, 0x29, 0x02, 0xf9, 0x57, 0x08, 0xa3,
+ 0x64, 0x85, 0x15, 0x27, 0xf5, 0xf1, 0xad, 0xc8, 0x31, 0x89, 0x5d, 0x22,
+ 0xe8, 0x2a, 0xaa, 0xa6, 0x42, 0xb3, 0x8f, 0xf8, 0xb9, 0x55, 0xb7, 0xb1,
+ 0xb7, 0x4b, 0xb3, 0xfe, 0x8f, 0x7e, 0x07, 0x57, 0xec, 0xef, 0x43, 0xdb,
+ 0x66, 0x62, 0x15, 0x61, 0xcf, 0x60, 0x0d, 0xa4, 0xd8, 0xde, 0xf8, 0xe0,
+ 0xc3, 0x62, 0x08, 0x3d, 0x54, 0x13, 0xeb, 0x49, 0xca, 0x59, 0x54, 0x85,
+ 0x26, 0xe5, 0x2b, 0x8f, 0x1b, 0x9f, 0xeb, 0xf5, 0xa1, 0x91, 0xc2, 0x33,
+ 0x49, 0xd8, 0x43, 0x63, 0x6a, 0x52, 0x4b, 0xd2, 0x8f, 0xe8, 0x70, 0x51,
+ 0x4d, 0xd1, 0x89, 0x69, 0x7b, 0xc7, 0x70, 0xf6, 0xb3, 0xdc, 0x12, 0x74,
+ 0xdb, 0x7b, 0x5d, 0x4b, 0x56, 0xd3, 0x96, 0xbf, 0x15, 0x77, 0xa1, 0xb0,
+ 0xf4, 0xa2, 0x25, 0xf2, 0xaf, 0x1c, 0x92, 0x67, 0x18, 0xe5, 0xf4, 0x06,
+ 0x04, 0xef, 0x90, 0xb9, 0xe4, 0x00, 0xe4, 0xdd, 0x3a, 0xb5, 0x19, 0xff,
+ 0x02, 0xba, 0xf4, 0x3c, 0xee, 0xe0, 0x8b, 0xeb, 0x37, 0x8b, 0xec, 0xf4,
+ 0xd7, 0xac, 0xf2, 0xf6, 0xf0, 0x3d, 0xaf, 0xdd, 0x75, 0x91, 0x33, 0x19,
+ 0x1d, 0x1c, 0x40, 0xcb, 0x74, 0x24, 0x19, 0x21, 0x93, 0xd9, 0x14, 0xfe,
+ 0xac, 0x2a, 0x52, 0xc7, 0x8f, 0xd5, 0x04, 0x49, 0xe4, 0x8d, 0x63, 0x47,
+ 0x88, 0x3c, 0x69, 0x83, 0xcb, 0xfe, 0x47, 0xbd, 0x2b, 0x7e, 0x4f, 0xc5,
+ 0x95, 0xae, 0x0e, 0x9d, 0xd4, 0xd1, 0x43, 0xc0, 0x67, 0x73, 0xe3, 0x14,
+ 0x08, 0x7e, 0xe5, 0x3f, 0x9f, 0x73, 0xb8, 0x33, 0x0a, 0xcf, 0x5d, 0x3f,
+ 0x34, 0x87, 0x96, 0x8a, 0xee, 0x53, 0xe8, 0x25, 0x15, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x9b, 0x30, 0x82, 0x01, 0x97, 0x30, 0x0f,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+ 0x01, 0x01, 0xff, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a,
+ 0x30, 0x28, 0x30, 0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72,
+ 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63,
+ 0x61, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3d,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+ 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+ 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72,
+ 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70,
+ 0x73, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+ 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x6d, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f,
+ 0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09,
+ 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30,
+ 0x1f, 0x30, 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14,
+ 0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80,
+ 0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e,
+ 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30,
+ 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+ 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67,
+ 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x3e, 0x06, 0x03, 0x55, 0x1d, 0x25,
+ 0x04, 0x37, 0x30, 0x35, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03, 0x06, 0x09,
+ 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x04, 0x01, 0x06, 0x0a, 0x60,
+ 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x08, 0x01, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00,
+ 0x03, 0x81, 0x81, 0x00, 0x13, 0x02, 0xdd, 0xf8, 0xe8, 0x86, 0x00, 0xf2,
+ 0x5a, 0xf8, 0xf8, 0x20, 0x0c, 0x59, 0x88, 0x62, 0x07, 0xce, 0xce, 0xf7,
+ 0x4e, 0xf9, 0xbb, 0x59, 0xa1, 0x98, 0xe5, 0xe1, 0x38, 0xdd, 0x4e, 0xbc,
+ 0x66, 0x18, 0xd3, 0xad, 0xeb, 0x18, 0xf2, 0x0d, 0xc9, 0x6d, 0x3e, 0x4a,
+ 0x94, 0x20, 0xc3, 0x3c, 0xba, 0xbd, 0x65, 0x54, 0xc6, 0xaf, 0x44, 0xb3,
+ 0x10, 0xad, 0x2c, 0x6b, 0x3e, 0xab, 0xd7, 0x07, 0xb6, 0xb8, 0x81, 0x63,
+ 0xc5, 0xf9, 0x5e, 0x2e, 0xe5, 0x2a, 0x67, 0xce, 0xcd, 0x33, 0x0c, 0x2a,
+ 0xd7, 0x89, 0x56, 0x03, 0x23, 0x1f, 0xb3, 0xbe, 0xe8, 0x3a, 0x08, 0x59,
+ 0xb4, 0xec, 0x45, 0x35, 0xf7, 0x8a, 0x5b, 0xff, 0x66, 0xcf, 0x50, 0xaf,
+ 0xc6, 0x6d, 0x57, 0x8d, 0x19, 0x78, 0xb7, 0xb9, 0xa2, 0xd1, 0x57, 0xea,
+ 0x1f, 0x9a, 0x4b, 0xaf, 0xba, 0xc9, 0x8e, 0x12, 0x7e, 0xc6, 0xbd, 0xff,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 2c:69:e1:2f:6a:67:0b:d9:9d:d2:0f:91:9e:f0:9e:51
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+ Validity
+ Not Before: Jun 10 00:00:00 2014 GMT
+ Not After : Jun 9 23:59:59 2024 GMT
+ Subject: C=US, O=thawte, Inc., OU=Domain Validated SSL, CN=thawte DV SSL CA - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:ea:94:07:85:c8:41:2c:f6:83:12:6c:92:5f:ab:
+ 1f:00:d4:96:6f:74:cd:2e:11:e9:6c:0f:39:01:b9:
+ 48:90:40:39:4d:c4:a2:c8:79:6a:a5:9a:bd:91:44:
+ 65:77:54:ad:ff:25:5f:ee:42:fb:b3:02:0f:ea:5d:
+ 7a:dd:1a:54:9e:d7:73:42:9b:cc:79:5f:c5:4d:f4:
+ b7:0b:18:39:20:7a:dd:50:01:5d:34:45:5f:4c:11:
+ 0e:f5:87:26:26:b4:b0:f3:7e:71:a0:31:71:50:89:
+ 68:5a:63:8a:14:62:e5:8c:3a:16:55:0d:3e:eb:aa:
+ 80:1d:71:7a:e3:87:07:ab:bd:a2:74:cd:da:08:01:
+ 9d:1b:cc:27:88:8c:47:d4:69:25:42:d6:bb:50:6d:
+ 85:50:d0:48:82:0d:08:9f:e9:23:e3:42:c6:3c:98:
+ b8:bb:6e:c5:70:13:df:19:1d:01:fd:d2:b5:4e:e6:
+ 62:f4:07:fa:6b:7d:11:77:c4:62:4f:40:4e:a5:78:
+ 97:ab:2c:4d:0c:a7:7c:c3:c4:50:32:9f:d0:70:9b:
+ 0f:ff:ff:75:59:34:85:ad:49:d5:35:ee:4f:5b:d4:
+ d4:36:95:a0:7e:e8:c5:a1:1c:bd:13:4e:7d:ee:63:
+ 6a:96:19:99:c8:a7:2a:00:e6:51:8d:46:eb:30:58:
+ e8:2d
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: https://www.thawte.com/cps
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://t.symcd.com
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://t.symcb.com/ThawtePCA.crl
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-698
+ X509v3 Subject Key Identifier:
+ 9F:B8:C1:A9:6C:F2:F5:C0:22:2A:94:ED:5C:99:AC:D4:EC:D7:C6:07
+ X509v3 Authority Key Identifier:
+ keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 53:54:f2:47:a8:02:d7:ef:aa:35:78:be:4a:08:0d:90:18:4b:
+ 6d:9e:2a:53:2b:e9:54:17:77:74:29:7e:d0:37:07:05:b8:e4:
+ fa:b8:b4:63:98:44:dc:c6:4f:81:06:8c:3a:be:c7:30:57:c6:
+ 70:fc:d6:93:19:9f:c3:55:d7:3e:1f:72:8a:9d:30:5a:35:97:
+ 32:cb:63:e4:c6:72:df:fb:68:ca:69:2f:db:cd:50:38:3e:2b:
+ bb:ab:3b:82:c7:fd:4b:9b:bd:7c:41:98:ef:01:53:d8:35:8f:
+ 25:c9:03:06:e6:9c:57:c1:51:0f:9e:f6:7d:93:4d:f8:76:c8:
+ 3a:6b:f4:c4:8f:33:32:7f:9d:21:84:34:d9:a7:f9:92:fa:41:
+ 91:61:84:05:9d:a3:79:46:ce:67:e7:81:f2:5e:ac:4c:bc:a8:
+ ab:6a:6d:15:e2:9c:4e:5a:d9:63:80:bc:f7:42:eb:9a:44:c6:
+ 8c:6b:06:36:b4:8b:32:89:de:c2:f1:a8:26:aa:a9:ac:ff:ea:
+ 71:a6:e7:8c:41:fa:17:35:bb:b3:87:31:a9:93:c2:c8:58:e1:
+ 0a:4e:95:83:9c:b9:ed:3b:a5:ef:08:e0:74:f9:c3:1b:e6:07:
+ a3:ee:07:d7:42:22:79:21:a0:a1:d4:1d:26:d3:d0:d6:a6:5d:
+ 2b:41:c0:79
+-----BEGIN CERTIFICATE-----
+MIIE0jCCA7qgAwIBAgIQLGnhL2pnC9md0g+RnvCeUTANBgkqhkiG9w0BAQsFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTQwNjEwMDAwMDAwWhcNMjQw
+NjA5MjM1OTU5WjBjMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
+MR0wGwYDVQQLExREb21haW4gVmFsaWRhdGVkIFNTTDEeMBwGA1UEAxMVdGhhd3Rl
+IERWIFNTTCBDQSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+6pQHhchBLPaDEmySX6sfANSWb3TNLhHpbA85AblIkEA5TcSiyHlqpZq9kURld1St
+/yVf7kL7swIP6l163RpUntdzQpvMeV/FTfS3Cxg5IHrdUAFdNEVfTBEO9YcmJrSw
+835xoDFxUIloWmOKFGLljDoWVQ0+66qAHXF644cHq72idM3aCAGdG8wniIxH1Gkl
+Qta7UG2FUNBIgg0In+kj40LGPJi4u27FcBPfGR0B/dK1TuZi9Af6a30Rd8RiT0BO
+pXiXqyxNDKd8w8RQMp/QcJsP//91WTSFrUnVNe5PW9TUNpWgfujFoRy9E0597mNq
+lhmZyKcqAOZRjUbrMFjoLQIDAQABo4IBOTCCATUwEgYDVR0TAQH/BAgwBgEB/wIB
+ADBBBgNVHSAEOjA4MDYGCmCGSAGG+EUBBzYwKDAmBggrBgEFBQcCARYaaHR0cHM6
+Ly93d3cudGhhd3RlLmNvbS9jcHMwDgYDVR0PAQH/BAQDAgEGMC4GCCsGAQUFBwEB
+BCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL3Quc3ltY2QuY29tMDEGA1UdHwQqMCgw
+JqAkoCKGIGh0dHA6Ly90LnN5bWNiLmNvbS9UaGF3dGVQQ0EuY3JsMCkGA1UdEQQi
+MCCkHjAcMRowGAYDVQQDExFTeW1hbnRlY1BLSS0xLTY5ODAdBgNVHQ4EFgQUn7jB
+qWzy9cAiKpTtXJms1OzXxgcwHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutX
+SFAwDQYJKoZIhvcNAQELBQADggEBAFNU8keoAtfvqjV4vkoIDZAYS22eKlMr6VQX
+d3QpftA3BwW45Pq4tGOYRNzGT4EGjDq+xzBXxnD81pMZn8NV1z4fcoqdMFo1lzLL
+Y+TGct/7aMppL9vNUDg+K7urO4LH/UubvXxBmO8BU9g1jyXJAwbmnFfBUQ+e9n2T
+Tfh2yDpr9MSPMzJ/nSGENNmn+ZL6QZFhhAWdo3lGzmfngfJerEy8qKtqbRXinE5a
+2WOAvPdC65pExoxrBja0izKJ3sLxqCaqqaz/6nGm54xB+hc1u7OHMamTwshY4QpO
+lYOcue07pe8I4HT5wxvmB6PuB9dCInkhoKHUHSbT0NamXStBwHk=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert38[] = {
+ 0x30, 0x82, 0x04, 0xd2, 0x30, 0x82, 0x03, 0xba, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x2c, 0x69, 0xe1, 0x2f, 0x6a, 0x67, 0x0b, 0xd9, 0x9d,
+ 0xd2, 0x0f, 0x91, 0x9e, 0xf0, 0x9e, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+ 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+ 0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+ 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x36, 0x31, 0x30,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30,
+ 0x36, 0x30, 0x39, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x63,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+ 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+ 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x14, 0x44,
+ 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x20, 0x53, 0x53, 0x4c, 0x31, 0x1e, 0x30, 0x1c, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x15, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+ 0x20, 0x44, 0x56, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d,
+ 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xea, 0x94, 0x07, 0x85, 0xc8, 0x41, 0x2c, 0xf6, 0x83, 0x12, 0x6c, 0x92,
+ 0x5f, 0xab, 0x1f, 0x00, 0xd4, 0x96, 0x6f, 0x74, 0xcd, 0x2e, 0x11, 0xe9,
+ 0x6c, 0x0f, 0x39, 0x01, 0xb9, 0x48, 0x90, 0x40, 0x39, 0x4d, 0xc4, 0xa2,
+ 0xc8, 0x79, 0x6a, 0xa5, 0x9a, 0xbd, 0x91, 0x44, 0x65, 0x77, 0x54, 0xad,
+ 0xff, 0x25, 0x5f, 0xee, 0x42, 0xfb, 0xb3, 0x02, 0x0f, 0xea, 0x5d, 0x7a,
+ 0xdd, 0x1a, 0x54, 0x9e, 0xd7, 0x73, 0x42, 0x9b, 0xcc, 0x79, 0x5f, 0xc5,
+ 0x4d, 0xf4, 0xb7, 0x0b, 0x18, 0x39, 0x20, 0x7a, 0xdd, 0x50, 0x01, 0x5d,
+ 0x34, 0x45, 0x5f, 0x4c, 0x11, 0x0e, 0xf5, 0x87, 0x26, 0x26, 0xb4, 0xb0,
+ 0xf3, 0x7e, 0x71, 0xa0, 0x31, 0x71, 0x50, 0x89, 0x68, 0x5a, 0x63, 0x8a,
+ 0x14, 0x62, 0xe5, 0x8c, 0x3a, 0x16, 0x55, 0x0d, 0x3e, 0xeb, 0xaa, 0x80,
+ 0x1d, 0x71, 0x7a, 0xe3, 0x87, 0x07, 0xab, 0xbd, 0xa2, 0x74, 0xcd, 0xda,
+ 0x08, 0x01, 0x9d, 0x1b, 0xcc, 0x27, 0x88, 0x8c, 0x47, 0xd4, 0x69, 0x25,
+ 0x42, 0xd6, 0xbb, 0x50, 0x6d, 0x85, 0x50, 0xd0, 0x48, 0x82, 0x0d, 0x08,
+ 0x9f, 0xe9, 0x23, 0xe3, 0x42, 0xc6, 0x3c, 0x98, 0xb8, 0xbb, 0x6e, 0xc5,
+ 0x70, 0x13, 0xdf, 0x19, 0x1d, 0x01, 0xfd, 0xd2, 0xb5, 0x4e, 0xe6, 0x62,
+ 0xf4, 0x07, 0xfa, 0x6b, 0x7d, 0x11, 0x77, 0xc4, 0x62, 0x4f, 0x40, 0x4e,
+ 0xa5, 0x78, 0x97, 0xab, 0x2c, 0x4d, 0x0c, 0xa7, 0x7c, 0xc3, 0xc4, 0x50,
+ 0x32, 0x9f, 0xd0, 0x70, 0x9b, 0x0f, 0xff, 0xff, 0x75, 0x59, 0x34, 0x85,
+ 0xad, 0x49, 0xd5, 0x35, 0xee, 0x4f, 0x5b, 0xd4, 0xd4, 0x36, 0x95, 0xa0,
+ 0x7e, 0xe8, 0xc5, 0xa1, 0x1c, 0xbd, 0x13, 0x4e, 0x7d, 0xee, 0x63, 0x6a,
+ 0x96, 0x19, 0x99, 0xc8, 0xa7, 0x2a, 0x00, 0xe6, 0x51, 0x8d, 0x46, 0xeb,
+ 0x30, 0x58, 0xe8, 0x2d, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
+ 0x39, 0x30, 0x82, 0x01, 0x35, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+ 0x00, 0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3a, 0x30, 0x38,
+ 0x30, 0x36, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01,
+ 0x07, 0x36, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a,
+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0e, 0x06, 0x03,
+ 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+ 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+ 0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x74, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a, 0x30, 0x28, 0x30,
+ 0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x74, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22,
+ 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65,
+ 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x36, 0x39, 0x38, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x9f, 0xb8, 0xc1,
+ 0xa9, 0x6c, 0xf2, 0xf5, 0xc0, 0x22, 0x2a, 0x94, 0xed, 0x5c, 0x99, 0xac,
+ 0xd4, 0xec, 0xd7, 0xc6, 0x07, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+ 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7b, 0x5b, 0x45, 0xcf, 0xaf, 0xce,
+ 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a, 0x6a, 0xb6, 0xf3, 0x46, 0xeb, 0x57,
+ 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x53, 0x54,
+ 0xf2, 0x47, 0xa8, 0x02, 0xd7, 0xef, 0xaa, 0x35, 0x78, 0xbe, 0x4a, 0x08,
+ 0x0d, 0x90, 0x18, 0x4b, 0x6d, 0x9e, 0x2a, 0x53, 0x2b, 0xe9, 0x54, 0x17,
+ 0x77, 0x74, 0x29, 0x7e, 0xd0, 0x37, 0x07, 0x05, 0xb8, 0xe4, 0xfa, 0xb8,
+ 0xb4, 0x63, 0x98, 0x44, 0xdc, 0xc6, 0x4f, 0x81, 0x06, 0x8c, 0x3a, 0xbe,
+ 0xc7, 0x30, 0x57, 0xc6, 0x70, 0xfc, 0xd6, 0x93, 0x19, 0x9f, 0xc3, 0x55,
+ 0xd7, 0x3e, 0x1f, 0x72, 0x8a, 0x9d, 0x30, 0x5a, 0x35, 0x97, 0x32, 0xcb,
+ 0x63, 0xe4, 0xc6, 0x72, 0xdf, 0xfb, 0x68, 0xca, 0x69, 0x2f, 0xdb, 0xcd,
+ 0x50, 0x38, 0x3e, 0x2b, 0xbb, 0xab, 0x3b, 0x82, 0xc7, 0xfd, 0x4b, 0x9b,
+ 0xbd, 0x7c, 0x41, 0x98, 0xef, 0x01, 0x53, 0xd8, 0x35, 0x8f, 0x25, 0xc9,
+ 0x03, 0x06, 0xe6, 0x9c, 0x57, 0xc1, 0x51, 0x0f, 0x9e, 0xf6, 0x7d, 0x93,
+ 0x4d, 0xf8, 0x76, 0xc8, 0x3a, 0x6b, 0xf4, 0xc4, 0x8f, 0x33, 0x32, 0x7f,
+ 0x9d, 0x21, 0x84, 0x34, 0xd9, 0xa7, 0xf9, 0x92, 0xfa, 0x41, 0x91, 0x61,
+ 0x84, 0x05, 0x9d, 0xa3, 0x79, 0x46, 0xce, 0x67, 0xe7, 0x81, 0xf2, 0x5e,
+ 0xac, 0x4c, 0xbc, 0xa8, 0xab, 0x6a, 0x6d, 0x15, 0xe2, 0x9c, 0x4e, 0x5a,
+ 0xd9, 0x63, 0x80, 0xbc, 0xf7, 0x42, 0xeb, 0x9a, 0x44, 0xc6, 0x8c, 0x6b,
+ 0x06, 0x36, 0xb4, 0x8b, 0x32, 0x89, 0xde, 0xc2, 0xf1, 0xa8, 0x26, 0xaa,
+ 0xa9, 0xac, 0xff, 0xea, 0x71, 0xa6, 0xe7, 0x8c, 0x41, 0xfa, 0x17, 0x35,
+ 0xbb, 0xb3, 0x87, 0x31, 0xa9, 0x93, 0xc2, 0xc8, 0x58, 0xe1, 0x0a, 0x4e,
+ 0x95, 0x83, 0x9c, 0xb9, 0xed, 0x3b, 0xa5, 0xef, 0x08, 0xe0, 0x74, 0xf9,
+ 0xc3, 0x1b, 0xe6, 0x07, 0xa3, 0xee, 0x07, 0xd7, 0x42, 0x22, 0x79, 0x21,
+ 0xa0, 0xa1, 0xd4, 0x1d, 0x26, 0xd3, 0xd0, 0xd6, 0xa6, 0x5d, 0x2b, 0x41,
+ 0xc0, 0x79,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 1372799044 (0x51d34044)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=Entrust, Inc., OU=www.entrust.net/CPS is incorporated by reference, OU=(c) 2006 Entrust, Inc., CN=Entrust Root Certification Authority
+ Validity
+ Not Before: Sep 22 17:14:57 2014 GMT
+ Not After : Sep 23 01:31:53 2024 GMT
+ Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:ba:84:b6:72:db:9e:0c:6b:e2:99:e9:30:01:a7:
+ 76:ea:32:b8:95:41:1a:c9:da:61:4e:58:72:cf:fe:
+ f6:82:79:bf:73:61:06:0a:a5:27:d8:b3:5f:d3:45:
+ 4e:1c:72:d6:4e:32:f2:72:8a:0f:f7:83:19:d0:6a:
+ 80:80:00:45:1e:b0:c7:e7:9a:bf:12:57:27:1c:a3:
+ 68:2f:0a:87:bd:6a:6b:0e:5e:65:f3:1c:77:d5:d4:
+ 85:8d:70:21:b4:b3:32:e7:8b:a2:d5:86:39:02:b1:
+ b8:d2:47:ce:e4:c9:49:c4:3b:a7:de:fb:54:7d:57:
+ be:f0:e8:6e:c2:79:b2:3a:0b:55:e2:50:98:16:32:
+ 13:5c:2f:78:56:c1:c2:94:b3:f2:5a:e4:27:9a:9f:
+ 24:d7:c6:ec:d0:9b:25:82:e3:cc:c2:c4:45:c5:8c:
+ 97:7a:06:6b:2a:11:9f:a9:0a:6e:48:3b:6f:db:d4:
+ 11:19:42:f7:8f:07:bf:f5:53:5f:9c:3e:f4:17:2c:
+ e6:69:ac:4e:32:4c:62:77:ea:b7:e8:e5:bb:34:bc:
+ 19:8b:ae:9c:51:e7:b7:7e:b5:53:b1:33:22:e5:6d:
+ cf:70:3c:1a:fa:e2:9b:67:b6:83:f4:8d:a5:af:62:
+ 4c:4d:e0:58:ac:64:34:12:03:f8:b6:8d:94:63:24:
+ a4:71
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:1
+ Authority Information Access:
+ OCSP - URI:http://ocsp.entrust.net
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.entrust.net/rootca1.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.entrust.net/CPS
+
+ X509v3 Subject Key Identifier:
+ 6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
+ X509v3 Authority Key Identifier:
+ keyid:68:90:E4:67:A4:A6:53:80:C7:86:66:A4:F1:F7:4B:43:FB:84:BD:6D
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 69:33:83:fc:28:7a:6f:7d:ef:9d:55:eb:c5:3e:7a:9d:75:b3:
+ cc:c3:38:36:d9:34:a2:28:68:18:ea:1e:69:d3:bd:e7:d0:77:
+ da:b8:00:83:4e:4a:cf:6f:d1:f1:c1:22:3f:74:e4:f7:98:49:
+ 9e:9b:b6:9e:e1:db:98:77:2d:56:34:b1:a8:3c:d9:fd:c0:cd:
+ c7:bf:05:03:d4:02:c5:f1:e5:c6:da:08:a5:13:c7:62:23:11:
+ d1:61:30:1d:60:84:45:ef:79:a8:c6:26:93:a4:b7:cd:34:b8:
+ 69:c5:13:f6:91:b3:c9:45:73:76:b6:92:f6:76:0a:5b:e1:03:
+ 47:b7:e9:29:4c:91:32:23:37:4a:9c:35:d8:78:fd:1d:1f:e4:
+ 83:89:24:80:ad:b7:f9:cf:e4:5d:a5:d4:71:c4:85:5b:70:1f:
+ db:3f:1c:01:eb:1a:45:26:31:14:cc:65:bf:67:de:ca:cc:33:
+ 65:e5:41:91:d7:37:be:41:1a:96:9d:e6:8a:97:9d:a7:ce:ac:
+ 4e:9a:3d:bd:01:a0:6a:d9:4f:22:00:8b:44:d5:69:62:7b:2e:
+ eb:cc:ba:e7:92:7d:69:67:3d:fc:b8:7c:de:41:87:d0:69:ea:
+ ba:0a:18:7a:1a:95:43:b3:79:71:28:76:6d:a1:fb:57:4a:ec:
+ 4d:c8:0e:10
+-----BEGIN CERTIFICATE-----
+MIIE/zCCA+egAwIBAgIEUdNARDANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
+Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
+KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE0MDkyMjE3MTQ1N1oXDTI0MDkyMzAx
+MzE1M1owgb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgw
+JgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQL
+EzAoYykgMjAwOSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9u
+bHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuoS2ctueDGvi
+mekwAad26jK4lUEaydphTlhyz/72gnm/c2EGCqUn2LNf00VOHHLWTjLycooP94MZ
+0GqAgABFHrDH55q/ElcnHKNoLwqHvWprDl5l8xx31dSFjXAhtLMy54ui1YY5ArG4
+0kfO5MlJxDun3vtUfVe+8OhuwnmyOgtV4lCYFjITXC94VsHClLPyWuQnmp8k18bs
+0JslguPMwsRFxYyXegZrKhGfqQpuSDtv29QRGUL3jwe/9VNfnD70FyzmaaxOMkxi
+d+q36OW7NLwZi66cUee3frVTsTMi5W3PcDwa+uKbZ7aD9I2lr2JMTeBYrGQ0EgP4
+to2UYySkcQIDAQABo4IBDzCCAQswDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI
+MAYBAf8CAQEwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2Nz
+cC5lbnRydXN0Lm5ldDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmVudHJ1
+c3QubmV0L3Jvb3RjYTEuY3JsMDsGA1UdIAQ0MDIwMAYEVR0gADAoMCYGCCsGAQUF
+BwIBFhpodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NQUzAdBgNVHQ4EFgQUanImetAe
+733nO2lR1GyNn5ASZqswHwYDVR0jBBgwFoAUaJDkZ6SmU4DHhmak8fdLQ/uEvW0w
+DQYJKoZIhvcNAQELBQADggEBAGkzg/woem99751V68U+ep11s8zDODbZNKIoaBjq
+HmnTvefQd9q4AINOSs9v0fHBIj905PeYSZ6btp7h25h3LVY0sag82f3Azce/BQPU
+AsXx5cbaCKUTx2IjEdFhMB1ghEXveajGJpOkt800uGnFE/aRs8lFc3a2kvZ2Clvh
+A0e36SlMkTIjN0qcNdh4/R0f5IOJJICtt/nP5F2l1HHEhVtwH9s/HAHrGkUmMRTM
+Zb9n3srMM2XlQZHXN75BGpad5oqXnafOrE6aPb0BoGrZTyIAi0TVaWJ7LuvMuueS
+fWlnPfy4fN5Bh9Bp6roKGHoalUOzeXEodm2h+1dK7E3IDhA=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert39[] = {
+ 0x30, 0x82, 0x04, 0xff, 0x30, 0x82, 0x03, 0xe7, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x51, 0xd3, 0x40, 0x44, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xb0, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0d, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x30, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74,
+ 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x43, 0x50, 0x53, 0x20, 0x69, 0x73, 0x20,
+ 0x69, 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64,
+ 0x20, 0x62, 0x79, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
+ 0x65, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16,
+ 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x45, 0x6e, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x2d,
+ 0x30, 0x2b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x24, 0x45, 0x6e, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65,
+ 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+ 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x34, 0x30, 0x39, 0x32, 0x32, 0x31, 0x37, 0x31, 0x34, 0x35,
+ 0x37, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x39, 0x32, 0x33, 0x30, 0x31,
+ 0x33, 0x31, 0x35, 0x33, 0x5a, 0x30, 0x81, 0xbe, 0x31, 0x0b, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30,
+ 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x45, 0x6e, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x28, 0x30,
+ 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f, 0x53, 0x65, 0x65, 0x20,
+ 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d, 0x74, 0x65,
+ 0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x39, 0x20, 0x45,
+ 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e,
+ 0x6c, 0x79, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x29, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f,
+ 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
+ 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+ 0x01, 0x01, 0x00, 0xba, 0x84, 0xb6, 0x72, 0xdb, 0x9e, 0x0c, 0x6b, 0xe2,
+ 0x99, 0xe9, 0x30, 0x01, 0xa7, 0x76, 0xea, 0x32, 0xb8, 0x95, 0x41, 0x1a,
+ 0xc9, 0xda, 0x61, 0x4e, 0x58, 0x72, 0xcf, 0xfe, 0xf6, 0x82, 0x79, 0xbf,
+ 0x73, 0x61, 0x06, 0x0a, 0xa5, 0x27, 0xd8, 0xb3, 0x5f, 0xd3, 0x45, 0x4e,
+ 0x1c, 0x72, 0xd6, 0x4e, 0x32, 0xf2, 0x72, 0x8a, 0x0f, 0xf7, 0x83, 0x19,
+ 0xd0, 0x6a, 0x80, 0x80, 0x00, 0x45, 0x1e, 0xb0, 0xc7, 0xe7, 0x9a, 0xbf,
+ 0x12, 0x57, 0x27, 0x1c, 0xa3, 0x68, 0x2f, 0x0a, 0x87, 0xbd, 0x6a, 0x6b,
+ 0x0e, 0x5e, 0x65, 0xf3, 0x1c, 0x77, 0xd5, 0xd4, 0x85, 0x8d, 0x70, 0x21,
+ 0xb4, 0xb3, 0x32, 0xe7, 0x8b, 0xa2, 0xd5, 0x86, 0x39, 0x02, 0xb1, 0xb8,
+ 0xd2, 0x47, 0xce, 0xe4, 0xc9, 0x49, 0xc4, 0x3b, 0xa7, 0xde, 0xfb, 0x54,
+ 0x7d, 0x57, 0xbe, 0xf0, 0xe8, 0x6e, 0xc2, 0x79, 0xb2, 0x3a, 0x0b, 0x55,
+ 0xe2, 0x50, 0x98, 0x16, 0x32, 0x13, 0x5c, 0x2f, 0x78, 0x56, 0xc1, 0xc2,
+ 0x94, 0xb3, 0xf2, 0x5a, 0xe4, 0x27, 0x9a, 0x9f, 0x24, 0xd7, 0xc6, 0xec,
+ 0xd0, 0x9b, 0x25, 0x82, 0xe3, 0xcc, 0xc2, 0xc4, 0x45, 0xc5, 0x8c, 0x97,
+ 0x7a, 0x06, 0x6b, 0x2a, 0x11, 0x9f, 0xa9, 0x0a, 0x6e, 0x48, 0x3b, 0x6f,
+ 0xdb, 0xd4, 0x11, 0x19, 0x42, 0xf7, 0x8f, 0x07, 0xbf, 0xf5, 0x53, 0x5f,
+ 0x9c, 0x3e, 0xf4, 0x17, 0x2c, 0xe6, 0x69, 0xac, 0x4e, 0x32, 0x4c, 0x62,
+ 0x77, 0xea, 0xb7, 0xe8, 0xe5, 0xbb, 0x34, 0xbc, 0x19, 0x8b, 0xae, 0x9c,
+ 0x51, 0xe7, 0xb7, 0x7e, 0xb5, 0x53, 0xb1, 0x33, 0x22, 0xe5, 0x6d, 0xcf,
+ 0x70, 0x3c, 0x1a, 0xfa, 0xe2, 0x9b, 0x67, 0xb6, 0x83, 0xf4, 0x8d, 0xa5,
+ 0xaf, 0x62, 0x4c, 0x4d, 0xe0, 0x58, 0xac, 0x64, 0x34, 0x12, 0x03, 0xf8,
+ 0xb6, 0x8d, 0x94, 0x63, 0x24, 0xa4, 0x71, 0x02, 0x03, 0x01, 0x00, 0x01,
+ 0xa3, 0x82, 0x01, 0x0f, 0x30, 0x82, 0x01, 0x0b, 0x30, 0x0e, 0x06, 0x03,
+ 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+ 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+ 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x01, 0x30, 0x33, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x27, 0x30, 0x25,
+ 0x30, 0x23, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+ 0x86, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+ 0x70, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+ 0x74, 0x30, 0x33, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2c, 0x30, 0x2a,
+ 0x30, 0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x63,
+ 0x61, 0x31, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d,
+ 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06, 0x04, 0x55, 0x1d, 0x20,
+ 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x6e, 0x65, 0x74, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x6a, 0x72, 0x26, 0x7a, 0xd0, 0x1e,
+ 0xef, 0x7d, 0xe7, 0x3b, 0x69, 0x51, 0xd4, 0x6c, 0x8d, 0x9f, 0x90, 0x12,
+ 0x66, 0xab, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0x68, 0x90, 0xe4, 0x67, 0xa4, 0xa6, 0x53, 0x80, 0xc7,
+ 0x86, 0x66, 0xa4, 0xf1, 0xf7, 0x4b, 0x43, 0xfb, 0x84, 0xbd, 0x6d, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x69, 0x33, 0x83, 0xfc, 0x28,
+ 0x7a, 0x6f, 0x7d, 0xef, 0x9d, 0x55, 0xeb, 0xc5, 0x3e, 0x7a, 0x9d, 0x75,
+ 0xb3, 0xcc, 0xc3, 0x38, 0x36, 0xd9, 0x34, 0xa2, 0x28, 0x68, 0x18, 0xea,
+ 0x1e, 0x69, 0xd3, 0xbd, 0xe7, 0xd0, 0x77, 0xda, 0xb8, 0x00, 0x83, 0x4e,
+ 0x4a, 0xcf, 0x6f, 0xd1, 0xf1, 0xc1, 0x22, 0x3f, 0x74, 0xe4, 0xf7, 0x98,
+ 0x49, 0x9e, 0x9b, 0xb6, 0x9e, 0xe1, 0xdb, 0x98, 0x77, 0x2d, 0x56, 0x34,
+ 0xb1, 0xa8, 0x3c, 0xd9, 0xfd, 0xc0, 0xcd, 0xc7, 0xbf, 0x05, 0x03, 0xd4,
+ 0x02, 0xc5, 0xf1, 0xe5, 0xc6, 0xda, 0x08, 0xa5, 0x13, 0xc7, 0x62, 0x23,
+ 0x11, 0xd1, 0x61, 0x30, 0x1d, 0x60, 0x84, 0x45, 0xef, 0x79, 0xa8, 0xc6,
+ 0x26, 0x93, 0xa4, 0xb7, 0xcd, 0x34, 0xb8, 0x69, 0xc5, 0x13, 0xf6, 0x91,
+ 0xb3, 0xc9, 0x45, 0x73, 0x76, 0xb6, 0x92, 0xf6, 0x76, 0x0a, 0x5b, 0xe1,
+ 0x03, 0x47, 0xb7, 0xe9, 0x29, 0x4c, 0x91, 0x32, 0x23, 0x37, 0x4a, 0x9c,
+ 0x35, 0xd8, 0x78, 0xfd, 0x1d, 0x1f, 0xe4, 0x83, 0x89, 0x24, 0x80, 0xad,
+ 0xb7, 0xf9, 0xcf, 0xe4, 0x5d, 0xa5, 0xd4, 0x71, 0xc4, 0x85, 0x5b, 0x70,
+ 0x1f, 0xdb, 0x3f, 0x1c, 0x01, 0xeb, 0x1a, 0x45, 0x26, 0x31, 0x14, 0xcc,
+ 0x65, 0xbf, 0x67, 0xde, 0xca, 0xcc, 0x33, 0x65, 0xe5, 0x41, 0x91, 0xd7,
+ 0x37, 0xbe, 0x41, 0x1a, 0x96, 0x9d, 0xe6, 0x8a, 0x97, 0x9d, 0xa7, 0xce,
+ 0xac, 0x4e, 0x9a, 0x3d, 0xbd, 0x01, 0xa0, 0x6a, 0xd9, 0x4f, 0x22, 0x00,
+ 0x8b, 0x44, 0xd5, 0x69, 0x62, 0x7b, 0x2e, 0xeb, 0xcc, 0xba, 0xe7, 0x92,
+ 0x7d, 0x69, 0x67, 0x3d, 0xfc, 0xb8, 0x7c, 0xde, 0x41, 0x87, 0xd0, 0x69,
+ 0xea, 0xba, 0x0a, 0x18, 0x7a, 0x1a, 0x95, 0x43, 0xb3, 0x79, 0x71, 0x28,
+ 0x76, 0x6d, 0xa1, 0xfb, 0x57, 0x4a, 0xec, 0x4d, 0xc8, 0x0e, 0x10,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 7 (0x7)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Root Certificate Authority - G2
+ Validity
+ Not Before: May 3 07:00:00 2011 GMT
+ Not After : May 3 07:00:00 2031 GMT
+ Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., OU=http://certs.starfieldtech.com/repository/, CN=Starfield Secure Certificate Authority - G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:e5:90:66:4b:ec:f9:46:71:a9:20:83:be:e9:6c:
+ bf:4a:c9:48:69:81:75:4e:6d:24:f6:cb:17:13:f8:
+ b0:71:59:84:7a:6b:2b:85:a4:34:b5:16:e5:cb:cc:
+ e9:41:70:2c:a4:2e:d6:fa:32:7d:e1:a8:de:94:10:
+ ac:31:c1:c0:d8:6a:ff:59:27:ab:76:d6:fc:0b:74:
+ 6b:b8:a7:ae:3f:c4:54:f4:b4:31:44:dd:93:56:8c:
+ a4:4c:5e:9b:89:cb:24:83:9b:e2:57:7d:b7:d8:12:
+ 1f:c9:85:6d:f4:d1:80:f1:50:9b:87:ae:d4:0b:10:
+ 05:fb:27:ba:28:6d:17:e9:0e:d6:4d:b9:39:55:06:
+ ff:0a:24:05:7e:2f:c6:1d:72:6c:d4:8b:29:8c:57:
+ 7d:da:d9:eb:66:1a:d3:4f:a7:df:7f:52:c4:30:c5:
+ a5:c9:0e:02:c5:53:bf:77:38:68:06:24:c3:66:c8:
+ 37:7e:30:1e:45:71:23:35:ff:90:d8:2a:9d:8d:e7:
+ b0:92:4d:3c:7f:2a:0a:93:dc:cd:16:46:65:f7:60:
+ 84:8b:76:4b:91:27:73:14:92:e0:ea:ee:8f:16:ea:
+ 8d:0e:3e:76:17:bf:7d:89:80:80:44:43:e7:2d:e0:
+ 43:09:75:da:36:e8:ad:db:89:3a:f5:5d:12:8e:23:
+ 04:83
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ 25:45:81:68:50:26:38:3D:3B:2D:2C:BE:CD:6A:D9:B6:3D:B3:66:63
+ X509v3 Authority Key Identifier:
+ keyid:7C:0C:32:1F:A7:D9:30:7F:C4:7D:68:A3:62:A8:A1:CE:AB:07:5B:27
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.starfieldtech.com/
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.starfieldtech.com/sfroot-g2.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: https://certs.starfieldtech.com/repository/
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 56:65:ca:fe:f3:3f:0a:a8:93:8b:18:c7:de:43:69:13:34:20:
+ be:4e:5f:78:a8:6b:9c:db:6a:4d:41:db:c1:13:ec:dc:31:00:
+ 22:5e:f7:00:9e:0c:e0:34:65:34:f9:b1:3a:4e:48:c8:12:81:
+ 88:5c:5b:3e:08:53:7a:f7:1a:64:df:b8:50:61:cc:53:51:40:
+ 29:4b:c2:f4:ae:3a:5f:e4:ca:ad:26:cc:4e:61:43:e5:fd:57:
+ a6:37:70:ce:43:2b:b0:94:c3:92:e9:e1:5f:aa:10:49:b7:69:
+ e4:e0:d0:1f:64:a4:2b:cd:1f:6f:a0:f8:84:24:18:ce:79:3d:
+ a9:91:bf:54:18:13:89:99:54:11:0d:55:c5:26:0b:79:4f:5a:
+ 1c:6e:f9:63:db:14:80:a4:07:ab:fa:b2:a5:b9:88:dd:91:fe:
+ 65:3b:a4:a3:79:be:89:4d:e1:d0:b0:f4:c8:17:0c:0a:96:14:
+ 7c:09:b7:6c:e1:c2:d8:55:d4:18:a0:aa:41:69:70:24:a3:b9:
+ ef:e9:5a:dc:3e:eb:94:4a:f0:b7:de:5f:0e:76:fa:fb:fb:69:
+ 03:45:40:50:ee:72:0c:a4:12:86:81:cd:13:d1:4e:c4:3c:ca:
+ 4e:0d:d2:26:f1:00:b7:b4:a6:a2:e1:6e:7a:81:fd:30:ac:7a:
+ 1f:c7:59:7b
+-----BEGIN CERTIFICATE-----
+MIIFADCCA+igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
+HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
+ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAw
+MFoXDTMxMDUwMzA3MDAwMFowgcYxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
+b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
+aG5vbG9naWVzLCBJbmMuMTMwMQYDVQQLEypodHRwOi8vY2VydHMuc3RhcmZpZWxk
+dGVjaC5jb20vcmVwb3NpdG9yeS8xNDAyBgNVBAMTK1N0YXJmaWVsZCBTZWN1cmUg
+Q2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDlkGZL7PlGcakgg77pbL9KyUhpgXVObST2yxcT+LBxWYR6ayuF
+pDS1FuXLzOlBcCykLtb6Mn3hqN6UEKwxwcDYav9ZJ6t21vwLdGu4p64/xFT0tDFE
+3ZNWjKRMXpuJyySDm+JXfbfYEh/JhW300YDxUJuHrtQLEAX7J7oobRfpDtZNuTlV
+Bv8KJAV+L8YdcmzUiymMV33a2etmGtNPp99/UsQwxaXJDgLFU793OGgGJMNmyDd+
+MB5FcSM1/5DYKp2N57CSTTx/KgqT3M0WRmX3YISLdkuRJ3MUkuDq7o8W6o0OPnYX
+v32JgIBEQ+ct4EMJddo26K3biTr1XRKOIwSDAgMBAAGjggEsMIIBKDAPBgNVHRMB
+Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUJUWBaFAmOD07LSy+
+zWrZtj2zZmMwHwYDVR0jBBgwFoAUfAwyH6fZMH/EfWijYqihzqsHWycwOgYIKwYB
+BQUHAQEELjAsMCoGCCsGAQUFBzABhh5odHRwOi8vb2NzcC5zdGFyZmllbGR0ZWNo
+LmNvbS8wOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL2NybC5zdGFyZmllbGR0ZWNo
+LmNvbS9zZnJvb3QtZzIuY3JsMEwGA1UdIARFMEMwQQYEVR0gADA5MDcGCCsGAQUF
+BwIBFitodHRwczovL2NlcnRzLnN0YXJmaWVsZHRlY2guY29tL3JlcG9zaXRvcnkv
+MA0GCSqGSIb3DQEBCwUAA4IBAQBWZcr+8z8KqJOLGMfeQ2kTNCC+Tl94qGuc22pN
+QdvBE+zcMQAiXvcAngzgNGU0+bE6TkjIEoGIXFs+CFN69xpk37hQYcxTUUApS8L0
+rjpf5MqtJsxOYUPl/VemN3DOQyuwlMOS6eFfqhBJt2nk4NAfZKQrzR9voPiEJBjO
+eT2pkb9UGBOJmVQRDVXFJgt5T1ocbvlj2xSApAer+rKluYjdkf5lO6Sjeb6JTeHQ
+sPTIFwwKlhR8Cbds4cLYVdQYoKpBaXAko7nv6VrcPuuUSvC33l8Odvr7+2kDRUBQ
+7nIMpBKGgc0T0U7EPMpODdIm8QC3tKai4W56gf0wrHofx1l7
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert40[] = {
+ 0x30, 0x82, 0x05, 0x00, 0x30, 0x82, 0x03, 0xe8, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x01, 0x07, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x8f, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72,
+ 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
+ 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61,
+ 0x6c, 0x65, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x1c, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54,
+ 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c,
+ 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x29, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c,
+ 0x64, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x1e, 0x17,
+ 0x0d, 0x31, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37, 0x30, 0x30, 0x30,
+ 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37,
+ 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x81, 0xc6, 0x31, 0x0b, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a,
+ 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07,
+ 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65,
+ 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53,
+ 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63,
+ 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x33, 0x30, 0x31, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x2a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72,
+ 0x74, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64,
+ 0x74, 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x31, 0x34, 0x30, 0x32,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2b, 0x53, 0x74, 0x61, 0x72, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20,
+ 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20,
+ 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe5,
+ 0x90, 0x66, 0x4b, 0xec, 0xf9, 0x46, 0x71, 0xa9, 0x20, 0x83, 0xbe, 0xe9,
+ 0x6c, 0xbf, 0x4a, 0xc9, 0x48, 0x69, 0x81, 0x75, 0x4e, 0x6d, 0x24, 0xf6,
+ 0xcb, 0x17, 0x13, 0xf8, 0xb0, 0x71, 0x59, 0x84, 0x7a, 0x6b, 0x2b, 0x85,
+ 0xa4, 0x34, 0xb5, 0x16, 0xe5, 0xcb, 0xcc, 0xe9, 0x41, 0x70, 0x2c, 0xa4,
+ 0x2e, 0xd6, 0xfa, 0x32, 0x7d, 0xe1, 0xa8, 0xde, 0x94, 0x10, 0xac, 0x31,
+ 0xc1, 0xc0, 0xd8, 0x6a, 0xff, 0x59, 0x27, 0xab, 0x76, 0xd6, 0xfc, 0x0b,
+ 0x74, 0x6b, 0xb8, 0xa7, 0xae, 0x3f, 0xc4, 0x54, 0xf4, 0xb4, 0x31, 0x44,
+ 0xdd, 0x93, 0x56, 0x8c, 0xa4, 0x4c, 0x5e, 0x9b, 0x89, 0xcb, 0x24, 0x83,
+ 0x9b, 0xe2, 0x57, 0x7d, 0xb7, 0xd8, 0x12, 0x1f, 0xc9, 0x85, 0x6d, 0xf4,
+ 0xd1, 0x80, 0xf1, 0x50, 0x9b, 0x87, 0xae, 0xd4, 0x0b, 0x10, 0x05, 0xfb,
+ 0x27, 0xba, 0x28, 0x6d, 0x17, 0xe9, 0x0e, 0xd6, 0x4d, 0xb9, 0x39, 0x55,
+ 0x06, 0xff, 0x0a, 0x24, 0x05, 0x7e, 0x2f, 0xc6, 0x1d, 0x72, 0x6c, 0xd4,
+ 0x8b, 0x29, 0x8c, 0x57, 0x7d, 0xda, 0xd9, 0xeb, 0x66, 0x1a, 0xd3, 0x4f,
+ 0xa7, 0xdf, 0x7f, 0x52, 0xc4, 0x30, 0xc5, 0xa5, 0xc9, 0x0e, 0x02, 0xc5,
+ 0x53, 0xbf, 0x77, 0x38, 0x68, 0x06, 0x24, 0xc3, 0x66, 0xc8, 0x37, 0x7e,
+ 0x30, 0x1e, 0x45, 0x71, 0x23, 0x35, 0xff, 0x90, 0xd8, 0x2a, 0x9d, 0x8d,
+ 0xe7, 0xb0, 0x92, 0x4d, 0x3c, 0x7f, 0x2a, 0x0a, 0x93, 0xdc, 0xcd, 0x16,
+ 0x46, 0x65, 0xf7, 0x60, 0x84, 0x8b, 0x76, 0x4b, 0x91, 0x27, 0x73, 0x14,
+ 0x92, 0xe0, 0xea, 0xee, 0x8f, 0x16, 0xea, 0x8d, 0x0e, 0x3e, 0x76, 0x17,
+ 0xbf, 0x7d, 0x89, 0x80, 0x80, 0x44, 0x43, 0xe7, 0x2d, 0xe0, 0x43, 0x09,
+ 0x75, 0xda, 0x36, 0xe8, 0xad, 0xdb, 0x89, 0x3a, 0xf5, 0x5d, 0x12, 0x8e,
+ 0x23, 0x04, 0x83, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x2c,
+ 0x30, 0x82, 0x01, 0x28, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+ 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06,
+ 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+ 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x25, 0x45, 0x81, 0x68, 0x50, 0x26, 0x38, 0x3d, 0x3b, 0x2d, 0x2c, 0xbe,
+ 0xcd, 0x6a, 0xd9, 0xb6, 0x3d, 0xb3, 0x66, 0x63, 0x30, 0x1f, 0x06, 0x03,
+ 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7c, 0x0c, 0x32,
+ 0x1f, 0xa7, 0xd9, 0x30, 0x7f, 0xc4, 0x7d, 0x68, 0xa3, 0x62, 0xa8, 0xa1,
+ 0xce, 0xab, 0x07, 0x5b, 0x27, 0x30, 0x3a, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1e, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x73,
+ 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+ 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0xa0, 0x2e, 0xa0, 0x2c, 0x86, 0x2a,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x73,
+ 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x72, 0x6f, 0x6f, 0x74, 0x2d,
+ 0x67, 0x32, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d,
+ 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06, 0x04, 0x55, 0x1d, 0x20,
+ 0x00, 0x30, 0x39, 0x30, 0x37, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x2b, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+ 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x56, 0x65, 0xca, 0xfe,
+ 0xf3, 0x3f, 0x0a, 0xa8, 0x93, 0x8b, 0x18, 0xc7, 0xde, 0x43, 0x69, 0x13,
+ 0x34, 0x20, 0xbe, 0x4e, 0x5f, 0x78, 0xa8, 0x6b, 0x9c, 0xdb, 0x6a, 0x4d,
+ 0x41, 0xdb, 0xc1, 0x13, 0xec, 0xdc, 0x31, 0x00, 0x22, 0x5e, 0xf7, 0x00,
+ 0x9e, 0x0c, 0xe0, 0x34, 0x65, 0x34, 0xf9, 0xb1, 0x3a, 0x4e, 0x48, 0xc8,
+ 0x12, 0x81, 0x88, 0x5c, 0x5b, 0x3e, 0x08, 0x53, 0x7a, 0xf7, 0x1a, 0x64,
+ 0xdf, 0xb8, 0x50, 0x61, 0xcc, 0x53, 0x51, 0x40, 0x29, 0x4b, 0xc2, 0xf4,
+ 0xae, 0x3a, 0x5f, 0xe4, 0xca, 0xad, 0x26, 0xcc, 0x4e, 0x61, 0x43, 0xe5,
+ 0xfd, 0x57, 0xa6, 0x37, 0x70, 0xce, 0x43, 0x2b, 0xb0, 0x94, 0xc3, 0x92,
+ 0xe9, 0xe1, 0x5f, 0xaa, 0x10, 0x49, 0xb7, 0x69, 0xe4, 0xe0, 0xd0, 0x1f,
+ 0x64, 0xa4, 0x2b, 0xcd, 0x1f, 0x6f, 0xa0, 0xf8, 0x84, 0x24, 0x18, 0xce,
+ 0x79, 0x3d, 0xa9, 0x91, 0xbf, 0x54, 0x18, 0x13, 0x89, 0x99, 0x54, 0x11,
+ 0x0d, 0x55, 0xc5, 0x26, 0x0b, 0x79, 0x4f, 0x5a, 0x1c, 0x6e, 0xf9, 0x63,
+ 0xdb, 0x14, 0x80, 0xa4, 0x07, 0xab, 0xfa, 0xb2, 0xa5, 0xb9, 0x88, 0xdd,
+ 0x91, 0xfe, 0x65, 0x3b, 0xa4, 0xa3, 0x79, 0xbe, 0x89, 0x4d, 0xe1, 0xd0,
+ 0xb0, 0xf4, 0xc8, 0x17, 0x0c, 0x0a, 0x96, 0x14, 0x7c, 0x09, 0xb7, 0x6c,
+ 0xe1, 0xc2, 0xd8, 0x55, 0xd4, 0x18, 0xa0, 0xaa, 0x41, 0x69, 0x70, 0x24,
+ 0xa3, 0xb9, 0xef, 0xe9, 0x5a, 0xdc, 0x3e, 0xeb, 0x94, 0x4a, 0xf0, 0xb7,
+ 0xde, 0x5f, 0x0e, 0x76, 0xfa, 0xfb, 0xfb, 0x69, 0x03, 0x45, 0x40, 0x50,
+ 0xee, 0x72, 0x0c, 0xa4, 0x12, 0x86, 0x81, 0xcd, 0x13, 0xd1, 0x4e, 0xc4,
+ 0x3c, 0xca, 0x4e, 0x0d, 0xd2, 0x26, 0xf1, 0x00, 0xb7, 0xb4, 0xa6, 0xa2,
+ 0xe1, 0x6e, 0x7a, 0x81, 0xfd, 0x30, 0xac, 0x7a, 0x1f, 0xc7, 0x59, 0x7b,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 1372807406 (0x51d360ee)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
+ Validity
+ Not Before: Oct 22 17:05:14 2014 GMT
+ Not After : Oct 23 07:33:22 2024 GMT
+ Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2012 Entrust, Inc. - for authorized use only, CN=Entrust Certification Authority - L1K
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:da:3f:96:d0:4d:b9:2f:44:e7:db:39:5e:9b:50:
+ ee:5c:a5:61:da:41:67:53:09:aa:00:9a:8e:57:7f:
+ 29:6b:db:c7:e1:21:24:aa:3a:d0:8d:47:23:d2:ed:
+ 72:16:f0:91:21:d2:5d:b7:b8:4b:a8:83:8f:b7:91:
+ 32:68:cf:ce:25:93:2c:b2:7d:97:c8:fe:c1:b4:17:
+ ba:09:9e:03:90:93:7b:7c:49:83:22:68:8a:9b:de:
+ 47:c3:31:98:7a:2e:7d:40:0b:d2:ef:3e:d3:b2:8c:
+ aa:8f:48:a9:ff:00:e8:29:58:06:f7:b6:93:5a:94:
+ 73:26:26:ad:58:0e:e5:42:b8:d5:ea:73:79:64:68:
+ 53:25:b8:84:cf:94:7a:ae:06:45:0c:a3:6b:4d:d0:
+ c6:be:ea:18:a4:36:f0:92:b2:ba:1c:88:8f:3a:52:
+ 7f:f7:5e:6d:83:1c:9d:f0:1f:e5:c3:d6:dd:a5:78:
+ 92:3d:b0:6d:2c:ea:c9:cf:94:41:19:71:44:68:ba:
+ 47:3c:04:e9:5d:ba:3e:f0:35:f7:15:b6:9e:f2:2e:
+ 15:1e:3f:47:c8:c8:38:a7:73:45:5d:4d:b0:3b:b1:
+ 8e:17:29:37:ea:dd:05:01:22:bb:94:36:2a:8d:5b:
+ 35:fe:53:19:2f:08:46:c1:2a:b3:1a:62:1d:4e:2b:
+ d9:1b
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints:
+ CA:TRUE, pathlen:0
+ Authority Information Access:
+ OCSP - URI:http://ocsp.entrust.net
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.entrust.net/g2ca.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.entrust.net/rpa
+
+ X509v3 Subject Key Identifier:
+ 82:A2:70:74:DD:BC:53:3F:CF:7B:D4:F7:CD:7F:A7:60:C6:0A:4C:BF
+ X509v3 Authority Key Identifier:
+ keyid:6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 3f:1c:1a:5b:ff:40:22:1d:8f:35:0c:2d:aa:99:27:ab:c0:11:
+ 32:70:d7:36:28:69:a5:8d:b1:27:99:42:be:c4:93:eb:48:57:
+ 43:71:23:c4:e5:4e:ad:ae:43:6f:92:76:c5:19:ef:ca:bc:6f:
+ 42:4c:16:9a:86:a9:04:38:c7:65:f0:f5:0c:e0:4a:df:a2:fa:
+ ce:1a:11:a8:9c:69:2f:1b:df:ea:e2:32:f3:ce:4c:bc:46:0c:
+ c0:89:80:d1:87:6b:a2:cf:6b:d4:7f:fd:f5:60:52:67:57:a0:
+ 6d:d1:64:41:14:6d:34:62:ed:06:6c:24:f2:06:bc:28:02:af:
+ 03:2d:c2:33:05:fb:cb:aa:16:e8:65:10:43:f5:69:5c:e3:81:
+ 58:99:cd:6b:d3:b8:c7:7b:19:55:c9:40:ce:79:55:b8:73:89:
+ e9:5c:40:66:43:12:7f:07:b8:65:56:d5:8d:c3:a7:f5:b1:b6:
+ 65:9e:c0:83:36:7f:16:45:3c:74:4b:93:8a:3c:f1:2b:f5:35:
+ 70:73:7b:e7:82:04:b1:18:98:0e:d4:9c:6f:1a:fc:fc:a7:33:
+ a5:bb:bb:18:f3:6b:7a:5d:32:87:f7:6d:25:e4:e2:76:86:21:
+ 1e:11:46:cd:76:0e:6f:4f:a4:21:71:0a:84:a7:2d:36:a9:48:
+ 22:51:7e:82
+-----BEGIN CERTIFICATE-----
+MIIFAzCCA+ugAwIBAgIEUdNg7jANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50
+cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs
+IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz
+dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMTQxMDIyMTcw
+NTE0WhcNMjQxMDIzMDczMzIyWjCBujELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu
+dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt
+dGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0
+aG9yaXplZCB1c2Ugb25seTEuMCwGA1UEAxMlRW50cnVzdCBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eSAtIEwxSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANo/ltBNuS9E59s5XptQ7lylYdpBZ1MJqgCajld/KWvbx+EhJKo60I1HI9Ltchbw
+kSHSXbe4S6iDj7eRMmjPziWTLLJ9l8j+wbQXugmeA5CTe3xJgyJoipveR8MxmHou
+fUAL0u8+07KMqo9Iqf8A6ClYBve2k1qUcyYmrVgO5UK41epzeWRoUyW4hM+Ueq4G
+RQyja03Qxr7qGKQ28JKyuhyIjzpSf/debYMcnfAf5cPW3aV4kj2wbSzqyc+UQRlx
+RGi6RzwE6V26PvA19xW2nvIuFR4/R8jIOKdzRV1NsDuxjhcpN+rdBQEiu5Q2Ko1b
+Nf5TGS8IRsEqsxpiHU4r2RsCAwEAAaOCAQkwggEFMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMECDAGAQH/AgEAMDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcwAYYXaHR0
+cDovL29jc3AuZW50cnVzdC5uZXQwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL2Ny
+bC5lbnRydXN0Lm5ldC9nMmNhLmNybDA7BgNVHSAENDAyMDAGBFUdIAAwKDAmBggr
+BgEFBQcCARYaaHR0cDovL3d3dy5lbnRydXN0Lm5ldC9ycGEwHQYDVR0OBBYEFIKi
+cHTdvFM/z3vU981/p2DGCky/MB8GA1UdIwQYMBaAFGpyJnrQHu995ztpUdRsjZ+Q
+EmarMA0GCSqGSIb3DQEBCwUAA4IBAQA/HBpb/0AiHY81DC2qmSerwBEycNc2KGml
+jbEnmUK+xJPrSFdDcSPE5U6trkNvknbFGe/KvG9CTBaahqkEOMdl8PUM4ErfovrO
+GhGonGkvG9/q4jLzzky8RgzAiYDRh2uiz2vUf/31YFJnV6Bt0WRBFG00Yu0GbCTy
+BrwoAq8DLcIzBfvLqhboZRBD9Wlc44FYmc1r07jHexlVyUDOeVW4c4npXEBmQxJ/
+B7hlVtWNw6f1sbZlnsCDNn8WRTx0S5OKPPEr9TVwc3vnggSxGJgO1JxvGvz8pzOl
+u7sY82t6XTKH920l5OJ2hiEeEUbNdg5vT6QhcQqEpy02qUgiUX6C
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert41[] = {
+ 0x30, 0x82, 0x05, 0x03, 0x30, 0x82, 0x03, 0xeb, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x51, 0xd3, 0x60, 0xee, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xbe, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0d, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+ 0x1f, 0x53, 0x65, 0x65, 0x20, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67,
+ 0x61, 0x6c, 0x2d, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37,
+ 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32,
+ 0x30, 0x30, 0x39, 0x20, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c,
+ 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20,
+ 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75,
+ 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x32, 0x30, 0x30, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x29, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30,
+ 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x31, 0x30, 0x32, 0x32, 0x31, 0x37, 0x30,
+ 0x35, 0x31, 0x34, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x31, 0x30, 0x32, 0x33,
+ 0x30, 0x37, 0x33, 0x33, 0x32, 0x32, 0x5a, 0x30, 0x81, 0xba, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x45, 0x6e,
+ 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31,
+ 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f, 0x53, 0x65,
+ 0x65, 0x20, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73,
+ 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d,
+ 0x74, 0x65, 0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x32,
+ 0x20, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20,
+ 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x2e, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x25, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x43,
+ 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d,
+ 0x20, 0x4c, 0x31, 0x4b, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+ 0x00, 0xda, 0x3f, 0x96, 0xd0, 0x4d, 0xb9, 0x2f, 0x44, 0xe7, 0xdb, 0x39,
+ 0x5e, 0x9b, 0x50, 0xee, 0x5c, 0xa5, 0x61, 0xda, 0x41, 0x67, 0x53, 0x09,
+ 0xaa, 0x00, 0x9a, 0x8e, 0x57, 0x7f, 0x29, 0x6b, 0xdb, 0xc7, 0xe1, 0x21,
+ 0x24, 0xaa, 0x3a, 0xd0, 0x8d, 0x47, 0x23, 0xd2, 0xed, 0x72, 0x16, 0xf0,
+ 0x91, 0x21, 0xd2, 0x5d, 0xb7, 0xb8, 0x4b, 0xa8, 0x83, 0x8f, 0xb7, 0x91,
+ 0x32, 0x68, 0xcf, 0xce, 0x25, 0x93, 0x2c, 0xb2, 0x7d, 0x97, 0xc8, 0xfe,
+ 0xc1, 0xb4, 0x17, 0xba, 0x09, 0x9e, 0x03, 0x90, 0x93, 0x7b, 0x7c, 0x49,
+ 0x83, 0x22, 0x68, 0x8a, 0x9b, 0xde, 0x47, 0xc3, 0x31, 0x98, 0x7a, 0x2e,
+ 0x7d, 0x40, 0x0b, 0xd2, 0xef, 0x3e, 0xd3, 0xb2, 0x8c, 0xaa, 0x8f, 0x48,
+ 0xa9, 0xff, 0x00, 0xe8, 0x29, 0x58, 0x06, 0xf7, 0xb6, 0x93, 0x5a, 0x94,
+ 0x73, 0x26, 0x26, 0xad, 0x58, 0x0e, 0xe5, 0x42, 0xb8, 0xd5, 0xea, 0x73,
+ 0x79, 0x64, 0x68, 0x53, 0x25, 0xb8, 0x84, 0xcf, 0x94, 0x7a, 0xae, 0x06,
+ 0x45, 0x0c, 0xa3, 0x6b, 0x4d, 0xd0, 0xc6, 0xbe, 0xea, 0x18, 0xa4, 0x36,
+ 0xf0, 0x92, 0xb2, 0xba, 0x1c, 0x88, 0x8f, 0x3a, 0x52, 0x7f, 0xf7, 0x5e,
+ 0x6d, 0x83, 0x1c, 0x9d, 0xf0, 0x1f, 0xe5, 0xc3, 0xd6, 0xdd, 0xa5, 0x78,
+ 0x92, 0x3d, 0xb0, 0x6d, 0x2c, 0xea, 0xc9, 0xcf, 0x94, 0x41, 0x19, 0x71,
+ 0x44, 0x68, 0xba, 0x47, 0x3c, 0x04, 0xe9, 0x5d, 0xba, 0x3e, 0xf0, 0x35,
+ 0xf7, 0x15, 0xb6, 0x9e, 0xf2, 0x2e, 0x15, 0x1e, 0x3f, 0x47, 0xc8, 0xc8,
+ 0x38, 0xa7, 0x73, 0x45, 0x5d, 0x4d, 0xb0, 0x3b, 0xb1, 0x8e, 0x17, 0x29,
+ 0x37, 0xea, 0xdd, 0x05, 0x01, 0x22, 0xbb, 0x94, 0x36, 0x2a, 0x8d, 0x5b,
+ 0x35, 0xfe, 0x53, 0x19, 0x2f, 0x08, 0x46, 0xc1, 0x2a, 0xb3, 0x1a, 0x62,
+ 0x1d, 0x4e, 0x2b, 0xd9, 0x1b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+ 0x01, 0x09, 0x30, 0x82, 0x01, 0x05, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+ 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x0f,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+ 0x02, 0x01, 0x00, 0x30, 0x33, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x01, 0x01, 0x04, 0x27, 0x30, 0x25, 0x30, 0x23, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x17, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x65, 0x6e, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x30, 0x30, 0x06, 0x03,
+ 0x55, 0x1d, 0x1f, 0x04, 0x29, 0x30, 0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0,
+ 0x21, 0x86, 0x1f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+ 0x6c, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+ 0x74, 0x2f, 0x67, 0x32, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b,
+ 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06,
+ 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x70, 0x61, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x82, 0xa2,
+ 0x70, 0x74, 0xdd, 0xbc, 0x53, 0x3f, 0xcf, 0x7b, 0xd4, 0xf7, 0xcd, 0x7f,
+ 0xa7, 0x60, 0xc6, 0x0a, 0x4c, 0xbf, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x6a, 0x72, 0x26, 0x7a, 0xd0,
+ 0x1e, 0xef, 0x7d, 0xe7, 0x3b, 0x69, 0x51, 0xd4, 0x6c, 0x8d, 0x9f, 0x90,
+ 0x12, 0x66, 0xab, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x3f,
+ 0x1c, 0x1a, 0x5b, 0xff, 0x40, 0x22, 0x1d, 0x8f, 0x35, 0x0c, 0x2d, 0xaa,
+ 0x99, 0x27, 0xab, 0xc0, 0x11, 0x32, 0x70, 0xd7, 0x36, 0x28, 0x69, 0xa5,
+ 0x8d, 0xb1, 0x27, 0x99, 0x42, 0xbe, 0xc4, 0x93, 0xeb, 0x48, 0x57, 0x43,
+ 0x71, 0x23, 0xc4, 0xe5, 0x4e, 0xad, 0xae, 0x43, 0x6f, 0x92, 0x76, 0xc5,
+ 0x19, 0xef, 0xca, 0xbc, 0x6f, 0x42, 0x4c, 0x16, 0x9a, 0x86, 0xa9, 0x04,
+ 0x38, 0xc7, 0x65, 0xf0, 0xf5, 0x0c, 0xe0, 0x4a, 0xdf, 0xa2, 0xfa, 0xce,
+ 0x1a, 0x11, 0xa8, 0x9c, 0x69, 0x2f, 0x1b, 0xdf, 0xea, 0xe2, 0x32, 0xf3,
+ 0xce, 0x4c, 0xbc, 0x46, 0x0c, 0xc0, 0x89, 0x80, 0xd1, 0x87, 0x6b, 0xa2,
+ 0xcf, 0x6b, 0xd4, 0x7f, 0xfd, 0xf5, 0x60, 0x52, 0x67, 0x57, 0xa0, 0x6d,
+ 0xd1, 0x64, 0x41, 0x14, 0x6d, 0x34, 0x62, 0xed, 0x06, 0x6c, 0x24, 0xf2,
+ 0x06, 0xbc, 0x28, 0x02, 0xaf, 0x03, 0x2d, 0xc2, 0x33, 0x05, 0xfb, 0xcb,
+ 0xaa, 0x16, 0xe8, 0x65, 0x10, 0x43, 0xf5, 0x69, 0x5c, 0xe3, 0x81, 0x58,
+ 0x99, 0xcd, 0x6b, 0xd3, 0xb8, 0xc7, 0x7b, 0x19, 0x55, 0xc9, 0x40, 0xce,
+ 0x79, 0x55, 0xb8, 0x73, 0x89, 0xe9, 0x5c, 0x40, 0x66, 0x43, 0x12, 0x7f,
+ 0x07, 0xb8, 0x65, 0x56, 0xd5, 0x8d, 0xc3, 0xa7, 0xf5, 0xb1, 0xb6, 0x65,
+ 0x9e, 0xc0, 0x83, 0x36, 0x7f, 0x16, 0x45, 0x3c, 0x74, 0x4b, 0x93, 0x8a,
+ 0x3c, 0xf1, 0x2b, 0xf5, 0x35, 0x70, 0x73, 0x7b, 0xe7, 0x82, 0x04, 0xb1,
+ 0x18, 0x98, 0x0e, 0xd4, 0x9c, 0x6f, 0x1a, 0xfc, 0xfc, 0xa7, 0x33, 0xa5,
+ 0xbb, 0xbb, 0x18, 0xf3, 0x6b, 0x7a, 0x5d, 0x32, 0x87, 0xf7, 0x6d, 0x25,
+ 0xe4, 0xe2, 0x76, 0x86, 0x21, 0x1e, 0x11, 0x46, 0xcd, 0x76, 0x0e, 0x6f,
+ 0x4f, 0xa4, 0x21, 0x71, 0x0a, 0x84, 0xa7, 0x2d, 0x36, 0xa9, 0x48, 0x22,
+ 0x51, 0x7e, 0x82,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 0e:e9:4c:c3:00:00:00:00:51:d3:77:85
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
+ Validity
+ Not Before: Oct 5 19:13:56 2015 GMT
+ Not After : Dec 5 19:43:56 2030 GMT
+ Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2012 Entrust, Inc. - for authorized use only, CN=Entrust Certification Authority - L1K
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:da:3f:96:d0:4d:b9:2f:44:e7:db:39:5e:9b:50:
+ ee:5c:a5:61:da:41:67:53:09:aa:00:9a:8e:57:7f:
+ 29:6b:db:c7:e1:21:24:aa:3a:d0:8d:47:23:d2:ed:
+ 72:16:f0:91:21:d2:5d:b7:b8:4b:a8:83:8f:b7:91:
+ 32:68:cf:ce:25:93:2c:b2:7d:97:c8:fe:c1:b4:17:
+ ba:09:9e:03:90:93:7b:7c:49:83:22:68:8a:9b:de:
+ 47:c3:31:98:7a:2e:7d:40:0b:d2:ef:3e:d3:b2:8c:
+ aa:8f:48:a9:ff:00:e8:29:58:06:f7:b6:93:5a:94:
+ 73:26:26:ad:58:0e:e5:42:b8:d5:ea:73:79:64:68:
+ 53:25:b8:84:cf:94:7a:ae:06:45:0c:a3:6b:4d:d0:
+ c6:be:ea:18:a4:36:f0:92:b2:ba:1c:88:8f:3a:52:
+ 7f:f7:5e:6d:83:1c:9d:f0:1f:e5:c3:d6:dd:a5:78:
+ 92:3d:b0:6d:2c:ea:c9:cf:94:41:19:71:44:68:ba:
+ 47:3c:04:e9:5d:ba:3e:f0:35:f7:15:b6:9e:f2:2e:
+ 15:1e:3f:47:c8:c8:38:a7:73:45:5d:4d:b0:3b:b1:
+ 8e:17:29:37:ea:dd:05:01:22:bb:94:36:2a:8d:5b:
+ 35:fe:53:19:2f:08:46:c1:2a:b3:1a:62:1d:4e:2b:
+ d9:1b
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ Authority Information Access:
+ OCSP - URI:http://ocsp.entrust.net
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.entrust.net/g2ca.crl
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.entrust.net/rpa
+
+ X509v3 Subject Key Identifier:
+ 82:A2:70:74:DD:BC:53:3F:CF:7B:D4:F7:CD:7F:A7:60:C6:0A:4C:BF
+ X509v3 Authority Key Identifier:
+ keyid:6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 39:d5:8e:98:83:61:c8:2c:63:d3:70:1d:19:30:cb:f6:09:ac:
+ cc:69:d5:c9:dc:37:41:f2:32:0f:ef:74:c3:58:f6:78:27:09:
+ 34:08:95:92:2f:d7:df:b8:a3:fd:0e:81:e9:a4:9c:d3:3f:4d:
+ 68:2b:15:31:0a:15:cc:52:04:93:e8:93:50:c3:d9:b1:e2:e1:
+ 68:b7:3a:09:74:f1:34:58:0a:3f:77:98:40:b8:e6:68:ff:5d:
+ e4:c8:46:c5:ec:81:d7:c9:82:18:5c:83:ce:71:d8:bc:bf:ac:
+ 99:02:93:db:94:98:84:d2:9c:a6:b5:fe:5c:bb:f0:4a:af:21:
+ ac:c2:3f:49:24:67:d6:2e:8e:cf:ac:cc:64:15:18:72:e5:6c:
+ 77:d3:52:a8:b9:dd:8d:ac:00:4a:35:19:d4:6f:73:a3:75:ef:
+ 6b:64:c3:e0:8d:83:12:a1:8a:e7:0e:86:4d:d8:b4:20:1b:be:
+ 6a:a5:8c:4b:68:66:e3:2b:c7:58:0b:fb:56:10:d4:91:fb:1d:
+ d3:31:58:10:8c:44:e3:75:7b:10:9d:b5:38:b1:f6:aa:ca:81:
+ 64:6c:e8:f2:e2:81:55:97:51:7f:e1:c2:27:50:a2:c9:3c:5b:
+ 00:43:f6:5b:b9:d5:a5:fc:ff:07:50:40:67:07:b0:55:f0:b7:
+ 7e:6e:2d:cc
+-----BEGIN CERTIFICATE-----
+MIIFDjCCA/agAwIBAgIMDulMwwAAAABR03eFMA0GCSqGSIb3DQEBCwUAMIG+MQsw
+CQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2Vl
+IHd3dy5lbnRydXN0Lm5ldC9sZWdhbC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMDkg
+RW50cnVzdCwgSW5jLiAtIGZvciBhdXRob3JpemVkIHVzZSBvbmx5MTIwMAYDVQQD
+EylFbnRydXN0IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjAeFw0x
+NTEwMDUxOTEzNTZaFw0zMDEyMDUxOTQzNTZaMIG6MQswCQYDVQQGEwJVUzEWMBQG
+A1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2VlIHd3dy5lbnRydXN0Lm5l
+dC9sZWdhbC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMTIgRW50cnVzdCwgSW5jLiAt
+IGZvciBhdXRob3JpemVkIHVzZSBvbmx5MS4wLAYDVQQDEyVFbnRydXN0IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5IC0gTDFLMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEA2j+W0E25L0Tn2zlem1DuXKVh2kFnUwmqAJqOV38pa9vH4SEkqjrQ
+jUcj0u1yFvCRIdJdt7hLqIOPt5EyaM/OJZMssn2XyP7BtBe6CZ4DkJN7fEmDImiK
+m95HwzGYei59QAvS7z7Tsoyqj0ip/wDoKVgG97aTWpRzJiatWA7lQrjV6nN5ZGhT
+JbiEz5R6rgZFDKNrTdDGvuoYpDbwkrK6HIiPOlJ/915tgxyd8B/lw9bdpXiSPbBt
+LOrJz5RBGXFEaLpHPATpXbo+8DX3Fbae8i4VHj9HyMg4p3NFXU2wO7GOFyk36t0F
+ASK7lDYqjVs1/lMZLwhGwSqzGmIdTivZGwIDAQABo4IBDDCCAQgwDgYDVR0PAQH/
+BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwMwYIKwYBBQUHAQEEJzAlMCMGCCsG
+AQUFBzABhhdodHRwOi8vb2NzcC5lbnRydXN0Lm5ldDAwBgNVHR8EKTAnMCWgI6Ah
+hh9odHRwOi8vY3JsLmVudHJ1c3QubmV0L2cyY2EuY3JsMDsGA1UdIAQ0MDIwMAYE
+VR0gADAoMCYGCCsGAQUFBwIBFhpodHRwOi8vd3d3LmVudHJ1c3QubmV0L3JwYTAd
+BgNVHQ4EFgQUgqJwdN28Uz/Pe9T3zX+nYMYKTL8wHwYDVR0jBBgwFoAUanImetAe
+733nO2lR1GyNn5ASZqswDQYJKoZIhvcNAQELBQADggEBADnVjpiDYcgsY9NwHRkw
+y/YJrMxp1cncN0HyMg/vdMNY9ngnCTQIlZIv19+4o/0OgemknNM/TWgrFTEKFcxS
+BJPok1DD2bHi4Wi3Ogl08TRYCj93mEC45mj/XeTIRsXsgdfJghhcg85x2Ly/rJkC
+k9uUmITSnKa1/ly78EqvIazCP0kkZ9Yujs+szGQVGHLlbHfTUqi53Y2sAEo1GdRv
+c6N172tkw+CNgxKhiucOhk3YtCAbvmqljEtoZuMrx1gL+1YQ1JH7HdMxWBCMRON1
+exCdtTix9qrKgWRs6PLigVWXUX/hwidQosk8WwBD9lu51aX8/wdQQGcHsFXwt35u
+Lcw=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert42[] = {
+ 0x30, 0x82, 0x05, 0x0e, 0x30, 0x82, 0x03, 0xf6, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x0c, 0x0e, 0xe9, 0x4c, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x51,
+ 0xd3, 0x77, 0x85, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0xbe, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16,
+ 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x45, 0x6e, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x28,
+ 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f, 0x53, 0x65, 0x65,
+ 0x20, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74,
+ 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d, 0x74,
+ 0x65, 0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x39, 0x20,
+ 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+ 0x2e, 0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68,
+ 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f,
+ 0x6e, 0x6c, 0x79, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x29, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f,
+ 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+ 0x35, 0x31, 0x30, 0x30, 0x35, 0x31, 0x39, 0x31, 0x33, 0x35, 0x36, 0x5a,
+ 0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x35, 0x31, 0x39, 0x34, 0x33,
+ 0x35, 0x36, 0x5a, 0x30, 0x81, 0xba, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
+ 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06,
+ 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73,
+ 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f, 0x53, 0x65, 0x65, 0x20, 0x77, 0x77,
+ 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+ 0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d, 0x74, 0x65, 0x72, 0x6d,
+ 0x73, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x30,
+ 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x32, 0x20, 0x45, 0x6e, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+ 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+ 0x31, 0x2e, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x25, 0x45,
+ 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x4c, 0x31, 0x4b,
+ 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+ 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0x3f, 0x96,
+ 0xd0, 0x4d, 0xb9, 0x2f, 0x44, 0xe7, 0xdb, 0x39, 0x5e, 0x9b, 0x50, 0xee,
+ 0x5c, 0xa5, 0x61, 0xda, 0x41, 0x67, 0x53, 0x09, 0xaa, 0x00, 0x9a, 0x8e,
+ 0x57, 0x7f, 0x29, 0x6b, 0xdb, 0xc7, 0xe1, 0x21, 0x24, 0xaa, 0x3a, 0xd0,
+ 0x8d, 0x47, 0x23, 0xd2, 0xed, 0x72, 0x16, 0xf0, 0x91, 0x21, 0xd2, 0x5d,
+ 0xb7, 0xb8, 0x4b, 0xa8, 0x83, 0x8f, 0xb7, 0x91, 0x32, 0x68, 0xcf, 0xce,
+ 0x25, 0x93, 0x2c, 0xb2, 0x7d, 0x97, 0xc8, 0xfe, 0xc1, 0xb4, 0x17, 0xba,
+ 0x09, 0x9e, 0x03, 0x90, 0x93, 0x7b, 0x7c, 0x49, 0x83, 0x22, 0x68, 0x8a,
+ 0x9b, 0xde, 0x47, 0xc3, 0x31, 0x98, 0x7a, 0x2e, 0x7d, 0x40, 0x0b, 0xd2,
+ 0xef, 0x3e, 0xd3, 0xb2, 0x8c, 0xaa, 0x8f, 0x48, 0xa9, 0xff, 0x00, 0xe8,
+ 0x29, 0x58, 0x06, 0xf7, 0xb6, 0x93, 0x5a, 0x94, 0x73, 0x26, 0x26, 0xad,
+ 0x58, 0x0e, 0xe5, 0x42, 0xb8, 0xd5, 0xea, 0x73, 0x79, 0x64, 0x68, 0x53,
+ 0x25, 0xb8, 0x84, 0xcf, 0x94, 0x7a, 0xae, 0x06, 0x45, 0x0c, 0xa3, 0x6b,
+ 0x4d, 0xd0, 0xc6, 0xbe, 0xea, 0x18, 0xa4, 0x36, 0xf0, 0x92, 0xb2, 0xba,
+ 0x1c, 0x88, 0x8f, 0x3a, 0x52, 0x7f, 0xf7, 0x5e, 0x6d, 0x83, 0x1c, 0x9d,
+ 0xf0, 0x1f, 0xe5, 0xc3, 0xd6, 0xdd, 0xa5, 0x78, 0x92, 0x3d, 0xb0, 0x6d,
+ 0x2c, 0xea, 0xc9, 0xcf, 0x94, 0x41, 0x19, 0x71, 0x44, 0x68, 0xba, 0x47,
+ 0x3c, 0x04, 0xe9, 0x5d, 0xba, 0x3e, 0xf0, 0x35, 0xf7, 0x15, 0xb6, 0x9e,
+ 0xf2, 0x2e, 0x15, 0x1e, 0x3f, 0x47, 0xc8, 0xc8, 0x38, 0xa7, 0x73, 0x45,
+ 0x5d, 0x4d, 0xb0, 0x3b, 0xb1, 0x8e, 0x17, 0x29, 0x37, 0xea, 0xdd, 0x05,
+ 0x01, 0x22, 0xbb, 0x94, 0x36, 0x2a, 0x8d, 0x5b, 0x35, 0xfe, 0x53, 0x19,
+ 0x2f, 0x08, 0x46, 0xc1, 0x2a, 0xb3, 0x1a, 0x62, 0x1d, 0x4e, 0x2b, 0xd9,
+ 0x1b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x0c, 0x30, 0x82,
+ 0x01, 0x08, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+ 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+ 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+ 0x01, 0x00, 0x30, 0x33, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x01, 0x01, 0x04, 0x27, 0x30, 0x25, 0x30, 0x23, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x17, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x65, 0x6e, 0x74, 0x72,
+ 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x30, 0x30, 0x06, 0x03, 0x55,
+ 0x1d, 0x1f, 0x04, 0x29, 0x30, 0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21,
+ 0x86, 0x1f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c,
+ 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74,
+ 0x2f, 0x67, 0x32, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b, 0x06,
+ 0x03, 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06, 0x04,
+ 0x55, 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x70, 0x61, 0x30, 0x1d,
+ 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x82, 0xa2, 0x70,
+ 0x74, 0xdd, 0xbc, 0x53, 0x3f, 0xcf, 0x7b, 0xd4, 0xf7, 0xcd, 0x7f, 0xa7,
+ 0x60, 0xc6, 0x0a, 0x4c, 0xbf, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+ 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x6a, 0x72, 0x26, 0x7a, 0xd0, 0x1e,
+ 0xef, 0x7d, 0xe7, 0x3b, 0x69, 0x51, 0xd4, 0x6c, 0x8d, 0x9f, 0x90, 0x12,
+ 0x66, 0xab, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x39, 0xd5,
+ 0x8e, 0x98, 0x83, 0x61, 0xc8, 0x2c, 0x63, 0xd3, 0x70, 0x1d, 0x19, 0x30,
+ 0xcb, 0xf6, 0x09, 0xac, 0xcc, 0x69, 0xd5, 0xc9, 0xdc, 0x37, 0x41, 0xf2,
+ 0x32, 0x0f, 0xef, 0x74, 0xc3, 0x58, 0xf6, 0x78, 0x27, 0x09, 0x34, 0x08,
+ 0x95, 0x92, 0x2f, 0xd7, 0xdf, 0xb8, 0xa3, 0xfd, 0x0e, 0x81, 0xe9, 0xa4,
+ 0x9c, 0xd3, 0x3f, 0x4d, 0x68, 0x2b, 0x15, 0x31, 0x0a, 0x15, 0xcc, 0x52,
+ 0x04, 0x93, 0xe8, 0x93, 0x50, 0xc3, 0xd9, 0xb1, 0xe2, 0xe1, 0x68, 0xb7,
+ 0x3a, 0x09, 0x74, 0xf1, 0x34, 0x58, 0x0a, 0x3f, 0x77, 0x98, 0x40, 0xb8,
+ 0xe6, 0x68, 0xff, 0x5d, 0xe4, 0xc8, 0x46, 0xc5, 0xec, 0x81, 0xd7, 0xc9,
+ 0x82, 0x18, 0x5c, 0x83, 0xce, 0x71, 0xd8, 0xbc, 0xbf, 0xac, 0x99, 0x02,
+ 0x93, 0xdb, 0x94, 0x98, 0x84, 0xd2, 0x9c, 0xa6, 0xb5, 0xfe, 0x5c, 0xbb,
+ 0xf0, 0x4a, 0xaf, 0x21, 0xac, 0xc2, 0x3f, 0x49, 0x24, 0x67, 0xd6, 0x2e,
+ 0x8e, 0xcf, 0xac, 0xcc, 0x64, 0x15, 0x18, 0x72, 0xe5, 0x6c, 0x77, 0xd3,
+ 0x52, 0xa8, 0xb9, 0xdd, 0x8d, 0xac, 0x00, 0x4a, 0x35, 0x19, 0xd4, 0x6f,
+ 0x73, 0xa3, 0x75, 0xef, 0x6b, 0x64, 0xc3, 0xe0, 0x8d, 0x83, 0x12, 0xa1,
+ 0x8a, 0xe7, 0x0e, 0x86, 0x4d, 0xd8, 0xb4, 0x20, 0x1b, 0xbe, 0x6a, 0xa5,
+ 0x8c, 0x4b, 0x68, 0x66, 0xe3, 0x2b, 0xc7, 0x58, 0x0b, 0xfb, 0x56, 0x10,
+ 0xd4, 0x91, 0xfb, 0x1d, 0xd3, 0x31, 0x58, 0x10, 0x8c, 0x44, 0xe3, 0x75,
+ 0x7b, 0x10, 0x9d, 0xb5, 0x38, 0xb1, 0xf6, 0xaa, 0xca, 0x81, 0x64, 0x6c,
+ 0xe8, 0xf2, 0xe2, 0x81, 0x55, 0x97, 0x51, 0x7f, 0xe1, 0xc2, 0x27, 0x50,
+ 0xa2, 0xc9, 0x3c, 0x5b, 0x00, 0x43, 0xf6, 0x5b, 0xb9, 0xd5, 0xa5, 0xfc,
+ 0xff, 0x07, 0x50, 0x40, 0x67, 0x07, 0xb0, 0x55, 0xf0, 0xb7, 0x7e, 0x6e,
+ 0x2d, 0xcc,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 120038507 (0x727a46b)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+ Validity
+ Not Before: Apr 2 14:36:10 2014 GMT
+ Not After : Apr 2 14:35:52 2021 GMT
+ Subject: C=NL, L=Amsterdam, O=Verizon Enterprise Solutions, OU=Cybertrust, CN=Verizon Akamai SureServer CA G14-SHA2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:dd:6e:9e:02:69:02:b5:a3:99:2e:08:64:32:6a:
+ 59:f3:c6:9e:a6:20:07:d2:48:d1:a8:93:c7:ea:47:
+ 8f:83:39:40:d7:20:5d:8d:9a:ba:ab:d8:70:ec:9d:
+ 88:d1:bd:62:f6:db:ec:9d:5e:35:01:76:03:23:e5:
+ 6f:d2:af:46:35:59:5a:5c:d1:a8:23:c1:eb:e9:20:
+ d4:49:d6:3f:00:d8:a8:22:de:43:79:81:ac:e9:a4:
+ 92:f5:77:70:05:1e:5c:b6:a0:f7:90:a4:cd:ab:28:
+ 2c:90:c2:e7:0f:c3:af:1c:47:59:d5:84:2e:df:26:
+ 07:45:23:5a:c6:e8:90:c8:85:4b:8c:16:1e:60:f9:
+ 01:13:f1:14:1f:e6:e8:14:ed:c5:d2:6f:63:28:6e:
+ 72:8c:49:ae:08:72:c7:93:95:b4:0b:0c:ae:8f:9a:
+ 67:84:f5:57:1b:db:81:d7:17:9d:41:11:43:19:bd:
+ 6d:4a:85:ed:8f:70:25:ab:66:ab:f6:fa:6d:1c:3c:
+ ab:ed:17:bd:56:84:e1:db:75:33:b2:28:4b:99:8e:
+ f9:4b:82:33:50:9f:92:53:ed:fa:ad:0f:95:9c:a3:
+ f2:cb:60:f0:77:1d:c9:01:8b:5f:2d:86:be:bf:36:
+ b8:24:96:13:7c:c1:86:5a:6c:c1:48:2a:7f:3e:93:
+ 60:c5
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:2
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.6334.1.50
+ CPS: https://secure.omniroot.com/repository
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.omniroot.com/baltimoreroot
+ CA Issuers - URI:https://cacert.omniroot.com/baltimoreroot.crt
+ CA Issuers - URI:https://cacert.omniroot.com/baltimoreroot.der
+
+ X509v3 Key Usage: critical
+ Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
+ X509v3 Authority Key Identifier:
+ keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+ X509v3 Subject Key Identifier:
+ F8:BD:FA:AF:73:77:C6:C7:1B:F9:4B:4D:11:A7:D1:33:AF:AF:72:11
+ Signature Algorithm: sha256WithRSAEncryption
+ 80:d9:7a:ed:72:05:37:8f:61:aa:73:7c:9a:6a:fc:fe:01:e2:
+ 19:81:70:07:25:32:b0:f0:6f:3b:c7:6a:28:3d:e4:51:87:e6:
+ 7e:82:ec:ae:48:a7:b1:77:38:c2:d6:56:af:8f:f2:01:fc:65:
+ 65:10:09:f7:74:29:b5:0e:92:ee:90:98:d1:88:a2:65:b7:cd:
+ 9c:0e:a7:86:98:28:bc:ae:15:83:b6:1a:d7:1d:ec:19:da:7a:
+ 8e:40:f9:99:15:d5:7d:a5:ba:ab:fd:26:98:6e:9c:41:3b:b6:
+ 81:18:ec:70:48:d7:6e:7f:a6:e1:77:25:d6:dd:62:e8:52:f3:
+ 8c:16:39:67:e2:22:0d:77:2e:fb:11:6c:e4:dd:38:b4:27:5f:
+ 03:a8:3d:44:e2:f2:84:4b:84:fd:56:a6:9e:4d:7b:a2:16:4f:
+ 07:f5:34:24:72:a5:a2:fa:16:66:2a:a4:4a:0e:c8:0d:27:44:
+ 9c:77:d4:12:10:87:d2:00:2c:7a:bb:8e:88:22:91:15:be:a2:
+ 59:ca:34:e0:1c:61:94:86:20:33:cd:e7:4c:5d:3b:92:3e:cb:
+ d6:2d:ea:54:fa:fb:af:54:f5:a8:c5:0b:ca:8b:87:00:e6:9f:
+ e6:95:bf:b7:c4:a3:59:f5:16:6c:5f:3e:69:55:80:39:f6:75:
+ 50:14:3e:32
+-----BEGIN CERTIFICATE-----
+MIIFHzCCBAegAwIBAgIEByekazANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE0MDQwMjE0MzYxMFoX
+DTIxMDQwMjE0MzU1MlowgY0xCzAJBgNVBAYTAk5MMRIwEAYDVQQHEwlBbXN0ZXJk
+YW0xJTAjBgNVBAoTHFZlcml6b24gRW50ZXJwcmlzZSBTb2x1dGlvbnMxEzARBgNV
+BAsTCkN5YmVydHJ1c3QxLjAsBgNVBAMTJVZlcml6b24gQWthbWFpIFN1cmVTZXJ2
+ZXIgQ0EgRzE0LVNIQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDd
+bp4CaQK1o5kuCGQyalnzxp6mIAfSSNGok8fqR4+DOUDXIF2Nmrqr2HDsnYjRvWL2
+2+ydXjUBdgMj5W/Sr0Y1WVpc0agjwevpINRJ1j8A2Kgi3kN5gazppJL1d3AFHly2
+oPeQpM2rKCyQwucPw68cR1nVhC7fJgdFI1rG6JDIhUuMFh5g+QET8RQf5ugU7cXS
+b2MobnKMSa4IcseTlbQLDK6PmmeE9Vcb24HXF51BEUMZvW1Khe2PcCWrZqv2+m0c
+PKvtF71WhOHbdTOyKEuZjvlLgjNQn5JT7fqtD5Wco/LLYPB3HckBi18thr6/Nrgk
+lhN8wYZabMFIKn8+k2DFAgMBAAGjggG3MIIBszASBgNVHRMBAf8ECDAGAQH/AgEC
+MEwGA1UdIARFMEMwQQYJKwYBBAGxPgEyMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8v
+c2VjdXJlLm9tbmlyb290LmNvbS9yZXBvc2l0b3J5MIG6BggrBgEFBQcBAQSBrTCB
+qjAyBggrBgEFBQcwAYYmaHR0cDovL29jc3Aub21uaXJvb3QuY29tL2JhbHRpbW9y
+ZXJvb3QwOQYIKwYBBQUHMAKGLWh0dHBzOi8vY2FjZXJ0Lm9tbmlyb290LmNvbS9i
+YWx0aW1vcmVyb290LmNydDA5BggrBgEFBQcwAoYtaHR0cHM6Ly9jYWNlcnQub21u
+aXJvb3QuY29tL2JhbHRpbW9yZXJvb3QuZGVyMA4GA1UdDwEB/wQEAwIBxjAfBgNV
+HSMEGDAWgBTlnVkwgkdYzKz6CFQ2hns6tQRN8DBCBgNVHR8EOzA5MDegNaAzhjFo
+dHRwOi8vY2RwMS5wdWJsaWMtdHJ1c3QuY29tL0NSTC9PbW5pcm9vdDIwMjUuY3Js
+MB0GA1UdDgQWBBT4vfqvc3fGxxv5S00Rp9Ezr69yETANBgkqhkiG9w0BAQsFAAOC
+AQEAgNl67XIFN49hqnN8mmr8/gHiGYFwByUysPBvO8dqKD3kUYfmfoLsrkinsXc4
+wtZWr4/yAfxlZRAJ93QptQ6S7pCY0YiiZbfNnA6nhpgovK4Vg7Ya1x3sGdp6jkD5
+mRXVfaW6q/0mmG6cQTu2gRjscEjXbn+m4Xcl1t1i6FLzjBY5Z+IiDXcu+xFs5N04
+tCdfA6g9ROLyhEuE/Vamnk17ohZPB/U0JHKlovoWZiqkSg7IDSdEnHfUEhCH0gAs
+eruOiCKRFb6iWco04BxhlIYgM83nTF07kj7L1i3qVPr7r1T1qMULyouHAOaf5pW/
+t8SjWfUWbF8+aVWAOfZ1UBQ+Mg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert43[] = {
+ 0x30, 0x82, 0x05, 0x1f, 0x30, 0x82, 0x04, 0x07, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x07, 0x27, 0xa4, 0x6b, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+ 0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+ 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+ 0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+ 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+ 0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34,
+ 0x30, 0x34, 0x30, 0x32, 0x31, 0x34, 0x33, 0x36, 0x31, 0x30, 0x5a, 0x17,
+ 0x0d, 0x32, 0x31, 0x30, 0x34, 0x30, 0x32, 0x31, 0x34, 0x33, 0x35, 0x35,
+ 0x32, 0x5a, 0x30, 0x81, 0x8d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03,
+ 0x55, 0x04, 0x07, 0x13, 0x09, 0x41, 0x6d, 0x73, 0x74, 0x65, 0x72, 0x64,
+ 0x61, 0x6d, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x1c, 0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x20, 0x45, 0x6e, 0x74,
+ 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x20, 0x53, 0x6f, 0x6c, 0x75,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x31, 0x2e, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x25, 0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x20, 0x41, 0x6b, 0x61,
+ 0x6d, 0x61, 0x69, 0x20, 0x53, 0x75, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x47, 0x31, 0x34, 0x2d, 0x53, 0x48,
+ 0x41, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+ 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xdd,
+ 0x6e, 0x9e, 0x02, 0x69, 0x02, 0xb5, 0xa3, 0x99, 0x2e, 0x08, 0x64, 0x32,
+ 0x6a, 0x59, 0xf3, 0xc6, 0x9e, 0xa6, 0x20, 0x07, 0xd2, 0x48, 0xd1, 0xa8,
+ 0x93, 0xc7, 0xea, 0x47, 0x8f, 0x83, 0x39, 0x40, 0xd7, 0x20, 0x5d, 0x8d,
+ 0x9a, 0xba, 0xab, 0xd8, 0x70, 0xec, 0x9d, 0x88, 0xd1, 0xbd, 0x62, 0xf6,
+ 0xdb, 0xec, 0x9d, 0x5e, 0x35, 0x01, 0x76, 0x03, 0x23, 0xe5, 0x6f, 0xd2,
+ 0xaf, 0x46, 0x35, 0x59, 0x5a, 0x5c, 0xd1, 0xa8, 0x23, 0xc1, 0xeb, 0xe9,
+ 0x20, 0xd4, 0x49, 0xd6, 0x3f, 0x00, 0xd8, 0xa8, 0x22, 0xde, 0x43, 0x79,
+ 0x81, 0xac, 0xe9, 0xa4, 0x92, 0xf5, 0x77, 0x70, 0x05, 0x1e, 0x5c, 0xb6,
+ 0xa0, 0xf7, 0x90, 0xa4, 0xcd, 0xab, 0x28, 0x2c, 0x90, 0xc2, 0xe7, 0x0f,
+ 0xc3, 0xaf, 0x1c, 0x47, 0x59, 0xd5, 0x84, 0x2e, 0xdf, 0x26, 0x07, 0x45,
+ 0x23, 0x5a, 0xc6, 0xe8, 0x90, 0xc8, 0x85, 0x4b, 0x8c, 0x16, 0x1e, 0x60,
+ 0xf9, 0x01, 0x13, 0xf1, 0x14, 0x1f, 0xe6, 0xe8, 0x14, 0xed, 0xc5, 0xd2,
+ 0x6f, 0x63, 0x28, 0x6e, 0x72, 0x8c, 0x49, 0xae, 0x08, 0x72, 0xc7, 0x93,
+ 0x95, 0xb4, 0x0b, 0x0c, 0xae, 0x8f, 0x9a, 0x67, 0x84, 0xf5, 0x57, 0x1b,
+ 0xdb, 0x81, 0xd7, 0x17, 0x9d, 0x41, 0x11, 0x43, 0x19, 0xbd, 0x6d, 0x4a,
+ 0x85, 0xed, 0x8f, 0x70, 0x25, 0xab, 0x66, 0xab, 0xf6, 0xfa, 0x6d, 0x1c,
+ 0x3c, 0xab, 0xed, 0x17, 0xbd, 0x56, 0x84, 0xe1, 0xdb, 0x75, 0x33, 0xb2,
+ 0x28, 0x4b, 0x99, 0x8e, 0xf9, 0x4b, 0x82, 0x33, 0x50, 0x9f, 0x92, 0x53,
+ 0xed, 0xfa, 0xad, 0x0f, 0x95, 0x9c, 0xa3, 0xf2, 0xcb, 0x60, 0xf0, 0x77,
+ 0x1d, 0xc9, 0x01, 0x8b, 0x5f, 0x2d, 0x86, 0xbe, 0xbf, 0x36, 0xb8, 0x24,
+ 0x96, 0x13, 0x7c, 0xc1, 0x86, 0x5a, 0x6c, 0xc1, 0x48, 0x2a, 0x7f, 0x3e,
+ 0x93, 0x60, 0xc5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xb7,
+ 0x30, 0x82, 0x01, 0xb3, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+ 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x02,
+ 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30,
+ 0x41, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e, 0x01, 0x32,
+ 0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
+ 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72,
+ 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x30, 0x81, 0xba, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x81, 0xad, 0x30, 0x81,
+ 0xaa, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+ 0x01, 0x86, 0x26, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63,
+ 0x73, 0x70, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72,
+ 0x65, 0x72, 0x6f, 0x6f, 0x74, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x73,
+ 0x3a, 0x2f, 0x2f, 0x63, 0x61, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x6f, 0x6d,
+ 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62,
+ 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x6f, 0x6f, 0x74,
+ 0x2e, 0x63, 0x72, 0x74, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x30, 0x02, 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a,
+ 0x2f, 0x2f, 0x63, 0x61, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x6f, 0x6d, 0x6e,
+ 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61,
+ 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x6f, 0x6f, 0x74, 0x2e,
+ 0x64, 0x65, 0x72, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0xc6, 0x30, 0x1f, 0x06, 0x03, 0x55,
+ 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe5, 0x9d, 0x59, 0x30,
+ 0x82, 0x47, 0x58, 0xcc, 0xac, 0xfa, 0x08, 0x54, 0x36, 0x86, 0x7b, 0x3a,
+ 0xb5, 0x04, 0x4d, 0xf0, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
+ 0x3b, 0x30, 0x39, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x64, 0x70, 0x31, 0x2e, 0x70,
+ 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x4f, 0x6d, 0x6e, 0x69,
+ 0x72, 0x6f, 0x6f, 0x74, 0x32, 0x30, 0x32, 0x35, 0x2e, 0x63, 0x72, 0x6c,
+ 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xf8,
+ 0xbd, 0xfa, 0xaf, 0x73, 0x77, 0xc6, 0xc7, 0x1b, 0xf9, 0x4b, 0x4d, 0x11,
+ 0xa7, 0xd1, 0x33, 0xaf, 0xaf, 0x72, 0x11, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x01, 0x00, 0x80, 0xd9, 0x7a, 0xed, 0x72, 0x05, 0x37, 0x8f, 0x61,
+ 0xaa, 0x73, 0x7c, 0x9a, 0x6a, 0xfc, 0xfe, 0x01, 0xe2, 0x19, 0x81, 0x70,
+ 0x07, 0x25, 0x32, 0xb0, 0xf0, 0x6f, 0x3b, 0xc7, 0x6a, 0x28, 0x3d, 0xe4,
+ 0x51, 0x87, 0xe6, 0x7e, 0x82, 0xec, 0xae, 0x48, 0xa7, 0xb1, 0x77, 0x38,
+ 0xc2, 0xd6, 0x56, 0xaf, 0x8f, 0xf2, 0x01, 0xfc, 0x65, 0x65, 0x10, 0x09,
+ 0xf7, 0x74, 0x29, 0xb5, 0x0e, 0x92, 0xee, 0x90, 0x98, 0xd1, 0x88, 0xa2,
+ 0x65, 0xb7, 0xcd, 0x9c, 0x0e, 0xa7, 0x86, 0x98, 0x28, 0xbc, 0xae, 0x15,
+ 0x83, 0xb6, 0x1a, 0xd7, 0x1d, 0xec, 0x19, 0xda, 0x7a, 0x8e, 0x40, 0xf9,
+ 0x99, 0x15, 0xd5, 0x7d, 0xa5, 0xba, 0xab, 0xfd, 0x26, 0x98, 0x6e, 0x9c,
+ 0x41, 0x3b, 0xb6, 0x81, 0x18, 0xec, 0x70, 0x48, 0xd7, 0x6e, 0x7f, 0xa6,
+ 0xe1, 0x77, 0x25, 0xd6, 0xdd, 0x62, 0xe8, 0x52, 0xf3, 0x8c, 0x16, 0x39,
+ 0x67, 0xe2, 0x22, 0x0d, 0x77, 0x2e, 0xfb, 0x11, 0x6c, 0xe4, 0xdd, 0x38,
+ 0xb4, 0x27, 0x5f, 0x03, 0xa8, 0x3d, 0x44, 0xe2, 0xf2, 0x84, 0x4b, 0x84,
+ 0xfd, 0x56, 0xa6, 0x9e, 0x4d, 0x7b, 0xa2, 0x16, 0x4f, 0x07, 0xf5, 0x34,
+ 0x24, 0x72, 0xa5, 0xa2, 0xfa, 0x16, 0x66, 0x2a, 0xa4, 0x4a, 0x0e, 0xc8,
+ 0x0d, 0x27, 0x44, 0x9c, 0x77, 0xd4, 0x12, 0x10, 0x87, 0xd2, 0x00, 0x2c,
+ 0x7a, 0xbb, 0x8e, 0x88, 0x22, 0x91, 0x15, 0xbe, 0xa2, 0x59, 0xca, 0x34,
+ 0xe0, 0x1c, 0x61, 0x94, 0x86, 0x20, 0x33, 0xcd, 0xe7, 0x4c, 0x5d, 0x3b,
+ 0x92, 0x3e, 0xcb, 0xd6, 0x2d, 0xea, 0x54, 0xfa, 0xfb, 0xaf, 0x54, 0xf5,
+ 0xa8, 0xc5, 0x0b, 0xca, 0x8b, 0x87, 0x00, 0xe6, 0x9f, 0xe6, 0x95, 0xbf,
+ 0xb7, 0xc4, 0xa3, 0x59, 0xf5, 0x16, 0x6c, 0x5f, 0x3e, 0x69, 0x55, 0x80,
+ 0x39, 0xf6, 0x75, 0x50, 0x14, 0x3e, 0x32,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 7e:e1:4a:6f:6f:ef:f2:d3:7f:3f:ad:65:4d:3a:da:b4
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+ Validity
+ Not Before: Oct 31 00:00:00 2013 GMT
+ Not After : Oct 30 23:59:59 2023 GMT
+ Subject: C=US, O=Symantec Corporation, OU=Symantec Trust Network, CN=Symantec Class 3 EV SSL CA - G3
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:d8:a1:65:74:23:e8:2b:64:e2:32:d7:33:37:3d:
+ 8e:f5:34:16:48:dd:4f:7f:87:1c:f8:44:23:13:8e:
+ fb:11:d8:44:5a:18:71:8e:60:16:26:92:9b:fd:17:
+ 0b:e1:71:70:42:fe:bf:fa:1c:c0:aa:a3:a7:b5:71:
+ e8:ff:18:83:f6:df:10:0a:13:62:c8:3d:9c:a7:de:
+ 2e:3f:0c:d9:1d:e7:2e:fb:2a:ce:c8:9a:7f:87:bf:
+ d8:4c:04:15:32:c9:d1:cc:95:71:a0:4e:28:4f:84:
+ d9:35:fb:e3:86:6f:94:53:e6:72:8a:63:67:2e:be:
+ 69:f6:f7:6e:8e:9c:60:04:eb:29:fa:c4:47:42:d2:
+ 78:98:e3:ec:0b:a5:92:dc:b7:9a:bd:80:64:2b:38:
+ 7c:38:09:5b:66:f6:2d:95:7a:86:b2:34:2e:85:9e:
+ 90:0e:5f:b7:5d:a4:51:72:46:70:13:bf:67:f2:b6:
+ a7:4d:14:1e:6c:b9:53:ee:23:1a:4e:8d:48:55:43:
+ 41:b1:89:75:6a:40:28:c5:7d:dd:d2:6e:d2:02:19:
+ 2f:7b:24:94:4b:eb:f1:1a:a9:9b:e3:23:9a:ea:fa:
+ 33:ab:0a:2c:b7:f4:60:08:dd:9f:1c:cd:dd:2d:01:
+ 66:80:af:b3:2f:29:1d:23:b8:8a:e1:a1:70:07:0c:
+ 34:0f
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ Authority Information Access:
+ OCSP - URI:http://s2.symcb.com
+
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.symauth.com/cps
+ User Notice:
+ Explicit Text: http://www.symauth.com/rpa
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://s1.symcb.com/pca3-g5.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-533
+ X509v3 Subject Key Identifier:
+ 01:59:AB:E7:DD:3A:0B:59:A6:64:63:D6:CF:20:07:57:D5:91:E7:6A
+ X509v3 Authority Key Identifier:
+ keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 42:01:55:7b:d0:16:1a:5d:58:e8:bb:9b:a8:4d:d7:f3:d7:eb:
+ 13:94:86:d6:7f:21:0b:47:bc:57:9b:92:5d:4f:05:9f:38:a4:
+ 10:7c:cf:83:be:06:43:46:8d:08:bc:6a:d7:10:a6:fa:ab:af:
+ 2f:61:a8:63:f2:65:df:7f:4c:88:12:88:4f:b3:69:d9:ff:27:
+ c0:0a:97:91:8f:56:fb:89:c4:a8:bb:92:2d:1b:73:b0:c6:ab:
+ 36:f4:96:6c:20:08:ef:0a:1e:66:24:45:4f:67:00:40:c8:07:
+ 54:74:33:3b:a6:ad:bb:23:9f:66:ed:a2:44:70:34:fb:0e:ea:
+ 01:fd:cf:78:74:df:a7:ad:55:b7:5f:4d:f6:d6:3f:e0:86:ce:
+ 24:c7:42:a9:13:14:44:35:4b:b6:df:c9:60:ac:0c:7f:d9:93:
+ 21:4b:ee:9c:e4:49:02:98:d3:60:7b:5c:bc:d5:30:2f:07:ce:
+ 44:42:c4:0b:99:fe:e6:9f:fc:b0:78:86:51:6d:d1:2c:9d:c6:
+ 96:fb:85:82:bb:04:2f:f7:62:80:ef:62:da:7f:f6:0e:ac:90:
+ b8:56:bd:79:3f:f2:80:6e:a3:d9:b9:0f:5d:3a:07:1d:91:93:
+ 86:4b:29:4c:e1:dc:b5:e1:e0:33:9d:b3:cb:36:91:4b:fe:a1:
+ b4:ee:f0:f9
+-----BEGIN CERTIFICATE-----
+MIIFKzCCBBOgAwIBAgIQfuFKb2/v8tN/P61lTTratDANBgkqhkiG9w0BAQsFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMTMxMDMxMDAwMDAwWhcNMjMxMDMwMjM1OTU5WjB3MQsw
+CQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNV
+BAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMTH1N5bWFudGVjIENs
+YXNzIDMgRVYgU1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDYoWV0I+grZOIy1zM3PY71NBZI3U9/hxz4RCMTjvsR2ERaGHGOYBYmkpv9
+FwvhcXBC/r/6HMCqo6e1cej/GIP23xAKE2LIPZyn3i4/DNkd5y77Ks7Imn+Hv9hM
+BBUyydHMlXGgTihPhNk1++OGb5RT5nKKY2cuvmn2926OnGAE6yn6xEdC0niY4+wL
+pZLct5q9gGQrOHw4CVtm9i2VeoayNC6FnpAOX7ddpFFyRnATv2fytqdNFB5suVPu
+IxpOjUhVQ0GxiXVqQCjFfd3SbtICGS97JJRL6/EaqZvjI5rq+jOrCiy39GAI3Z8c
+zd0tAWaAr7MvKR0juIrhoXAHDDQPAgMBAAGjggFdMIIBWTAvBggrBgEFBQcBAQQj
+MCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9zMi5zeW1jYi5jb20wEgYDVR0TAQH/BAgw
+BgEB/wIBADBlBgNVHSAEXjBcMFoGBFUdIAAwUjAmBggrBgEFBQcCARYaaHR0cDov
+L3d3dy5zeW1hdXRoLmNvbS9jcHMwKAYIKwYBBQUHAgIwHBoaaHR0cDovL3d3dy5z
+eW1hdXRoLmNvbS9ycGEwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3MxLnN5bWNi
+LmNvbS9wY2EzLWc1LmNybDAOBgNVHQ8BAf8EBAMCAQYwKQYDVR0RBCIwIKQeMBwx
+GjAYBgNVBAMTEVN5bWFudGVjUEtJLTEtNTMzMB0GA1UdDgQWBBQBWavn3ToLWaZk
+Y9bPIAdX1ZHnajAfBgNVHSMEGDAWgBR/02Wnwt3su/AwCfNDOfoCrzMxMzANBgkq
+hkiG9w0BAQsFAAOCAQEAQgFVe9AWGl1Y6LubqE3X89frE5SG1n8hC0e8V5uSXU8F
+nzikEHzPg74GQ0aNCLxq1xCm+quvL2GoY/Jl339MiBKIT7Np2f8nwAqXkY9W+4nE
+qLuSLRtzsMarNvSWbCAI7woeZiRFT2cAQMgHVHQzO6atuyOfZu2iRHA0+w7qAf3P
+eHTfp61Vt19N9tY/4IbOJMdCqRMURDVLtt/JYKwMf9mTIUvunORJApjTYHtcvNUw
+LwfORELEC5n+5p/8sHiGUW3RLJ3GlvuFgrsEL/digO9i2n/2DqyQuFa9eT/ygG6j
+2bkPXToHHZGThkspTOHcteHgM52zyzaRS/6htO7w+Q==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert44[] = {
+ 0x30, 0x82, 0x05, 0x2b, 0x30, 0x82, 0x04, 0x13, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x7e, 0xe1, 0x4a, 0x6f, 0x6f, 0xef, 0xf2, 0xd3, 0x7f,
+ 0x3f, 0xad, 0x65, 0x4d, 0x3a, 0xda, 0xb4, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+ 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+ 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+ 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+ 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31, 0x30, 0x33, 0x30,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x77, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1d,
+ 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x53, 0x79, 0x6d,
+ 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x16, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63,
+ 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x1f, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6c,
+ 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x45, 0x56, 0x20, 0x53, 0x53, 0x4c,
+ 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xd8, 0xa1, 0x65, 0x74, 0x23, 0xe8, 0x2b,
+ 0x64, 0xe2, 0x32, 0xd7, 0x33, 0x37, 0x3d, 0x8e, 0xf5, 0x34, 0x16, 0x48,
+ 0xdd, 0x4f, 0x7f, 0x87, 0x1c, 0xf8, 0x44, 0x23, 0x13, 0x8e, 0xfb, 0x11,
+ 0xd8, 0x44, 0x5a, 0x18, 0x71, 0x8e, 0x60, 0x16, 0x26, 0x92, 0x9b, 0xfd,
+ 0x17, 0x0b, 0xe1, 0x71, 0x70, 0x42, 0xfe, 0xbf, 0xfa, 0x1c, 0xc0, 0xaa,
+ 0xa3, 0xa7, 0xb5, 0x71, 0xe8, 0xff, 0x18, 0x83, 0xf6, 0xdf, 0x10, 0x0a,
+ 0x13, 0x62, 0xc8, 0x3d, 0x9c, 0xa7, 0xde, 0x2e, 0x3f, 0x0c, 0xd9, 0x1d,
+ 0xe7, 0x2e, 0xfb, 0x2a, 0xce, 0xc8, 0x9a, 0x7f, 0x87, 0xbf, 0xd8, 0x4c,
+ 0x04, 0x15, 0x32, 0xc9, 0xd1, 0xcc, 0x95, 0x71, 0xa0, 0x4e, 0x28, 0x4f,
+ 0x84, 0xd9, 0x35, 0xfb, 0xe3, 0x86, 0x6f, 0x94, 0x53, 0xe6, 0x72, 0x8a,
+ 0x63, 0x67, 0x2e, 0xbe, 0x69, 0xf6, 0xf7, 0x6e, 0x8e, 0x9c, 0x60, 0x04,
+ 0xeb, 0x29, 0xfa, 0xc4, 0x47, 0x42, 0xd2, 0x78, 0x98, 0xe3, 0xec, 0x0b,
+ 0xa5, 0x92, 0xdc, 0xb7, 0x9a, 0xbd, 0x80, 0x64, 0x2b, 0x38, 0x7c, 0x38,
+ 0x09, 0x5b, 0x66, 0xf6, 0x2d, 0x95, 0x7a, 0x86, 0xb2, 0x34, 0x2e, 0x85,
+ 0x9e, 0x90, 0x0e, 0x5f, 0xb7, 0x5d, 0xa4, 0x51, 0x72, 0x46, 0x70, 0x13,
+ 0xbf, 0x67, 0xf2, 0xb6, 0xa7, 0x4d, 0x14, 0x1e, 0x6c, 0xb9, 0x53, 0xee,
+ 0x23, 0x1a, 0x4e, 0x8d, 0x48, 0x55, 0x43, 0x41, 0xb1, 0x89, 0x75, 0x6a,
+ 0x40, 0x28, 0xc5, 0x7d, 0xdd, 0xd2, 0x6e, 0xd2, 0x02, 0x19, 0x2f, 0x7b,
+ 0x24, 0x94, 0x4b, 0xeb, 0xf1, 0x1a, 0xa9, 0x9b, 0xe3, 0x23, 0x9a, 0xea,
+ 0xfa, 0x33, 0xab, 0x0a, 0x2c, 0xb7, 0xf4, 0x60, 0x08, 0xdd, 0x9f, 0x1c,
+ 0xcd, 0xdd, 0x2d, 0x01, 0x66, 0x80, 0xaf, 0xb3, 0x2f, 0x29, 0x1d, 0x23,
+ 0xb8, 0x8a, 0xe1, 0xa1, 0x70, 0x07, 0x0c, 0x34, 0x0f, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xa3, 0x82, 0x01, 0x5d, 0x30, 0x82, 0x01, 0x59, 0x30, 0x2f,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x23,
+ 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73,
+ 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+ 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30,
+ 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x65, 0x06, 0x03, 0x55,
+ 0x1d, 0x20, 0x04, 0x5e, 0x30, 0x5c, 0x30, 0x5a, 0x06, 0x04, 0x55, 0x1d,
+ 0x20, 0x00, 0x30, 0x52, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x79, 0x6d, 0x61, 0x75, 0x74, 0x68,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x28, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 0x1c, 0x1a, 0x1a,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73,
+ 0x79, 0x6d, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72,
+ 0x70, 0x61, 0x30, 0x30, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x29, 0x30,
+ 0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21, 0x86, 0x1f, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35,
+ 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+ 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x29, 0x06, 0x03,
+ 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31,
+ 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79,
+ 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d,
+ 0x35, 0x33, 0x33, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16,
+ 0x04, 0x14, 0x01, 0x59, 0xab, 0xe7, 0xdd, 0x3a, 0x0b, 0x59, 0xa6, 0x64,
+ 0x63, 0xd6, 0xcf, 0x20, 0x07, 0x57, 0xd5, 0x91, 0xe7, 0x6a, 0x30, 0x1f,
+ 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7f,
+ 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3, 0x43,
+ 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x01, 0x00, 0x42, 0x01, 0x55, 0x7b, 0xd0, 0x16, 0x1a, 0x5d, 0x58,
+ 0xe8, 0xbb, 0x9b, 0xa8, 0x4d, 0xd7, 0xf3, 0xd7, 0xeb, 0x13, 0x94, 0x86,
+ 0xd6, 0x7f, 0x21, 0x0b, 0x47, 0xbc, 0x57, 0x9b, 0x92, 0x5d, 0x4f, 0x05,
+ 0x9f, 0x38, 0xa4, 0x10, 0x7c, 0xcf, 0x83, 0xbe, 0x06, 0x43, 0x46, 0x8d,
+ 0x08, 0xbc, 0x6a, 0xd7, 0x10, 0xa6, 0xfa, 0xab, 0xaf, 0x2f, 0x61, 0xa8,
+ 0x63, 0xf2, 0x65, 0xdf, 0x7f, 0x4c, 0x88, 0x12, 0x88, 0x4f, 0xb3, 0x69,
+ 0xd9, 0xff, 0x27, 0xc0, 0x0a, 0x97, 0x91, 0x8f, 0x56, 0xfb, 0x89, 0xc4,
+ 0xa8, 0xbb, 0x92, 0x2d, 0x1b, 0x73, 0xb0, 0xc6, 0xab, 0x36, 0xf4, 0x96,
+ 0x6c, 0x20, 0x08, 0xef, 0x0a, 0x1e, 0x66, 0x24, 0x45, 0x4f, 0x67, 0x00,
+ 0x40, 0xc8, 0x07, 0x54, 0x74, 0x33, 0x3b, 0xa6, 0xad, 0xbb, 0x23, 0x9f,
+ 0x66, 0xed, 0xa2, 0x44, 0x70, 0x34, 0xfb, 0x0e, 0xea, 0x01, 0xfd, 0xcf,
+ 0x78, 0x74, 0xdf, 0xa7, 0xad, 0x55, 0xb7, 0x5f, 0x4d, 0xf6, 0xd6, 0x3f,
+ 0xe0, 0x86, 0xce, 0x24, 0xc7, 0x42, 0xa9, 0x13, 0x14, 0x44, 0x35, 0x4b,
+ 0xb6, 0xdf, 0xc9, 0x60, 0xac, 0x0c, 0x7f, 0xd9, 0x93, 0x21, 0x4b, 0xee,
+ 0x9c, 0xe4, 0x49, 0x02, 0x98, 0xd3, 0x60, 0x7b, 0x5c, 0xbc, 0xd5, 0x30,
+ 0x2f, 0x07, 0xce, 0x44, 0x42, 0xc4, 0x0b, 0x99, 0xfe, 0xe6, 0x9f, 0xfc,
+ 0xb0, 0x78, 0x86, 0x51, 0x6d, 0xd1, 0x2c, 0x9d, 0xc6, 0x96, 0xfb, 0x85,
+ 0x82, 0xbb, 0x04, 0x2f, 0xf7, 0x62, 0x80, 0xef, 0x62, 0xda, 0x7f, 0xf6,
+ 0x0e, 0xac, 0x90, 0xb8, 0x56, 0xbd, 0x79, 0x3f, 0xf2, 0x80, 0x6e, 0xa3,
+ 0xd9, 0xb9, 0x0f, 0x5d, 0x3a, 0x07, 0x1d, 0x91, 0x93, 0x86, 0x4b, 0x29,
+ 0x4c, 0xe1, 0xdc, 0xb5, 0xe1, 0xe0, 0x33, 0x9d, 0xb3, 0xcb, 0x36, 0x91,
+ 0x4b, 0xfe, 0xa1, 0xb4, 0xee, 0xf0, 0xf9,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 51:3f:b9:74:38:70:b7:34:40:41:8d:30:93:06:99:ff
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+ Validity
+ Not Before: Oct 31 00:00:00 2013 GMT
+ Not After : Oct 30 23:59:59 2023 GMT
+ Subject: C=US, O=Symantec Corporation, OU=Symantec Trust Network, CN=Symantec Class 3 Secure Server CA - G4
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:b2:d8:05:ca:1c:74:2d:b5:17:56:39:c5:4a:52:
+ 09:96:e8:4b:d8:0c:f1:68:9f:9a:42:28:62:c3:a5:
+ 30:53:7e:55:11:82:5b:03:7a:0d:2f:e1:79:04:c9:
+ b4:96:77:19:81:01:94:59:f9:bc:f7:7a:99:27:82:
+ 2d:b7:83:dd:5a:27:7f:b2:03:7a:9c:53:25:e9:48:
+ 1f:46:4f:c8:9d:29:f8:be:79:56:f6:f7:fd:d9:3a:
+ 68:da:8b:4b:82:33:41:12:c3:c8:3c:cc:d6:96:7a:
+ 84:21:1a:22:04:03:27:17:8b:1c:68:61:93:0f:0e:
+ 51:80:33:1d:b4:b5:ce:eb:7e:d0:62:ac:ee:b3:7b:
+ 01:74:ef:69:35:eb:ca:d5:3d:a9:ee:97:98:ca:8d:
+ aa:44:0e:25:99:4a:15:96:a4:ce:6d:02:54:1f:2a:
+ 6a:26:e2:06:3a:63:48:ac:b4:4c:d1:75:93:50:ff:
+ 13:2f:d6:da:e1:c6:18:f5:9f:c9:25:5d:f3:00:3a:
+ de:26:4d:b4:29:09:cd:0f:3d:23:6f:16:4a:81:16:
+ fb:f2:83:10:c3:b8:d6:d8:55:32:3d:f1:bd:0f:bd:
+ 8c:52:95:4a:16:97:7a:52:21:63:75:2f:16:f9:c4:
+ 66:be:f5:b5:09:d8:ff:27:00:cd:44:7c:6f:4b:3f:
+ b0:f7
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://s1.symcb.com/pca3-g5.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://s2.symcb.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.symauth.com/cps
+ User Notice:
+ Explicit Text: http://www.symauth.com/rpa
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=SymantecPKI-1-534
+ X509v3 Subject Key Identifier:
+ 5F:60:CF:61:90:55:DF:84:43:14:8A:60:2A:B2:F5:7A:F4:43:18:EF
+ X509v3 Authority Key Identifier:
+ keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 5e:94:56:49:dd:8e:2d:65:f5:c1:36:51:b6:03:e3:da:9e:73:
+ 19:f2:1f:59:ab:58:7e:6c:26:05:2c:fa:81:d7:5c:23:17:22:
+ 2c:37:93:f7:86:ec:85:e6:b0:a3:fd:1f:e2:32:a8:45:6f:e1:
+ d9:fb:b9:af:d2:70:a0:32:42:65:bf:84:fe:16:2a:8f:3f:c5:
+ a6:d6:a3:93:7d:43:e9:74:21:91:35:28:f4:63:e9:2e:ed:f7:
+ f5:5c:7f:4b:9a:b5:20:e9:0a:bd:e0:45:10:0c:14:94:9a:5d:
+ a5:e3:4b:91:e8:24:9b:46:40:65:f4:22:72:cd:99:f8:88:11:
+ f5:f3:7f:e6:33:82:e6:a8:c5:7e:fe:d0:08:e2:25:58:08:71:
+ 68:e6:cd:a2:e6:14:de:4e:52:24:2d:fd:e5:79:13:53:e7:5e:
+ 2f:2d:4d:1b:6d:40:15:52:2b:f7:87:89:78:12:81:6e:d9:4d:
+ aa:2d:78:d4:c2:2c:3d:08:5f:87:91:9e:1f:0e:b0:de:30:52:
+ 64:86:89:aa:9d:66:9c:0e:76:0c:80:f2:74:d8:2a:f8:b8:3a:
+ ce:d7:d6:0f:11:be:6b:ab:14:f5:bd:41:a0:22:63:89:f1:ba:
+ 0f:6f:29:63:66:2d:3f:ac:8c:72:c5:fb:c7:e4:d4:0f:f2:3b:
+ 4f:8c:29:c7
+-----BEGIN CERTIFICATE-----
+MIIFODCCBCCgAwIBAgIQUT+5dDhwtzRAQY0wkwaZ/zANBgkqhkiG9w0BAQsFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMTMxMDMxMDAwMDAwWhcNMjMxMDMwMjM1OTU5WjB+MQsw
+CQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNV
+BAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxLzAtBgNVBAMTJlN5bWFudGVjIENs
+YXNzIDMgU2VjdXJlIFNlcnZlciBDQSAtIEc0MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAstgFyhx0LbUXVjnFSlIJluhL2AzxaJ+aQihiw6UwU35VEYJb
+A3oNL+F5BMm0lncZgQGUWfm893qZJ4Itt4PdWid/sgN6nFMl6UgfRk/InSn4vnlW
+9vf92Tpo2otLgjNBEsPIPMzWlnqEIRoiBAMnF4scaGGTDw5RgDMdtLXO637QYqzu
+s3sBdO9pNevK1T2p7peYyo2qRA4lmUoVlqTObQJUHypqJuIGOmNIrLRM0XWTUP8T
+L9ba4cYY9Z/JJV3zADreJk20KQnNDz0jbxZKgRb78oMQw7jW2FUyPfG9D72MUpVK
+Fpd6UiFjdS8W+cRmvvW1Cdj/JwDNRHxvSz+w9wIDAQABo4IBYzCCAV8wEgYDVR0T
+AQH/BAgwBgEB/wIBADAwBgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vczEuc3ltY2Iu
+Y29tL3BjYTMtZzUuY3JsMA4GA1UdDwEB/wQEAwIBBjAvBggrBgEFBQcBAQQjMCEw
+HwYIKwYBBQUHMAGGE2h0dHA6Ly9zMi5zeW1jYi5jb20wawYDVR0gBGQwYjBgBgpg
+hkgBhvhFAQc2MFIwJgYIKwYBBQUHAgEWGmh0dHA6Ly93d3cuc3ltYXV0aC5jb20v
+Y3BzMCgGCCsGAQUFBwICMBwaGmh0dHA6Ly93d3cuc3ltYXV0aC5jb20vcnBhMCkG
+A1UdEQQiMCCkHjAcMRowGAYDVQQDExFTeW1hbnRlY1BLSS0xLTUzNDAdBgNVHQ4E
+FgQUX2DPYZBV34RDFIpgKrL1evRDGO8wHwYDVR0jBBgwFoAUf9Nlp8Ld7LvwMAnz
+Qzn6Aq8zMTMwDQYJKoZIhvcNAQELBQADggEBAF6UVkndji1l9cE2UbYD49qecxny
+H1mrWH5sJgUs+oHXXCMXIiw3k/eG7IXmsKP9H+IyqEVv4dn7ua/ScKAyQmW/hP4W
+Ko8/xabWo5N9Q+l0IZE1KPRj6S7t9/Vcf0uatSDpCr3gRRAMFJSaXaXjS5HoJJtG
+QGX0InLNmfiIEfXzf+YzguaoxX7+0AjiJVgIcWjmzaLmFN5OUiQt/eV5E1PnXi8t
+TRttQBVSK/eHiXgSgW7ZTaoteNTCLD0IX4eRnh8OsN4wUmSGiaqdZpwOdgyA8nTY
+Kvi4Os7X1g8RvmurFPW9QaAiY4nxug9vKWNmLT+sjHLF+8fk1A/yO0+MKcc=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert45[] = {
+ 0x30, 0x82, 0x05, 0x38, 0x30, 0x82, 0x04, 0x20, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x51, 0x3f, 0xb9, 0x74, 0x38, 0x70, 0xb7, 0x34, 0x40,
+ 0x41, 0x8d, 0x30, 0x93, 0x06, 0x99, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+ 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+ 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+ 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+ 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31, 0x30, 0x33, 0x30,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x7e, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1d,
+ 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x53, 0x79, 0x6d,
+ 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x16, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63,
+ 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x31, 0x2f, 0x30, 0x2d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x26, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6c,
+ 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65,
+ 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x2d,
+ 0x20, 0x47, 0x34, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xb2, 0xd8, 0x05, 0xca, 0x1c, 0x74, 0x2d, 0xb5, 0x17, 0x56, 0x39, 0xc5,
+ 0x4a, 0x52, 0x09, 0x96, 0xe8, 0x4b, 0xd8, 0x0c, 0xf1, 0x68, 0x9f, 0x9a,
+ 0x42, 0x28, 0x62, 0xc3, 0xa5, 0x30, 0x53, 0x7e, 0x55, 0x11, 0x82, 0x5b,
+ 0x03, 0x7a, 0x0d, 0x2f, 0xe1, 0x79, 0x04, 0xc9, 0xb4, 0x96, 0x77, 0x19,
+ 0x81, 0x01, 0x94, 0x59, 0xf9, 0xbc, 0xf7, 0x7a, 0x99, 0x27, 0x82, 0x2d,
+ 0xb7, 0x83, 0xdd, 0x5a, 0x27, 0x7f, 0xb2, 0x03, 0x7a, 0x9c, 0x53, 0x25,
+ 0xe9, 0x48, 0x1f, 0x46, 0x4f, 0xc8, 0x9d, 0x29, 0xf8, 0xbe, 0x79, 0x56,
+ 0xf6, 0xf7, 0xfd, 0xd9, 0x3a, 0x68, 0xda, 0x8b, 0x4b, 0x82, 0x33, 0x41,
+ 0x12, 0xc3, 0xc8, 0x3c, 0xcc, 0xd6, 0x96, 0x7a, 0x84, 0x21, 0x1a, 0x22,
+ 0x04, 0x03, 0x27, 0x17, 0x8b, 0x1c, 0x68, 0x61, 0x93, 0x0f, 0x0e, 0x51,
+ 0x80, 0x33, 0x1d, 0xb4, 0xb5, 0xce, 0xeb, 0x7e, 0xd0, 0x62, 0xac, 0xee,
+ 0xb3, 0x7b, 0x01, 0x74, 0xef, 0x69, 0x35, 0xeb, 0xca, 0xd5, 0x3d, 0xa9,
+ 0xee, 0x97, 0x98, 0xca, 0x8d, 0xaa, 0x44, 0x0e, 0x25, 0x99, 0x4a, 0x15,
+ 0x96, 0xa4, 0xce, 0x6d, 0x02, 0x54, 0x1f, 0x2a, 0x6a, 0x26, 0xe2, 0x06,
+ 0x3a, 0x63, 0x48, 0xac, 0xb4, 0x4c, 0xd1, 0x75, 0x93, 0x50, 0xff, 0x13,
+ 0x2f, 0xd6, 0xda, 0xe1, 0xc6, 0x18, 0xf5, 0x9f, 0xc9, 0x25, 0x5d, 0xf3,
+ 0x00, 0x3a, 0xde, 0x26, 0x4d, 0xb4, 0x29, 0x09, 0xcd, 0x0f, 0x3d, 0x23,
+ 0x6f, 0x16, 0x4a, 0x81, 0x16, 0xfb, 0xf2, 0x83, 0x10, 0xc3, 0xb8, 0xd6,
+ 0xd8, 0x55, 0x32, 0x3d, 0xf1, 0xbd, 0x0f, 0xbd, 0x8c, 0x52, 0x95, 0x4a,
+ 0x16, 0x97, 0x7a, 0x52, 0x21, 0x63, 0x75, 0x2f, 0x16, 0xf9, 0xc4, 0x66,
+ 0xbe, 0xf5, 0xb5, 0x09, 0xd8, 0xff, 0x27, 0x00, 0xcd, 0x44, 0x7c, 0x6f,
+ 0x4b, 0x3f, 0xb0, 0xf7, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
+ 0x63, 0x30, 0x82, 0x01, 0x5f, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+ 0x00, 0x30, 0x30, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x29, 0x30, 0x27,
+ 0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21, 0x86, 0x1f, 0x68, 0x74, 0x74, 0x70,
+ 0x3a, 0x2f, 0x2f, 0x73, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2f, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x23, 0x30, 0x21, 0x30,
+ 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86,
+ 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x32, 0x2e, 0x73,
+ 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x6b, 0x06, 0x03,
+ 0x55, 0x1d, 0x20, 0x04, 0x64, 0x30, 0x62, 0x30, 0x60, 0x06, 0x0a, 0x60,
+ 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30, 0x52, 0x30,
+ 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16,
+ 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+ 0x73, 0x79, 0x6d, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x63, 0x70, 0x73, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x02, 0x30, 0x1c, 0x1a, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x79, 0x6d, 0x61, 0x75, 0x74,
+ 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x70, 0x61, 0x30, 0x29, 0x06,
+ 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c,
+ 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53,
+ 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31,
+ 0x2d, 0x35, 0x33, 0x34, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+ 0x16, 0x04, 0x14, 0x5f, 0x60, 0xcf, 0x61, 0x90, 0x55, 0xdf, 0x84, 0x43,
+ 0x14, 0x8a, 0x60, 0x2a, 0xb2, 0xf5, 0x7a, 0xf4, 0x43, 0x18, 0xef, 0x30,
+ 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+ 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+ 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x01, 0x00, 0x5e, 0x94, 0x56, 0x49, 0xdd, 0x8e, 0x2d, 0x65,
+ 0xf5, 0xc1, 0x36, 0x51, 0xb6, 0x03, 0xe3, 0xda, 0x9e, 0x73, 0x19, 0xf2,
+ 0x1f, 0x59, 0xab, 0x58, 0x7e, 0x6c, 0x26, 0x05, 0x2c, 0xfa, 0x81, 0xd7,
+ 0x5c, 0x23, 0x17, 0x22, 0x2c, 0x37, 0x93, 0xf7, 0x86, 0xec, 0x85, 0xe6,
+ 0xb0, 0xa3, 0xfd, 0x1f, 0xe2, 0x32, 0xa8, 0x45, 0x6f, 0xe1, 0xd9, 0xfb,
+ 0xb9, 0xaf, 0xd2, 0x70, 0xa0, 0x32, 0x42, 0x65, 0xbf, 0x84, 0xfe, 0x16,
+ 0x2a, 0x8f, 0x3f, 0xc5, 0xa6, 0xd6, 0xa3, 0x93, 0x7d, 0x43, 0xe9, 0x74,
+ 0x21, 0x91, 0x35, 0x28, 0xf4, 0x63, 0xe9, 0x2e, 0xed, 0xf7, 0xf5, 0x5c,
+ 0x7f, 0x4b, 0x9a, 0xb5, 0x20, 0xe9, 0x0a, 0xbd, 0xe0, 0x45, 0x10, 0x0c,
+ 0x14, 0x94, 0x9a, 0x5d, 0xa5, 0xe3, 0x4b, 0x91, 0xe8, 0x24, 0x9b, 0x46,
+ 0x40, 0x65, 0xf4, 0x22, 0x72, 0xcd, 0x99, 0xf8, 0x88, 0x11, 0xf5, 0xf3,
+ 0x7f, 0xe6, 0x33, 0x82, 0xe6, 0xa8, 0xc5, 0x7e, 0xfe, 0xd0, 0x08, 0xe2,
+ 0x25, 0x58, 0x08, 0x71, 0x68, 0xe6, 0xcd, 0xa2, 0xe6, 0x14, 0xde, 0x4e,
+ 0x52, 0x24, 0x2d, 0xfd, 0xe5, 0x79, 0x13, 0x53, 0xe7, 0x5e, 0x2f, 0x2d,
+ 0x4d, 0x1b, 0x6d, 0x40, 0x15, 0x52, 0x2b, 0xf7, 0x87, 0x89, 0x78, 0x12,
+ 0x81, 0x6e, 0xd9, 0x4d, 0xaa, 0x2d, 0x78, 0xd4, 0xc2, 0x2c, 0x3d, 0x08,
+ 0x5f, 0x87, 0x91, 0x9e, 0x1f, 0x0e, 0xb0, 0xde, 0x30, 0x52, 0x64, 0x86,
+ 0x89, 0xaa, 0x9d, 0x66, 0x9c, 0x0e, 0x76, 0x0c, 0x80, 0xf2, 0x74, 0xd8,
+ 0x2a, 0xf8, 0xb8, 0x3a, 0xce, 0xd7, 0xd6, 0x0f, 0x11, 0xbe, 0x6b, 0xab,
+ 0x14, 0xf5, 0xbd, 0x41, 0xa0, 0x22, 0x63, 0x89, 0xf1, 0xba, 0x0f, 0x6f,
+ 0x29, 0x63, 0x66, 0x2d, 0x3f, 0xac, 0x8c, 0x72, 0xc5, 0xfb, 0xc7, 0xe4,
+ 0xd4, 0x0f, 0xf2, 0x3b, 0x4f, 0x8c, 0x29, 0xc7,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 69:87:94:19:d9:e3:62:70:74:9d:bb:e5:9d:c6:68:5e
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2008 VeriSign, Inc. - For authorized use only, CN=VeriSign Universal Root Certification Authority
+ Validity
+ Not Before: Apr 9 00:00:00 2013 GMT
+ Not After : Apr 8 23:59:59 2023 GMT
+ Subject: C=US, O=Symantec Corporation, OU=Symantec Trust Network, CN=Symantec Class 3 Secure Server SHA256 SSL CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:be:38:16:51:8b:80:db:ea:0e:4d:ec:e8:3f:5c:
+ c4:7c:a2:5d:ed:3b:af:a5:d6:9e:10:35:2c:e3:c5:
+ e5:a8:de:8c:86:17:26:e6:de:0b:51:4a:2c:d0:fb:
+ d1:14:5a:72:f7:c9:dd:b8:83:1c:c6:46:8c:31:25:
+ 91:0e:59:17:a3:d0:13:8c:92:c1:af:81:54:4e:bc:
+ 62:02:9e:aa:a7:1a:57:d8:ca:a6:99:7a:70:56:4f:
+ 98:07:2e:4b:96:d0:4c:39:53:b9:61:2f:3b:76:7c:
+ 8e:05:9e:99:44:d1:03:54:77:29:2b:56:2a:aa:61:
+ e4:84:2f:12:15:3c:bd:d7:8a:e8:09:1e:56:f1:b5:
+ 14:ac:8a:84:ce:ae:78:a2:60:0a:53:7e:13:4c:1a:
+ 40:70:0e:52:59:ff:5a:68:2e:4c:46:13:3b:39:09:
+ 82:78:02:35:49:20:08:82:b3:b1:6c:89:0f:6e:1e:
+ 35:25:b0:2c:24:83:e3:c5:50:2c:ba:46:90:45:87:
+ 0d:72:ff:5d:11:38:c5:91:76:c5:2c:fb:05:2a:82:
+ 95:a1:59:63:e3:d0:26:58:cd:67:56:3a:ba:df:7c:
+ d2:d2:3b:d8:de:1a:7a:77:e4:0c:8c:0b:eb:2b:c2:
+ 22:b0:bd:55:ba:d9:b9:55:d1:22:7a:c6:02:4e:3f:
+ c3:35
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.ws.symantec.com/universal-root.crl
+
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ Authority Information Access:
+ OCSP - URI:http://ocsp.ws.symantec.com
+
+ X509v3 Certificate Policies:
+ Policy: 2.16.840.1.113733.1.7.54
+ CPS: http://www.symauth.com/cps
+ User Notice:
+ Explicit Text: http://www.symauth.com/rpa
+
+ X509v3 Subject Alternative Name:
+ DirName:/CN=VeriSignMPKI-2-373
+ X509v3 Subject Key Identifier:
+ DB:62:20:FB:7D:02:89:7C:D2:3B:6F:C7:E4:32:6C:05:52:1D:AD:B1
+ X509v3 Authority Key Identifier:
+ keyid:B6:77:FA:69:48:47:9F:53:12:D5:C2:EA:07:32:76:07:D1:97:07:19
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 19:cc:95:e2:2f:7b:49:d0:48:90:53:f4:07:b1:20:44:35:70:
+ 14:d5:44:37:31:ef:ef:70:d1:2d:4c:e9:2d:b0:53:91:01:4c:
+ 54:e7:7d:9b:da:3a:ff:b7:cb:14:ad:30:0f:69:1a:2a:f0:bc:
+ cd:35:eb:48:dc:b9:87:fd:cf:b1:5a:f6:05:da:3c:64:e6:2b:
+ e6:dc:73:5e:9a:d8:0c:9b:d2:97:b3:e8:fa:87:95:53:e1:99:
+ ad:88:e8:fa:bc:09:4d:a2:c4:6a:1b:28:3b:2d:c3:21:15:ee:
+ 14:fa:9d:98:10:eb:9f:3e:e6:24:24:5f:7a:1c:05:bb:9a:31:
+ 23:58:79:4c:ec:6d:18:19:4d:51:1f:08:61:bd:91:05:0c:5a:
+ 9c:26:fc:0b:a5:20:25:bf:6a:1b:2b:f7:02:09:72:69:83:32:
+ 14:c3:60:5b:7e:fd:9a:32:fa:b4:95:0e:1a:f9:3b:09:a4:54:
+ 47:9a:0c:ce:32:af:d1:21:cc:7f:d2:06:ef:60:0e:62:6f:6f:
+ 81:1a:17:9d:c8:cb:28:cc:e2:5f:6e:2c:7a:b4:cb:47:7c:74:
+ 68:7b:48:71:02:9c:23:09:f3:5a:ae:5f:42:2e:5f:2b:59:2d:
+ 52:88:e5:8d:0b:b3:a8:61:f9:4b:9b:55:d6:da:b1:92:3b:bf:
+ c3:9b:f9:2c
+-----BEGIN CERTIFICATE-----
+MIIFSTCCBDGgAwIBAgIQaYeUGdnjYnB0nbvlncZoXjANBgkqhkiG9w0BAQsFADCB
+vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
+ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
+Fw0xMzA0MDkwMDAwMDBaFw0yMzA0MDgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEd
+MBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVj
+IFRydXN0IE5ldHdvcmsxNTAzBgNVBAMTLFN5bWFudGVjIENsYXNzIDMgU2VjdXJl
+IFNlcnZlciBTSEEyNTYgU1NMIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAvjgWUYuA2+oOTezoP1zEfKJd7TuvpdaeEDUs48XlqN6Mhhcm5t4LUUos
+0PvRFFpy98nduIMcxkaMMSWRDlkXo9ATjJLBr4FUTrxiAp6qpxpX2MqmmXpwVk+Y
+By5LltBMOVO5YS87dnyOBZ6ZRNEDVHcpK1YqqmHkhC8SFTy914roCR5W8bUUrIqE
+zq54omAKU34TTBpAcA5SWf9aaC5MRhM7OQmCeAI1SSAIgrOxbIkPbh41JbAsJIPj
+xVAsukaQRYcNcv9dETjFkXbFLPsFKoKVoVlj49AmWM1nVjq633zS0jvY3hp6d+QM
+jAvrK8IisL1Vutm5VdEiesYCTj/DNQIDAQABo4IBejCCAXYwEgYDVR0TAQH/BAgw
+BgEB/wIBADA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vY3JsLndzLnN5bWFudGVj
+LmNvbS91bml2ZXJzYWwtcm9vdC5jcmwwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUF
+BwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3Aud3Muc3ltYW50ZWMuY29t
+MGsGA1UdIARkMGIwYAYKYIZIAYb4RQEHNjBSMCYGCCsGAQUFBwIBFhpodHRwOi8v
+d3d3LnN5bWF1dGguY29tL2NwczAoBggrBgEFBQcCAjAcGhpodHRwOi8vd3d3LnN5
+bWF1dGguY29tL3JwYTAqBgNVHREEIzAhpB8wHTEbMBkGA1UEAxMSVmVyaVNpZ25N
+UEtJLTItMzczMB0GA1UdDgQWBBTbYiD7fQKJfNI7b8fkMmwFUh2tsTAfBgNVHSME
+GDAWgBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEAGcyV
+4i97SdBIkFP0B7EgRDVwFNVENzHv73DRLUzpLbBTkQFMVOd9m9o6/7fLFK0wD2ka
+KvC8zTXrSNy5h/3PsVr2Bdo8ZOYr5txzXprYDJvSl7Po+oeVU+GZrYjo+rwJTaLE
+ahsoOy3DIRXuFPqdmBDrnz7mJCRfehwFu5oxI1h5TOxtGBlNUR8IYb2RBQxanCb8
+C6UgJb9qGyv3AglyaYMyFMNgW379mjL6tJUOGvk7CaRUR5oMzjKv0SHMf9IG72AO
+Ym9vgRoXncjLKMziX24serTLR3x0aHtIcQKcIwnzWq5fQi5fK1ktUojljQuzqGH5
+S5tV1tqxkju/w5v5LA==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert46[] = {
+ 0x30, 0x82, 0x05, 0x49, 0x30, 0x82, 0x04, 0x31, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x69, 0x87, 0x94, 0x19, 0xd9, 0xe3, 0x62, 0x70, 0x74,
+ 0x9d, 0xbb, 0xe5, 0x9d, 0xc6, 0x68, 0x5e, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+ 0xbd, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+ 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x38, 0x20, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+ 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+ 0x31, 0x38, 0x30, 0x36, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2f, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x55, 0x6e, 0x69, 0x76,
+ 0x65, 0x72, 0x73, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43,
+ 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e,
+ 0x17, 0x0d, 0x31, 0x33, 0x30, 0x34, 0x30, 0x39, 0x30, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x34, 0x30, 0x38, 0x32,
+ 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0x84, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1d,
+ 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x53, 0x79, 0x6d,
+ 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x16, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63,
+ 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x31, 0x35, 0x30, 0x33, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+ 0x2c, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6c,
+ 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65,
+ 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x53, 0x48, 0x41, 0x32,
+ 0x35, 0x36, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01,
+ 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+ 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbe, 0x38, 0x16, 0x51, 0x8b, 0x80,
+ 0xdb, 0xea, 0x0e, 0x4d, 0xec, 0xe8, 0x3f, 0x5c, 0xc4, 0x7c, 0xa2, 0x5d,
+ 0xed, 0x3b, 0xaf, 0xa5, 0xd6, 0x9e, 0x10, 0x35, 0x2c, 0xe3, 0xc5, 0xe5,
+ 0xa8, 0xde, 0x8c, 0x86, 0x17, 0x26, 0xe6, 0xde, 0x0b, 0x51, 0x4a, 0x2c,
+ 0xd0, 0xfb, 0xd1, 0x14, 0x5a, 0x72, 0xf7, 0xc9, 0xdd, 0xb8, 0x83, 0x1c,
+ 0xc6, 0x46, 0x8c, 0x31, 0x25, 0x91, 0x0e, 0x59, 0x17, 0xa3, 0xd0, 0x13,
+ 0x8c, 0x92, 0xc1, 0xaf, 0x81, 0x54, 0x4e, 0xbc, 0x62, 0x02, 0x9e, 0xaa,
+ 0xa7, 0x1a, 0x57, 0xd8, 0xca, 0xa6, 0x99, 0x7a, 0x70, 0x56, 0x4f, 0x98,
+ 0x07, 0x2e, 0x4b, 0x96, 0xd0, 0x4c, 0x39, 0x53, 0xb9, 0x61, 0x2f, 0x3b,
+ 0x76, 0x7c, 0x8e, 0x05, 0x9e, 0x99, 0x44, 0xd1, 0x03, 0x54, 0x77, 0x29,
+ 0x2b, 0x56, 0x2a, 0xaa, 0x61, 0xe4, 0x84, 0x2f, 0x12, 0x15, 0x3c, 0xbd,
+ 0xd7, 0x8a, 0xe8, 0x09, 0x1e, 0x56, 0xf1, 0xb5, 0x14, 0xac, 0x8a, 0x84,
+ 0xce, 0xae, 0x78, 0xa2, 0x60, 0x0a, 0x53, 0x7e, 0x13, 0x4c, 0x1a, 0x40,
+ 0x70, 0x0e, 0x52, 0x59, 0xff, 0x5a, 0x68, 0x2e, 0x4c, 0x46, 0x13, 0x3b,
+ 0x39, 0x09, 0x82, 0x78, 0x02, 0x35, 0x49, 0x20, 0x08, 0x82, 0xb3, 0xb1,
+ 0x6c, 0x89, 0x0f, 0x6e, 0x1e, 0x35, 0x25, 0xb0, 0x2c, 0x24, 0x83, 0xe3,
+ 0xc5, 0x50, 0x2c, 0xba, 0x46, 0x90, 0x45, 0x87, 0x0d, 0x72, 0xff, 0x5d,
+ 0x11, 0x38, 0xc5, 0x91, 0x76, 0xc5, 0x2c, 0xfb, 0x05, 0x2a, 0x82, 0x95,
+ 0xa1, 0x59, 0x63, 0xe3, 0xd0, 0x26, 0x58, 0xcd, 0x67, 0x56, 0x3a, 0xba,
+ 0xdf, 0x7c, 0xd2, 0xd2, 0x3b, 0xd8, 0xde, 0x1a, 0x7a, 0x77, 0xe4, 0x0c,
+ 0x8c, 0x0b, 0xeb, 0x2b, 0xc2, 0x22, 0xb0, 0xbd, 0x55, 0xba, 0xd9, 0xb9,
+ 0x55, 0xd1, 0x22, 0x7a, 0xc6, 0x02, 0x4e, 0x3f, 0xc3, 0x35, 0x02, 0x03,
+ 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x7a, 0x30, 0x82, 0x01, 0x76, 0x30,
+ 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30,
+ 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x3e, 0x06, 0x03, 0x55,
+ 0x1d, 0x1f, 0x04, 0x37, 0x30, 0x35, 0x30, 0x33, 0xa0, 0x31, 0xa0, 0x2f,
+ 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c,
+ 0x2e, 0x77, 0x73, 0x2e, 0x73, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73,
+ 0x61, 0x6c, 0x2d, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+ 0x02, 0x01, 0x06, 0x30, 0x37, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x01, 0x01, 0x04, 0x2b, 0x30, 0x29, 0x30, 0x27, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1b, 0x68, 0x74, 0x74,
+ 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x77, 0x73, 0x2e,
+ 0x73, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x30, 0x6b, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x64, 0x30, 0x62, 0x30,
+ 0x60, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07,
+ 0x36, 0x30, 0x52, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+ 0x77, 0x77, 0x77, 0x2e, 0x73, 0x79, 0x6d, 0x61, 0x75, 0x74, 0x68, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x28, 0x06, 0x08, 0x2b,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 0x1c, 0x1a, 0x1a, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x79,
+ 0x6d, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x70,
+ 0x61, 0x30, 0x2a, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x23, 0x30, 0x21,
+ 0xa4, 0x1f, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x12, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d,
+ 0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x33, 0x37, 0x33, 0x30, 0x1d, 0x06,
+ 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xdb, 0x62, 0x20, 0xfb,
+ 0x7d, 0x02, 0x89, 0x7c, 0xd2, 0x3b, 0x6f, 0xc7, 0xe4, 0x32, 0x6c, 0x05,
+ 0x52, 0x1d, 0xad, 0xb1, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+ 0x18, 0x30, 0x16, 0x80, 0x14, 0xb6, 0x77, 0xfa, 0x69, 0x48, 0x47, 0x9f,
+ 0x53, 0x12, 0xd5, 0xc2, 0xea, 0x07, 0x32, 0x76, 0x07, 0xd1, 0x97, 0x07,
+ 0x19, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x19, 0xcc, 0x95,
+ 0xe2, 0x2f, 0x7b, 0x49, 0xd0, 0x48, 0x90, 0x53, 0xf4, 0x07, 0xb1, 0x20,
+ 0x44, 0x35, 0x70, 0x14, 0xd5, 0x44, 0x37, 0x31, 0xef, 0xef, 0x70, 0xd1,
+ 0x2d, 0x4c, 0xe9, 0x2d, 0xb0, 0x53, 0x91, 0x01, 0x4c, 0x54, 0xe7, 0x7d,
+ 0x9b, 0xda, 0x3a, 0xff, 0xb7, 0xcb, 0x14, 0xad, 0x30, 0x0f, 0x69, 0x1a,
+ 0x2a, 0xf0, 0xbc, 0xcd, 0x35, 0xeb, 0x48, 0xdc, 0xb9, 0x87, 0xfd, 0xcf,
+ 0xb1, 0x5a, 0xf6, 0x05, 0xda, 0x3c, 0x64, 0xe6, 0x2b, 0xe6, 0xdc, 0x73,
+ 0x5e, 0x9a, 0xd8, 0x0c, 0x9b, 0xd2, 0x97, 0xb3, 0xe8, 0xfa, 0x87, 0x95,
+ 0x53, 0xe1, 0x99, 0xad, 0x88, 0xe8, 0xfa, 0xbc, 0x09, 0x4d, 0xa2, 0xc4,
+ 0x6a, 0x1b, 0x28, 0x3b, 0x2d, 0xc3, 0x21, 0x15, 0xee, 0x14, 0xfa, 0x9d,
+ 0x98, 0x10, 0xeb, 0x9f, 0x3e, 0xe6, 0x24, 0x24, 0x5f, 0x7a, 0x1c, 0x05,
+ 0xbb, 0x9a, 0x31, 0x23, 0x58, 0x79, 0x4c, 0xec, 0x6d, 0x18, 0x19, 0x4d,
+ 0x51, 0x1f, 0x08, 0x61, 0xbd, 0x91, 0x05, 0x0c, 0x5a, 0x9c, 0x26, 0xfc,
+ 0x0b, 0xa5, 0x20, 0x25, 0xbf, 0x6a, 0x1b, 0x2b, 0xf7, 0x02, 0x09, 0x72,
+ 0x69, 0x83, 0x32, 0x14, 0xc3, 0x60, 0x5b, 0x7e, 0xfd, 0x9a, 0x32, 0xfa,
+ 0xb4, 0x95, 0x0e, 0x1a, 0xf9, 0x3b, 0x09, 0xa4, 0x54, 0x47, 0x9a, 0x0c,
+ 0xce, 0x32, 0xaf, 0xd1, 0x21, 0xcc, 0x7f, 0xd2, 0x06, 0xef, 0x60, 0x0e,
+ 0x62, 0x6f, 0x6f, 0x81, 0x1a, 0x17, 0x9d, 0xc8, 0xcb, 0x28, 0xcc, 0xe2,
+ 0x5f, 0x6e, 0x2c, 0x7a, 0xb4, 0xcb, 0x47, 0x7c, 0x74, 0x68, 0x7b, 0x48,
+ 0x71, 0x02, 0x9c, 0x23, 0x09, 0xf3, 0x5a, 0xae, 0x5f, 0x42, 0x2e, 0x5f,
+ 0x2b, 0x59, 0x2d, 0x52, 0x88, 0xe5, 0x8d, 0x0b, 0xb3, 0xa8, 0x61, 0xf9,
+ 0x4b, 0x9b, 0x55, 0xd6, 0xda, 0xb1, 0x92, 0x3b, 0xbf, 0xc3, 0x9b, 0xf9,
+ 0x2c,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 120036009 (0x7279aa9)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+ Validity
+ Not Before: Dec 19 20:07:32 2013 GMT
+ Not After : Dec 19 20:06:55 2017 GMT
+ Subject: C=US, ST=Washington, L=Redmond, O=Microsoft Corporation, OU=Microsoft IT, CN=Microsoft IT SSL SHA2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (4096 bit)
+ Modulus:
+ 00:d1:e8:37:a7:76:8a:70:4b:19:f0:20:37:09:24:
+ 37:7f:ea:fb:78:e6:05:ba:6a:ad:4e:27:0d:fc:72:
+ 6a:d9:6c:21:c4:64:11:95:73:10:0a:5c:25:7b:88:
+ 6c:94:04:fd:c7:db:ae:7b:dc:4a:08:b3:3e:16:f1:
+ d0:ad:db:30:6d:d7:1a:1e:52:b5:3d:f0:47:19:03:
+ e2:7d:a6:bd:57:13:3f:54:ea:3a:a3:b1:77:fc:42:
+ f0:63:49:6a:91:80:2e:30:49:c0:8a:eb:2b:af:fe:
+ 3a:eb:07:5d:06:f7:e9:fd:84:0e:91:bd:09:20:29:
+ e8:6e:5d:09:ce:15:d3:e7:ef:db:50:eb:44:ef:18:
+ 57:ab:04:1d:bc:31:f9:f7:7b:2a:13:cf:d1:3d:51:
+ af:1b:c5:b5:7b:e7:b0:fc:53:bb:9a:e7:63:de:41:
+ 33:b6:47:24:69:5d:b8:46:a7:ff:ad:ab:df:4f:7a:
+ 78:25:27:21:26:34:ca:02:6e:37:51:f0:ed:58:1a:
+ 60:94:f6:c4:93:d8:dd:30:24:25:d7:1c:eb:19:94:
+ 35:5d:93:b2:ae:aa:29:83:73:c4:74:59:05:52:67:
+ 9d:da:67:51:39:05:3a:36:ea:f2:1e:76:2b:14:ae:
+ ec:3d:f9:14:99:8b:07:6e:bc:e7:0c:56:de:ac:be:
+ ae:db:75:32:90:9e:63:bd:74:bf:e0:0a:ca:f8:34:
+ 96:67:84:cd:d1:42:38:78:c7:99:b6:0c:ce:b6:0f:
+ e9:1b:cb:f4:59:be:11:0e:cb:2c:32:c8:fa:83:29:
+ 64:79:3c:8b:4b:f0:32:74:6c:f3:93:b8:96:6b:5d:
+ 57:5a:68:c1:cc:0c:79:8a:19:de:f5:49:02:5e:08:
+ 80:01:89:0c:32:cd:d2:d6:96:d5:4b:a0:f3:ec:bf:
+ ab:f4:7d:b3:a1:b9:7c:da:4e:d7:e5:b7:ac:b9:f2:
+ 25:5f:01:cb:8c:96:a8:28:ae:c1:33:5a:f6:3f:08:
+ 90:dc:eb:ff:39:d8:26:c8:12:9d:1c:9a:aa:a9:c0:
+ 16:8e:86:ed:67:52:96:00:7f:0d:92:3d:3d:d9:70:
+ 36:e5:ea:42:6f:1f:ae:95:e5:5b:5d:f8:d0:3a:c7:
+ d4:de:77:86:d0:fc:9e:4e:e2:e2:b8:a9:68:37:09:
+ c4:39:e3:85:b8:89:f3:1f:6e:b7:6d:1f:4a:2f:18:
+ 09:6f:de:4a:01:8f:14:c9:b7:a6:ee:a7:63:9f:33:
+ a4:54:7c:42:83:68:b8:a5:df:bf:ec:b9:1a:5d:13:
+ 3b:d9:ad:68:fd:20:0a:55:91:21:64:f9:d7:13:01:
+ a0:08:5d:59:89:1b:44:af:a4:ac:c7:05:10:fa:41:
+ 4a:a8:fb
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.6334.1.0
+ CPS: http://cybertrust.omniroot.com/repository.cfm
+
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication
+ X509v3 Authority Key Identifier:
+ keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+ X509v3 Subject Key Identifier:
+ 51:AF:24:26:9C:F4:68:22:57:80:26:2B:3B:46:62:15:7B:1E:CC:A5
+ Signature Algorithm: sha256WithRSAEncryption
+ 76:85:c5:23:31:1f:b4:73:ea:a0:bc:a5:ed:df:45:43:6a:7f:
+ 69:20:1b:80:b2:fb:1c:dd:aa:7f:88:d3:31:41:36:f7:fb:fb:
+ 6b:ad:98:8c:78:1f:9d:11:67:3a:cd:4b:ec:a8:bc:9d:15:19:
+ c4:3b:0b:a7:93:ce:e8:fc:9d:5b:e8:1f:cb:56:ae:76:43:2b:
+ c7:13:51:77:41:a8:66:4c:5f:a7:d1:d7:aa:75:c5:1b:29:4c:
+ c9:f4:6d:a1:5e:a1:85:93:16:c2:cb:3b:ab:14:7d:44:fd:da:
+ 25:29:86:2a:fe:63:20:ca:d2:0b:c2:34:15:bb:af:5b:7f:8a:
+ e0:aa:ed:45:a6:ea:79:db:d8:35:66:54:43:de:37:33:d1:e4:
+ e0:cd:57:ca:71:b0:7d:e9:16:77:64:e8:59:97:b9:d5:2e:d1:
+ b4:91:da:77:71:f3:4a:0f:48:d2:34:99:60:95:37:ac:1f:01:
+ cd:10:9d:e8:2a:a5:20:c7:50:9b:b3:6c:49:78:2b:58:92:64:
+ 89:b8:95:36:a8:34:aa:f0:41:d2:95:5a:24:54:97:4d:6e:05:
+ c4:95:ad:c4:7a:a3:39:fb:79:06:8a:9b:a6:4f:d9:22:fa:44:
+ 4e:36:f3:c9:0f:a6:39:e7:80:b2:5e:bf:bd:39:d1:46:e5:55:
+ 47:db:bc:6e
+-----BEGIN CERTIFICATE-----
+MIIFhjCCBG6gAwIBAgIEByeaqTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTEzMTIxOTIwMDczMloX
+DTE3MTIxOTIwMDY1NVowgYsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
+dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
+YXRpb24xFTATBgNVBAsTDE1pY3Jvc29mdCBJVDEeMBwGA1UEAxMVTWljcm9zb2Z0
+IElUIFNTTCBTSEEyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0eg3
+p3aKcEsZ8CA3CSQ3f+r7eOYFumqtTicN/HJq2WwhxGQRlXMQClwle4hslAT9x9uu
+e9xKCLM+FvHQrdswbdcaHlK1PfBHGQPifaa9VxM/VOo6o7F3/ELwY0lqkYAuMEnA
+iusrr/466wddBvfp/YQOkb0JICnobl0JzhXT5+/bUOtE7xhXqwQdvDH593sqE8/R
+PVGvG8W1e+ew/FO7mudj3kEztkckaV24Rqf/ravfT3p4JSchJjTKAm43UfDtWBpg
+lPbEk9jdMCQl1xzrGZQ1XZOyrqopg3PEdFkFUmed2mdROQU6NuryHnYrFK7sPfkU
+mYsHbrznDFberL6u23UykJ5jvXS/4ArK+DSWZ4TN0UI4eMeZtgzOtg/pG8v0Wb4R
+DsssMsj6gylkeTyLS/AydGzzk7iWa11XWmjBzAx5ihne9UkCXgiAAYkMMs3S1pbV
+S6Dz7L+r9H2zobl82k7X5besufIlXwHLjJaoKK7BM1r2PwiQ3Ov/OdgmyBKdHJqq
+qcAWjobtZ1KWAH8Nkj092XA25epCbx+uleVbXfjQOsfU3neG0PyeTuLiuKloNwnE
+OeOFuInzH263bR9KLxgJb95KAY8Uybem7qdjnzOkVHxCg2i4pd+/7LkaXRM72a1o
+/SAKVZEhZPnXEwGgCF1ZiRtEr6SsxwUQ+kFKqPsCAwEAAaOCASAwggEcMBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwUwYDVR0gBEwwSjBIBgkrBgEEAbE+AQAwOzA5BggrBgEF
+BQcCARYtaHR0cDovL2N5YmVydHJ1c3Qub21uaXJvb3QuY29tL3JlcG9zaXRvcnku
+Y2ZtMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH
+AwIwHwYDVR0jBBgwFoAU5Z1ZMIJHWMys+ghUNoZ7OrUETfAwQgYDVR0fBDswOTA3
+oDWgM4YxaHR0cDovL2NkcDEucHVibGljLXRydXN0LmNvbS9DUkwvT21uaXJvb3Qy
+MDI1LmNybDAdBgNVHQ4EFgQUUa8kJpz0aCJXgCYrO0ZiFXsezKUwDQYJKoZIhvcN
+AQELBQADggEBAHaFxSMxH7Rz6qC8pe3fRUNqf2kgG4Cy+xzdqn+I0zFBNvf7+2ut
+mIx4H50RZzrNS+yovJ0VGcQ7C6eTzuj8nVvoH8tWrnZDK8cTUXdBqGZMX6fR16p1
+xRspTMn0baFeoYWTFsLLO6sUfUT92iUphir+YyDK0gvCNBW7r1t/iuCq7UWm6nnb
+2DVmVEPeNzPR5ODNV8pxsH3pFndk6FmXudUu0bSR2ndx80oPSNI0mWCVN6wfAc0Q
+negqpSDHUJuzbEl4K1iSZIm4lTaoNKrwQdKVWiRUl01uBcSVrcR6ozn7eQaKm6ZP
+2SL6RE4288kPpjnngLJev7050UblVUfbvG4=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert47[] = {
+ 0x30, 0x82, 0x05, 0x86, 0x30, 0x82, 0x04, 0x6e, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x07, 0x27, 0x9a, 0xa9, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+ 0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+ 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+ 0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+ 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+ 0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33,
+ 0x31, 0x32, 0x31, 0x39, 0x32, 0x30, 0x30, 0x37, 0x33, 0x32, 0x5a, 0x17,
+ 0x0d, 0x31, 0x37, 0x31, 0x32, 0x31, 0x39, 0x32, 0x30, 0x30, 0x36, 0x35,
+ 0x35, 0x5a, 0x30, 0x81, 0x8b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
+ 0x55, 0x04, 0x08, 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67,
+ 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07,
+ 0x13, 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30,
+ 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72,
+ 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x0c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66,
+ 0x74, 0x20, 0x49, 0x54, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
+ 0x20, 0x49, 0x54, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32,
+ 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00,
+ 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xd1, 0xe8, 0x37,
+ 0xa7, 0x76, 0x8a, 0x70, 0x4b, 0x19, 0xf0, 0x20, 0x37, 0x09, 0x24, 0x37,
+ 0x7f, 0xea, 0xfb, 0x78, 0xe6, 0x05, 0xba, 0x6a, 0xad, 0x4e, 0x27, 0x0d,
+ 0xfc, 0x72, 0x6a, 0xd9, 0x6c, 0x21, 0xc4, 0x64, 0x11, 0x95, 0x73, 0x10,
+ 0x0a, 0x5c, 0x25, 0x7b, 0x88, 0x6c, 0x94, 0x04, 0xfd, 0xc7, 0xdb, 0xae,
+ 0x7b, 0xdc, 0x4a, 0x08, 0xb3, 0x3e, 0x16, 0xf1, 0xd0, 0xad, 0xdb, 0x30,
+ 0x6d, 0xd7, 0x1a, 0x1e, 0x52, 0xb5, 0x3d, 0xf0, 0x47, 0x19, 0x03, 0xe2,
+ 0x7d, 0xa6, 0xbd, 0x57, 0x13, 0x3f, 0x54, 0xea, 0x3a, 0xa3, 0xb1, 0x77,
+ 0xfc, 0x42, 0xf0, 0x63, 0x49, 0x6a, 0x91, 0x80, 0x2e, 0x30, 0x49, 0xc0,
+ 0x8a, 0xeb, 0x2b, 0xaf, 0xfe, 0x3a, 0xeb, 0x07, 0x5d, 0x06, 0xf7, 0xe9,
+ 0xfd, 0x84, 0x0e, 0x91, 0xbd, 0x09, 0x20, 0x29, 0xe8, 0x6e, 0x5d, 0x09,
+ 0xce, 0x15, 0xd3, 0xe7, 0xef, 0xdb, 0x50, 0xeb, 0x44, 0xef, 0x18, 0x57,
+ 0xab, 0x04, 0x1d, 0xbc, 0x31, 0xf9, 0xf7, 0x7b, 0x2a, 0x13, 0xcf, 0xd1,
+ 0x3d, 0x51, 0xaf, 0x1b, 0xc5, 0xb5, 0x7b, 0xe7, 0xb0, 0xfc, 0x53, 0xbb,
+ 0x9a, 0xe7, 0x63, 0xde, 0x41, 0x33, 0xb6, 0x47, 0x24, 0x69, 0x5d, 0xb8,
+ 0x46, 0xa7, 0xff, 0xad, 0xab, 0xdf, 0x4f, 0x7a, 0x78, 0x25, 0x27, 0x21,
+ 0x26, 0x34, 0xca, 0x02, 0x6e, 0x37, 0x51, 0xf0, 0xed, 0x58, 0x1a, 0x60,
+ 0x94, 0xf6, 0xc4, 0x93, 0xd8, 0xdd, 0x30, 0x24, 0x25, 0xd7, 0x1c, 0xeb,
+ 0x19, 0x94, 0x35, 0x5d, 0x93, 0xb2, 0xae, 0xaa, 0x29, 0x83, 0x73, 0xc4,
+ 0x74, 0x59, 0x05, 0x52, 0x67, 0x9d, 0xda, 0x67, 0x51, 0x39, 0x05, 0x3a,
+ 0x36, 0xea, 0xf2, 0x1e, 0x76, 0x2b, 0x14, 0xae, 0xec, 0x3d, 0xf9, 0x14,
+ 0x99, 0x8b, 0x07, 0x6e, 0xbc, 0xe7, 0x0c, 0x56, 0xde, 0xac, 0xbe, 0xae,
+ 0xdb, 0x75, 0x32, 0x90, 0x9e, 0x63, 0xbd, 0x74, 0xbf, 0xe0, 0x0a, 0xca,
+ 0xf8, 0x34, 0x96, 0x67, 0x84, 0xcd, 0xd1, 0x42, 0x38, 0x78, 0xc7, 0x99,
+ 0xb6, 0x0c, 0xce, 0xb6, 0x0f, 0xe9, 0x1b, 0xcb, 0xf4, 0x59, 0xbe, 0x11,
+ 0x0e, 0xcb, 0x2c, 0x32, 0xc8, 0xfa, 0x83, 0x29, 0x64, 0x79, 0x3c, 0x8b,
+ 0x4b, 0xf0, 0x32, 0x74, 0x6c, 0xf3, 0x93, 0xb8, 0x96, 0x6b, 0x5d, 0x57,
+ 0x5a, 0x68, 0xc1, 0xcc, 0x0c, 0x79, 0x8a, 0x19, 0xde, 0xf5, 0x49, 0x02,
+ 0x5e, 0x08, 0x80, 0x01, 0x89, 0x0c, 0x32, 0xcd, 0xd2, 0xd6, 0x96, 0xd5,
+ 0x4b, 0xa0, 0xf3, 0xec, 0xbf, 0xab, 0xf4, 0x7d, 0xb3, 0xa1, 0xb9, 0x7c,
+ 0xda, 0x4e, 0xd7, 0xe5, 0xb7, 0xac, 0xb9, 0xf2, 0x25, 0x5f, 0x01, 0xcb,
+ 0x8c, 0x96, 0xa8, 0x28, 0xae, 0xc1, 0x33, 0x5a, 0xf6, 0x3f, 0x08, 0x90,
+ 0xdc, 0xeb, 0xff, 0x39, 0xd8, 0x26, 0xc8, 0x12, 0x9d, 0x1c, 0x9a, 0xaa,
+ 0xa9, 0xc0, 0x16, 0x8e, 0x86, 0xed, 0x67, 0x52, 0x96, 0x00, 0x7f, 0x0d,
+ 0x92, 0x3d, 0x3d, 0xd9, 0x70, 0x36, 0xe5, 0xea, 0x42, 0x6f, 0x1f, 0xae,
+ 0x95, 0xe5, 0x5b, 0x5d, 0xf8, 0xd0, 0x3a, 0xc7, 0xd4, 0xde, 0x77, 0x86,
+ 0xd0, 0xfc, 0x9e, 0x4e, 0xe2, 0xe2, 0xb8, 0xa9, 0x68, 0x37, 0x09, 0xc4,
+ 0x39, 0xe3, 0x85, 0xb8, 0x89, 0xf3, 0x1f, 0x6e, 0xb7, 0x6d, 0x1f, 0x4a,
+ 0x2f, 0x18, 0x09, 0x6f, 0xde, 0x4a, 0x01, 0x8f, 0x14, 0xc9, 0xb7, 0xa6,
+ 0xee, 0xa7, 0x63, 0x9f, 0x33, 0xa4, 0x54, 0x7c, 0x42, 0x83, 0x68, 0xb8,
+ 0xa5, 0xdf, 0xbf, 0xec, 0xb9, 0x1a, 0x5d, 0x13, 0x3b, 0xd9, 0xad, 0x68,
+ 0xfd, 0x20, 0x0a, 0x55, 0x91, 0x21, 0x64, 0xf9, 0xd7, 0x13, 0x01, 0xa0,
+ 0x08, 0x5d, 0x59, 0x89, 0x1b, 0x44, 0xaf, 0xa4, 0xac, 0xc7, 0x05, 0x10,
+ 0xfa, 0x41, 0x4a, 0xa8, 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+ 0x01, 0x20, 0x30, 0x82, 0x01, 0x1c, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+ 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+ 0x01, 0x00, 0x30, 0x53, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x4c, 0x30,
+ 0x4a, 0x30, 0x48, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e,
+ 0x01, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e,
+ 0x63, 0x66, 0x6d, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+ 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x03, 0x02, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0xe5, 0x9d, 0x59, 0x30, 0x82, 0x47, 0x58, 0xcc, 0xac,
+ 0xfa, 0x08, 0x54, 0x36, 0x86, 0x7b, 0x3a, 0xb5, 0x04, 0x4d, 0xf0, 0x30,
+ 0x42, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x3b, 0x30, 0x39, 0x30, 0x37,
+ 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x63, 0x64, 0x70, 0x31, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
+ 0x2d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43,
+ 0x52, 0x4c, 0x2f, 0x4f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x32,
+ 0x30, 0x32, 0x35, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x51, 0xaf, 0x24, 0x26, 0x9c, 0xf4,
+ 0x68, 0x22, 0x57, 0x80, 0x26, 0x2b, 0x3b, 0x46, 0x62, 0x15, 0x7b, 0x1e,
+ 0xcc, 0xa5, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x76, 0x85,
+ 0xc5, 0x23, 0x31, 0x1f, 0xb4, 0x73, 0xea, 0xa0, 0xbc, 0xa5, 0xed, 0xdf,
+ 0x45, 0x43, 0x6a, 0x7f, 0x69, 0x20, 0x1b, 0x80, 0xb2, 0xfb, 0x1c, 0xdd,
+ 0xaa, 0x7f, 0x88, 0xd3, 0x31, 0x41, 0x36, 0xf7, 0xfb, 0xfb, 0x6b, 0xad,
+ 0x98, 0x8c, 0x78, 0x1f, 0x9d, 0x11, 0x67, 0x3a, 0xcd, 0x4b, 0xec, 0xa8,
+ 0xbc, 0x9d, 0x15, 0x19, 0xc4, 0x3b, 0x0b, 0xa7, 0x93, 0xce, 0xe8, 0xfc,
+ 0x9d, 0x5b, 0xe8, 0x1f, 0xcb, 0x56, 0xae, 0x76, 0x43, 0x2b, 0xc7, 0x13,
+ 0x51, 0x77, 0x41, 0xa8, 0x66, 0x4c, 0x5f, 0xa7, 0xd1, 0xd7, 0xaa, 0x75,
+ 0xc5, 0x1b, 0x29, 0x4c, 0xc9, 0xf4, 0x6d, 0xa1, 0x5e, 0xa1, 0x85, 0x93,
+ 0x16, 0xc2, 0xcb, 0x3b, 0xab, 0x14, 0x7d, 0x44, 0xfd, 0xda, 0x25, 0x29,
+ 0x86, 0x2a, 0xfe, 0x63, 0x20, 0xca, 0xd2, 0x0b, 0xc2, 0x34, 0x15, 0xbb,
+ 0xaf, 0x5b, 0x7f, 0x8a, 0xe0, 0xaa, 0xed, 0x45, 0xa6, 0xea, 0x79, 0xdb,
+ 0xd8, 0x35, 0x66, 0x54, 0x43, 0xde, 0x37, 0x33, 0xd1, 0xe4, 0xe0, 0xcd,
+ 0x57, 0xca, 0x71, 0xb0, 0x7d, 0xe9, 0x16, 0x77, 0x64, 0xe8, 0x59, 0x97,
+ 0xb9, 0xd5, 0x2e, 0xd1, 0xb4, 0x91, 0xda, 0x77, 0x71, 0xf3, 0x4a, 0x0f,
+ 0x48, 0xd2, 0x34, 0x99, 0x60, 0x95, 0x37, 0xac, 0x1f, 0x01, 0xcd, 0x10,
+ 0x9d, 0xe8, 0x2a, 0xa5, 0x20, 0xc7, 0x50, 0x9b, 0xb3, 0x6c, 0x49, 0x78,
+ 0x2b, 0x58, 0x92, 0x64, 0x89, 0xb8, 0x95, 0x36, 0xa8, 0x34, 0xaa, 0xf0,
+ 0x41, 0xd2, 0x95, 0x5a, 0x24, 0x54, 0x97, 0x4d, 0x6e, 0x05, 0xc4, 0x95,
+ 0xad, 0xc4, 0x7a, 0xa3, 0x39, 0xfb, 0x79, 0x06, 0x8a, 0x9b, 0xa6, 0x4f,
+ 0xd9, 0x22, 0xfa, 0x44, 0x4e, 0x36, 0xf3, 0xc9, 0x0f, 0xa6, 0x39, 0xe7,
+ 0x80, 0xb2, 0x5e, 0xbf, 0xbd, 0x39, 0xd1, 0x46, 0xe5, 0x55, 0x47, 0xdb,
+ 0xbc, 0x6e,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 75:96:c2:3e:fa:89:59:45:6e:79:f7:17:ba:cf:64:f3
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=CN, O=WoSign CA Limited, CN=Certification Authority of WoSign
+ Validity
+ Not Before: Nov 8 00:58:58 2014 GMT
+ Not After : Nov 8 00:58:58 2029 GMT
+ Subject: C=CN, O=WoSign CA Limited, CN=WoSign Class 3 OV Server CA G2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:d6:74:87:af:99:c0:57:96:99:c2:89:74:3c:92:
+ 55:99:bf:1f:07:00:35:05:26:96:16:5b:03:c1:42:
+ 37:33:be:3f:0d:4f:ff:bb:94:26:91:d7:14:16:78:
+ 1b:f7:13:a2:4b:4c:e5:5c:a7:10:40:35:59:30:d1:
+ 77:99:e3:9d:29:c2:be:31:95:bd:92:61:5b:b0:23:
+ fb:67:58:d5:52:e4:7b:2f:f0:73:1c:73:94:55:ba:
+ c8:68:59:02:10:10:e4:f7:11:f0:c3:b6:d7:ae:56:
+ 80:00:9e:65:64:a6:83:91:41:e6:ed:a7:7a:65:a5:
+ 1f:30:2e:13:3c:bf:df:63:97:f3:96:f0:52:32:b4:
+ f4:7b:98:57:ed:36:4f:f7:21:4a:28:9d:dd:1c:92:
+ b3:4d:8d:9c:58:8b:17:21:d8:dc:a1:b7:ae:73:78:
+ 8a:c4:b6:e9:7f:28:8e:9a:d5:2e:9e:39:e9:da:59:
+ 74:e3:c8:97:10:32:94:19:59:d4:0f:89:57:44:e6:
+ e5:2b:17:30:62:52:98:7f:ab:0d:a5:01:ea:04:41:
+ ca:fa:13:0e:3b:87:06:ba:bd:47:31:d7:63:03:01:
+ f4:be:a1:37:11:9f:1e:01:95:4e:0f:3f:54:1e:92:
+ a6:9f:30:8c:fe:98:e8:56:96:66:04:e1:35:fe:59:
+ ac:57
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Client Authentication, TLS Web Server Authentication
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crls1.wosign.com/ca1.crl
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp1.wosign.com/ca1
+ CA Issuers - URI:http://aia1.wosign.com/ca1g2-server3.cer
+
+ X509v3 Subject Key Identifier:
+ F9:8B:EC:04:38:6A:3F:AA:06:C6:94:AD:73:95:2A:B0:C8:E6:B8:FB
+ X509v3 Authority Key Identifier:
+ keyid:E1:66:CF:0E:D1:F1:B3:4B:B7:06:20:14:FE:87:12:D5:F6:FE:FB:3E
+
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.36305.6.3.2.1
+ CPS: http://www.wosign.com/policy/
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 5e:67:ba:78:32:05:b6:b7:af:e7:de:6a:7a:82:64:0e:a0:0b:
+ f2:9e:9a:ba:c6:2b:6f:56:3a:b4:62:57:ab:7c:ad:60:50:96:
+ 34:9c:a3:88:cf:d9:8f:50:af:f6:f0:00:36:1b:1f:1f:87:55:
+ 3c:60:9a:f0:b0:0d:9a:80:2d:8a:3b:be:05:b3:d7:a0:80:b6:
+ b8:19:eb:51:db:ec:64:54:f1:1a:89:4a:48:a1:4d:3f:31:7d:
+ c4:79:94:4b:f1:de:ab:83:af:5f:86:be:96:1c:b3:3e:1c:e7:
+ bc:96:b2:e8:5a:ac:b5:58:cb:3c:56:6f:0a:a7:a5:d0:36:89:
+ 82:26:8c:b9:1f:b6:eb:8f:7e:78:fc:5b:8b:79:1c:d6:df:47:
+ a7:56:f4:98:4e:c7:a9:d5:0e:75:56:06:7f:b4:37:46:08:c6:
+ e9:4f:8b:5b:43:1c:e0:45:3e:95:20:71:c0:1c:98:16:ef:f2:
+ 78:df:ac:4d:bb:bf:56:0e:cf:85:af:cf:bf:04:ed:72:6b:fd:
+ 1f:57:0e:58:91:44:11:58:3b:62:3b:09:78:b3:a4:75:6a:ec:
+ b3:c2:2b:32:cc:b3:8d:c3:a3:6e:dc:8a:d5:e8:4a:c4:0b:7b:
+ db:30:5d:95:33:c3:d1:a3:69:64:5b:a8:aa:96:48:73:73:e3:
+ c9:b9:24:df:17:75:aa:af:07:3a:cf:be:9b:8a:80:a7:bf:7c:
+ e2:e9:2a:e6:fd:b0:2c:e7:e6:e6:7e:b3:35:15:65:00:f4:e1:
+ 39:73:0e:28:4b:f0:0c:98:9e:3a:eb:ce:7b:7a:9e:40:c1:50:
+ 65:96:9a:e7:4b:77:cd:dd:cb:7d:97:b4:ea:09:b2:e9:49:28:
+ c3:30:e0:87:15:f0:26:ea:d8:03:fd:ec:da:08:83:65:dc:77:
+ c5:6e:3d:34:f7:87:c3:1c:1d:26:33:ec:33:ac:c6:99:53:ab:
+ 60:f4:b0:d9:ee:64:5a:33:07:70:13:74:88:07:f5:86:f9:18:
+ d3:b2:47:c8:ae:03:4a:53:de:1c:65:d6:0a:2e:3a:51:93:ee:
+ b7:e3:6f:0a:fb:e9:fe:4e:e8:bb:1d:c2:97:ab:0a:b9:ed:36:
+ 32:1b:4d:a1:cc:03:a6:9d:b3:d9:1c:d5:67:e2:8f:74:3c:92:
+ 2a:74:b1:56:50:df:53:15:d7:21:d6:eb:f3:fb:63:e3:20:2c:
+ 0a:74:37:0b:c1:a1:35:6a:84:70:f4:45:f8:b2:b6:81:49:aa:
+ fd:54:45:90:4d:e7:04:07:5f:78:14:dd:3a:bb:2b:f9:72:50:
+ ec:68:ea:3c:a8:d1:80:bb:be:35:43:97:c3:32:b2:f5:aa:ad:
+ c9:7f:83:9f:7d:69:1e:15
+-----BEGIN CERTIFICATE-----
+MIIFozCCA4ugAwIBAgIQdZbCPvqJWUVuefcXus9k8zANBgkqhkiG9w0BAQsFADBV
+MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNV
+BAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0xNDExMDgw
+MDU4NThaFw0yOTExMDgwMDU4NThaMFIxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFX
+b1NpZ24gQ0EgTGltaXRlZDEnMCUGA1UEAxMeV29TaWduIENsYXNzIDMgT1YgU2Vy
+dmVyIENBIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1nSHr5nA
+V5aZwol0PJJVmb8fBwA1BSaWFlsDwUI3M74/DU//u5QmkdcUFngb9xOiS0zlXKcQ
+QDVZMNF3meOdKcK+MZW9kmFbsCP7Z1jVUuR7L/BzHHOUVbrIaFkCEBDk9xHww7bX
+rlaAAJ5lZKaDkUHm7ad6ZaUfMC4TPL/fY5fzlvBSMrT0e5hX7TZP9yFKKJ3dHJKz
+TY2cWIsXIdjcobeuc3iKxLbpfyiOmtUunjnp2ll048iXEDKUGVnUD4lXROblKxcw
+YlKYf6sNpQHqBEHK+hMOO4cGur1HMddjAwH0vqE3EZ8eAZVODz9UHpKmnzCM/pjo
+VpZmBOE1/lmsVwIDAQABo4IBcDCCAWwwDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQW
+MBQGCCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/AgEAMDAGA1Ud
+HwQpMCcwJaAjoCGGH2h0dHA6Ly9jcmxzMS53b3NpZ24uY29tL2NhMS5jcmwwbQYI
+KwYBBQUHAQEEYTBfMCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcDEud29zaWduLmNv
+bS9jYTEwNAYIKwYBBQUHMAKGKGh0dHA6Ly9haWExLndvc2lnbi5jb20vY2ExZzIt
+c2VydmVyMy5jZXIwHQYDVR0OBBYEFPmL7AQ4aj+qBsaUrXOVKrDI5rj7MB8GA1Ud
+IwQYMBaAFOFmzw7R8bNLtwYgFP6HEtX2/vs+MEYGA1UdIAQ/MD0wOwYMKwYBBAGC
+m1EGAwIBMCswKQYIKwYBBQUHAgEWHWh0dHA6Ly93d3cud29zaWduLmNvbS9wb2xp
+Y3kvMA0GCSqGSIb3DQEBCwUAA4ICAQBeZ7p4MgW2t6/n3mp6gmQOoAvynpq6xitv
+Vjq0YlerfK1gUJY0nKOIz9mPUK/28AA2Gx8fh1U8YJrwsA2agC2KO74Fs9eggLa4
+GetR2+xkVPEaiUpIoU0/MX3EeZRL8d6rg69fhr6WHLM+HOe8lrLoWqy1WMs8Vm8K
+p6XQNomCJoy5H7brj354/FuLeRzW30enVvSYTsep1Q51VgZ/tDdGCMbpT4tbQxzg
+RT6VIHHAHJgW7/J436xNu79WDs+Fr8+/BO1ya/0fVw5YkUQRWDtiOwl4s6R1auyz
+wisyzLONw6Nu3IrV6ErEC3vbMF2VM8PRo2lkW6iqlkhzc+PJuSTfF3Wqrwc6z76b
+ioCnv3zi6Srm/bAs5+bmfrM1FWUA9OE5cw4oS/AMmJ466857ep5AwVBllprnS3fN
+3ct9l7TqCbLpSSjDMOCHFfAm6tgD/ezaCINl3HfFbj0094fDHB0mM+wzrMaZU6tg
+9LDZ7mRaMwdwE3SIB/WG+RjTskfIrgNKU94cZdYKLjpRk+63428K++n+Tui7HcKX
+qwq57TYyG02hzAOmnbPZHNVn4o90PJIqdLFWUN9TFdch1uvz+2PjICwKdDcLwaE1
+aoRw9EX4sraBSar9VEWQTecEB194FN06uyv5clDsaOo8qNGAu741Q5fDMrL1qq3J
+f4OffWkeFQ==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert48[] = {
+ 0x30, 0x82, 0x05, 0xa3, 0x30, 0x82, 0x03, 0x8b, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x75, 0x96, 0xc2, 0x3e, 0xfa, 0x89, 0x59, 0x45, 0x6e,
+ 0x79, 0xf7, 0x17, 0xba, 0xcf, 0x64, 0xf3, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x55,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x43,
+ 0x4e, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11,
+ 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x41, 0x20, 0x4c, 0x69,
+ 0x6d, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2a, 0x30, 0x28, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x21, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x57, 0x6f, 0x53, 0x69, 0x67,
+ 0x6e, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x31, 0x31, 0x30, 0x38, 0x30,
+ 0x30, 0x35, 0x38, 0x35, 0x38, 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x31, 0x31,
+ 0x30, 0x38, 0x30, 0x30, 0x35, 0x38, 0x35, 0x38, 0x5a, 0x30, 0x52, 0x31,
+ 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x43, 0x4e,
+ 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x57,
+ 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x41, 0x20, 0x4c, 0x69, 0x6d,
+ 0x69, 0x74, 0x65, 0x64, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x1e, 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c,
+ 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x4f, 0x56, 0x20, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01,
+ 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+ 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xd6, 0x74, 0x87, 0xaf, 0x99, 0xc0,
+ 0x57, 0x96, 0x99, 0xc2, 0x89, 0x74, 0x3c, 0x92, 0x55, 0x99, 0xbf, 0x1f,
+ 0x07, 0x00, 0x35, 0x05, 0x26, 0x96, 0x16, 0x5b, 0x03, 0xc1, 0x42, 0x37,
+ 0x33, 0xbe, 0x3f, 0x0d, 0x4f, 0xff, 0xbb, 0x94, 0x26, 0x91, 0xd7, 0x14,
+ 0x16, 0x78, 0x1b, 0xf7, 0x13, 0xa2, 0x4b, 0x4c, 0xe5, 0x5c, 0xa7, 0x10,
+ 0x40, 0x35, 0x59, 0x30, 0xd1, 0x77, 0x99, 0xe3, 0x9d, 0x29, 0xc2, 0xbe,
+ 0x31, 0x95, 0xbd, 0x92, 0x61, 0x5b, 0xb0, 0x23, 0xfb, 0x67, 0x58, 0xd5,
+ 0x52, 0xe4, 0x7b, 0x2f, 0xf0, 0x73, 0x1c, 0x73, 0x94, 0x55, 0xba, 0xc8,
+ 0x68, 0x59, 0x02, 0x10, 0x10, 0xe4, 0xf7, 0x11, 0xf0, 0xc3, 0xb6, 0xd7,
+ 0xae, 0x56, 0x80, 0x00, 0x9e, 0x65, 0x64, 0xa6, 0x83, 0x91, 0x41, 0xe6,
+ 0xed, 0xa7, 0x7a, 0x65, 0xa5, 0x1f, 0x30, 0x2e, 0x13, 0x3c, 0xbf, 0xdf,
+ 0x63, 0x97, 0xf3, 0x96, 0xf0, 0x52, 0x32, 0xb4, 0xf4, 0x7b, 0x98, 0x57,
+ 0xed, 0x36, 0x4f, 0xf7, 0x21, 0x4a, 0x28, 0x9d, 0xdd, 0x1c, 0x92, 0xb3,
+ 0x4d, 0x8d, 0x9c, 0x58, 0x8b, 0x17, 0x21, 0xd8, 0xdc, 0xa1, 0xb7, 0xae,
+ 0x73, 0x78, 0x8a, 0xc4, 0xb6, 0xe9, 0x7f, 0x28, 0x8e, 0x9a, 0xd5, 0x2e,
+ 0x9e, 0x39, 0xe9, 0xda, 0x59, 0x74, 0xe3, 0xc8, 0x97, 0x10, 0x32, 0x94,
+ 0x19, 0x59, 0xd4, 0x0f, 0x89, 0x57, 0x44, 0xe6, 0xe5, 0x2b, 0x17, 0x30,
+ 0x62, 0x52, 0x98, 0x7f, 0xab, 0x0d, 0xa5, 0x01, 0xea, 0x04, 0x41, 0xca,
+ 0xfa, 0x13, 0x0e, 0x3b, 0x87, 0x06, 0xba, 0xbd, 0x47, 0x31, 0xd7, 0x63,
+ 0x03, 0x01, 0xf4, 0xbe, 0xa1, 0x37, 0x11, 0x9f, 0x1e, 0x01, 0x95, 0x4e,
+ 0x0f, 0x3f, 0x54, 0x1e, 0x92, 0xa6, 0x9f, 0x30, 0x8c, 0xfe, 0x98, 0xe8,
+ 0x56, 0x96, 0x66, 0x04, 0xe1, 0x35, 0xfe, 0x59, 0xac, 0x57, 0x02, 0x03,
+ 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x70, 0x30, 0x82, 0x01, 0x6c, 0x30,
+ 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+ 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16,
+ 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x30, 0x12,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06,
+ 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x30, 0x06, 0x03, 0x55, 0x1d,
+ 0x1f, 0x04, 0x29, 0x30, 0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21, 0x86,
+ 0x1f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x73,
+ 0x31, 0x2e, 0x77, 0x6f, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x63, 0x61, 0x31, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x6d, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x61, 0x30, 0x5f,
+ 0x30, 0x27, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+ 0x86, 0x1b, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+ 0x70, 0x31, 0x2e, 0x77, 0x6f, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x63, 0x61, 0x31, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x61, 0x69, 0x61, 0x31, 0x2e, 0x77, 0x6f, 0x73, 0x69, 0x67,
+ 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x31, 0x67, 0x32, 0x2d,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x33, 0x2e, 0x63, 0x65, 0x72, 0x30,
+ 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xf9, 0x8b,
+ 0xec, 0x04, 0x38, 0x6a, 0x3f, 0xaa, 0x06, 0xc6, 0x94, 0xad, 0x73, 0x95,
+ 0x2a, 0xb0, 0xc8, 0xe6, 0xb8, 0xfb, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe1, 0x66, 0xcf, 0x0e, 0xd1,
+ 0xf1, 0xb3, 0x4b, 0xb7, 0x06, 0x20, 0x14, 0xfe, 0x87, 0x12, 0xd5, 0xf6,
+ 0xfe, 0xfb, 0x3e, 0x30, 0x46, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3f,
+ 0x30, 0x3d, 0x30, 0x3b, 0x06, 0x0c, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82,
+ 0x9b, 0x51, 0x06, 0x03, 0x02, 0x01, 0x30, 0x2b, 0x30, 0x29, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1d, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x6f, 0x73,
+ 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6c, 0x69,
+ 0x63, 0x79, 0x2f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x5e,
+ 0x67, 0xba, 0x78, 0x32, 0x05, 0xb6, 0xb7, 0xaf, 0xe7, 0xde, 0x6a, 0x7a,
+ 0x82, 0x64, 0x0e, 0xa0, 0x0b, 0xf2, 0x9e, 0x9a, 0xba, 0xc6, 0x2b, 0x6f,
+ 0x56, 0x3a, 0xb4, 0x62, 0x57, 0xab, 0x7c, 0xad, 0x60, 0x50, 0x96, 0x34,
+ 0x9c, 0xa3, 0x88, 0xcf, 0xd9, 0x8f, 0x50, 0xaf, 0xf6, 0xf0, 0x00, 0x36,
+ 0x1b, 0x1f, 0x1f, 0x87, 0x55, 0x3c, 0x60, 0x9a, 0xf0, 0xb0, 0x0d, 0x9a,
+ 0x80, 0x2d, 0x8a, 0x3b, 0xbe, 0x05, 0xb3, 0xd7, 0xa0, 0x80, 0xb6, 0xb8,
+ 0x19, 0xeb, 0x51, 0xdb, 0xec, 0x64, 0x54, 0xf1, 0x1a, 0x89, 0x4a, 0x48,
+ 0xa1, 0x4d, 0x3f, 0x31, 0x7d, 0xc4, 0x79, 0x94, 0x4b, 0xf1, 0xde, 0xab,
+ 0x83, 0xaf, 0x5f, 0x86, 0xbe, 0x96, 0x1c, 0xb3, 0x3e, 0x1c, 0xe7, 0xbc,
+ 0x96, 0xb2, 0xe8, 0x5a, 0xac, 0xb5, 0x58, 0xcb, 0x3c, 0x56, 0x6f, 0x0a,
+ 0xa7, 0xa5, 0xd0, 0x36, 0x89, 0x82, 0x26, 0x8c, 0xb9, 0x1f, 0xb6, 0xeb,
+ 0x8f, 0x7e, 0x78, 0xfc, 0x5b, 0x8b, 0x79, 0x1c, 0xd6, 0xdf, 0x47, 0xa7,
+ 0x56, 0xf4, 0x98, 0x4e, 0xc7, 0xa9, 0xd5, 0x0e, 0x75, 0x56, 0x06, 0x7f,
+ 0xb4, 0x37, 0x46, 0x08, 0xc6, 0xe9, 0x4f, 0x8b, 0x5b, 0x43, 0x1c, 0xe0,
+ 0x45, 0x3e, 0x95, 0x20, 0x71, 0xc0, 0x1c, 0x98, 0x16, 0xef, 0xf2, 0x78,
+ 0xdf, 0xac, 0x4d, 0xbb, 0xbf, 0x56, 0x0e, 0xcf, 0x85, 0xaf, 0xcf, 0xbf,
+ 0x04, 0xed, 0x72, 0x6b, 0xfd, 0x1f, 0x57, 0x0e, 0x58, 0x91, 0x44, 0x11,
+ 0x58, 0x3b, 0x62, 0x3b, 0x09, 0x78, 0xb3, 0xa4, 0x75, 0x6a, 0xec, 0xb3,
+ 0xc2, 0x2b, 0x32, 0xcc, 0xb3, 0x8d, 0xc3, 0xa3, 0x6e, 0xdc, 0x8a, 0xd5,
+ 0xe8, 0x4a, 0xc4, 0x0b, 0x7b, 0xdb, 0x30, 0x5d, 0x95, 0x33, 0xc3, 0xd1,
+ 0xa3, 0x69, 0x64, 0x5b, 0xa8, 0xaa, 0x96, 0x48, 0x73, 0x73, 0xe3, 0xc9,
+ 0xb9, 0x24, 0xdf, 0x17, 0x75, 0xaa, 0xaf, 0x07, 0x3a, 0xcf, 0xbe, 0x9b,
+ 0x8a, 0x80, 0xa7, 0xbf, 0x7c, 0xe2, 0xe9, 0x2a, 0xe6, 0xfd, 0xb0, 0x2c,
+ 0xe7, 0xe6, 0xe6, 0x7e, 0xb3, 0x35, 0x15, 0x65, 0x00, 0xf4, 0xe1, 0x39,
+ 0x73, 0x0e, 0x28, 0x4b, 0xf0, 0x0c, 0x98, 0x9e, 0x3a, 0xeb, 0xce, 0x7b,
+ 0x7a, 0x9e, 0x40, 0xc1, 0x50, 0x65, 0x96, 0x9a, 0xe7, 0x4b, 0x77, 0xcd,
+ 0xdd, 0xcb, 0x7d, 0x97, 0xb4, 0xea, 0x09, 0xb2, 0xe9, 0x49, 0x28, 0xc3,
+ 0x30, 0xe0, 0x87, 0x15, 0xf0, 0x26, 0xea, 0xd8, 0x03, 0xfd, 0xec, 0xda,
+ 0x08, 0x83, 0x65, 0xdc, 0x77, 0xc5, 0x6e, 0x3d, 0x34, 0xf7, 0x87, 0xc3,
+ 0x1c, 0x1d, 0x26, 0x33, 0xec, 0x33, 0xac, 0xc6, 0x99, 0x53, 0xab, 0x60,
+ 0xf4, 0xb0, 0xd9, 0xee, 0x64, 0x5a, 0x33, 0x07, 0x70, 0x13, 0x74, 0x88,
+ 0x07, 0xf5, 0x86, 0xf9, 0x18, 0xd3, 0xb2, 0x47, 0xc8, 0xae, 0x03, 0x4a,
+ 0x53, 0xde, 0x1c, 0x65, 0xd6, 0x0a, 0x2e, 0x3a, 0x51, 0x93, 0xee, 0xb7,
+ 0xe3, 0x6f, 0x0a, 0xfb, 0xe9, 0xfe, 0x4e, 0xe8, 0xbb, 0x1d, 0xc2, 0x97,
+ 0xab, 0x0a, 0xb9, 0xed, 0x36, 0x32, 0x1b, 0x4d, 0xa1, 0xcc, 0x03, 0xa6,
+ 0x9d, 0xb3, 0xd9, 0x1c, 0xd5, 0x67, 0xe2, 0x8f, 0x74, 0x3c, 0x92, 0x2a,
+ 0x74, 0xb1, 0x56, 0x50, 0xdf, 0x53, 0x15, 0xd7, 0x21, 0xd6, 0xeb, 0xf3,
+ 0xfb, 0x63, 0xe3, 0x20, 0x2c, 0x0a, 0x74, 0x37, 0x0b, 0xc1, 0xa1, 0x35,
+ 0x6a, 0x84, 0x70, 0xf4, 0x45, 0xf8, 0xb2, 0xb6, 0x81, 0x49, 0xaa, 0xfd,
+ 0x54, 0x45, 0x90, 0x4d, 0xe7, 0x04, 0x07, 0x5f, 0x78, 0x14, 0xdd, 0x3a,
+ 0xbb, 0x2b, 0xf9, 0x72, 0x50, 0xec, 0x68, 0xea, 0x3c, 0xa8, 0xd1, 0x80,
+ 0xbb, 0xbe, 0x35, 0x43, 0x97, 0xc3, 0x32, 0xb2, 0xf5, 0xaa, 0xad, 0xc9,
+ 0x7f, 0x83, 0x9f, 0x7d, 0x69, 0x1e, 0x15,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 120040007 (0x727aa47)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+ Validity
+ Not Before: May 7 17:04:09 2014 GMT
+ Not After : May 7 17:03:30 2018 GMT
+ Subject: C=US, ST=Washington, L=Redmond, O=Microsoft Corporation, OU=Microsoft IT, CN=Microsoft IT SSL SHA2
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (4096 bit)
+ Modulus:
+ 00:d1:e8:37:a7:76:8a:70:4b:19:f0:20:37:09:24:
+ 37:7f:ea:fb:78:e6:05:ba:6a:ad:4e:27:0d:fc:72:
+ 6a:d9:6c:21:c4:64:11:95:73:10:0a:5c:25:7b:88:
+ 6c:94:04:fd:c7:db:ae:7b:dc:4a:08:b3:3e:16:f1:
+ d0:ad:db:30:6d:d7:1a:1e:52:b5:3d:f0:47:19:03:
+ e2:7d:a6:bd:57:13:3f:54:ea:3a:a3:b1:77:fc:42:
+ f0:63:49:6a:91:80:2e:30:49:c0:8a:eb:2b:af:fe:
+ 3a:eb:07:5d:06:f7:e9:fd:84:0e:91:bd:09:20:29:
+ e8:6e:5d:09:ce:15:d3:e7:ef:db:50:eb:44:ef:18:
+ 57:ab:04:1d:bc:31:f9:f7:7b:2a:13:cf:d1:3d:51:
+ af:1b:c5:b5:7b:e7:b0:fc:53:bb:9a:e7:63:de:41:
+ 33:b6:47:24:69:5d:b8:46:a7:ff:ad:ab:df:4f:7a:
+ 78:25:27:21:26:34:ca:02:6e:37:51:f0:ed:58:1a:
+ 60:94:f6:c4:93:d8:dd:30:24:25:d7:1c:eb:19:94:
+ 35:5d:93:b2:ae:aa:29:83:73:c4:74:59:05:52:67:
+ 9d:da:67:51:39:05:3a:36:ea:f2:1e:76:2b:14:ae:
+ ec:3d:f9:14:99:8b:07:6e:bc:e7:0c:56:de:ac:be:
+ ae:db:75:32:90:9e:63:bd:74:bf:e0:0a:ca:f8:34:
+ 96:67:84:cd:d1:42:38:78:c7:99:b6:0c:ce:b6:0f:
+ e9:1b:cb:f4:59:be:11:0e:cb:2c:32:c8:fa:83:29:
+ 64:79:3c:8b:4b:f0:32:74:6c:f3:93:b8:96:6b:5d:
+ 57:5a:68:c1:cc:0c:79:8a:19:de:f5:49:02:5e:08:
+ 80:01:89:0c:32:cd:d2:d6:96:d5:4b:a0:f3:ec:bf:
+ ab:f4:7d:b3:a1:b9:7c:da:4e:d7:e5:b7:ac:b9:f2:
+ 25:5f:01:cb:8c:96:a8:28:ae:c1:33:5a:f6:3f:08:
+ 90:dc:eb:ff:39:d8:26:c8:12:9d:1c:9a:aa:a9:c0:
+ 16:8e:86:ed:67:52:96:00:7f:0d:92:3d:3d:d9:70:
+ 36:e5:ea:42:6f:1f:ae:95:e5:5b:5d:f8:d0:3a:c7:
+ d4:de:77:86:d0:fc:9e:4e:e2:e2:b8:a9:68:37:09:
+ c4:39:e3:85:b8:89:f3:1f:6e:b7:6d:1f:4a:2f:18:
+ 09:6f:de:4a:01:8f:14:c9:b7:a6:ee:a7:63:9f:33:
+ a4:54:7c:42:83:68:b8:a5:df:bf:ec:b9:1a:5d:13:
+ 3b:d9:ad:68:fd:20:0a:55:91:21:64:f9:d7:13:01:
+ a0:08:5d:59:89:1b:44:af:a4:ac:c7:05:10:fa:41:
+ 4a:a8:fb
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 Certificate Policies:
+ Policy: 1.3.6.1.4.1.6334.1.0
+ CPS: http://cybertrust.omniroot.com/repository.cfm
+ Policy: 1.3.6.1.4.1.311.42.1
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.omniroot.com/baltimoreroot
+
+ X509v3 Key Usage: critical
+ Digital Signature, Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication, TLS Web Client Authentication, OCSP Signing
+ X509v3 Authority Key Identifier:
+ keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+ X509v3 Subject Key Identifier:
+ 51:AF:24:26:9C:F4:68:22:57:80:26:2B:3B:46:62:15:7B:1E:CC:A5
+ Signature Algorithm: sha256WithRSAEncryption
+ 69:62:f6:84:91:00:c4:6f:82:7b:24:e1:42:a2:a5:8b:82:5c:
+ a7:c5:44:cb:e7:52:76:63:d3:76:9e:78:e2:69:35:b1:38:ba:
+ b0:96:c6:1f:ac:7b:c6:b2:65:77:8b:7d:8d:ae:64:b9:a5:8c:
+ 17:ca:58:65:c3:ad:82:f5:c5:a2:f5:01:13:93:c6:7e:44:e5:
+ c4:61:fa:03:b6:56:c1:72:e1:c8:28:c5:69:21:8f:ac:6e:fd:
+ 7f:43:83:36:b8:c0:d6:a0:28:fe:1a:45:be:fd:93:8c:8d:a4:
+ 64:79:1f:14:db:a1:9f:21:dc:c0:4e:7b:17:22:17:b1:b6:3c:
+ d3:9b:e2:0a:a3:7e:99:b0:c1:ac:d8:f4:86:df:3c:da:7d:14:
+ 9c:40:c1:7c:d2:18:6f:f1:4f:26:45:09:95:94:5c:da:d0:98:
+ f8:f4:4c:82:96:10:de:ac:30:cb:2b:ae:f9:92:ea:bf:79:03:
+ fc:1e:3f:ac:09:a4:3f:65:fd:91:4f:96:24:a7:ce:b4:4e:6a:
+ 96:29:17:ae:c0:a8:df:17:22:f4:17:e3:dc:1c:39:06:56:10:
+ ea:ea:b5:74:17:3c:4e:dd:7e:91:0a:a8:0b:78:07:a7:31:44:
+ 08:31:ab:18:84:0f:12:9c:e7:de:84:2c:e9:6d:93:45:bf:a8:
+ c1:3f:34:dc
+-----BEGIN CERTIFICATE-----
+MIIF4TCCBMmgAwIBAgIEByeqRzANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE0MDUwNzE3MDQwOVoX
+DTE4MDUwNzE3MDMzMFowgYsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
+dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
+YXRpb24xFTATBgNVBAsTDE1pY3Jvc29mdCBJVDEeMBwGA1UEAxMVTWljcm9zb2Z0
+IElUIFNTTCBTSEEyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0eg3
+p3aKcEsZ8CA3CSQ3f+r7eOYFumqtTicN/HJq2WwhxGQRlXMQClwle4hslAT9x9uu
+e9xKCLM+FvHQrdswbdcaHlK1PfBHGQPifaa9VxM/VOo6o7F3/ELwY0lqkYAuMEnA
+iusrr/466wddBvfp/YQOkb0JICnobl0JzhXT5+/bUOtE7xhXqwQdvDH593sqE8/R
+PVGvG8W1e+ew/FO7mudj3kEztkckaV24Rqf/ravfT3p4JSchJjTKAm43UfDtWBpg
+lPbEk9jdMCQl1xzrGZQ1XZOyrqopg3PEdFkFUmed2mdROQU6NuryHnYrFK7sPfkU
+mYsHbrznDFberL6u23UykJ5jvXS/4ArK+DSWZ4TN0UI4eMeZtgzOtg/pG8v0Wb4R
+DsssMsj6gylkeTyLS/AydGzzk7iWa11XWmjBzAx5ihne9UkCXgiAAYkMMs3S1pbV
+S6Dz7L+r9H2zobl82k7X5besufIlXwHLjJaoKK7BM1r2PwiQ3Ov/OdgmyBKdHJqq
+qcAWjobtZ1KWAH8Nkj092XA25epCbx+uleVbXfjQOsfU3neG0PyeTuLiuKloNwnE
+OeOFuInzH263bR9KLxgJb95KAY8Uybem7qdjnzOkVHxCg2i4pd+/7LkaXRM72a1o
+/SAKVZEhZPnXEwGgCF1ZiRtEr6SsxwUQ+kFKqPsCAwEAAaOCAXswggF3MBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwYAYDVR0gBFkwVzBIBgkrBgEEAbE+AQAwOzA5BggrBgEF
+BQcCARYtaHR0cDovL2N5YmVydHJ1c3Qub21uaXJvb3QuY29tL3JlcG9zaXRvcnku
+Y2ZtMAsGCSsGAQQBgjcqATBCBggrBgEFBQcBAQQ2MDQwMgYIKwYBBQUHMAGGJmh0
+dHA6Ly9vY3NwLm9tbmlyb290LmNvbS9iYWx0aW1vcmVyb290MA4GA1UdDwEB/wQE
+AwIBhjAnBgNVHSUEIDAeBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMJMB8G
+A1UdIwQYMBaAFOWdWTCCR1jMrPoIVDaGezq1BE3wMEIGA1UdHwQ7MDkwN6A1oDOG
+MWh0dHA6Ly9jZHAxLnB1YmxpYy10cnVzdC5jb20vQ1JML09tbmlyb290MjAyNS5j
+cmwwHQYDVR0OBBYEFFGvJCac9GgiV4AmKztGYhV7HsylMA0GCSqGSIb3DQEBCwUA
+A4IBAQBpYvaEkQDEb4J7JOFCoqWLglynxUTL51J2Y9N2nnjiaTWxOLqwlsYfrHvG
+smV3i32NrmS5pYwXylhlw62C9cWi9QETk8Z+ROXEYfoDtlbBcuHIKMVpIY+sbv1/
+Q4M2uMDWoCj+GkW+/ZOMjaRkeR8U26GfIdzATnsXIhextjzTm+IKo36ZsMGs2PSG
+3zzafRScQMF80hhv8U8mRQmVlFza0Jj49EyClhDerDDLK675kuq/eQP8Hj+sCaQ/
+Zf2RT5Ykp860TmqWKReuwKjfFyL0F+PcHDkGVhDq6rV0FzxO3X6RCqgLeAenMUQI
+MasYhA8SnOfehCzpbZNFv6jBPzTc
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert49[] = {
+ 0x30, 0x82, 0x05, 0xe1, 0x30, 0x82, 0x04, 0xc9, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x04, 0x07, 0x27, 0xaa, 0x47, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+ 0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+ 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+ 0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+ 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+ 0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34,
+ 0x30, 0x35, 0x30, 0x37, 0x31, 0x37, 0x30, 0x34, 0x30, 0x39, 0x5a, 0x17,
+ 0x0d, 0x31, 0x38, 0x30, 0x35, 0x30, 0x37, 0x31, 0x37, 0x30, 0x33, 0x33,
+ 0x30, 0x5a, 0x30, 0x81, 0x8b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
+ 0x55, 0x04, 0x08, 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67,
+ 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07,
+ 0x13, 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30,
+ 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72,
+ 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55,
+ 0x04, 0x0b, 0x13, 0x0c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66,
+ 0x74, 0x20, 0x49, 0x54, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
+ 0x20, 0x49, 0x54, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32,
+ 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00,
+ 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xd1, 0xe8, 0x37,
+ 0xa7, 0x76, 0x8a, 0x70, 0x4b, 0x19, 0xf0, 0x20, 0x37, 0x09, 0x24, 0x37,
+ 0x7f, 0xea, 0xfb, 0x78, 0xe6, 0x05, 0xba, 0x6a, 0xad, 0x4e, 0x27, 0x0d,
+ 0xfc, 0x72, 0x6a, 0xd9, 0x6c, 0x21, 0xc4, 0x64, 0x11, 0x95, 0x73, 0x10,
+ 0x0a, 0x5c, 0x25, 0x7b, 0x88, 0x6c, 0x94, 0x04, 0xfd, 0xc7, 0xdb, 0xae,
+ 0x7b, 0xdc, 0x4a, 0x08, 0xb3, 0x3e, 0x16, 0xf1, 0xd0, 0xad, 0xdb, 0x30,
+ 0x6d, 0xd7, 0x1a, 0x1e, 0x52, 0xb5, 0x3d, 0xf0, 0x47, 0x19, 0x03, 0xe2,
+ 0x7d, 0xa6, 0xbd, 0x57, 0x13, 0x3f, 0x54, 0xea, 0x3a, 0xa3, 0xb1, 0x77,
+ 0xfc, 0x42, 0xf0, 0x63, 0x49, 0x6a, 0x91, 0x80, 0x2e, 0x30, 0x49, 0xc0,
+ 0x8a, 0xeb, 0x2b, 0xaf, 0xfe, 0x3a, 0xeb, 0x07, 0x5d, 0x06, 0xf7, 0xe9,
+ 0xfd, 0x84, 0x0e, 0x91, 0xbd, 0x09, 0x20, 0x29, 0xe8, 0x6e, 0x5d, 0x09,
+ 0xce, 0x15, 0xd3, 0xe7, 0xef, 0xdb, 0x50, 0xeb, 0x44, 0xef, 0x18, 0x57,
+ 0xab, 0x04, 0x1d, 0xbc, 0x31, 0xf9, 0xf7, 0x7b, 0x2a, 0x13, 0xcf, 0xd1,
+ 0x3d, 0x51, 0xaf, 0x1b, 0xc5, 0xb5, 0x7b, 0xe7, 0xb0, 0xfc, 0x53, 0xbb,
+ 0x9a, 0xe7, 0x63, 0xde, 0x41, 0x33, 0xb6, 0x47, 0x24, 0x69, 0x5d, 0xb8,
+ 0x46, 0xa7, 0xff, 0xad, 0xab, 0xdf, 0x4f, 0x7a, 0x78, 0x25, 0x27, 0x21,
+ 0x26, 0x34, 0xca, 0x02, 0x6e, 0x37, 0x51, 0xf0, 0xed, 0x58, 0x1a, 0x60,
+ 0x94, 0xf6, 0xc4, 0x93, 0xd8, 0xdd, 0x30, 0x24, 0x25, 0xd7, 0x1c, 0xeb,
+ 0x19, 0x94, 0x35, 0x5d, 0x93, 0xb2, 0xae, 0xaa, 0x29, 0x83, 0x73, 0xc4,
+ 0x74, 0x59, 0x05, 0x52, 0x67, 0x9d, 0xda, 0x67, 0x51, 0x39, 0x05, 0x3a,
+ 0x36, 0xea, 0xf2, 0x1e, 0x76, 0x2b, 0x14, 0xae, 0xec, 0x3d, 0xf9, 0x14,
+ 0x99, 0x8b, 0x07, 0x6e, 0xbc, 0xe7, 0x0c, 0x56, 0xde, 0xac, 0xbe, 0xae,
+ 0xdb, 0x75, 0x32, 0x90, 0x9e, 0x63, 0xbd, 0x74, 0xbf, 0xe0, 0x0a, 0xca,
+ 0xf8, 0x34, 0x96, 0x67, 0x84, 0xcd, 0xd1, 0x42, 0x38, 0x78, 0xc7, 0x99,
+ 0xb6, 0x0c, 0xce, 0xb6, 0x0f, 0xe9, 0x1b, 0xcb, 0xf4, 0x59, 0xbe, 0x11,
+ 0x0e, 0xcb, 0x2c, 0x32, 0xc8, 0xfa, 0x83, 0x29, 0x64, 0x79, 0x3c, 0x8b,
+ 0x4b, 0xf0, 0x32, 0x74, 0x6c, 0xf3, 0x93, 0xb8, 0x96, 0x6b, 0x5d, 0x57,
+ 0x5a, 0x68, 0xc1, 0xcc, 0x0c, 0x79, 0x8a, 0x19, 0xde, 0xf5, 0x49, 0x02,
+ 0x5e, 0x08, 0x80, 0x01, 0x89, 0x0c, 0x32, 0xcd, 0xd2, 0xd6, 0x96, 0xd5,
+ 0x4b, 0xa0, 0xf3, 0xec, 0xbf, 0xab, 0xf4, 0x7d, 0xb3, 0xa1, 0xb9, 0x7c,
+ 0xda, 0x4e, 0xd7, 0xe5, 0xb7, 0xac, 0xb9, 0xf2, 0x25, 0x5f, 0x01, 0xcb,
+ 0x8c, 0x96, 0xa8, 0x28, 0xae, 0xc1, 0x33, 0x5a, 0xf6, 0x3f, 0x08, 0x90,
+ 0xdc, 0xeb, 0xff, 0x39, 0xd8, 0x26, 0xc8, 0x12, 0x9d, 0x1c, 0x9a, 0xaa,
+ 0xa9, 0xc0, 0x16, 0x8e, 0x86, 0xed, 0x67, 0x52, 0x96, 0x00, 0x7f, 0x0d,
+ 0x92, 0x3d, 0x3d, 0xd9, 0x70, 0x36, 0xe5, 0xea, 0x42, 0x6f, 0x1f, 0xae,
+ 0x95, 0xe5, 0x5b, 0x5d, 0xf8, 0xd0, 0x3a, 0xc7, 0xd4, 0xde, 0x77, 0x86,
+ 0xd0, 0xfc, 0x9e, 0x4e, 0xe2, 0xe2, 0xb8, 0xa9, 0x68, 0x37, 0x09, 0xc4,
+ 0x39, 0xe3, 0x85, 0xb8, 0x89, 0xf3, 0x1f, 0x6e, 0xb7, 0x6d, 0x1f, 0x4a,
+ 0x2f, 0x18, 0x09, 0x6f, 0xde, 0x4a, 0x01, 0x8f, 0x14, 0xc9, 0xb7, 0xa6,
+ 0xee, 0xa7, 0x63, 0x9f, 0x33, 0xa4, 0x54, 0x7c, 0x42, 0x83, 0x68, 0xb8,
+ 0xa5, 0xdf, 0xbf, 0xec, 0xb9, 0x1a, 0x5d, 0x13, 0x3b, 0xd9, 0xad, 0x68,
+ 0xfd, 0x20, 0x0a, 0x55, 0x91, 0x21, 0x64, 0xf9, 0xd7, 0x13, 0x01, 0xa0,
+ 0x08, 0x5d, 0x59, 0x89, 0x1b, 0x44, 0xaf, 0xa4, 0xac, 0xc7, 0x05, 0x10,
+ 0xfa, 0x41, 0x4a, 0xa8, 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+ 0x01, 0x7b, 0x30, 0x82, 0x01, 0x77, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+ 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+ 0x01, 0x00, 0x30, 0x60, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x59, 0x30,
+ 0x57, 0x30, 0x48, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e,
+ 0x01, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+ 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+ 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e,
+ 0x63, 0x66, 0x6d, 0x30, 0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01,
+ 0x82, 0x37, 0x2a, 0x01, 0x30, 0x42, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x01, 0x01, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x26, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x6f, 0x6d,
+ 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62,
+ 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x6f, 0x6f, 0x74,
+ 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
+ 0x03, 0x02, 0x01, 0x86, 0x30, 0x27, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04,
+ 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03,
+ 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x09, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe5, 0x9d,
+ 0x59, 0x30, 0x82, 0x47, 0x58, 0xcc, 0xac, 0xfa, 0x08, 0x54, 0x36, 0x86,
+ 0x7b, 0x3a, 0xb5, 0x04, 0x4d, 0xf0, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1d,
+ 0x1f, 0x04, 0x3b, 0x30, 0x39, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86,
+ 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x64, 0x70, 0x31,
+ 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73,
+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x4f, 0x6d,
+ 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x32, 0x30, 0x32, 0x35, 0x2e, 0x63,
+ 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0x51, 0xaf, 0x24, 0x26, 0x9c, 0xf4, 0x68, 0x22, 0x57, 0x80, 0x26,
+ 0x2b, 0x3b, 0x46, 0x62, 0x15, 0x7b, 0x1e, 0xcc, 0xa5, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x01, 0x00, 0x69, 0x62, 0xf6, 0x84, 0x91, 0x00, 0xc4,
+ 0x6f, 0x82, 0x7b, 0x24, 0xe1, 0x42, 0xa2, 0xa5, 0x8b, 0x82, 0x5c, 0xa7,
+ 0xc5, 0x44, 0xcb, 0xe7, 0x52, 0x76, 0x63, 0xd3, 0x76, 0x9e, 0x78, 0xe2,
+ 0x69, 0x35, 0xb1, 0x38, 0xba, 0xb0, 0x96, 0xc6, 0x1f, 0xac, 0x7b, 0xc6,
+ 0xb2, 0x65, 0x77, 0x8b, 0x7d, 0x8d, 0xae, 0x64, 0xb9, 0xa5, 0x8c, 0x17,
+ 0xca, 0x58, 0x65, 0xc3, 0xad, 0x82, 0xf5, 0xc5, 0xa2, 0xf5, 0x01, 0x13,
+ 0x93, 0xc6, 0x7e, 0x44, 0xe5, 0xc4, 0x61, 0xfa, 0x03, 0xb6, 0x56, 0xc1,
+ 0x72, 0xe1, 0xc8, 0x28, 0xc5, 0x69, 0x21, 0x8f, 0xac, 0x6e, 0xfd, 0x7f,
+ 0x43, 0x83, 0x36, 0xb8, 0xc0, 0xd6, 0xa0, 0x28, 0xfe, 0x1a, 0x45, 0xbe,
+ 0xfd, 0x93, 0x8c, 0x8d, 0xa4, 0x64, 0x79, 0x1f, 0x14, 0xdb, 0xa1, 0x9f,
+ 0x21, 0xdc, 0xc0, 0x4e, 0x7b, 0x17, 0x22, 0x17, 0xb1, 0xb6, 0x3c, 0xd3,
+ 0x9b, 0xe2, 0x0a, 0xa3, 0x7e, 0x99, 0xb0, 0xc1, 0xac, 0xd8, 0xf4, 0x86,
+ 0xdf, 0x3c, 0xda, 0x7d, 0x14, 0x9c, 0x40, 0xc1, 0x7c, 0xd2, 0x18, 0x6f,
+ 0xf1, 0x4f, 0x26, 0x45, 0x09, 0x95, 0x94, 0x5c, 0xda, 0xd0, 0x98, 0xf8,
+ 0xf4, 0x4c, 0x82, 0x96, 0x10, 0xde, 0xac, 0x30, 0xcb, 0x2b, 0xae, 0xf9,
+ 0x92, 0xea, 0xbf, 0x79, 0x03, 0xfc, 0x1e, 0x3f, 0xac, 0x09, 0xa4, 0x3f,
+ 0x65, 0xfd, 0x91, 0x4f, 0x96, 0x24, 0xa7, 0xce, 0xb4, 0x4e, 0x6a, 0x96,
+ 0x29, 0x17, 0xae, 0xc0, 0xa8, 0xdf, 0x17, 0x22, 0xf4, 0x17, 0xe3, 0xdc,
+ 0x1c, 0x39, 0x06, 0x56, 0x10, 0xea, 0xea, 0xb5, 0x74, 0x17, 0x3c, 0x4e,
+ 0xdd, 0x7e, 0x91, 0x0a, 0xa8, 0x0b, 0x78, 0x07, 0xa7, 0x31, 0x44, 0x08,
+ 0x31, 0xab, 0x18, 0x84, 0x0f, 0x12, 0x9c, 0xe7, 0xde, 0x84, 0x2c, 0xe9,
+ 0x6d, 0x93, 0x45, 0xbf, 0xa8, 0xc1, 0x3f, 0x34, 0xdc,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ 13:8b:fe:f3:32:94:f9:d8:16:f9:45:c2:71:95:29:98
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
+ Validity
+ Not Before: Dec 16 01:00:05 2015 GMT
+ Not After : Dec 16 01:00:05 2030 GMT
+ Subject: C=IL, O=StartCom Ltd., OU=StartCom Certification Authority, CN=StartCom Class 3 OV Server CA
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (2048 bit)
+ Modulus:
+ 00:af:67:1c:6f:e5:45:e0:d7:46:4b:75:2c:b6:80:
+ f2:9a:17:4d:2d:ff:de:ae:d2:d4:00:8a:3a:b8:31:
+ fe:8e:37:9e:fa:aa:d5:a3:5b:16:12:c1:19:3e:34:
+ 85:96:c3:be:d3:b3:43:f4:8d:6f:16:bd:30:ba:07:
+ fc:d8:9a:c1:79:89:80:6d:a0:8c:be:dd:37:f7:eb:
+ 05:d3:53:7f:57:58:76:55:b6:a8:a8:86:44:b8:bb:
+ d0:13:da:fd:8f:e1:f2:cd:a0:15:38:55:56:ce:26:
+ cf:7c:93:75:29:7a:0a:ab:fb:ba:09:38:20:11:57:
+ 07:5d:7f:49:9f:2a:4a:67:1e:9e:58:e9:c7:7f:f9:
+ c3:ed:fe:5f:4d:af:b8:4f:9d:df:69:2d:69:1b:3a:
+ 58:81:69:63:30:ea:87:8d:0f:52:9d:5a:da:39:44:
+ ba:9f:89:9f:36:b6:c2:19:5c:d9:26:78:d9:ae:5e:
+ fc:95:90:bf:e8:11:c0:47:0f:77:89:dd:6a:28:4f:
+ 0a:bc:32:64:57:43:3d:08:65:93:e5:45:ae:dd:28:
+ 0c:27:2c:8e:a6:2b:09:03:5d:a1:78:d2:8c:ab:b6:
+ 6b:b9:46:c9:19:00:39:b9:bf:c6:13:2b:73:72:1f:
+ f2:3e:37:b8:e8:b9:14:65:88:4d:e2:f1:1b:d8:a5:
+ 1d:3b
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Extended Key Usage:
+ TLS Web Client Authentication, TLS Web Server Authentication
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:0
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.startssl.com/sfsca.crl
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.startssl.com
+ CA Issuers - URI:http://aia.startssl.com/certs/ca.crt
+
+ X509v3 Subject Key Identifier:
+ B1:3F:1C:92:7B:92:B0:5A:25:B3:38:FB:9C:07:A4:26:50:32:E3:51
+ X509v3 Authority Key Identifier:
+ keyid:4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2
+
+ X509v3 Certificate Policies:
+ Policy: X509v3 Any Policy
+ CPS: http://www.startssl.com/policy
+
+ Signature Algorithm: sha256WithRSAEncryption
+ 85:f2:e8:14:d3:1b:c1:a1:16:1d:a4:f4:4d:ba:51:8b:5c:52:
+ b1:54:54:12:16:17:9c:96:78:6f:d3:bf:df:43:36:f5:12:89:
+ 61:72:44:df:1c:9b:09:4f:60:26:68:c1:e6:66:50:70:b3:6a:
+ f1:a8:6a:0c:1e:2e:93:f1:ee:07:3e:09:dd:30:45:b2:56:8e:
+ dc:2c:5c:ab:49:fa:b9:04:03:40:15:7a:b5:30:e0:1d:91:8f:
+ a6:d6:6f:1f:99:a0:84:95:39:bd:ac:77:7f:72:4b:dd:2d:ae:
+ ff:a8:58:1d:46:27:d4:83:c7:69:64:9f:19:bb:10:f8:04:42:
+ 87:59:5d:02:b1:d6:e5:c8:da:43:30:a3:e8:37:a5:d2:48:0b:
+ a2:83:4e:9d:4f:83:58:9d:d7:47:22:b1:89:f0:89:3b:3d:28:
+ 43:2c:9b:17:7c:03:ee:9d:26:25:e0:04:b8:1d:04:57:42:47:
+ da:58:69:f0:d3:29:ab:12:02:99:2b:2a:d8:9d:a0:1f:54:5e:
+ 23:9a:0c:d2:99:58:c4:a1:e5:49:c2:25:a7:64:20:52:2e:e7:
+ 89:f5:19:c0:8b:d0:63:b1:78:1e:be:01:47:be:76:81:46:f1:
+ 99:1f:94:9a:be:fa:82:15:b5:84:84:79:75:93:ba:9f:b5:e4:
+ 9b:c2:cb:69:5c:bd:1f:55:0a:a7:26:30:05:51:be:65:ee:57:
+ a9:6a:df:bd:f9:36:2f:ad:1e:46:41:2b:b1:88:d0:88:25:85:
+ 40:17:79:bf:3d:8d:e2:f4:2d:ea:30:31:df:a1:40:cb:35:ff:
+ 82:9f:f5:99:3c:4a:fd:9d:a1:d1:55:cc:20:a8:1c:d8:20:05:
+ ab:b3:14:65:95:53:d8:e8:8e:57:c5:77:6b:2d:4d:88:e9:5d:
+ 62:d5:a2:f8:70:e1:70:eb:45:23:0e:f0:00:46:c2:48:31:e8:
+ e7:36:80:36:2d:22:f2:01:27:53:eb:ce:a7:69:49:82:bf:e7:
+ 0f:9c:f3:20:2e:f5:fa:5d:ce:ea:58:3a:8f:d8:aa:7d:30:b7:
+ 74:96:7c:3d:6e:b4:ec:4a:3b:59:b6:a9:50:0d:0f:05:06:70:
+ 26:b9:95:91:d1:5e:24:8c:8f:ca:74:57:97:90:8b:5a:b7:fe:
+ 8d:ad:d8:e8:c2:06:bc:08:56:21:02:12:53:c6:9f:86:04:58:
+ ca:2d:f8:03:0d:57:0b:1c:37:bd:f0:5a:35:f2:fe:3b:d6:a4:
+ 37:15:e9:f8:08:92:96:3d:74:c8:b5:5c:6e:65:08:e7:df:69:
+ 73:9c:ec:e3:30:5a:a6:df:5c:be:da:7f:00:ee:a5:da:2b:5c:
+ 1e:2a:6a:c0:a3:ae:1e:f1
+-----BEGIN CERTIFICATE-----
+MIIF5TCCA82gAwIBAgIQE4v+8zKU+dgW+UXCcZUpmDANBgkqhkiG9w0BAQsFADB9
+MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
+U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
+cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTUxMjE2MDEwMDA1WhcN
+MzAxMjE2MDEwMDA1WjB4MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20g
+THRkLjEpMCcGA1UECxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx
+JjAkBgNVBAMTHVN0YXJ0Q29tIENsYXNzIDMgT1YgU2VydmVyIENBMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr2ccb+VF4NdGS3UstoDymhdNLf/ertLU
+AIo6uDH+jjee+qrVo1sWEsEZPjSFlsO+07ND9I1vFr0wugf82JrBeYmAbaCMvt03
+9+sF01N/V1h2VbaoqIZEuLvQE9r9j+HyzaAVOFVWzibPfJN1KXoKq/u6CTggEVcH
+XX9JnypKZx6eWOnHf/nD7f5fTa+4T53faS1pGzpYgWljMOqHjQ9SnVraOUS6n4mf
+NrbCGVzZJnjZrl78lZC/6BHARw93id1qKE8KvDJkV0M9CGWT5UWu3SgMJyyOpisJ
+A12heNKMq7ZruUbJGQA5ub/GEytzch/yPje46LkUZYhN4vEb2KUdOwIDAQABo4IB
+ZDCCAWAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
+BQcDATASBgNVHRMBAf8ECDAGAQH/AgEAMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6
+Ly9jcmwuc3RhcnRzc2wuY29tL3Nmc2NhLmNybDBmBggrBgEFBQcBAQRaMFgwJAYI
+KwYBBQUHMAGGGGh0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbTAwBggrBgEFBQcwAoYk
+aHR0cDovL2FpYS5zdGFydHNzbC5jb20vY2VydHMvY2EuY3J0MB0GA1UdDgQWBBSx
+PxySe5KwWiWzOPucB6QmUDLjUTAfBgNVHSMEGDAWgBROC+8apEBbpRdphzDKNGhD
+0EGu8jA/BgNVHSAEODA2MDQGBFUdIAAwLDAqBggrBgEFBQcCARYeaHR0cDovL3d3
+dy5zdGFydHNzbC5jb20vcG9saWN5MA0GCSqGSIb3DQEBCwUAA4ICAQCF8ugU0xvB
+oRYdpPRNulGLXFKxVFQSFheclnhv07/fQzb1EolhckTfHJsJT2AmaMHmZlBws2rx
+qGoMHi6T8e4HPgndMEWyVo7cLFyrSfq5BANAFXq1MOAdkY+m1m8fmaCElTm9rHd/
+ckvdLa7/qFgdRifUg8dpZJ8ZuxD4BEKHWV0CsdblyNpDMKPoN6XSSAuig06dT4NY
+nddHIrGJ8Ik7PShDLJsXfAPunSYl4AS4HQRXQkfaWGnw0ymrEgKZKyrYnaAfVF4j
+mgzSmVjEoeVJwiWnZCBSLueJ9RnAi9BjsXgevgFHvnaBRvGZH5SavvqCFbWEhHl1
+k7qfteSbwstpXL0fVQqnJjAFUb5l7lepat+9+TYvrR5GQSuxiNCIJYVAF3m/PY3i
+9C3qMDHfoUDLNf+Cn/WZPEr9naHRVcwgqBzYIAWrsxRllVPY6I5XxXdrLU2I6V1i
+1aL4cOFw60UjDvAARsJIMejnNoA2LSLyASdT686naUmCv+cPnPMgLvX6Xc7qWDqP
+2Kp9MLd0lnw9brTsSjtZtqlQDQ8FBnAmuZWR0V4kjI/KdFeXkItat/6Nrdjowga8
+CFYhAhJTxp+GBFjKLfgDDVcLHDe98Fo18v471qQ3Fen4CJKWPXTItVxuZQjn32lz
+nOzjMFqm31y+2n8A7qXaK1weKmrAo64e8Q==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert50[] = {
+ 0x30, 0x82, 0x05, 0xe5, 0x30, 0x82, 0x03, 0xcd, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x13, 0x8b, 0xfe, 0xf3, 0x32, 0x94, 0xf9, 0xd8, 0x16,
+ 0xf9, 0x45, 0xc2, 0x71, 0x95, 0x29, 0x98, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x7d,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+ 0x4c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d,
+ 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x4c, 0x74, 0x64,
+ 0x2e, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x22,
+ 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69, 0x67, 0x69, 0x74,
+ 0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x31, 0x29,
+ 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x20, 0x53, 0x74, 0x61,
+ 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68,
+ 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x31,
+ 0x32, 0x31, 0x36, 0x30, 0x31, 0x30, 0x30, 0x30, 0x35, 0x5a, 0x17, 0x0d,
+ 0x33, 0x30, 0x31, 0x32, 0x31, 0x36, 0x30, 0x31, 0x30, 0x30, 0x30, 0x35,
+ 0x5a, 0x30, 0x78, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20,
+ 0x4c, 0x74, 0x64, 0x2e, 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20,
+ 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31,
+ 0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1d, 0x53, 0x74,
+ 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73,
+ 0x20, 0x33, 0x20, 0x4f, 0x56, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xaf, 0x67, 0x1c, 0x6f, 0xe5, 0x45, 0xe0, 0xd7, 0x46, 0x4b, 0x75, 0x2c,
+ 0xb6, 0x80, 0xf2, 0x9a, 0x17, 0x4d, 0x2d, 0xff, 0xde, 0xae, 0xd2, 0xd4,
+ 0x00, 0x8a, 0x3a, 0xb8, 0x31, 0xfe, 0x8e, 0x37, 0x9e, 0xfa, 0xaa, 0xd5,
+ 0xa3, 0x5b, 0x16, 0x12, 0xc1, 0x19, 0x3e, 0x34, 0x85, 0x96, 0xc3, 0xbe,
+ 0xd3, 0xb3, 0x43, 0xf4, 0x8d, 0x6f, 0x16, 0xbd, 0x30, 0xba, 0x07, 0xfc,
+ 0xd8, 0x9a, 0xc1, 0x79, 0x89, 0x80, 0x6d, 0xa0, 0x8c, 0xbe, 0xdd, 0x37,
+ 0xf7, 0xeb, 0x05, 0xd3, 0x53, 0x7f, 0x57, 0x58, 0x76, 0x55, 0xb6, 0xa8,
+ 0xa8, 0x86, 0x44, 0xb8, 0xbb, 0xd0, 0x13, 0xda, 0xfd, 0x8f, 0xe1, 0xf2,
+ 0xcd, 0xa0, 0x15, 0x38, 0x55, 0x56, 0xce, 0x26, 0xcf, 0x7c, 0x93, 0x75,
+ 0x29, 0x7a, 0x0a, 0xab, 0xfb, 0xba, 0x09, 0x38, 0x20, 0x11, 0x57, 0x07,
+ 0x5d, 0x7f, 0x49, 0x9f, 0x2a, 0x4a, 0x67, 0x1e, 0x9e, 0x58, 0xe9, 0xc7,
+ 0x7f, 0xf9, 0xc3, 0xed, 0xfe, 0x5f, 0x4d, 0xaf, 0xb8, 0x4f, 0x9d, 0xdf,
+ 0x69, 0x2d, 0x69, 0x1b, 0x3a, 0x58, 0x81, 0x69, 0x63, 0x30, 0xea, 0x87,
+ 0x8d, 0x0f, 0x52, 0x9d, 0x5a, 0xda, 0x39, 0x44, 0xba, 0x9f, 0x89, 0x9f,
+ 0x36, 0xb6, 0xc2, 0x19, 0x5c, 0xd9, 0x26, 0x78, 0xd9, 0xae, 0x5e, 0xfc,
+ 0x95, 0x90, 0xbf, 0xe8, 0x11, 0xc0, 0x47, 0x0f, 0x77, 0x89, 0xdd, 0x6a,
+ 0x28, 0x4f, 0x0a, 0xbc, 0x32, 0x64, 0x57, 0x43, 0x3d, 0x08, 0x65, 0x93,
+ 0xe5, 0x45, 0xae, 0xdd, 0x28, 0x0c, 0x27, 0x2c, 0x8e, 0xa6, 0x2b, 0x09,
+ 0x03, 0x5d, 0xa1, 0x78, 0xd2, 0x8c, 0xab, 0xb6, 0x6b, 0xb9, 0x46, 0xc9,
+ 0x19, 0x00, 0x39, 0xb9, 0xbf, 0xc6, 0x13, 0x2b, 0x73, 0x72, 0x1f, 0xf2,
+ 0x3e, 0x37, 0xb8, 0xe8, 0xb9, 0x14, 0x65, 0x88, 0x4d, 0xe2, 0xf1, 0x1b,
+ 0xd8, 0xa5, 0x1d, 0x3b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
+ 0x64, 0x30, 0x82, 0x01, 0x60, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f,
+ 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06,
+ 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x03, 0x01, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+ 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
+ 0x30, 0x32, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30,
+ 0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a,
+ 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73,
+ 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x73, 0x63, 0x61,
+ 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x66, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x01, 0x01, 0x04, 0x5a, 0x30, 0x58, 0x30, 0x24, 0x06, 0x08,
+ 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x73, 0x74,
+ 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x30,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x24,
+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x69, 0x61, 0x2e, 0x73,
+ 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x74,
+ 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xb1,
+ 0x3f, 0x1c, 0x92, 0x7b, 0x92, 0xb0, 0x5a, 0x25, 0xb3, 0x38, 0xfb, 0x9c,
+ 0x07, 0xa4, 0x26, 0x50, 0x32, 0xe3, 0x51, 0x30, 0x1f, 0x06, 0x03, 0x55,
+ 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x4e, 0x0b, 0xef, 0x1a,
+ 0xa4, 0x40, 0x5b, 0xa5, 0x17, 0x69, 0x87, 0x30, 0xca, 0x34, 0x68, 0x43,
+ 0xd0, 0x41, 0xae, 0xf2, 0x30, 0x3f, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+ 0x38, 0x30, 0x36, 0x30, 0x34, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30,
+ 0x2c, 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+ 0x01, 0x16, 0x1e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+ 0x77, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+ 0x03, 0x82, 0x02, 0x01, 0x00, 0x85, 0xf2, 0xe8, 0x14, 0xd3, 0x1b, 0xc1,
+ 0xa1, 0x16, 0x1d, 0xa4, 0xf4, 0x4d, 0xba, 0x51, 0x8b, 0x5c, 0x52, 0xb1,
+ 0x54, 0x54, 0x12, 0x16, 0x17, 0x9c, 0x96, 0x78, 0x6f, 0xd3, 0xbf, 0xdf,
+ 0x43, 0x36, 0xf5, 0x12, 0x89, 0x61, 0x72, 0x44, 0xdf, 0x1c, 0x9b, 0x09,
+ 0x4f, 0x60, 0x26, 0x68, 0xc1, 0xe6, 0x66, 0x50, 0x70, 0xb3, 0x6a, 0xf1,
+ 0xa8, 0x6a, 0x0c, 0x1e, 0x2e, 0x93, 0xf1, 0xee, 0x07, 0x3e, 0x09, 0xdd,
+ 0x30, 0x45, 0xb2, 0x56, 0x8e, 0xdc, 0x2c, 0x5c, 0xab, 0x49, 0xfa, 0xb9,
+ 0x04, 0x03, 0x40, 0x15, 0x7a, 0xb5, 0x30, 0xe0, 0x1d, 0x91, 0x8f, 0xa6,
+ 0xd6, 0x6f, 0x1f, 0x99, 0xa0, 0x84, 0x95, 0x39, 0xbd, 0xac, 0x77, 0x7f,
+ 0x72, 0x4b, 0xdd, 0x2d, 0xae, 0xff, 0xa8, 0x58, 0x1d, 0x46, 0x27, 0xd4,
+ 0x83, 0xc7, 0x69, 0x64, 0x9f, 0x19, 0xbb, 0x10, 0xf8, 0x04, 0x42, 0x87,
+ 0x59, 0x5d, 0x02, 0xb1, 0xd6, 0xe5, 0xc8, 0xda, 0x43, 0x30, 0xa3, 0xe8,
+ 0x37, 0xa5, 0xd2, 0x48, 0x0b, 0xa2, 0x83, 0x4e, 0x9d, 0x4f, 0x83, 0x58,
+ 0x9d, 0xd7, 0x47, 0x22, 0xb1, 0x89, 0xf0, 0x89, 0x3b, 0x3d, 0x28, 0x43,
+ 0x2c, 0x9b, 0x17, 0x7c, 0x03, 0xee, 0x9d, 0x26, 0x25, 0xe0, 0x04, 0xb8,
+ 0x1d, 0x04, 0x57, 0x42, 0x47, 0xda, 0x58, 0x69, 0xf0, 0xd3, 0x29, 0xab,
+ 0x12, 0x02, 0x99, 0x2b, 0x2a, 0xd8, 0x9d, 0xa0, 0x1f, 0x54, 0x5e, 0x23,
+ 0x9a, 0x0c, 0xd2, 0x99, 0x58, 0xc4, 0xa1, 0xe5, 0x49, 0xc2, 0x25, 0xa7,
+ 0x64, 0x20, 0x52, 0x2e, 0xe7, 0x89, 0xf5, 0x19, 0xc0, 0x8b, 0xd0, 0x63,
+ 0xb1, 0x78, 0x1e, 0xbe, 0x01, 0x47, 0xbe, 0x76, 0x81, 0x46, 0xf1, 0x99,
+ 0x1f, 0x94, 0x9a, 0xbe, 0xfa, 0x82, 0x15, 0xb5, 0x84, 0x84, 0x79, 0x75,
+ 0x93, 0xba, 0x9f, 0xb5, 0xe4, 0x9b, 0xc2, 0xcb, 0x69, 0x5c, 0xbd, 0x1f,
+ 0x55, 0x0a, 0xa7, 0x26, 0x30, 0x05, 0x51, 0xbe, 0x65, 0xee, 0x57, 0xa9,
+ 0x6a, 0xdf, 0xbd, 0xf9, 0x36, 0x2f, 0xad, 0x1e, 0x46, 0x41, 0x2b, 0xb1,
+ 0x88, 0xd0, 0x88, 0x25, 0x85, 0x40, 0x17, 0x79, 0xbf, 0x3d, 0x8d, 0xe2,
+ 0xf4, 0x2d, 0xea, 0x30, 0x31, 0xdf, 0xa1, 0x40, 0xcb, 0x35, 0xff, 0x82,
+ 0x9f, 0xf5, 0x99, 0x3c, 0x4a, 0xfd, 0x9d, 0xa1, 0xd1, 0x55, 0xcc, 0x20,
+ 0xa8, 0x1c, 0xd8, 0x20, 0x05, 0xab, 0xb3, 0x14, 0x65, 0x95, 0x53, 0xd8,
+ 0xe8, 0x8e, 0x57, 0xc5, 0x77, 0x6b, 0x2d, 0x4d, 0x88, 0xe9, 0x5d, 0x62,
+ 0xd5, 0xa2, 0xf8, 0x70, 0xe1, 0x70, 0xeb, 0x45, 0x23, 0x0e, 0xf0, 0x00,
+ 0x46, 0xc2, 0x48, 0x31, 0xe8, 0xe7, 0x36, 0x80, 0x36, 0x2d, 0x22, 0xf2,
+ 0x01, 0x27, 0x53, 0xeb, 0xce, 0xa7, 0x69, 0x49, 0x82, 0xbf, 0xe7, 0x0f,
+ 0x9c, 0xf3, 0x20, 0x2e, 0xf5, 0xfa, 0x5d, 0xce, 0xea, 0x58, 0x3a, 0x8f,
+ 0xd8, 0xaa, 0x7d, 0x30, 0xb7, 0x74, 0x96, 0x7c, 0x3d, 0x6e, 0xb4, 0xec,
+ 0x4a, 0x3b, 0x59, 0xb6, 0xa9, 0x50, 0x0d, 0x0f, 0x05, 0x06, 0x70, 0x26,
+ 0xb9, 0x95, 0x91, 0xd1, 0x5e, 0x24, 0x8c, 0x8f, 0xca, 0x74, 0x57, 0x97,
+ 0x90, 0x8b, 0x5a, 0xb7, 0xfe, 0x8d, 0xad, 0xd8, 0xe8, 0xc2, 0x06, 0xbc,
+ 0x08, 0x56, 0x21, 0x02, 0x12, 0x53, 0xc6, 0x9f, 0x86, 0x04, 0x58, 0xca,
+ 0x2d, 0xf8, 0x03, 0x0d, 0x57, 0x0b, 0x1c, 0x37, 0xbd, 0xf0, 0x5a, 0x35,
+ 0xf2, 0xfe, 0x3b, 0xd6, 0xa4, 0x37, 0x15, 0xe9, 0xf8, 0x08, 0x92, 0x96,
+ 0x3d, 0x74, 0xc8, 0xb5, 0x5c, 0x6e, 0x65, 0x08, 0xe7, 0xdf, 0x69, 0x73,
+ 0x9c, 0xec, 0xe3, 0x30, 0x5a, 0xa6, 0xdf, 0x5c, 0xbe, 0xda, 0x7f, 0x00,
+ 0xee, 0xa5, 0xda, 0x2b, 0x5c, 0x1e, 0x2a, 0x6a, 0xc0, 0xa3, 0xae, 0x1e,
+ 0xf1,
+};
+
+#if 0
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 7250751724796726 (0x19c28530e93b36)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
+ Validity
+ Not Before: Sep 17 22:46:36 2006 GMT
+ Not After : Dec 31 23:59:59 2019 GMT
+ Subject: C=CN, O=WoSign CA Limited, CN=Certification Authority of WoSign
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (4096 bit)
+ Modulus:
+ 00:bd:ca:8d:ac:b8:91:15:56:97:7b:6b:5c:7a:c2:
+ de:6b:d9:a1:b0:c3:10:23:fa:a7:a1:b2:cc:31:fa:
+ 3e:d9:a6:29:6f:16:3d:e0:6b:f8:b8:40:5f:db:39:
+ a8:00:7a:8b:a0:4d:54:7d:c2:22:78:fc:8e:09:b8:
+ a8:85:d7:cc:95:97:4b:74:d8:9e:7e:f0:00:e4:0e:
+ 89:ae:49:28:44:1a:10:99:32:0f:25:88:53:a4:0d:
+ b3:0f:12:08:16:0b:03:71:27:1c:7f:e1:db:d2:fd:
+ 67:68:c4:05:5d:0a:0e:5d:70:d7:d8:97:a0:bc:53:
+ 41:9a:91:8d:f4:9e:36:66:7a:7e:56:c1:90:5f:e6:
+ b1:68:20:36:a4:8c:24:2c:2c:47:0b:59:76:66:30:
+ b5:be:de:ed:8f:f8:9d:d3:bb:01:30:e6:f2:f3:0e:
+ e0:2c:92:80:f3:85:f9:28:8a:b4:54:2e:9a:ed:f7:
+ 76:fc:15:68:16:eb:4a:6c:eb:2e:12:8f:d4:cf:fe:
+ 0c:c7:5c:1d:0b:7e:05:32:be:5e:b0:09:2a:42:d5:
+ c9:4e:90:b3:59:0d:bb:7a:7e:cd:d5:08:5a:b4:7f:
+ d8:1c:69:11:f9:27:0f:7b:06:af:54:83:18:7b:e1:
+ dd:54:7a:51:68:6e:77:fc:c6:bf:52:4a:66:46:a1:
+ b2:67:1a:bb:a3:4f:77:a0:be:5d:ff:fc:56:0b:43:
+ 72:77:90:ca:9e:f9:f2:39:f5:0d:a9:f4:ea:d7:e7:
+ b3:10:2f:30:42:37:21:cc:30:70:c9:86:98:0f:cc:
+ 58:4d:83:bb:7d:e5:1a:a5:37:8d:b6:ac:32:97:00:
+ 3a:63:71:24:1e:9e:37:c4:ff:74:d4:37:c0:e2:fe:
+ 88:46:60:11:dd:08:3f:50:36:ab:b8:7a:a4:95:62:
+ 6a:6e:b0:ca:6a:21:5a:69:f3:f3:fb:1d:70:39:95:
+ f3:a7:6e:a6:81:89:a1:88:c5:3b:71:ca:a3:52:ee:
+ 83:bb:fd:a0:77:f4:e4:6f:e7:42:db:6d:4a:99:8a:
+ 34:48:bc:17:dc:e4:80:08:22:b6:f2:31:c0:3f:04:
+ 3e:eb:9f:20:79:d6:b8:06:64:64:02:31:d7:a9:cd:
+ 52:fb:84:45:69:09:00:2a:dc:55:8b:c4:06:46:4b:
+ c0:4a:1d:09:5b:39:28:fd:a9:ab:ce:00:f9:2e:48:
+ 4b:26:e6:30:4c:a5:58:ca:b4:44:82:4f:e7:91:1e:
+ 33:c3:b0:93:ff:11:fc:81:d2:ca:1f:71:29:dd:76:
+ 4f:92:25:af:1d:81:b7:0f:2f:8c:c3:06:cc:2f:27:
+ a3:4a:e4:0e:99:ba:7c:1e:45:1f:7f:aa:19:45:96:
+ fd:fc:3d
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints: critical
+ CA:TRUE, pathlen:2
+ X509v3 Key Usage: critical
+ Certificate Sign, CRL Sign
+ X509v3 Subject Key Identifier:
+ E1:66:CF:0E:D1:F1:B3:4B:B7:06:20:14:FE:87:12:D5:F6:FE:FB:3E
+ X509v3 Authority Key Identifier:
+ keyid:4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2
+
+ Authority Information Access:
+ OCSP - URI:http://ocsp.startssl.com/ca
+ CA Issuers - URI:http://aia.startssl.com/certs/ca.crt
+
+ X509v3 CRL Distribution Points:
+
+ Full Name:
+ URI:http://crl.startssl.com/sfsca.crl
+
+ Signature Algorithm: sha256WithRSAEncryption
+ b6:6d:f8:70:fb:e2:0d:4c:98:b3:07:49:15:f5:04:c4:6c:ca:
+ ca:f5:68:a0:08:fe:12:6d:9c:04:06:c9:ad:9a:91:52:3e:78:
+ c4:5c:ee:9f:54:1d:ee:e3:f1:5e:30:c9:49:e1:39:e0:a6:9d:
+ 36:6c:57:fa:e6:34:4f:55:e8:87:a8:2c:dd:05:f1:58:12:91:
+ e8:ca:ce:28:78:8f:df:07:85:01:a5:dc:45:96:05:d4:80:b2:
+ 2b:05:9a:cb:9a:a5:8b:e0:3a:67:e6:73:47:be:4a:fd:27:b1:
+ 88:ef:e6:ca:cf:8d:0e:26:9f:fa:5f:57:78:ad:6d:fe:ae:9b:
+ 35:08:b1:c3:ba:c1:00:4a:4b:7d:14:bd:f7:f1:d3:55:18:ac:
+ d0:33:70:88:6d:c4:09:71:14:a6:2b:4f:88:81:e7:0b:00:37:
+ a9:15:7d:7e:d7:01:96:3f:2f:af:7b:62:ae:0a:4a:bf:4b:39:
+ 2e:35:10:8b:fe:04:39:e4:3c:3a:0c:09:56:40:3a:b5:f4:c2:
+ 68:0c:b5:f9:52:cd:ee:9d:f8:98:fc:78:e7:58:47:8f:1c:73:
+ 58:69:33:ab:ff:dd:df:8e:24:01:77:98:19:3a:b0:66:79:bc:
+ e1:08:a3:0e:4f:c1:04:b3:f3:01:c8:eb:d3:59:1c:35:d2:93:
+ 1e:70:65:82:7f:db:cf:fb:c8:99:12:60:c3:44:6f:3a:80:4b:
+ d7:be:21:aa:14:7a:64:cb:dd:37:43:45:5b:32:2e:45:f0:d9:
+ 59:1f:6b:18:f0:7c:e9:55:36:19:61:5f:b5:7d:f1:8d:bd:88:
+ e4:75:4b:98:dd:27:b0:e4:84:44:2a:61:84:57:05:82:11:1f:
+ aa:35:58:f3:20:0e:af:59:ef:fa:55:72:72:0d:26:d0:9b:53:
+ 49:ac:ce:37:2e:65:61:ff:f6:ec:1b:ea:f6:f1:a6:d3:d1:b5:
+ 7b:be:35:f4:22:c1:bc:8d:01:bd:68:5e:83:0d:2f:ec:d6:da:
+ 63:0c:27:d1:54:3e:e4:a8:d3:ce:4b:32:b8:91:94:ff:fb:5b:
+ 49:2d:75:18:a8:ba:71:9a:3b:ae:d9:c0:a9:4f:87:91:ed:8b:
+ 7b:6b:20:98:89:39:83:4f:80:c4:69:cc:17:c9:c8:4e:be:e4:
+ a9:a5:81:76:70:06:04:32:cd:83:65:f4:bc:7d:3e:13:bc:d2:
+ e8:6f:63:aa:b5:3b:da:8d:86:32:82:78:9d:d9:cc:ff:bf:57:
+ 64:74:ed:28:3d:44:62:15:61:4b:f7:94:b0:0d:2a:67:1c:f0:
+ cb:9b:a5:92:bf:f8:41:5a:c1:3d:60:ed:9f:bb:b8:6d:9b:ce:
+ a9:6a:16:3f:7e:ea:06:f1
+-----BEGIN CERTIFICATE-----
+MIIGXDCCBESgAwIBAgIHGcKFMOk7NjANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQG
+EwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERp
+Z2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MjI0NjM2WhcNMTkxMjMxMjM1
+OTU5WjBVMQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQx
+KjAoBgNVBAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL3Kjay4kRVWl3trXHrC3mvZobDD
+ECP6p6GyzDH6PtmmKW8WPeBr+LhAX9s5qAB6i6BNVH3CInj8jgm4qIXXzJWXS3TY
+nn7wAOQOia5JKEQaEJkyDyWIU6QNsw8SCBYLA3EnHH/h29L9Z2jEBV0KDl1w19iX
+oLxTQZqRjfSeNmZ6flbBkF/msWggNqSMJCwsRwtZdmYwtb7e7Y/4ndO7ATDm8vMO
+4CySgPOF+SiKtFQumu33dvwVaBbrSmzrLhKP1M/+DMdcHQt+BTK+XrAJKkLVyU6Q
+s1kNu3p+zdUIWrR/2BxpEfknD3sGr1SDGHvh3VR6UWhud/zGv1JKZkahsmcau6NP
+d6C+Xf/8VgtDcneQyp758jn1Dan06tfnsxAvMEI3IcwwcMmGmA/MWE2Du33lGqU3
+jbasMpcAOmNxJB6eN8T/dNQ3wOL+iEZgEd0IP1A2q7h6pJViam6wymohWmnz8/sd
+cDmV86dupoGJoYjFO3HKo1Lug7v9oHf05G/nQtttSpmKNEi8F9zkgAgitvIxwD8E
+PuufIHnWuAZkZAIx16nNUvuERWkJACrcVYvEBkZLwEodCVs5KP2pq84A+S5ISybm
+MEylWMq0RIJP55EeM8Owk/8R/IHSyh9xKd12T5Ilrx2Btw8vjMMGzC8no0rkDpm6
+fB5FH3+qGUWW/fw9AgMBAAGjggEHMIIBAzASBgNVHRMBAf8ECDAGAQH/AgECMA4G
+A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU4WbPDtHxs0u3BiAU/ocS1fb++z4wHwYD
+VR0jBBgwFoAUTgvvGqRAW6UXaYcwyjRoQ9BBrvIwaQYIKwYBBQUHAQEEXTBbMCcG
+CCsGAQUFBzABhhtodHRwOi8vb2NzcC5zdGFydHNzbC5jb20vY2EwMAYIKwYBBQUH
+MAKGJGh0dHA6Ly9haWEuc3RhcnRzc2wuY29tL2NlcnRzL2NhLmNydDAyBgNVHR8E
+KzApMCegJaAjhiFodHRwOi8vY3JsLnN0YXJ0c3NsLmNvbS9zZnNjYS5jcmwwDQYJ
+KoZIhvcNAQELBQADggIBALZt+HD74g1MmLMHSRX1BMRsysr1aKAI/hJtnAQGya2a
+kVI+eMRc7p9UHe7j8V4wyUnhOeCmnTZsV/rmNE9V6IeoLN0F8VgSkejKzih4j98H
+hQGl3EWWBdSAsisFmsuapYvgOmfmc0e+Sv0nsYjv5srPjQ4mn/pfV3itbf6umzUI
+scO6wQBKS30Uvffx01UYrNAzcIhtxAlxFKYrT4iB5wsAN6kVfX7XAZY/L697Yq4K
+Sr9LOS41EIv+BDnkPDoMCVZAOrX0wmgMtflSze6d+Jj8eOdYR48cc1hpM6v/3d+O
+JAF3mBk6sGZ5vOEIow5PwQSz8wHI69NZHDXSkx5wZYJ/28/7yJkSYMNEbzqAS9e+
+IaoUemTL3TdDRVsyLkXw2VkfaxjwfOlVNhlhX7V98Y29iOR1S5jdJ7DkhEQqYYRX
+BYIRH6o1WPMgDq9Z7/pVcnINJtCbU0mszjcuZWH/9uwb6vbxptPRtXu+NfQiwbyN
+Ab1oXoMNL+zW2mMMJ9FUPuSo085LMriRlP/7W0ktdRiounGaO67ZwKlPh5Hti3tr
+IJiJOYNPgMRpzBfJyE6+5KmlgXZwBgQyzYNl9Lx9PhO80uhvY6q1O9qNhjKCeJ3Z
+zP+/V2R07Sg9RGIVYUv3lLANKmcc8MubpZK/+EFawT1g7Z+7uG2bzqlqFj9+6gbx
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert51[] = {
+ 0x30, 0x82, 0x06, 0x5c, 0x30, 0x82, 0x04, 0x44, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x07, 0x19, 0xc2, 0x85, 0x30, 0xe9, 0x3b, 0x36, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+ 0x00, 0x30, 0x7d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+ 0x0a, 0x13, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20,
+ 0x4c, 0x74, 0x64, 0x2e, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04,
+ 0x0b, 0x13, 0x22, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69,
+ 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+ 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e,
+ 0x67, 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x20,
+ 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x65, 0x72,
+ 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41,
+ 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d,
+ 0x30, 0x36, 0x30, 0x39, 0x31, 0x37, 0x32, 0x32, 0x34, 0x36, 0x33, 0x36,
+ 0x5a, 0x17, 0x0d, 0x31, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35,
+ 0x39, 0x35, 0x39, 0x5a, 0x30, 0x55, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
+ 0x55, 0x04, 0x06, 0x13, 0x02, 0x43, 0x4e, 0x31, 0x1a, 0x30, 0x18, 0x06,
+ 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e,
+ 0x20, 0x43, 0x41, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x31,
+ 0x2a, 0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x21, 0x43, 0x65,
+ 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+ 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66,
+ 0x20, 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x30, 0x82, 0x02, 0x22, 0x30,
+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02,
+ 0x82, 0x02, 0x01, 0x00, 0xbd, 0xca, 0x8d, 0xac, 0xb8, 0x91, 0x15, 0x56,
+ 0x97, 0x7b, 0x6b, 0x5c, 0x7a, 0xc2, 0xde, 0x6b, 0xd9, 0xa1, 0xb0, 0xc3,
+ 0x10, 0x23, 0xfa, 0xa7, 0xa1, 0xb2, 0xcc, 0x31, 0xfa, 0x3e, 0xd9, 0xa6,
+ 0x29, 0x6f, 0x16, 0x3d, 0xe0, 0x6b, 0xf8, 0xb8, 0x40, 0x5f, 0xdb, 0x39,
+ 0xa8, 0x00, 0x7a, 0x8b, 0xa0, 0x4d, 0x54, 0x7d, 0xc2, 0x22, 0x78, 0xfc,
+ 0x8e, 0x09, 0xb8, 0xa8, 0x85, 0xd7, 0xcc, 0x95, 0x97, 0x4b, 0x74, 0xd8,
+ 0x9e, 0x7e, 0xf0, 0x00, 0xe4, 0x0e, 0x89, 0xae, 0x49, 0x28, 0x44, 0x1a,
+ 0x10, 0x99, 0x32, 0x0f, 0x25, 0x88, 0x53, 0xa4, 0x0d, 0xb3, 0x0f, 0x12,
+ 0x08, 0x16, 0x0b, 0x03, 0x71, 0x27, 0x1c, 0x7f, 0xe1, 0xdb, 0xd2, 0xfd,
+ 0x67, 0x68, 0xc4, 0x05, 0x5d, 0x0a, 0x0e, 0x5d, 0x70, 0xd7, 0xd8, 0x97,
+ 0xa0, 0xbc, 0x53, 0x41, 0x9a, 0x91, 0x8d, 0xf4, 0x9e, 0x36, 0x66, 0x7a,
+ 0x7e, 0x56, 0xc1, 0x90, 0x5f, 0xe6, 0xb1, 0x68, 0x20, 0x36, 0xa4, 0x8c,
+ 0x24, 0x2c, 0x2c, 0x47, 0x0b, 0x59, 0x76, 0x66, 0x30, 0xb5, 0xbe, 0xde,
+ 0xed, 0x8f, 0xf8, 0x9d, 0xd3, 0xbb, 0x01, 0x30, 0xe6, 0xf2, 0xf3, 0x0e,
+ 0xe0, 0x2c, 0x92, 0x80, 0xf3, 0x85, 0xf9, 0x28, 0x8a, 0xb4, 0x54, 0x2e,
+ 0x9a, 0xed, 0xf7, 0x76, 0xfc, 0x15, 0x68, 0x16, 0xeb, 0x4a, 0x6c, 0xeb,
+ 0x2e, 0x12, 0x8f, 0xd4, 0xcf, 0xfe, 0x0c, 0xc7, 0x5c, 0x1d, 0x0b, 0x7e,
+ 0x05, 0x32, 0xbe, 0x5e, 0xb0, 0x09, 0x2a, 0x42, 0xd5, 0xc9, 0x4e, 0x90,
+ 0xb3, 0x59, 0x0d, 0xbb, 0x7a, 0x7e, 0xcd, 0xd5, 0x08, 0x5a, 0xb4, 0x7f,
+ 0xd8, 0x1c, 0x69, 0x11, 0xf9, 0x27, 0x0f, 0x7b, 0x06, 0xaf, 0x54, 0x83,
+ 0x18, 0x7b, 0xe1, 0xdd, 0x54, 0x7a, 0x51, 0x68, 0x6e, 0x77, 0xfc, 0xc6,
+ 0xbf, 0x52, 0x4a, 0x66, 0x46, 0xa1, 0xb2, 0x67, 0x1a, 0xbb, 0xa3, 0x4f,
+ 0x77, 0xa0, 0xbe, 0x5d, 0xff, 0xfc, 0x56, 0x0b, 0x43, 0x72, 0x77, 0x90,
+ 0xca, 0x9e, 0xf9, 0xf2, 0x39, 0xf5, 0x0d, 0xa9, 0xf4, 0xea, 0xd7, 0xe7,
+ 0xb3, 0x10, 0x2f, 0x30, 0x42, 0x37, 0x21, 0xcc, 0x30, 0x70, 0xc9, 0x86,
+ 0x98, 0x0f, 0xcc, 0x58, 0x4d, 0x83, 0xbb, 0x7d, 0xe5, 0x1a, 0xa5, 0x37,
+ 0x8d, 0xb6, 0xac, 0x32, 0x97, 0x00, 0x3a, 0x63, 0x71, 0x24, 0x1e, 0x9e,
+ 0x37, 0xc4, 0xff, 0x74, 0xd4, 0x37, 0xc0, 0xe2, 0xfe, 0x88, 0x46, 0x60,
+ 0x11, 0xdd, 0x08, 0x3f, 0x50, 0x36, 0xab, 0xb8, 0x7a, 0xa4, 0x95, 0x62,
+ 0x6a, 0x6e, 0xb0, 0xca, 0x6a, 0x21, 0x5a, 0x69, 0xf3, 0xf3, 0xfb, 0x1d,
+ 0x70, 0x39, 0x95, 0xf3, 0xa7, 0x6e, 0xa6, 0x81, 0x89, 0xa1, 0x88, 0xc5,
+ 0x3b, 0x71, 0xca, 0xa3, 0x52, 0xee, 0x83, 0xbb, 0xfd, 0xa0, 0x77, 0xf4,
+ 0xe4, 0x6f, 0xe7, 0x42, 0xdb, 0x6d, 0x4a, 0x99, 0x8a, 0x34, 0x48, 0xbc,
+ 0x17, 0xdc, 0xe4, 0x80, 0x08, 0x22, 0xb6, 0xf2, 0x31, 0xc0, 0x3f, 0x04,
+ 0x3e, 0xeb, 0x9f, 0x20, 0x79, 0xd6, 0xb8, 0x06, 0x64, 0x64, 0x02, 0x31,
+ 0xd7, 0xa9, 0xcd, 0x52, 0xfb, 0x84, 0x45, 0x69, 0x09, 0x00, 0x2a, 0xdc,
+ 0x55, 0x8b, 0xc4, 0x06, 0x46, 0x4b, 0xc0, 0x4a, 0x1d, 0x09, 0x5b, 0x39,
+ 0x28, 0xfd, 0xa9, 0xab, 0xce, 0x00, 0xf9, 0x2e, 0x48, 0x4b, 0x26, 0xe6,
+ 0x30, 0x4c, 0xa5, 0x58, 0xca, 0xb4, 0x44, 0x82, 0x4f, 0xe7, 0x91, 0x1e,
+ 0x33, 0xc3, 0xb0, 0x93, 0xff, 0x11, 0xfc, 0x81, 0xd2, 0xca, 0x1f, 0x71,
+ 0x29, 0xdd, 0x76, 0x4f, 0x92, 0x25, 0xaf, 0x1d, 0x81, 0xb7, 0x0f, 0x2f,
+ 0x8c, 0xc3, 0x06, 0xcc, 0x2f, 0x27, 0xa3, 0x4a, 0xe4, 0x0e, 0x99, 0xba,
+ 0x7c, 0x1e, 0x45, 0x1f, 0x7f, 0xaa, 0x19, 0x45, 0x96, 0xfd, 0xfc, 0x3d,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x07, 0x30, 0x82, 0x01,
+ 0x03, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
+ 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x02, 0x30, 0x0e, 0x06,
+ 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+ 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0xe1, 0x66, 0xcf, 0x0e, 0xd1, 0xf1, 0xb3, 0x4b, 0xb7, 0x06, 0x20, 0x14,
+ 0xfe, 0x87, 0x12, 0xd5, 0xf6, 0xfe, 0xfb, 0x3e, 0x30, 0x1f, 0x06, 0x03,
+ 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x4e, 0x0b, 0xef,
+ 0x1a, 0xa4, 0x40, 0x5b, 0xa5, 0x17, 0x69, 0x87, 0x30, 0xca, 0x34, 0x68,
+ 0x43, 0xd0, 0x41, 0xae, 0xf2, 0x30, 0x69, 0x06, 0x08, 0x2b, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x5d, 0x30, 0x5b, 0x30, 0x27, 0x06,
+ 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1b, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x73,
+ 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x63, 0x61, 0x30, 0x30, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+ 0x30, 0x02, 0x86, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61,
+ 0x69, 0x61, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x63, 0x61,
+ 0x2e, 0x63, 0x72, 0x74, 0x30, 0x32, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
+ 0x2b, 0x30, 0x29, 0x30, 0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x73, 0x74,
+ 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73,
+ 0x66, 0x73, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
+ 0x82, 0x02, 0x01, 0x00, 0xb6, 0x6d, 0xf8, 0x70, 0xfb, 0xe2, 0x0d, 0x4c,
+ 0x98, 0xb3, 0x07, 0x49, 0x15, 0xf5, 0x04, 0xc4, 0x6c, 0xca, 0xca, 0xf5,
+ 0x68, 0xa0, 0x08, 0xfe, 0x12, 0x6d, 0x9c, 0x04, 0x06, 0xc9, 0xad, 0x9a,
+ 0x91, 0x52, 0x3e, 0x78, 0xc4, 0x5c, 0xee, 0x9f, 0x54, 0x1d, 0xee, 0xe3,
+ 0xf1, 0x5e, 0x30, 0xc9, 0x49, 0xe1, 0x39, 0xe0, 0xa6, 0x9d, 0x36, 0x6c,
+ 0x57, 0xfa, 0xe6, 0x34, 0x4f, 0x55, 0xe8, 0x87, 0xa8, 0x2c, 0xdd, 0x05,
+ 0xf1, 0x58, 0x12, 0x91, 0xe8, 0xca, 0xce, 0x28, 0x78, 0x8f, 0xdf, 0x07,
+ 0x85, 0x01, 0xa5, 0xdc, 0x45, 0x96, 0x05, 0xd4, 0x80, 0xb2, 0x2b, 0x05,
+ 0x9a, 0xcb, 0x9a, 0xa5, 0x8b, 0xe0, 0x3a, 0x67, 0xe6, 0x73, 0x47, 0xbe,
+ 0x4a, 0xfd, 0x27, 0xb1, 0x88, 0xef, 0xe6, 0xca, 0xcf, 0x8d, 0x0e, 0x26,
+ 0x9f, 0xfa, 0x5f, 0x57, 0x78, 0xad, 0x6d, 0xfe, 0xae, 0x9b, 0x35, 0x08,
+ 0xb1, 0xc3, 0xba, 0xc1, 0x00, 0x4a, 0x4b, 0x7d, 0x14, 0xbd, 0xf7, 0xf1,
+ 0xd3, 0x55, 0x18, 0xac, 0xd0, 0x33, 0x70, 0x88, 0x6d, 0xc4, 0x09, 0x71,
+ 0x14, 0xa6, 0x2b, 0x4f, 0x88, 0x81, 0xe7, 0x0b, 0x00, 0x37, 0xa9, 0x15,
+ 0x7d, 0x7e, 0xd7, 0x01, 0x96, 0x3f, 0x2f, 0xaf, 0x7b, 0x62, 0xae, 0x0a,
+ 0x4a, 0xbf, 0x4b, 0x39, 0x2e, 0x35, 0x10, 0x8b, 0xfe, 0x04, 0x39, 0xe4,
+ 0x3c, 0x3a, 0x0c, 0x09, 0x56, 0x40, 0x3a, 0xb5, 0xf4, 0xc2, 0x68, 0x0c,
+ 0xb5, 0xf9, 0x52, 0xcd, 0xee, 0x9d, 0xf8, 0x98, 0xfc, 0x78, 0xe7, 0x58,
+ 0x47, 0x8f, 0x1c, 0x73, 0x58, 0x69, 0x33, 0xab, 0xff, 0xdd, 0xdf, 0x8e,
+ 0x24, 0x01, 0x77, 0x98, 0x19, 0x3a, 0xb0, 0x66, 0x79, 0xbc, 0xe1, 0x08,
+ 0xa3, 0x0e, 0x4f, 0xc1, 0x04, 0xb3, 0xf3, 0x01, 0xc8, 0xeb, 0xd3, 0x59,
+ 0x1c, 0x35, 0xd2, 0x93, 0x1e, 0x70, 0x65, 0x82, 0x7f, 0xdb, 0xcf, 0xfb,
+ 0xc8, 0x99, 0x12, 0x60, 0xc3, 0x44, 0x6f, 0x3a, 0x80, 0x4b, 0xd7, 0xbe,
+ 0x21, 0xaa, 0x14, 0x7a, 0x64, 0xcb, 0xdd, 0x37, 0x43, 0x45, 0x5b, 0x32,
+ 0x2e, 0x45, 0xf0, 0xd9, 0x59, 0x1f, 0x6b, 0x18, 0xf0, 0x7c, 0xe9, 0x55,
+ 0x36, 0x19, 0x61, 0x5f, 0xb5, 0x7d, 0xf1, 0x8d, 0xbd, 0x88, 0xe4, 0x75,
+ 0x4b, 0x98, 0xdd, 0x27, 0xb0, 0xe4, 0x84, 0x44, 0x2a, 0x61, 0x84, 0x57,
+ 0x05, 0x82, 0x11, 0x1f, 0xaa, 0x35, 0x58, 0xf3, 0x20, 0x0e, 0xaf, 0x59,
+ 0xef, 0xfa, 0x55, 0x72, 0x72, 0x0d, 0x26, 0xd0, 0x9b, 0x53, 0x49, 0xac,
+ 0xce, 0x37, 0x2e, 0x65, 0x61, 0xff, 0xf6, 0xec, 0x1b, 0xea, 0xf6, 0xf1,
+ 0xa6, 0xd3, 0xd1, 0xb5, 0x7b, 0xbe, 0x35, 0xf4, 0x22, 0xc1, 0xbc, 0x8d,
+ 0x01, 0xbd, 0x68, 0x5e, 0x83, 0x0d, 0x2f, 0xec, 0xd6, 0xda, 0x63, 0x0c,
+ 0x27, 0xd1, 0x54, 0x3e, 0xe4, 0xa8, 0xd3, 0xce, 0x4b, 0x32, 0xb8, 0x91,
+ 0x94, 0xff, 0xfb, 0x5b, 0x49, 0x2d, 0x75, 0x18, 0xa8, 0xba, 0x71, 0x9a,
+ 0x3b, 0xae, 0xd9, 0xc0, 0xa9, 0x4f, 0x87, 0x91, 0xed, 0x8b, 0x7b, 0x6b,
+ 0x20, 0x98, 0x89, 0x39, 0x83, 0x4f, 0x80, 0xc4, 0x69, 0xcc, 0x17, 0xc9,
+ 0xc8, 0x4e, 0xbe, 0xe4, 0xa9, 0xa5, 0x81, 0x76, 0x70, 0x06, 0x04, 0x32,
+ 0xcd, 0x83, 0x65, 0xf4, 0xbc, 0x7d, 0x3e, 0x13, 0xbc, 0xd2, 0xe8, 0x6f,
+ 0x63, 0xaa, 0xb5, 0x3b, 0xda, 0x8d, 0x86, 0x32, 0x82, 0x78, 0x9d, 0xd9,
+ 0xcc, 0xff, 0xbf, 0x57, 0x64, 0x74, 0xed, 0x28, 0x3d, 0x44, 0x62, 0x15,
+ 0x61, 0x4b, 0xf7, 0x94, 0xb0, 0x0d, 0x2a, 0x67, 0x1c, 0xf0, 0xcb, 0x9b,
+ 0xa5, 0x92, 0xbf, 0xf8, 0x41, 0x5a, 0xc1, 0x3d, 0x60, 0xed, 0x9f, 0xbb,
+ 0xb8, 0x6d, 0x9b, 0xce, 0xa9, 0x6a, 0x16, 0x3f, 0x7e, 0xea, 0x06, 0xf1,
+};
void DetachFromThread();
#if defined(TIZEN_PEPPER_EXTENSIONS)
- int socket_fd() const { return socket_; }
-#endif // defined(TIZEN_PEPPER_EXTENSIONS)
+ // Gets the receive buffer size (in bytes) for the socket.
+ // Returns a net error code.
+ int GetReceiveBufferSize(int32_t* size);
+
+ // Gets the send buffer size (in bytes) for the socket.
+ // Returns a net error code.
+ int GetSendBufferSize(int32_t* size);
+
+ // Gets corresponding flag which indicates whether the socket allows
+ // to share the local address with other processes.
+ // Returns a net error code.
+ int GetAllowAddressReuse(bool* flag);
+
+ // Gets corresponding flag which indicates whether the socket allows or
+ // disallows sending and receiving packets to and from broadcast addresses.
+ // Returns a net error code.
+ int GetBroadcast(bool* broadcast);
+
+ // Gets the time-to-live option for UDP packets sent to the multicast
+ // group address. The default value of this option is 1.
+ // Cannot be negative or more than 255.
+ // Returns a net error code.
+ int GetMulticastTimeToLive(int* time_to_live);
+
+ // Gets the loopback flag for UDP socket. If this flag is true, the host
+ // will receive packets sent to the joined group from itself.
+ // The default value of this option is true.
+ // Returns a net error code.
+ int GetMulticastLoopbackMode(bool* loopback);
+#endif
private:
enum SocketOptions {
// Verify that certificates are correctly filtered against CertRequestInfo with
// |cert_authorities| containing only |authority_1_DN|.
-TYPED_TEST_P(ClientCertStoreTest, CertAuthorityFiltering) {
+// Flaky: https://crbug.com/716730
+TYPED_TEST_P(ClientCertStoreTest, DISABLED_CertAuthorityFiltering) {
scoped_refptr<X509Certificate> cert_1(
ImportCertFromFile(GetTestCertsDirectory(), "client_1.pem"));
ASSERT_TRUE(cert_1.get());
REGISTER_TYPED_TEST_CASE_P(ClientCertStoreTest,
EmptyQuery,
AllIssuersAllowed,
- CertAuthorityFiltering);
+ DISABLED_CertAuthorityFiltering);
} // namespace net
* found in the LICENSE file.
*/
-/* From ppb_file_io.idl modified Tue Oct 22 15:09:47 2013. */
+/* From ppb_file_io.idl modified Wed Mar 15 15:15:36 2017. */
#ifndef PPAPI_C_PPB_FILE_IO_H_
#define PPAPI_C_PPB_FILE_IO_H_
* @param[in] file_io A <code>PP_Resource</code> corresponding to a file
* FileIO.
* @param[in] offset The offset into the file.
- * @param[in] buffer The buffer to hold the specified number of bytes read.
+ * @param[out] buffer The buffer to hold the specified number of bytes read.
* @param[in] bytes_to_read The number of bytes to read from
* <code>offset</code>.
* @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
* @param[in] file_io A <code>PP_Resource</code> corresponding to a file
* FileIO.
* @param[in] offset The offset into the file.
- * @param[in] buffer The buffer to hold the specified number of bytes read.
+ * @param[in] buffer The buffer to hold the specified number of bytes to
+ * write.
* @param[in] bytes_to_write The number of bytes to write to
* <code>offset</code>.
* @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
* found in the LICENSE file.
*/
-/* From ppb_udp_socket.idl modified Tue Mar 17 11:47:56 2015. */
+/* From ppb_udp_socket.idl modified Fri Jul 28 15:50:13 2017. */
#ifndef PPAPI_C_PPB_UDP_SOCKET_H_
#define PPAPI_C_PPB_UDP_SOCKET_H_
*
* This is only supported in version 1.2 of the API (Chrome 43) and later.
*/
- PP_UDPSOCKET_OPTION_MULTICAST_TTL = 5
+ PP_UDPSOCKET_OPTION_MULTICAST_TTL = 5,
+ /**
+ * Set or read a boolean argument that determines whether sent multicast
+ * packets should be looped back to the local sockets. Value's type should be
+ * <code>PP_VARTYPE_BOOL</code>.
+ *
+ * Set/Get value using <code>PP_SocketOptionValue</code>.
+ * 0 - loopback inactive, 1 - loopback active
+ *
+ * Deprecated since version 1.1 of the API (Samsung Pepper 47)
+ */
+ PP_UDPSOCKET_EXT_OPTION_MULTICAST_LOOP = 100,
+ /**
+ * 'Time To Live' for multicast packets. If not otherwise specified, multicast
+ * datagrams are sent with a default value of 1, to prevent them to be
+ * forwarded beyond the local network. Value should be
+ * <code>PP_VARTYPE_INT32</code> type, from 0 to 255.
+ *
+ * Set/Get value using <code>PP_SocketOptionValue</code>. Range: 0-255
+ *
+ * Deprecated since version 1.1 of the API (Samsung Pepper 47)
+ */
+ PP_UDPSOCKET_EXT_OPTION_MULTICAST_TTL = 101
} PP_UDPSocket_Option;
PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_UDPSocket_Option, 4);
/**
*/
/* From samsung/pp_media_player_samsung.idl,
- * modified Tue May 16 11:55:14 2017.
+ * modified Tue Aug 1 16:26:08 2017.
*/
#ifndef PPAPI_C_SAMSUNG_PP_MEDIA_PLAYER_SAMSUNG_H_
PP_MEDIAPLAYERERROR_RESOURCE = 9,
/** Unknown error has occurred */
PP_MEDIAPLAYERERROR_UNKNOWN = 10,
- PP_MEDIAPLAYERERROR_LAST = PP_MEDIAPLAYERERROR_UNKNOWN
+ /** Subtitles file format is not supported. */
+ PP_MEDIAPLAYERERROR_UNSUPPORTED_SUBTITLE_FORMAT = 11,
+ PP_MEDIAPLAYERERROR_LAST = PP_MEDIAPLAYERERROR_UNSUPPORTED_SUBTITLE_FORMAT
} PP_MediaPlayerError;
PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_MediaPlayerError, 4);
/**
PP_BINDTOINSTANCEMODE_LAST = PP_BINDTOINSTANCEMODE_DONT_BIND
} PP_BindToInstanceMode;
PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_BindToInstanceMode, 4);
+
+/**
+ * An enum that controls Media Player display mode. For details, please see
+ * descriptions of particular enum values. A default value is <code>
+ * PP_MEDIAPLAYERDISPLAYMODE_STRETCH</code>.
+ */
+typedef enum {
+ /**
+ * When this mode is set a video will be stretched to match either:
+ * - entire player area (which takes up entire plugin area by default),
+ * - or an area explicitly set as display rect with <code>
+ * PPB_MediaPlayer_Samsung::SetDisplayRect(...)</code>.
+ */
+ PP_MEDIAPLAYERDISPLAYMODE_STRETCH = 0,
+ /**
+ * When this mode is set a video will be scaled to fit a player area but will
+ * also maintain it's aspect ratio. If player area aspect ratio doesn't match
+ * video's aspect ratio, then resulting video will be letterboxed (or
+ * pillarboxed).
+ */
+ PP_MEDIAPLAYERDISPLAYMODE_LETTERBOX = 1,
+ PP_MEDIAPLAYERDISPLAYMODE_LAST = PP_MEDIAPLAYERDISPLAYMODE_LETTERBOX
+} PP_MediaPlayerDisplayMode;
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_MediaPlayerDisplayMode, 4);
+
+/**
+ * An enum that controls Media Player Vr360 mode. For details, please see
+ * descriptions of particular enum values. A default value is <code>
+ * PP_MEDIAPLAYERVR360MODE_OFF</code>.
+ */
+typedef enum {
+ /**
+ * When this mode is set a video will be displayed normally.
+ */
+ PP_MEDIAPLAYERVR360MODE_OFF = 0,
+ /**
+ * When this mode is set a video will be displayed in Vr mode.
+ */
+ PP_MEDIAPLAYERVR360MODE_ON = 1,
+ PP_MEDIAPLAYERVR360MODE_LAST = PP_MEDIAPLAYERVR360MODE_ON
+} PP_MediaPlayerVr360Mode;
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_MediaPlayerVr360Mode, 4);
/**
* @}
*/
--- /dev/null
+/* Copyright (c) 2017 Samsung Electronics. All rights reserved.
+ */
+
+/* From samsung/ppb_audio_config_samsung.idl,
+ * modified Mon Oct 23 16:05:56 2017.
+ */
+
+#ifndef PPAPI_C_SAMSUNG_PPB_AUDIO_CONFIG_SAMSUNG_H_
+#define PPAPI_C_SAMSUNG_PPB_AUDIO_CONFIG_SAMSUNG_H_
+
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPB_AUDIO_CONFIG_SAMSUNG_INTERFACE_1_0 "PPB_AudioConfig_Samsung;1.0"
+#define PPB_AUDIO_CONFIG_SAMSUNG_INTERFACE \
+ PPB_AUDIO_CONFIG_SAMSUNG_INTERFACE_1_0
+
+/**
+ * @file
+ * This file defines the PPB_AudioConfig_Samsung interface for choosing
+ * audio modes for <code>PPB_AudioConfig</code> resource.
+ */
+
+
+/**
+ * @addtogroup Enums
+ * @{
+ */
+/**
+ * PP_AudioMode is an enumeration of the different audio modes.
+ */
+typedef enum {
+ /*
+ * Platform will try to detect the most suitable mode for a plugin.
+ */
+ PP_AUDIOMODE_AUTO = 0,
+ PP_AUDIOMODE_GAME = 1,
+ PP_AUDIOMODE_MUSIC = 2,
+ PP_AUDIOMODE_LAST = PP_AUDIOMODE_MUSIC
+} PP_AudioMode;
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_AudioMode, 4);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * Extension for <code>PPB_AudioConfig</code> interface, which allows choosing
+ * audio mode.
+ */
+struct PPB_AudioConfig_Samsung_1_0 {
+ /**
+ * Sets specified audio mode. This method needs to be called before
+ * creating <code>PPB_Audio</code> resource.
+ *
+ * @param[in] resource A <code>PP_Resource</code> corresponding to a
+ * <code>PP_AudioConfig</code> resource.
+ *
+ * @param[in] audio_mode A <code>PP_AudioMode</code> which
+ * will be used for <code>PP_Audio</code> resource.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*SetAudioMode)(PP_Resource resource, PP_AudioMode audio_mode);
+};
+
+typedef struct PPB_AudioConfig_Samsung_1_0 PPB_AudioConfig_Samsung;
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_SAMSUNG_PPB_AUDIO_CONFIG_SAMSUNG_H_ */
+
*/
/* From samsung/ppb_media_player_samsung.idl,
- * modified Wed Apr 5 12:17:30 2017.
+ * modified Thu Aug 17 11:51:57 2017.
*/
#ifndef PPAPI_C_SAMSUNG_PPB_MEDIA_PLAYER_SAMSUNG_H_
#define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_0 "PPB_MediaPlayer_Samsung;1.0"
#define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_1 "PPB_MediaPlayer_Samsung;1.1"
#define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_2 "PPB_MediaPlayer_Samsung;1.2"
-#define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_2
+#define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_3 "PPB_MediaPlayer_Samsung;1.3"
+#define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_4 "PPB_MediaPlayer_Samsung;1.4"
+#define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_4
/**
* @file
* set proper CSS style for embed element with NaCl application
* (mostly transparent background).
*/
-struct PPB_MediaPlayer_Samsung_1_2 {
+struct PPB_MediaPlayer_Samsung_1_4 {
/**
* Creates a new media player resource with <code>PP_MEDIAPLAYERMODE_DEFAULT
* </code> player mode and binds it to the instance.
const struct PP_Rect* rect,
struct PP_CompletionCallback callback);
/**
+ * Sets a display mode which will be used by player. If no display mode is
+ * set, <code>PP_MEDIAPLAYERDISPLAYMODE_STRETCH</code> is used.
+ *
+ * @param[in] player A <code>PP_Resource</code> identifying the media player.
+ * @param[in] display_mode A display mode to be used. See <code>
+ * PP_MediaPlayerDisplayMode</code> enum for possible options.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion.
+ *
+ * @return PP_OK on success, otherwise an error code from
+ * <code>pp_errors.h</code>.
+ */
+ int32_t (*SetDisplayMode)(PP_Resource player,
+ PP_MediaPlayerDisplayMode display_mode,
+ struct PP_CompletionCallback callback);
+ /**
* Calls DRM system specific operation.
*
* @param[in] player A <code>PP_Resource</code> identifying the media player.
uint32_t drm_data_size,
const void* drm_data,
struct PP_CompletionCallback callback);
+ /*
+ * Set Vr360 mode.
+ * This function should be called in player idle state.
+ *
+ * @param[in] player A <code>PP_Resource</code> identifying the media player.
+ * @param[in] vr360_mode <code>PP_MediaPlayerVr360Mode</code>
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion.
+ *
+ * @return PP_OK on success, otherwise an error code from
+ * <code>pp_errors.h</code>. Meaning of errors:
+ * - <code>PP_ERROR_BADARGUMENT</code> - if parameter was wrong.
+ * - <code>PP_ERROR_FAILED</code> - if player was in invalid state.
+ */
+ int32_t (*SetVr360Mode)(PP_Resource player,
+ PP_MediaPlayerVr360Mode vr360_mode,
+ struct PP_CompletionCallback callback);
+ /*
+ * Set Vr360 rotation.
+ *
+ * @param[in] player A <code>PP_Resource</code> identifying the media player.
+ * @param[in] horizontal_angle - horizontal angle of rotation.
+ * @param[in] vertical_angle - vertical angle of rotation.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion.
+ *
+ * @return PP_OK on success, otherwise an error code from
+ * <code>pp_errors.h</code>. Meaning of errors:
+ * - <code>PP_ERROR_BADARGUMENT</code> - if parameter was wrong.
+ */
+ int32_t (*SetVr360Rotation)(PP_Resource player,
+ float horizontal_angle,
+ float vertical_angle,
+ struct PP_CompletionCallback callback);
+ /*
+ * Set Vr360 zoom.
+ *
+ * @param[in] player A <code>PP_Resource</code> identifying the media player.
+ * @param[in] zoom - zoom level.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion.
+ *
+ * @return PP_OK on success, otherwise an error code from
+ * <code>pp_errors.h</code>. Meaning of errors:
+ * - <code>PP_ERROR_BADARGUMENT</code> - if parameter was wrong.
+ */
+ int32_t (*SetVr360ZoomLevel)(PP_Resource player,
+ uint32_t zoom_level,
+ struct PP_CompletionCallback callback);
};
-typedef struct PPB_MediaPlayer_Samsung_1_2 PPB_MediaPlayer_Samsung;
+typedef struct PPB_MediaPlayer_Samsung_1_4 PPB_MediaPlayer_Samsung;
struct PPB_MediaPlayer_Samsung_1_0 {
PP_Resource (*Create)(PP_Instance instance);
const void* drm_data,
struct PP_CompletionCallback callback);
};
+
+struct PPB_MediaPlayer_Samsung_1_2 {
+ PP_Resource (*Create)(PP_Instance instance);
+ PP_Resource (*CreateWithOptions)(PP_Instance instance,
+ PP_MediaPlayerMode player_mode,
+ PP_BindToInstanceMode bind_mode);
+ PP_Bool (*IsMediaPlayer)(PP_Resource controller);
+ PP_Bool (*SetMediaEventsListener)(
+ PP_Resource player,
+ const struct PPP_MediaEventsListener_Samsung_1_0* listener,
+ void* user_data);
+ PP_Bool (*SetSubtitleListener)(
+ PP_Resource player,
+ const struct PPP_SubtitleListener_Samsung_1_0* listener,
+ void* user_data);
+ PP_Bool (*SetBufferingListener)(
+ PP_Resource data_source,
+ const struct PPP_BufferingListener_Samsung_1_0* listener,
+ void* user_data);
+ PP_Bool (*SetDRMListener)(PP_Resource data_source,
+ const struct PPP_DRMListener_Samsung_1_0* listener,
+ void* user_data);
+ int32_t (*AttachDataSource)(PP_Resource player,
+ PP_Resource data_source,
+ struct PP_CompletionCallback callback);
+ int32_t (*Play)(PP_Resource player, struct PP_CompletionCallback callback);
+ int32_t (*Pause)(PP_Resource player, struct PP_CompletionCallback callback);
+ int32_t (*Stop)(PP_Resource player, struct PP_CompletionCallback callback);
+ int32_t (*Seek)(PP_Resource player,
+ PP_TimeTicks time,
+ struct PP_CompletionCallback callback);
+ int32_t (*SetPlaybackRate)(PP_Resource player,
+ double rate,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetDuration)(PP_Resource player,
+ PP_TimeDelta* duration,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetCurrentTime)(PP_Resource player,
+ PP_TimeTicks* time,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetPlayerState)(PP_Resource player,
+ PP_MediaPlayerState* state,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetCurrentVideoTrackInfo)(PP_Resource player,
+ struct PP_VideoTrackInfo* track_info,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetVideoTracksList)(PP_Resource player,
+ struct PP_ArrayOutput output,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetCurrentAudioTrackInfo)(PP_Resource player,
+ struct PP_AudioTrackInfo* track_info,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetAudioTracksList)(PP_Resource player,
+ struct PP_ArrayOutput output,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetCurrentTextTrackInfo)(PP_Resource player,
+ struct PP_TextTrackInfo* track_info,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetTextTracksList)(PP_Resource player,
+ struct PP_ArrayOutput output,
+ struct PP_CompletionCallback callback);
+ int32_t (*SelectTrack)(PP_Resource player,
+ PP_ElementaryStream_Type_Samsung track_type,
+ uint32_t track_index,
+ struct PP_CompletionCallback callback);
+ int32_t (*AddExternalSubtitles)(PP_Resource player,
+ const char* file_path,
+ const char* encoding,
+ struct PP_TextTrackInfo* subtitles,
+ struct PP_CompletionCallback callback);
+ int32_t (*SetSubtitlesDelay)(PP_Resource player,
+ PP_TimeDelta delay,
+ struct PP_CompletionCallback callback);
+ int32_t (*SetDisplayRect)(PP_Resource player,
+ const struct PP_Rect* rect,
+ struct PP_CompletionCallback callback);
+ int32_t (*SetDRMSpecificData)(PP_Resource player,
+ PP_MediaPlayerDRMType drm_type,
+ PP_MediaPlayerDRMOperation drm_operation,
+ uint32_t drm_data_size,
+ const void* drm_data,
+ struct PP_CompletionCallback callback);
+};
+
+struct PPB_MediaPlayer_Samsung_1_3 {
+ PP_Resource (*Create)(PP_Instance instance);
+ PP_Resource (*CreateWithOptions)(PP_Instance instance,
+ PP_MediaPlayerMode player_mode,
+ PP_BindToInstanceMode bind_mode);
+ PP_Bool (*IsMediaPlayer)(PP_Resource controller);
+ PP_Bool (*SetMediaEventsListener)(
+ PP_Resource player,
+ const struct PPP_MediaEventsListener_Samsung_1_0* listener,
+ void* user_data);
+ PP_Bool (*SetSubtitleListener)(
+ PP_Resource player,
+ const struct PPP_SubtitleListener_Samsung_1_0* listener,
+ void* user_data);
+ PP_Bool (*SetBufferingListener)(
+ PP_Resource player,
+ const struct PPP_BufferingListener_Samsung_1_0* listener,
+ void* user_data);
+ PP_Bool (*SetDRMListener)(PP_Resource player,
+ const struct PPP_DRMListener_Samsung_1_0* listener,
+ void* user_data);
+ int32_t (*AttachDataSource)(PP_Resource player,
+ PP_Resource data_source,
+ struct PP_CompletionCallback callback);
+ int32_t (*Play)(PP_Resource player, struct PP_CompletionCallback callback);
+ int32_t (*Pause)(PP_Resource player, struct PP_CompletionCallback callback);
+ int32_t (*Stop)(PP_Resource player, struct PP_CompletionCallback callback);
+ int32_t (*Seek)(PP_Resource player,
+ PP_TimeTicks time,
+ struct PP_CompletionCallback callback);
+ int32_t (*SetPlaybackRate)(PP_Resource player,
+ double rate,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetDuration)(PP_Resource player,
+ PP_TimeDelta* duration,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetCurrentTime)(PP_Resource player,
+ PP_TimeTicks* time,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetPlayerState)(PP_Resource player,
+ PP_MediaPlayerState* state,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetCurrentVideoTrackInfo)(PP_Resource player,
+ struct PP_VideoTrackInfo* track_info,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetVideoTracksList)(PP_Resource player,
+ struct PP_ArrayOutput output,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetCurrentAudioTrackInfo)(PP_Resource player,
+ struct PP_AudioTrackInfo* track_info,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetAudioTracksList)(PP_Resource player,
+ struct PP_ArrayOutput output,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetCurrentTextTrackInfo)(PP_Resource player,
+ struct PP_TextTrackInfo* track_info,
+ struct PP_CompletionCallback callback);
+ int32_t (*GetTextTracksList)(PP_Resource player,
+ struct PP_ArrayOutput output,
+ struct PP_CompletionCallback callback);
+ int32_t (*SelectTrack)(PP_Resource player,
+ PP_ElementaryStream_Type_Samsung track_type,
+ uint32_t track_index,
+ struct PP_CompletionCallback callback);
+ int32_t (*AddExternalSubtitles)(PP_Resource player,
+ const char* file_path,
+ const char* encoding,
+ struct PP_TextTrackInfo* subtitles,
+ struct PP_CompletionCallback callback);
+ int32_t (*SetSubtitlesDelay)(PP_Resource player,
+ PP_TimeDelta delay,
+ struct PP_CompletionCallback callback);
+ int32_t (*SetDisplayRect)(PP_Resource player,
+ const struct PP_Rect* rect,
+ struct PP_CompletionCallback callback);
+ int32_t (*SetDisplayMode)(PP_Resource player,
+ PP_MediaPlayerDisplayMode display_mode,
+ struct PP_CompletionCallback callback);
+ int32_t (*SetDRMSpecificData)(PP_Resource player,
+ PP_MediaPlayerDRMType drm_type,
+ PP_MediaPlayerDRMOperation drm_operation,
+ uint32_t drm_data_size,
+ const void* drm_data,
+ struct PP_CompletionCallback callback);
+};
/**
* @}
*/
--- /dev/null
+/* Copyright (c) 2015 Samsung Electronics. All rights reserved.
+ */
+
+/* From samsung/ppb_udp_socket_extension_samsung.idl,
+ * modified Fri Jul 28 16:25:06 2017.
+ */
+
+#ifndef PPAPI_C_SAMSUNG_PPB_UDP_SOCKET_EXTENSION_SAMSUNG_H_
+#define PPAPI_C_SAMSUNG_PPB_UDP_SOCKET_EXTENSION_SAMSUNG_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/pp_var.h"
+#include "ppapi/c/ppb_udp_socket.h"
+
+#define PPB_UDPSOCKETEXTENSION_SAMSUNG_INTERFACE_0_1 \
+ "PPB_UDPSocketExtension_Samsung;0.1"
+#define PPB_UDPSOCKETEXTENSION_SAMSUNG_INTERFACE \
+ PPB_UDPSOCKETEXTENSION_SAMSUNG_INTERFACE_0_1
+
+/**
+ * @file
+ * This file defines the <code>PPB_UDPSocketExtension_Samsung</code> interface.
+ */
+
+
+/**
+ * @addtogroup Structs
+ * @{
+ */
+/**
+ * Multicast membership addresses.
+ */
+struct PP_MulticastMembership {
+ /**
+ * A <code>PPB_NetAddress</code> resource holding the IP multicast group
+ * address.
+ */
+ PP_Resource multicast_addr;
+ /**
+ * A <code>PPB_NetAddress</code> resource holding the IP address of local
+ * interface.
+ */
+ PP_Resource interface_addr;
+ /**
+ * (Optional) A <code>PPB_NetAddress</code> resource holding the IP address of
+ * multicast source.
+ * Specify to join/leave only given source on multicast address.
+ */
+ PP_Resource source_addr;
+};
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * The <code>PPB_UDPSocketExtension_Samsung</code> interface provides
+ * additional sockets functionality for PPB_UDPSocket. To use this
+ * interface, one have to create standard UDPSocket object.
+ *
+ * Permissions: This interface does not require additional permissions
+ * in relation to standard sockets.
+ *
+ * This API is deprecated since Samsung Pepper 47.
+ * Please use PPB_UDPSocket API instead.
+ */
+struct PPB_UDPSocketExtension_Samsung_0_1 {
+ /**
+ * Get a socket option on the associated socket.
+ * Please see the <code>PP_UDPSocket_Option</code> description for option
+ * names, value types and allowed values.
+ * Socket need to be already bound and method will fail with
+ * <code>PP_ERROR_FAILED</code> if it's not.
+ *
+ * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
+ * socket.
+ * @param[in] name The option to get.
+ * @param[out] Value of requested option.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ */
+ int32_t (*GetOption)(PP_Resource udp_socket,
+ PP_UDPSocket_Option name,
+ struct PP_Var* value,
+ struct PP_CompletionCallback callback);
+ /**
+ * Join a multicast group. Use optional <code>source_addr</code> to allow
+ * receiving data only from a specified source. This option can be used
+ * multiple times to allow receiving data from more than one source.
+ * Socket need to be already bound and method will fail with
+ * <code>PP_ERROR_FAILED</code> if it's not.
+ *
+ * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
+ * socket.
+ * @param[in] membership A <code>PP_MulticastMembership</code> multicast
+ * group and optional source IP.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ */
+ int32_t (*JoinMulticast)(PP_Resource udp_socket,
+ const struct PP_MulticastMembership* membership,
+ struct PP_CompletionCallback callback);
+ /**
+ * Leave a multicast group. Use optional member <code>source_addr</code>
+ * to stop receiving data from multicast group that come from a given source.
+ * If the application has subscribed to multiple sources within the same
+ * group, data from the remaining sources will still be delivered.
+ * Socket need to be already bound and method will fail with
+ * <code>PP_ERROR_FAILED</code> if it's not.
+ *
+ * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
+ * socket.
+ * @param[in] membership A <code>PP_MulticastMembership</code> multicast
+ * group and optional source IP.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ */
+ int32_t (*LeaveMulticast)(PP_Resource udp_socket,
+ const struct PP_MulticastMembership* membership,
+ struct PP_CompletionCallback callback);
+};
+
+typedef struct PPB_UDPSocketExtension_Samsung_0_1
+ PPB_UDPSocketExtension_Samsung;
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_SAMSUNG_PPB_UDP_SOCKET_EXTENSION_SAMSUNG_H_ */
+
/// managed by the callback.
///
/// @param[in] offset The offset into the file.
- /// @param[in] buffer The buffer to hold the specified number of bytes read.
+ /// @param[out] buffer The buffer to hold the specified number of bytes read.
/// @param[in] bytes_to_read The number of bytes to read from
/// <code>offset</code>.
/// @param[in] cc A <code>CompletionCallback</code> to be called upon
/// partial write. The FileIO object must have been opened with write access.
///
/// @param[in] offset The offset into the file.
- /// @param[in] buffer The buffer to hold the specified number of bytes read.
+ /// @param[in] buffer The buffer to hold the specified number of bytes to
+ /// write.
/// @param[in] bytes_to_write The number of bytes to write to
/// <code>offset</code>.
/// @param[in] cc A <code>CompletionCallback</code> to be called upon
--- /dev/null
+// Copyright (c) 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_SAMSUNG_AUDIO_CONFIG_SAMSUNG_H_
+#define PPAPI_CPP_SAMSUNG_AUDIO_CONFIG_SAMSUNG_H_
+
+#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/samsung/ppb_audio_config_samsung.h"
+#include "ppapi/cpp/audio_config.h"
+#include "ppapi/cpp/resource.h"
+
+/// @file
+/// This file defines the interface for extending an
+/// audio configuration resource within the browser.
+
+namespace pp {
+
+class InstanceHandle;
+
+class AudioConfigSamsung : public AudioConfig {
+ public:
+ /// An empty constructor for an <code>AudioConfigSamsung</code> resource.
+ AudioConfigSamsung();
+
+ /// A constructor that creates an audio config based on the given sample rate
+ /// and frame count.
+ ///
+ /// For details check AudioConfig class.
+ ///
+ /// @param[in] instance The instance associated with this resource.
+ ///
+ /// @param[in] sample_rate A <code>PP_AudioSampleRate</code> which is either
+ /// <code>PP_AUDIOSAMPLERATE_44100</code> or
+ /// <code>PP_AUDIOSAMPLERATE_48000</code>.
+ ///
+ /// @param[in] sample_frame_count A uint32_t frame count returned from the
+ /// <code>RecommendSampleFrameCount</code> function.
+ AudioConfigSamsung(const InstanceHandle& instance,
+ PP_AudioSampleRate sample_rate,
+ uint32_t sample_frame_count);
+
+ /// Sets specified audio mode for the given audio config.
+ ///
+ /// @param[in] audio_mode Selected audio mode.
+ ///
+ /// @return An int32_t containing a result code from
+ /// <code>pp_errors.h</code>.
+ int32_t SetAudioMode(PP_AudioMode audio_mode);
+};
+
+} // namespace pp
+
+#endif // PPAPI_CPP_SAMSUNG_AUDIO_CONFIG_SAMSUNG_H_
const PP_Rect& rect,
const CompletionCallback& callback);
+ /// Sets a display mode which will be used by player. If no display mode is
+ /// set, <code>PP_MEDIAPLAYERDISPLAYMODE_STRETCH</code> is used.
+ ///
+ /// @param[in] display_mode A display mode to be used. See <code>
+ /// PP_MediaPlayerDisplayMode</code> enum for possible options.
+ /// @param[in] callback A <code>CompletionCallback</code> to be called upon
+ /// completion.
+ ///
+ /// @return PP_OK on success, otherwise an error code from
+ /// <code>pp_errors.h</code>.
+ int32_t SetDisplayMode(
+ PP_MediaPlayerDisplayMode display_mode,
+ const CompletionCallback& callback);
+
/* DRM Related */
/// Calls DRM system specific operation.
uint32_t drm_data_size,
const void* drm_data,
const CompletionCallback& callback);
+
+ /* Vr360 Control */
+
+ /// Set Vr360 mode.
+ /// This function should be called in player
+ /// <code>PP_MEDIAPLAYERSTATE_UNINITIALIZED</code> - when data source was not
+ /// attached yet.
+ ///
+ /// @param[in] player A <code>PP_Resource</code> identifying the media player.
+ /// @param[in] vr360_mode <code>PP_MediaPlayerVr360Mode</code>
+ /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ /// completion.
+ ///
+ /// @return PP_OK on success, otherwise an error code from
+ /// <code>pp_errors.h</code>. Meaning of errors:
+ /// - <code>PP_ERROR_BADARGUMENT</code> - if parameter was wrong.
+ /// - <code>PP_ERROR_FAILED</code> - if player was is invalid state.
+ int32_t SetVr360Mode(PP_MediaPlayerVr360Mode display_mode,
+ const CompletionCallback& callback);
+
+ /// Set Vr360 rotation.
+ ///
+ /// @param[in] player A <code>PP_Resource</code> identifying the media player.
+ /// @param[in] horizontal_angle - horizontal angle of rotation in degree
+ /// (0.0f to 360.0f),
+ /// @param[in] vertical_angle - vertical angle of rotation in degree
+ /// (0.0f to 360.0f),
+ /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ /// completion.
+ ///
+ /// @return PP_OK on success, otherwise an error code from
+ /// <code>pp_errors.h</code>. Meaning of errors:
+ /// - <code>PP_ERROR_BADARGUMENT</code> - if parameter was wrong.
+ int32_t SetVr360Rotation(float horizontal_angle,
+ float vertical_angle,
+ const CompletionCallback& callback);
+
+ /// Set Vr360 zoom.
+ ///
+ /// @param[in] player A <code>PP_Resource</code> identifying the media player.
+ /// @param[in] zoom - zoom level (0 to 100) 0 means max zoom-out,
+ /// 100 means max zoom-in.
+ /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ /// completion.
+ ///
+ /// @return PP_OK on success, otherwise an error code from
+ /// <code>pp_errors.h</code>. Meaning of errors:
+ /// - <code>PP_ERROR_BADARGUMENT</code> - if parameter was wrong.
+ int32_t SetVr360ZoomLevel(uint32_t zoom_level,
+ const CompletionCallback& callback);
};
} // namespace pp
--- /dev/null
+// Copyright (c) 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_SAMSUNG_SOCKET_EXTENSION_SAMSUNG_H_
+#define PPAPI_CPP_SAMSUNG_SOCKET_EXTENSION_SAMSUNG_H_
+
+#include "ppapi/c/samsung/ppb_udp_socket_extension_samsung.h"
+#include "ppapi/cpp/udp_socket.h"
+
+/// @file
+/// This file defines the API used to handle gesture input events.
+/// This file defines the API providing additional sockets functionality
+/// for PPB_UDPSocket.
+/// To use this interface, one have to create standard UDPSocket object.
+///
+/// This API is deprecated since Samsung Pepper 47.
+/// Please use PPB_UDPSocket API instead.
+namespace pp {
+
+class UDPSocketExtensionSamsung : public UDPSocket {
+ public:
+ /// Constructs an is_null() gesture input event object.
+ UDPSocketExtensionSamsung();
+
+ /// This constructor constructs a extended socket object from the
+ /// provided generic UDP socket. If the given socket is itself
+ /// is_null() or is not a UDPSocket, the extended socket object will be
+ /// is_null().
+ ///
+ /// @param[in] socket A generic UDP socket instance.
+ explicit UDPSocketExtensionSamsung(const InstanceHandle& instance);
+
+ /// Get a socket option on the associated socket.
+ /// Please see the <code>PP_UDPSocket_Option</code> description for option
+ /// names, value types and allowed values.
+ /// Socket need to be already bound and method will fail with
+ /// <code>PP_ERROR_FAILED</code> if it's not.
+ ///
+ /// @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
+ /// socket.
+ /// @param[in] name The option to get.
+ /// @param[out] Value of requested option.
+ /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ /// completion.
+ ///
+ /// @return An int32_t containing an error code from <code>pp_errors.h</code>
+ int32_t GetOption(PP_UDPSocket_Option name,
+ const CompletionCallbackWithOutput<Var>& callback);
+
+ /// Join a multicast group. Use optional <code>source_addr</code> to allow
+ /// receiving data only from a specified source. This option can be used
+ /// multiple times to allow receiving data from more than one source.
+ /// Socket need to be already bound and method will fail with
+ /// <code>PP_ERROR_FAILED</code> if it's not.
+ ///
+ /// @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
+ /// socket.
+ /// @param[in] membership A <code>PP_MulticastMembership</code> multicast
+ /// group and optional source IP.
+ /// @param[in] callback A <code>PP_CompletionCallback</code> to be called
+ /// upon completion.
+ ///
+ /// @return An int32_t containing an error code from <code>pp_errors.h</code>
+ int32_t JoinMulticast(const struct PP_MulticastMembership& membership,
+ const CompletionCallback& callback);
+
+ /// Leave a multicast group. Use optional member <code>source_addr</code>
+ /// to stop receiving data from multicast group that come from a given source.
+ /// If the application has subscribed to multiple sources within the same
+ /// group, data from the remaining sources will still be delivered.
+ /// Socket need to be already bound and method will fail with
+ /// <code>PP_ERROR_FAILED</code> if it's not.
+ ///
+ /// @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
+ /// socket.
+ /// @param[in] membership A <code>PP_MulticastMembership</code> multicast
+ /// group and optional source IP.
+ /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ /// completion.
+ ///
+ /// @return An int32_t containing an error code from <code>pp_errors.h</code>
+ int32_t LeaveMulticast(const struct PP_MulticastMembership& membership,
+ const CompletionCallback& callback);
+};
+
+} // namespace pp
+
+#endif // PPAPI_CPP_SAMSUNG_SOCKET_EXTENSION_SAMSUNG_H_
+
#include <stdint.h>
#include <memory>
+#include <vector>
#include "base/compiler_specific.h"
#include "base/macros.h"
namespace media {
class AudioBus;
+struct AudioInputBuffer;
}
namespace ppapi {
CLOSED
};
- void OnPluginMsgOpenReply(const ResourceMessageReplyParams& params);
+ void OnPluginMsgOpenReply(const ResourceMessageReplyParams& params,
+ uint32_t shared_memory_segment_count);
// Sets the shared memory and socket handles. This will automatically start
// capture if we're currently set to capture.
void SetStreamInfo(base::SharedMemoryHandle shared_memory_handle,
size_t shared_memory_size,
+ uint32_t shared_memory_segment_count,
base::SyncSocket::Handle socket_handle);
// Starts execution of the audio input thread.
// latency.
size_t bytes_per_second_;
- // AudioBus for shuttling data across the shared memory.
- std::unique_ptr<media::AudioBus> audio_bus_;
+ // AudioBuses circular buffer for shuttling data across the shared memory.
+ std::vector<std::unique_ptr<media::AudioBus>> audio_buses_;
+ uint32_t current_bus_id_;
+ std::vector<media::AudioInputBuffer*> audio_input_buffers_;
int sample_frame_count_;
// Internal buffer for client's integer audio data.
#define PPAPI_PROXY_MEDIA_PLAYER_ELEMENTARY_STREAM_RESOURCE_H_
#include <cstring>
-#include <functional>
#include <memory>
#include <unordered_set>
#include <utility>
+#include <vector>
+#include "base/memory/ref_counted.h"
+#include "ppapi/c/samsung/pp_media_player_samsung.h"
#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/shared_impl/media_player/es_packet.h"
-#include "ppapi/thunk/ppb_media_data_source_api.h"
#include "ppapi/shared_impl/thread_aware_callback.h"
+#include "ppapi/thunk/ppb_media_data_source_api.h"
namespace ppapi {
namespace proxy {
};
// This base class holds the non-template methods and attributes.
+// SharedMemory comunication based on implementation in VideoDecoder
class ElementaryStreamResourceBase : public PluginResource {
public:
virtual ~ElementaryStreamResourceBase();
ElementaryStreamResourceBase(Connection, PP_Instance);
private:
+ // Struct to hold a shared memory buffer.
+ struct ShmBuffer {
+ ShmBuffer(std::unique_ptr<base::SharedMemory> shm,
+ uint32_t size,
+ uint32_t shm_id);
+ ~ShmBuffer();
+
+ const std::unique_ptr<base::SharedMemory> shm;
+ void* addr;
+ // Index into shm_buffers_ vector, used as an id. This should map 1:1 to
+ // the index on the host side of the proxy.
+ const uint32_t shm_id;
+ };
+
struct callback_ptr_hash {
std::size_t operator()(scoped_refptr<TrackedCallback> const& cp) const {
return reinterpret_cast<std::size_t>(
}
};
+ int32_t ReserveSHMBuffer(uint32_t size);
void OnAppendReply(scoped_refptr<TrackedCallback>,
const ResourceMessageReplyParams&);
+ void OnAppendReplyWithSHM(scoped_refptr<TrackedCallback>,
+ uint32_t shm_id,
+ const ResourceMessageReplyParams&);
void OnFlushReply(const ResourceMessageReplyParams&);
void OnSetDRMInitDataReply(const ResourceMessageReplyParams&);
std::unique_ptr<ElementaryStreamListener> listener_;
+ std::vector<std::unique_ptr<ShmBuffer>> shm_buffers_;
+
+ // List of available shared memory buffers.
+ typedef std::vector<ShmBuffer*> ShmBufferList;
+ ShmBufferList available_shm_buffers_;
+
DISALLOW_COPY_AND_ASSIGN(ElementaryStreamResourceBase);
};
int32_t SetDisplayRect(const PP_Rect*,
scoped_refptr<TrackedCallback>) override;
+ int32_t SetDisplayMode(PP_MediaPlayerDisplayMode,
+ scoped_refptr<TrackedCallback>) override;
+
+ int32_t SetVr360Mode(PP_MediaPlayerVr360Mode,
+ scoped_refptr<TrackedCallback>) override;
+
+ int32_t SetVr360Rotation(float,
+ float,
+ scoped_refptr<TrackedCallback>) override;
+
+ int32_t SetVr360ZoomLevel(uint32_t, scoped_refptr<TrackedCallback>) override;
int32_t SetDRMSpecificData(PP_MediaPlayerDRMType,
PP_MediaPlayerDRMOperation,
scoped_refptr<TrackedCallback> add_external_subtitles_callback_;
scoped_refptr<TrackedCallback> set_subtitles_delay_callback_;
scoped_refptr<TrackedCallback> set_display_rect_callback_;
+ scoped_refptr<TrackedCallback> set_display_mode_callback_;
+ scoped_refptr<TrackedCallback> set_vr360_mode_callback_;
+ scoped_refptr<TrackedCallback> set_vr360_rotation_callback_;
+ scoped_refptr<TrackedCallback> set_vr360_zoom_level_callback_;
scoped_refptr<TrackedCallback> set_drm_specific_data_callback_;
PP_Resource data_source_;
#include "ipc/ipc_platform_file.h"
#include "ppapi/c/dev/pp_video_capture_dev.h"
#include "ppapi/c/dev/pp_video_dev.h"
+#include "ppapi/c/dev/ppb_audio_input_dev.h"
#include "ppapi/c/dev/ppb_truetype_font_dev.h"
#include "ppapi/c/dev/ppb_url_util_dev.h"
#include "ppapi/c/dev/ppp_printing_dev.h"
#include "ppapi/shared_impl/url_response_info_data.h"
#if defined(TIZEN_PEPPER_EXTENSIONS)
+#include "ppapi/c/samsung/ppb_audio_config_samsung.h"
#include "ppapi/c/samsung/ppb_remote_controller_samsung.h"
#endif
#include "ppapi/c/samsung/pp_media_common_samsung.h"
#include "ppapi/c/samsung/pp_media_codecs_samsung.h"
#include "ppapi/c/samsung/pp_media_player_samsung.h"
-#include "ppapi/shared_impl/media_player/serialized_es_packet.h"
#include "ppapi/shared_impl/media_player/media_codecs_configs.h"
#endif
IPC_ENUM_TRAITS_MAX_VALUE(ppapi::TCPSocketVersion,
ppapi::TCP_SOCKET_VERSION_1_1_OR_ABOVE)
IPC_ENUM_TRAITS(PP_AudioSampleRate)
+
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+IPC_ENUM_TRAITS_MAX_VALUE(PP_AudioMode, PP_AUDIOMODE_LAST)
+#endif
+
IPC_ENUM_TRAITS_MAX_VALUE(PP_BlendMode, PP_BLENDMODE_LAST)
IPC_ENUM_TRAITS_MAX_VALUE(PP_CdmExceptionCode, PP_CDMEXCEPTIONCODE_OUTPUTERROR)
IPC_ENUM_TRAITS_MAX_VALUE(PP_CdmKeyStatus, PP_CDMKEYSTATUS_STATUSPENDING)
IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerError, PP_MEDIAPLAYERERROR_LAST)
IPC_ENUM_TRAITS_MAX_VALUE(PP_StreamingProperty, PP_STREAMINGPROPERTY_LAST)
IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerMode, PP_MEDIAPLAYERMODE_LAST)
+IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerDisplayMode,
+ PP_MEDIAPLAYERDISPLAYMODE_LAST)
+IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerVr360Mode, PP_MEDIAPLAYERVR360MODE_LAST)
IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerState, PP_MEDIAPLAYERSTATE_LAST)
IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerDRMOperation,
PP_MEDIAPLAYERDRMOPERATION_LAST)
IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerDRMType, PP_MEDIAPLAYERDRMTYPE_LAST)
-IPC_STRUCT_TRAITS_BEGIN(ppapi::EncryptedESPacket::SubsampleDescription)
-IPC_STRUCT_TRAITS_MEMBER(clear_bytes)
-IPC_STRUCT_TRAITS_MEMBER(cipher_bytes)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::SerializedESPacket)
-IPC_STRUCT_TRAITS_MEMBER(pts)
-IPC_STRUCT_TRAITS_MEMBER(dts)
-IPC_STRUCT_TRAITS_MEMBER(duration)
-IPC_STRUCT_TRAITS_MEMBER(key_frame)
-IPC_STRUCT_TRAITS_MEMBER(data)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::SerializedEncryptedESPacket)
-IPC_STRUCT_TRAITS_MEMBER(serialized_es_packet)
-IPC_STRUCT_TRAITS_MEMBER(key_id)
-IPC_STRUCT_TRAITS_MEMBER(iv)
-IPC_STRUCT_TRAITS_MEMBER(subsamples)
-IPC_STRUCT_TRAITS_END()
-
IPC_STRUCT_TRAITS_BEGIN(PP_TrustZoneReference)
IPC_STRUCT_TRAITS_MEMBER(handle)
IPC_STRUCT_TRAITS_MEMBER(size)
std::string /* value */)
// PPB_Audio.
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+IPC_SYNC_MESSAGE_ROUTED4_1(PpapiHostMsg_PPBAudio_Create,
+ PP_Instance /* instance_id */,
+ PP_AudioMode /* audio_mode */,
+ int32_t /* sample_rate */,
+ uint32_t /* sample_frame_count */,
+ ppapi::HostResource /* result */)
+#else
IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBAudio_Create,
PP_Instance /* instance_id */,
int32_t /* sample_rate */,
uint32_t /* sample_frame_count */,
ppapi::HostResource /* result */)
+#endif
IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBAudio_StartOrStop,
ppapi::HostResource /* audio_id */,
bool /* play */)
IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Read,
int32_t /* bytes_to_read */)
IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPSocket_ReadReply,
- std::string /* data */)
+ ppapi::DataView /* data */)
IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Write,
- std::string /* data */)
+ ppapi::DataView /* data */)
IPC_MESSAGE_CONTROL0(PpapiPluginMsg_TCPSocket_WriteReply)
IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Listen,
int32_t /* backlog */)
IPC_MESSAGE_CONTROL1(PpapiHostMsg_UDPSocket_LeaveGroup,
PP_NetAddress_Private /* net_addr */)
IPC_MESSAGE_CONTROL0(PpapiPluginMsg_UDPSocket_LeaveGroupReply)
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_UDPSocket_GetOption,
+ PP_UDPSocket_Option /* name */)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_UDPSocket_GetOptionReply,
+ ppapi::SocketOptionData /* value */)
+#endif
// URLLoader ------------------------------------------------------------------
#endif // defined(TIZEN_PEPPER_EXTENSIONS)
-#if !defined(OS_NACL) && !defined(NACL_WIN64)
-
+#if (!defined(OS_NACL) && !defined(NACL_WIN64)) || \
+defined(TIZEN_PEPPER_EXTENSIONS)
// Audio input.
IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioInput_Create)
IPC_MESSAGE_CONTROL3(PpapiHostMsg_AudioInput_Open,
uint32_t /* sample_frame_count */)
// Reply to an Open call. This supplies a socket handle and a shared memory
// handle. Both handles are passed in the ReplyParams struct.
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_AudioInput_OpenReply)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_AudioInput_OpenReply,
+ uint32_t /* shared_memory_segment_count */)
IPC_MESSAGE_CONTROL1(PpapiHostMsg_AudioInput_StartOrStop, bool /* capture */)
IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioInput_Close)
+// DeviceEnumeration -----------------------------------------------------------
+// Device enumeration messages used by audio input and video capture.
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_EnumerateDevices)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_DeviceEnumeration_EnumerateDevicesReply,
+ std::vector<ppapi::DeviceRefData> /* devices */)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_DeviceEnumeration_MonitorDeviceChange,
+ uint32_t /* callback_id */)
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_StopMonitoringDeviceChange)
+IPC_MESSAGE_CONTROL2(PpapiPluginMsg_DeviceEnumeration_NotifyDeviceChange,
+ uint32_t /* callback_id */,
+ std::vector<ppapi::DeviceRefData> /* devices */)
+#endif // (!defined(OS_NACL) && !defined(NACL_WIN64)) ||
+ // defined(TIZEN_PEPPER_EXTENSIONS)
+
+#if !defined(OS_NACL) && !defined(NACL_WIN64)
// BrowserFont -----------------------------------------------------------------
IPC_MESSAGE_CONTROL0(PpapiHostMsg_BrowserFontSingleton_Create)
// reply is sent.
IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_InvokePrinting)
-// DeviceEnumeration -----------------------------------------------------------
-// Device enumeration messages used by audio input and video capture.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_EnumerateDevices)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_DeviceEnumeration_EnumerateDevicesReply,
- std::vector<ppapi::DeviceRefData> /* devices */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_DeviceEnumeration_MonitorDeviceChange,
- uint32_t /* callback_id */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_StopMonitoringDeviceChange)
-IPC_MESSAGE_CONTROL2(PpapiPluginMsg_DeviceEnumeration_NotifyDeviceChange,
- uint32_t /* callback_id */,
- std::vector<ppapi::DeviceRefData> /* devices */)
-
// Flash clipboard.
IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashClipboard_Create)
IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashClipboard_RegisterCustomFormat,
// PPBElementaryStream messages:
IPC_MESSAGE_CONTROL0(PpapiHostMsg_ElementaryStream_Create)
+IPC_MESSAGE_CONTROL2(PpapiHostMsg_ElementaryStream_GetShm,
+ uint32_t /* shm_id */,
+ uint32_t /* shm_size */)
+// On success, a shm handle is passed in the ReplyParams struct.
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_ElementaryStream_GetShmReply,
+ uint32_t /* shm_size */)
IPC_MESSAGE_CONTROL1(PpapiHostMsg_ElementaryStream_AppendPacket,
- ppapi::SerializedESPacket)
+ PP_ESPacket /* packet */)
+IPC_MESSAGE_CONTROL3(PpapiHostMsg_ElementaryStream_AppendPacketSHM,
+ PP_ESPacket /* packet */,
+ uint32_t /* shm_id */,
+ uint32_t /* size */)
IPC_MESSAGE_CONTROL0(PpapiPluginMsg_ElementaryStream_AppendPacketReply)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_ElementaryStream_AppendEncryptedPacket,
- ppapi::SerializedEncryptedESPacket)
+IPC_MESSAGE_CONTROL2(PpapiHostMsg_ElementaryStream_AppendEncryptedPacket,
+ PP_ESPacket /* packet */,
+ PP_ESPacketEncryptionInfo /* info */)
+IPC_MESSAGE_CONTROL4(PpapiHostMsg_ElementaryStream_AppendEncryptedPacketSHM,
+ PP_ESPacket /* packet */,
+ PP_ESPacketEncryptionInfo /* info */,
+ uint32_t /* shm_id */,
+ uint32_t /* size */)
IPC_MESSAGE_CONTROL0(PpapiPluginMsg_ElementaryStream_AppendEncryptedPacketReply)
IPC_MESSAGE_CONTROL2(PpapiHostMsg_ElementaryStream_AppendTrustZonePacket,
- ppapi::SerializedESPacket /* packet */,
+ PP_ESPacket /* packet */,
PP_TrustZoneReference /* handle */)
IPC_MESSAGE_CONTROL0(PpapiPluginMsg_ElementaryStream_AppendTrustZonePacketReply)
IPC_MESSAGE_CONTROL0(PpapiHostMsg_ElementaryStream_Flush)
PP_TimeDelta /* delay */)
IPC_MESSAGE_CONTROL1(PpapiHostMsg_MediaPlayer_SetDisplayRect,
PP_Rect /* rect */)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_MediaPlayer_SetDisplayMode,
+ PP_MediaPlayerDisplayMode /* display_mode */)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_MediaPlayer_SetVr360Mode,
+ PP_MediaPlayerVr360Mode /* vr360_mode */)
+IPC_MESSAGE_CONTROL2(PpapiHostMsg_MediaPlayer_SetVr360Rotation,
+ float, /* horizontal_angle */
+ float /* vertical_angle */)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_MediaPlayer_SetVr360ZoomLevel,
+ uint32_t /* zoom_level */)
IPC_MESSAGE_CONTROL3(PpapiHostMsg_MediaPlayer_SetDRMSpecificData,
PP_MediaPlayerDRMType /* type */,
PP_MediaPlayerDRMOperation /* operation */,
IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaPlayer_AddExternalSubtitlesReply,
PP_TextTrackInfo /* track_info */)
IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetSubtitlesDelayReply)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetDisplayModeReply)
IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetDisplayRectReply)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetDisplayModeReply)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetVr360ModeReply)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetVr360RotationReply)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetVr360ZoomLevelReply)
IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetDRMSpecificDataReply)
// MediaPlayerMessageFilter renderer host <-> browser host --------------------
#include "ppapi/shared_impl/file_ref_create_info.h"
#include "ppapi/shared_impl/media_stream_video_track_shared.h"
#include "ppapi/shared_impl/ppapi_permissions.h"
+#include "ppapi/shared_impl/ppb_tcp_socket_shared.h"
#include "ppapi/shared_impl/socket_option_data.h"
+#if defined(TIZEN_PEPPER_PLAYER)
+#include "ppapi/c/samsung/pp_media_player_samsung.h"
+#endif // defined(TIZEN_PEPPER_PLAYER)
+
struct PP_KeyInformation;
struct PP_NetAddress_Private;
static void Log(const param_type& p, std::string* l);
};
+template <>
+struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::DataView> {
+ typedef ppapi::DataView param_type;
+ static void Write(base::Pickle* m, const param_type& p);
+ static bool Read(const base::Pickle* m,
+ base::PickleIterator* iter,
+ param_type* r);
+ static void Log(const param_type& p, std::string* l);
+};
+
#if defined(TIZEN_PEPPER_PLAYER)
namespace internal {
struct PPAPI_PROXY_EXPORT CharSequenceParamTraits {
internal::CharSequenceParamTraits::Log(p, N, l);
}
};
+
+template <>
+struct PPAPI_PROXY_EXPORT ParamTraits<PP_ESPacket> {
+ typedef PP_ESPacket param_type;
+ static void Write(base::Pickle* m, const param_type& p);
+ static bool Read(const base::Pickle* m,
+ base::PickleIterator* iter,
+ param_type* r);
+ static void Log(const param_type& p, std::string* l);
+};
+
+template <>
+struct PPAPI_PROXY_EXPORT ParamTraits<PP_ESPacketEncryptionInfo> {
+ typedef PP_ESPacketEncryptionInfo param_type;
+ static void Write(base::Pickle* m, const param_type& p);
+ static bool Read(const base::Pickle* m,
+ base::PickleIterator* iter,
+ param_type* r);
+ static void Log(const param_type& p, std::string* l);
+};
#endif // defined(TIZEN_PEPPER_PLAYER)
#if defined(TIZEN_PEPPER_TEEC)
#include "ppapi/proxy/proxy_completion_callback_factory.h"
#include "ppapi/utility/completion_callback_factory.h"
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+#include "ppapi/c/samsung/ppb_audio_config_samsung.h"
+#endif
+
namespace ppapi {
class AudioCallbackCombined;
private:
// Plugin->renderer message handlers.
void OnMsgCreate(PP_Instance instance_id,
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ PP_AudioMode audio_mode,
+#endif
int32_t sample_rate,
uint32_t sample_frame_count,
ppapi::HostResource* result);
PP_Resource CreateVpnProvider(PP_Instance instance) override;
PP_Resource CreateWebSocket(PP_Instance instance) override;
PP_Resource CreateX509CertificatePrivate(PP_Instance instance) override;
-#if !defined(OS_NACL)
+#if !defined(OS_NACL) || defined(TIZEN_PEPPER_EXTENSIONS)
PP_Resource CreateAudioInput(PP_Instance instance) override;
+#endif // !defined(OS_NACL) || defined(TIZEN_PEPPER_EXTENSIONS)
+#if !defined(OS_NACL)
PP_Resource CreateBroker(PP_Instance instance) override;
PP_Resource CreateBrowserFont(
PP_Instance instance,
IPC::PlatformFileForTransit* handle) const;
bool TakeFileHandleAtIndex(size_t index,
IPC::PlatformFileForTransit* handle) const;
-#if defined(TIZEN_PEPPER_EXTENSIONS)
- bool TakeUDPSocketHandleAtIndex(size_t index,
- IPC::PlatformFileForTransit* handle) const;
-#endif
void TakeAllSharedMemoryHandles(
std::vector<base::SharedMemoryHandle>* handles) const;
// NaClIPCAdapter for use in NaCl.
class PPAPI_PROXY_EXPORT SerializedHandle {
public:
- enum Type {
- INVALID,
- SHARED_MEMORY,
- SOCKET,
- FILE,
-#if defined(TIZEN_PEPPER_EXTENSIONS)
- UDP_SOCKET
-#endif // defined(TIZEN_PEPPER_EXTENSIONS)
- };
+ enum Type { INVALID, SHARED_MEMORY, SOCKET, FILE };
// Header contains the fields that we send in IPC messages, apart from the
// actual handle. See comments on the SerializedHandle fields below.
struct Header {
- Header() : type(INVALID), size(0), open_flags(0) {}
+ Header() : type(INVALID), size(0), open_flags(0), file_io(0) {}
Header(Type type_arg,
uint32_t size_arg,
int32_t open_flags_arg,
bool is_shmem() const { return type_ == SHARED_MEMORY; }
bool is_socket() const { return type_ == SOCKET; }
bool is_file() const { return type_ == FILE; }
-#if defined(TIZEN_PEPPER_EXTENSIONS)
- bool is_udp_socket() const { return type_ == UDP_SOCKET; }
-#endif // defined(TIZEN_PEPPER_EXTENSIONS)
const base::SharedMemoryHandle& shmem() const {
DCHECK(is_shmem());
return shm_handle_;
return size_;
}
const IPC::PlatformFileForTransit& descriptor() const {
-#if defined(TIZEN_PEPPER_EXTENSIONS)
- DCHECK(is_socket() || is_file() || is_udp_socket());
-#else
DCHECK(is_socket() || is_file());
-#endif // defined(TIZEN_PEPPER_EXTENSIONS)
return descriptor_;
}
int32_t open_flags() const { return open_flags_; }
shm_handle_ = base::SharedMemory::NULLHandle();
size_ = 0;
}
-#if defined(TIZEN_PEPPER_EXTENSIONS)
- void set_udp_socket(const IPC::PlatformFileForTransit& socket) {
- type_ = UDP_SOCKET;
- descriptor_ = socket;
-
- shm_handle_ = base::SharedMemory::NULLHandle();
- size_ = 0;
- }
-#endif // defined(TIZEN_PEPPER_EXTENSIONS)
-
void set_file_handle(const IPC::PlatformFileForTransit& descriptor,
int32_t open_flags,
PP_Resource file_io) {
const ResourceMessageReplyParams& params,
const PPB_X509Certificate_Fields& certificate_fields);
void OnPluginMsgReadReply(const ResourceMessageReplyParams& params,
- const std::string& data);
+ const ppapi::DataView& data);
void OnPluginMsgWriteReply(const ResourceMessageReplyParams& params);
void OnPluginMsgListenReply(const ResourceMessageReplyParams& params);
void OnPluginMsgAcceptReply(const ResourceMessageReplyParams& params,
+++ /dev/null
-// Copyright 2017 Samsung Electronics. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_PROXY_UDP_SOCKET_IO_H_
-#define PPAPI_PROXY_UDP_SOCKET_IO_H_
-
-#include <string>
-#include <vector>
-
-#include "base/callback.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-
-#if defined(OS_NACL) && !defined(OS_NACL_NONSFI)
-#include "native_client/src/public/linux_syscalls/sys/socket.h"
-#else
-#include <sys/socket.h>
-#include <sys/types.h>
-#endif
-
-namespace ppapi {
-namespace proxy {
-
-class UDPSocketIO : public base::RefCountedThreadSafe<UDPSocketIO> {
- public:
- explicit UDPSocketIO(int fd);
- ~UDPSocketIO();
-
- int32_t RecvFrom(char* buffer_out,
- int32_t num_bytes,
- PP_NetAddress_Private* net_addr);
- int32_t SendTo(const char* buffer,
- int32_t num_bytes,
- const PP_NetAddress_Private& addr);
- base::TaskRunner* reader_runner() const;
- base::TaskRunner* sender_runner() const;
-
- private:
- int fd_;
- base::Thread reader_thread_;
- base::Thread sender_thread_;
-};
-
-} // namespace proxy
-} // namespace ppapi
-
-#endif // PPAPI_PROXY_UDP_SOCKET_IO_H_
scoped_refptr<TrackedCallback> callback) override;
int32_t LeaveGroup(PP_Resource group,
scoped_refptr<TrackedCallback> callback) override;
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ int32_t GetOption(PP_UDPSocket_Option name,
+ PP_Var* value,
+ scoped_refptr<TrackedCallback> callback) override;
+#endif
private:
DISALLOW_COPY_AND_ASSIGN(UDPSocketResource);
#include "ppapi/proxy/plugin_resource.h"
#include "ppapi/proxy/ppapi_proxy_export.h"
#include "ppapi/proxy/udp_socket_filter.h"
+#include "ppapi/shared_impl/socket_option_data.h"
#include "ppapi/shared_impl/tracked_callback.h"
-#if defined(TIZEN_PEPPER_EXTENSIONS)
-#include "ppapi/proxy/udp_socket_io.h"
-#endif
-
namespace ppapi {
namespace proxy {
int32_t LeaveGroupImpl(const PP_NetAddress_Private *group,
scoped_refptr<TrackedCallback> callback);
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ int32_t GetOptionImpl(PP_UDPSocket_Option name,
+ PP_Var* value,
+ scoped_refptr<TrackedCallback> callback);
+#endif
+
private:
// IPC message handlers.
void OnPluginMsgGeneralReply(scoped_refptr<TrackedCallback> callback,
void OnPluginMsgSendToReply(const ResourceMessageReplyParams& params,
int32_t bytes_written);
- static void SlotBecameAvailable(PP_Resource resource);
- static void SlotBecameAvailableWithLock(PP_Resource resource);
-
#if defined(TIZEN_PEPPER_EXTENSIONS)
- class RecvFromWork : public base::RefCountedThreadSafe<RecvFromWork> {
- public:
- RecvFromWork(const scoped_refptr<UDPSocketIO>& reader,
- char* buff,
- int32_t bytes,
- PP_Resource* addr);
-
- int32_t DoWork();
-
- const PP_NetAddress_Private& net_addr() const { return net_addr_; }
- PP_Resource* addr_out() const { return addr_out_; }
-
- private:
- scoped_refptr<UDPSocketIO> reader_;
- char* buffer_out_;
- int32_t num_bytes_;
- PP_Resource* addr_out_;
- PP_NetAddress_Private net_addr_;
- };
-
- class SendToWork : public base::RefCountedThreadSafe<SendToWork> {
- public:
- SendToWork(const scoped_refptr<UDPSocketIO>& sender,
- const char* buff,
- int32_t bytes,
- const PP_NetAddress_Private& net_addr);
-
- int32_t DoWork();
-
- private:
- scoped_refptr<UDPSocketIO> sender_;
- const char* buffer_;
- int32_t num_bytes_;
- PP_NetAddress_Private net_addr_;
- };
-
- int32_t OnRecvFromComplete(scoped_refptr<RecvFromWork> work, int32_t result);
- int32_t OnSendToComplete(int32_t result);
+ void OnPluginMsgGetOptionReply(PP_Var* return_value,
+ const ResourceMessageReplyParams& params,
+ const SocketOptionData& socket_option_data);
#endif
+ static void SlotBecameAvailable(PP_Resource resource);
+ static void SlotBecameAvailableWithLock(PP_Resource resource);
+
bool private_api_;
// |bind_called_| is true after Bind() is called, while |bound_| is true
scoped_refptr<UDPSocketFilter> recv_filter_;
#if defined(TIZEN_PEPPER_EXTENSIONS)
- PP_NetAddress_Private recv_addr_;
- scoped_refptr<UDPSocketIO> socket_io_;
+ scoped_refptr<TrackedCallback> get_option_callback_;
#endif
PP_NetAddress_Private bound_addr_;
#include <utility>
#include <vector>
+#include "base/memory/shared_memory.h"
#include "ppapi/c/samsung/pp_media_player_samsung.h"
namespace ppapi {
class ESPacket {
public:
- explicit ESPacket(const SerializedESPacket& src);
+ explicit ESPacket(const PP_ESPacket& pkt);
+ ESPacket(const PP_ESPacket& pkt, base::SharedMemory* shm, uint32_t shm_size);
- ESPacket();
- ESPacket(const ESPacket& rhs);
+ ESPacket() = delete;
+ ESPacket(const ESPacket& rhs) = delete;
ESPacket(ESPacket&& rhs);
- ESPacket& operator=(const ESPacket& rhs);
+ ESPacket& operator=(const ESPacket& rhs) = delete;
ESPacket& operator=(ESPacket&& rhs);
~ESPacket();
bool KeyFrame() const { return key_frame_; }
- size_t DataSize() const { return data_.size(); }
- const void* Data() const { return data_.data(); }
-
- void AddHeaderToData(const std::vector<uint8_t>& header);
+ size_t DataSize() const { return data_size_; }
+ const void* Data() const { return data_ptr_; }
private:
double pts_;
double dts_;
double duration_;
bool key_frame_;
+
+ const void* data_ptr_;
+ size_t data_size_;
+
std::vector<uint8_t> data_;
};
~SubsampleDescription();
};
- explicit EncryptedESPacket(const SerializedEncryptedESPacket& src);
+ explicit EncryptedESPacket(const PP_ESPacket& pkt,
+ const PP_ESPacketEncryptionInfo& info);
- EncryptedESPacket();
- EncryptedESPacket(const EncryptedESPacket& rhs);
+ EncryptedESPacket(const PP_ESPacket& pkt,
+ base::SharedMemory* shm,
+ uint32_t shm_size,
+ const PP_ESPacketEncryptionInfo& info);
+
+ EncryptedESPacket() = delete;
+ EncryptedESPacket(const EncryptedESPacket& rhs) = delete;
EncryptedESPacket(EncryptedESPacket&& rhs);
- EncryptedESPacket& operator=(const EncryptedESPacket& rhs);
+ EncryptedESPacket& operator=(const EncryptedESPacket& rhs) = delete;
EncryptedESPacket& operator=(EncryptedESPacket&& rhs);
~EncryptedESPacket();
return subsamples_;
}
- void AddHeaderToClearData(const std::vector<uint8_t>& header);
-
private:
+ void CopySubsamples(const PP_ESPacketEncryptionInfo& info);
+
std::vector<uint8_t> key_id_;
std::vector<uint8_t> iv_;
std::vector<SubsampleDescription> subsamples_;
+++ /dev/null
-// Copyright 2016 Samsung Electronics. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_SHARED_IMPL_MEDIA_PLAYER_SERIALIZED_ES_PACKET_H_
-#define PPAPI_SHARED_IMPL_MEDIA_PLAYER_SERIALIZED_ES_PACKET_H_
-
-#include <vector>
-#include "ppapi/shared_impl/media_player/es_packet.h"
-
-namespace ppapi {
-
-struct SerializedESPacket {
- double pts;
- double dts;
- double duration;
- bool key_frame;
- std::vector<uint8_t> data;
-
- explicit SerializedESPacket(const PP_ESPacket* pkt);
-
- SerializedESPacket();
- SerializedESPacket(const SerializedESPacket& rhs);
- SerializedESPacket(SerializedESPacket&& rhs);
-
- SerializedESPacket& operator=(const SerializedESPacket& rhs);
- SerializedESPacket& operator=(SerializedESPacket&& rhs);
-
- ~SerializedESPacket();
-};
-
-struct SerializedEncryptedESPacket {
- SerializedESPacket serialized_es_packet;
- std::vector<uint8_t> key_id;
- std::vector<uint8_t> iv;
- std::vector<EncryptedESPacket::SubsampleDescription> subsamples;
-
- explicit SerializedEncryptedESPacket(const PP_ESPacket* pkt,
- const PP_ESPacketEncryptionInfo* info);
-
- SerializedEncryptedESPacket();
- SerializedEncryptedESPacket(const SerializedEncryptedESPacket& rhs);
- SerializedEncryptedESPacket(SerializedEncryptedESPacket&& rhs);
-
- SerializedEncryptedESPacket& operator=(
- const SerializedEncryptedESPacket& rhs);
- SerializedEncryptedESPacket& operator=(SerializedEncryptedESPacket&& rhs);
-
- ~SerializedEncryptedESPacket();
-};
-
-} // namespace ppapi
-
-#endif // PPAPI_SHARED_IMPL_MEDIA_PLAYER_SERIALIZED_ES_PACKET_H_
PP_AudioSampleRate GetSampleRate() override;
uint32_t GetSampleFrameCount() override;
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ int32_t SetAudioMode(PP_AudioMode) override;
+ PP_AudioMode GetAudioMode() override;
+#endif
+
private:
// You must call Init before using this object.
PPB_AudioConfig_Shared(ResourceObjectType type, PP_Instance instance);
// used in this case.
bool Init(PP_AudioSampleRate sample_rate, uint32_t sample_frame_count);
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ PP_AudioMode audio_mode_;
+#endif
+
PP_AudioSampleRate sample_rate_;
uint32_t sample_frame_count_;
#ifndef PPAPI_SHARED_IMPL_PPB_TCP_SOCKET_SHARED_H_
#define PPAPI_SHARED_IMPL_PPB_TCP_SOCKET_SHARED_H_
+#include <cstdint>
+
#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
+// Contains non-owning pointer to a data which will be sent via IPC
+struct PPAPI_SHARED_EXPORT DataView {
+ DataView() : data(nullptr), size(0) {}
+ DataView(const char* data_ptr, int32_t data_size)
+ : data(data_ptr), size(data_size) {}
+
+ const char* data;
+ int32_t size;
+};
+
class PPAPI_SHARED_EXPORT TCPSocketState {
public:
enum StateType {
uint32_t sa_length,
PP_NetAddress_Private* net_addr);
-#if defined(TIZEN_PEPPER_EXTENSIONS)
- static bool NetAddressToSockaddr(const PP_NetAddress_Private& net_addr,
- sockaddr* sa,
- uint32_t sa_length);
-#endif // defined(TIZEN_PEPPER_EXTENSIONS)
-
static bool IPEndPointToNetAddress(const std::vector<uint8_t>& address,
uint16_t port,
PP_NetAddress_Private* net_addr);
PROXIED_IFACE(PPB_TRUETYPEFONT_DEV_INTERFACE_0_1, PPB_TrueTypeFont_Dev_0_1)
PROXIED_IFACE(PPB_VIEW_DEV_INTERFACE_0_1, PPB_View_Dev_0_1)
+#if !defined(OS_NACL) || defined(TIZEN_PEPPER_EXTENSIONS)
+PROXIED_IFACE(PPB_AUDIO_INPUT_DEV_INTERFACE_0_3, PPB_AudioInput_Dev_0_3)
+PROXIED_IFACE(PPB_AUDIO_INPUT_DEV_INTERFACE_0_4, PPB_AudioInput_Dev_0_4)
+PROXIED_IFACE(PPB_DEVICEREF_DEV_INTERFACE_0_1, PPB_DeviceRef_Dev_0_1)
+#endif // !defined(OS_NACL) || defined(TIZEN_PEPPER_EXTENSIONS)
+
#if !defined(OS_NACL)
PROXIED_API(PPB_Buffer)
PROXIED_API(PPB_VideoDecoder)
-PROXIED_IFACE(PPB_AUDIO_INPUT_DEV_INTERFACE_0_3, PPB_AudioInput_Dev_0_3)
-PROXIED_IFACE(PPB_AUDIO_INPUT_DEV_INTERFACE_0_4, PPB_AudioInput_Dev_0_4)
PROXIED_IFACE(PPB_BUFFER_DEV_INTERFACE_0_4, PPB_Buffer_Dev_0_4)
PROXIED_IFACE(PPB_CHAR_SET_DEV_INTERFACE_0_4, PPB_CharSet_Dev_0_4)
PROXIED_IFACE(PPB_CRYPTO_DEV_INTERFACE_0_1, PPB_Crypto_Dev_0_1)
-PROXIED_IFACE(PPB_DEVICEREF_DEV_INTERFACE_0_1, PPB_DeviceRef_Dev_0_1)
PROXIED_IFACE(PPB_GLES_CHROMIUM_TEXTURE_MAPPING_DEV_INTERFACE_0_1,
PPB_GLESChromiumTextureMapping_Dev_0_1)
PROXIED_IFACE(PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_1, PPB_IMEInputEvent_Dev_0_1)
#include "ppapi/thunk/interfaces_preamble.h"
-#if defined(TIZEN_PEPPER_EXTENSIONS) && !defined(OS_NACL)
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+#if !defined(OS_NACL)
PROXIED_IFACE(PPB_EXTENSIONSYSTEM_SAMSUNG_INTERFACE_0_1,
PPB_ExtensionSystem_Samsung_0_1)
PROXIED_IFACE(PPB_REMOTECONTROLLER_SAMSUNG_INTERFACE_0_1,
PPB_RemoteController_Samsung_0_1)
-#endif // defined(TIZEN_PEPPER_EXTENSIONS) && !defined(OS_NACL)
+#endif // !defined(OS_NACL)
+PROXIED_IFACE(PPB_AUDIO_CONFIG_SAMSUNG_INTERFACE_1_0,
+ PPB_AudioConfig_Samsung_1_0)
PROXIED_IFACE(PPB_COMPOSITORLAYER_SAMSUNG_INTERFACE_0_1,
PPB_CompositorLayer_Samsung_0_1)
+PROXIED_IFACE(PPB_UDPSOCKETEXTENSION_SAMSUNG_INTERFACE_0_1,
+ PPB_UDPSocketExtension_Samsung_0_1)
+#endif // defined(TIZEN_PEPPER_EXTENSIONS)
#if defined(TIZEN_PEPPER_PLAYER)
PROXIED_IFACE(PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_0,
PPB_MediaPlayer_Samsung_1_1)
PROXIED_IFACE(PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_2,
PPB_MediaPlayer_Samsung_1_2)
+PROXIED_IFACE(PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_3,
+ PPB_MediaPlayer_Samsung_1_3)
+PROXIED_IFACE(PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_4,
+ PPB_MediaPlayer_Samsung_1_4)
PROXIED_IFACE(PPB_MEDIADATASOURCE_SAMSUNG_INTERFACE_1_0,
PPB_MediaDataSource_Samsung_1_0)
PROXIED_IFACE(PPB_URLDATASOURCE_SAMSUNG_INTERFACE_1_0,
#include "ppapi/c/ppb_audio_config.h"
#include "ppapi/thunk/ppapi_thunk_export.h"
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+#include "ppapi/c/samsung/ppb_audio_config_samsung.h"
+#endif
+
namespace ppapi {
namespace thunk {
virtual PP_AudioSampleRate GetSampleRate() = 0;
virtual uint32_t GetSampleFrameCount() = 0;
+
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ virtual int32_t SetAudioMode(PP_AudioMode) = 0;
+ virtual PP_AudioMode GetAudioMode() = 0;
+#endif
};
} // namespace thunk
virtual int32_t SetDisplayRect(const PP_Rect*,
scoped_refptr<TrackedCallback>) = 0;
+ virtual int32_t SetDisplayMode(PP_MediaPlayerDisplayMode,
+ scoped_refptr<TrackedCallback>) = 0;
+
+ virtual int32_t SetVr360Mode(PP_MediaPlayerVr360Mode,
+ scoped_refptr<TrackedCallback>) = 0;
+
+ virtual int32_t SetVr360Rotation(float,
+ float,
+ scoped_refptr<TrackedCallback>) = 0;
+
+ virtual int32_t SetVr360ZoomLevel(uint32_t,
+ scoped_refptr<TrackedCallback>) = 0;
virtual int32_t SetDRMSpecificData(PP_MediaPlayerDRMType,
PP_MediaPlayerDRMOperation,
#include "ppapi/c/ppb_udp_socket.h"
#include "ppapi/thunk/ppapi_thunk_export.h"
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+#include "ppapi/c/samsung/ppb_udp_socket_extension_samsung.h"
+#endif
+
namespace ppapi {
class TrackedCallback;
scoped_refptr<TrackedCallback> callback) = 0;
virtual int32_t LeaveGroup(PP_Resource group,
scoped_refptr<TrackedCallback> callback) = 0;
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ virtual int32_t GetOption(PP_UDPSocket_Option name,
+ struct PP_Var* value,
+ scoped_refptr<TrackedCallback> callback) = 0;
+#endif
};
} // namespace thunk
virtual PP_Resource CreateVpnProvider(PP_Instance instance) = 0;
virtual PP_Resource CreateWebSocket(PP_Instance instance) = 0;
virtual PP_Resource CreateX509CertificatePrivate(PP_Instance instance) = 0;
-#if !defined(OS_NACL)
+#if !defined(OS_NACL) || defined(TIZEN_PEPPER_EXTENSIONS)
virtual PP_Resource CreateAudioInput(PP_Instance instance) = 0;
+#endif // !defined(OS_NACL) || defined(TIZEN_PEPPER_EXTENSIONS)
+#if !defined(OS_NACL)
virtual PP_Resource CreateBroker(PP_Instance instance) = 0;
virtual PP_Resource CreateBrowserFont(
PP_Instance instance,
const String&,
const KURL& = KURL(),
const TextPosition& startPosition = TextPosition::minimumPosition());
+#if defined(ENABLE_STRING_COMPRESSION)
+ ScriptSourceCode(
+ const CompressibleString&,
+ const KURL& = KURL(),
+ const TextPosition& startPosition = TextPosition::minimumPosition());
+#endif
ScriptSourceCode(ScriptStreamer*, ScriptResource*);
~ScriptSourceCode();
DECLARE_TRACE();
+#if defined(ENABLE_STRING_COMPRESSION)
+ bool isEmpty() const { return isNull() || m_source.isEmpty(); }
+#else
bool isEmpty() const { return m_source.isEmpty(); }
+#endif
// The null value represents a missing script, created by the nullary
// constructor, and differs from the empty script.
bool isNull() const { return m_source.isNull(); }
+#if defined(ENABLE_STRING_COMPRESSION)
+ const CompressibleString& source() const { return m_source; }
+#else
const String& source() const { return m_source; }
+#endif
ScriptResource* resource() const { return m_resource.get(); }
const KURL& url() const;
int startLine() const { return m_startPosition.m_line.oneBasedInt(); }
private:
void treatNullSourceAsEmpty();
+#if defined(ENABLE_STRING_COMPRESSION)
+ CompressibleString m_source;
+#else
String m_source;
+#endif
Member<ScriptResource> m_resource;
Member<ScriptStreamer> m_streamer;
mutable KURL m_url;
#include "wtf/text/StringView.h"
#include <v8.h>
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
namespace blink {
class DOMWindow;
.ToLocalChecked();
}
+#if defined(ENABLE_STRING_COMPRESSION)
+inline v8::Local<v8::String> v8String(v8::Isolate* isolate,
+ const CompressibleString& string) {
+ if (string.isNull())
+ return v8::String::Empty(isolate);
+ return V8PerIsolateData::from(isolate)->getStringCache()->v8ExternalString(
+ isolate, string);
+}
+#endif
+
inline v8::Local<v8::Value> v8StringOrNull(v8::Isolate* isolate,
const AtomicString& string) {
if (string.isNull())
#include <stdint.h>
#include <v8.h>
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
namespace blink {
class CachedMetadataHandler;
v8::Isolate*,
AccessControlStatus = SharableCrossOrigin,
V8CacheOptions = V8CacheOptionsDefault);
+#if defined(ENABLE_STRING_COMPRESSION)
+ static v8::MaybeLocal<v8::Script> compileScript(
+ const CompressibleString&,
+ const String& fileName,
+ const String& sourceMapUrl,
+ const TextPosition&,
+ v8::Isolate*,
+ CachedMetadataHandler* = nullptr,
+ AccessControlStatus = SharableCrossOrigin,
+ V8CacheOptions = V8CacheOptionsDefault);
+#else
static v8::MaybeLocal<v8::Script> compileScript(
const String&,
const String& fileName,
CachedMetadataHandler* = nullptr,
AccessControlStatus = SharableCrossOrigin,
V8CacheOptions = V8CacheOptionsDefault);
+#endif
// CachedMetadataHandler is set when metadata caching is supported. For
// normal scripe resources, CachedMetadataHandler is from ScriptResource.
// For worker script, ScriptResource is null but CachedMetadataHandler may be
#include "wtf/text/AtomicString.h"
#include <v8.h>
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
namespace blink {
// WebCoreStringResource is a helper class for v8ExternalString. It is used
string.charactersSizeInBytes());
}
+#if defined(ENABLE_STRING_COMPRESSION)
+ explicit WebCoreStringResourceBase(const CompressibleString& string)
+ : m_compressibleString(string) {
+#if ENABLE(ASSERT)
+ m_threadId = WTF::currentThread();
+#endif
+ ASSERT(!string.isNull());
+ v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(
+ string.charactersSizeInBytes());
+ }
+#endif
+
virtual ~WebCoreStringResourceBase() {
#if ENABLE(ASSERT)
ASSERT(m_threadId == WTF::currentThread());
#endif
+
+#if defined(ENABLE_STRING_COMPRESSION)
+ int64_t reducedExternalMemory = 0;
+ if (LIKELY(m_compressibleString.isNull())) {
+ reducedExternalMemory = m_plainString.charactersSizeInBytes();
+ if (m_plainString.impl() != m_atomicString.impl() &&
+ !m_atomicString.isNull())
+ reducedExternalMemory += m_atomicString.charactersSizeInBytes();
+ } else {
+ reducedExternalMemory = m_compressibleString.charactersSizeInBytes();
+ }
+#else
int64_t reducedExternalMemory = m_plainString.charactersSizeInBytes();
if (m_plainString.impl() != m_atomicString.impl() &&
!m_atomicString.isNull())
reducedExternalMemory += m_atomicString.charactersSizeInBytes();
+#endif
v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(
-reducedExternalMemory);
+ // FIX this!
+ }
+
+#if defined(ENABLE_STRING_COMPRESSION)
+ String webcoreString() {
+ if (!m_compressibleString.isNull()) {
+ ASSERT(m_plainString.isNull());
+ ASSERT(m_atomicString.isNull());
+ return m_compressibleString.toString();
+ }
+ return m_plainString;
+ }
+
+ AtomicString getAtomicString() {
+#if ENABLE(ASSERT)
+ ASSERT(m_threadId == WTF::currentThread());
+#endif
+ if (!m_compressibleString.isNull()) {
+ ASSERT(m_plainString.isNull());
+ ASSERT(m_atomicString.isNull());
+ return AtomicString(m_compressibleString.toString());
+ }
+ if (m_atomicString.isNull()) {
+ m_atomicString = AtomicString(m_plainString);
+ ASSERT(!m_atomicString.isNull());
+ if (m_plainString.impl() != m_atomicString.impl())
+ v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(
+ m_atomicString.charactersSizeInBytes());
+ }
+ return m_atomicString;
}
+ const CompressibleString& compressibleString() {
+ return m_compressibleString;
+ }
+#else
const String& webcoreString() { return m_plainString; }
const AtomicString& getAtomicString() {
}
return m_atomicString;
}
+#endif
protected:
// A shallow copy of the string. Keeps the string buffer alive until the V8
// into that string.
AtomicString m_atomicString;
+#if defined(ENABLE_STRING_COMPRESSION)
+ CompressibleString m_compressibleString;
+#endif
+
private:
#if ENABLE(ASSERT)
WTF::ThreadIdentifier m_threadId;
#endif
};
+#if defined(ENABLE_STRING_COMPRESSION)
+class WebCoreCompressibleStringResource16 final
+ : public WebCoreStringResourceBase,
+ public v8::String::ExternalStringResource {
+ WTF_MAKE_NONCOPYABLE(WebCoreCompressibleStringResource16);
+
+ public:
+ explicit WebCoreCompressibleStringResource16(const CompressibleString& string)
+ : WebCoreStringResourceBase(string) {
+ // ASSERT(m_string);
+ ASSERT(!m_compressibleString.is8Bit());
+ }
+
+ bool IsCompressible() const override { return true; }
+
+ size_t length() const override { return m_compressibleString.length(); }
+
+ const uint16_t* data() const override {
+ return reinterpret_cast<const uint16_t*>(
+ m_compressibleString.characters16());
+ }
+};
+
+class WebCoreCompressibleStringResource8 final
+ : public WebCoreStringResourceBase,
+ public v8::String::ExternalOneByteStringResource {
+ WTF_MAKE_NONCOPYABLE(WebCoreCompressibleStringResource8);
+
+ public:
+ explicit WebCoreCompressibleStringResource8(const CompressibleString& string)
+ : WebCoreStringResourceBase(string) {
+ ASSERT(m_compressibleString.is8Bit());
+ }
+
+ bool IsCompressible() const override { return true; }
+
+ size_t length() const override { return m_compressibleString.length(); }
+
+ const char* data() const override {
+ return reinterpret_cast<const char*>(m_compressibleString.characters8());
+ }
+};
+#endif
+
class WebCoreStringResource16 final
: public WebCoreStringResourceBase,
public v8::String::ExternalStringResource {
#include "wtf/text/WTFString.h"
#include <v8.h>
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
namespace blink {
class StringCacheMapTraits
static void DisposeWeak(const v8::WeakCallbackInfo<WeakCallbackDataType>&);
};
+#if defined(ENABLE_STRING_COMPRESSION)
+class CompressibleStringCacheMapTraits
+ : public V8GlobalValueMapTraits<CompressibleStringImpl*,
+ v8::String,
+ v8::kWeakWithParameter> {
+ STATIC_ONLY(CompressibleStringCacheMapTraits);
+
+ public:
+ // Weak traits:
+ typedef CompressibleStringImpl WeakCallbackDataType;
+ typedef v8::GlobalValueMap<CompressibleStringImpl*,
+ v8::String,
+ CompressibleStringCacheMapTraits>
+ MapType;
+
+ static WeakCallbackDataType* WeakCallbackParameter(
+ MapType* map,
+ CompressibleStringImpl* key,
+ v8::Local<v8::String>& value) {
+ return key;
+ }
+ static void DisposeCallbackData(WeakCallbackDataType* callbackData) {}
+
+ static MapType* MapFromWeakCallbackInfo(
+ const v8::WeakCallbackInfo<WeakCallbackDataType>&);
+
+ static CompressibleStringImpl* KeyFromWeakCallbackInfo(
+ const v8::WeakCallbackInfo<WeakCallbackDataType>& data) {
+ return data.GetParameter();
+ }
+
+ static void OnWeakCallback(const v8::WeakCallbackInfo<WeakCallbackDataType>&);
+
+ static void Dispose(v8::Isolate*,
+ v8::Global<v8::String> value,
+ CompressibleStringImpl* key);
+ static void DisposeWeak(const v8::WeakCallbackInfo<WeakCallbackDataType>&);
+};
+#endif
+
class CORE_EXPORT StringCache {
USING_FAST_MALLOC(StringCache);
WTF_MAKE_NONCOPYABLE(StringCache);
public:
+#if defined(ENABLE_STRING_COMPRESSION)
+ explicit StringCache(v8::Isolate* isolate)
+ : m_stringCache(isolate), m_compressibleStringCache(isolate) {}
+#else
explicit StringCache(v8::Isolate* isolate) : m_stringCache(isolate) {}
+#endif
v8::Local<v8::String> v8ExternalString(v8::Isolate* isolate,
StringImpl* stringImpl) {
+ // Note that the last CompressibleString is not cached.
ASSERT(stringImpl);
if (m_lastStringImpl.get() == stringImpl)
return m_lastV8String.NewLocal(isolate);
return v8ExternalStringSlow(isolate, stringImpl);
}
+#if defined(ENABLE_STRING_COMPRESSION)
+ v8::Local<v8::String> v8ExternalString(v8::Isolate* isolate,
+ const CompressibleString& string) {
+ ASSERT(!string.isNull());
+ return v8ExternalStringSlow(isolate, string);
+ }
+#endif
+
void setReturnValueFromString(v8::ReturnValue<v8::Value> returnValue,
StringImpl* stringImpl) {
ASSERT(stringImpl);
void dispose();
friend class StringCacheMapTraits;
+#if defined(ENABLE_STRING_COMPRESSION)
+ friend class CompressibleStringCacheMapTraits;
+#endif
private:
v8::Local<v8::String> v8ExternalStringSlow(v8::Isolate*, StringImpl*);
+#if defined(ENABLE_STRING_COMPRESSION)
+ v8::Local<v8::String> v8ExternalStringSlow(v8::Isolate*,
+ const CompressibleString&);
+#endif
void setReturnValueFromStringSlow(v8::ReturnValue<v8::Value>, StringImpl*);
v8::Local<v8::String> createStringAndInsertIntoCache(v8::Isolate*,
StringImpl*);
+#if defined(ENABLE_STRING_COMPRESSION)
+ v8::Local<v8::String> createStringAndInsertIntoCache(
+ v8::Isolate*,
+ const CompressibleString&);
+#endif
void InvalidateLastString();
StringCacheMapTraits::MapType m_stringCache;
StringCacheMapTraits::MapType::PersistentValueReference m_lastV8String;
+#if defined(ENABLE_STRING_COMPRESSION)
+ CompressibleStringCacheMapTraits::MapType m_compressibleStringCache;
+#endif
+
// Note: RefPtr is a must as we cache by StringImpl* equality, not identity
// hence lastStringImpl might be not a key of the cache (in sense of identity)
// and hence it's not refed on addition.
#include "wtf/text/TextPosition.h"
#include <v8.h>
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
namespace blink {
class CachedMetadataHandler;
class ExecutionState;
// Evaluate a script file in the current execution environment.
+#if defined(ENABLE_STRING_COMPRESSION)
+ ScriptValue evaluate(const CompressibleString& script,
+ const String& fileName,
+ const TextPosition& scriptStartPosition,
+ CachedMetadataHandler*,
+ V8CacheOptions);
+#else
ScriptValue evaluate(const String& script,
const String& fileName,
const TextPosition& scriptStartPosition,
CachedMetadataHandler*,
V8CacheOptions);
+#endif
void disposeContextIfNeeded();
Member<WorkerOrWorkletGlobalScope> m_globalScope;
case MediaVolumeSliderThumbPart:
m_valueID = CSSValueMediaVolumeSliderthumb;
break;
+ case MediaBrightnessButtonPart:
+ m_valueID = CSSValueMediaBrightnessButton;
+ break;
case MediaControlsBackgroundPart:
m_valueID = CSSValueMediaControlsBackground;
break;
virtual void suspend();
virtual void resume();
+ virtual bool hasVideo() const { return false; }
+ virtual bool isPlaying() const { return false; }
+ virtual bool isHTMLMediaElement() const { return false; }
+
#if defined(OS_TIZEN_TV_PRODUCT)
virtual bool setTranslatedURL(const String&) { return false; }
+ virtual void setPreferTextLang(const String&) {}
#endif
void didMoveToNewExecutionContext(ExecutionContext*);
void notifySuspendingActiveDOMObjects();
#if defined(OS_TIZEN_TV_PRODUCT)
bool setMediaTranslatedURL(const String&);
+ void setMediaPreferTextLang(const String& lang);
#endif
unsigned activeDOMObjectCount() const;
+ bool checkVideoPlaying();
+
protected:
// Need a default constructor to link core and modules separately.
// If no default constructor, we will see an error: "constructor for
m_nodeCount--;
}
int nodeCount() const { return m_nodeCount; }
+ bool isVideoPlaying();
SnapCoordinator* snapCoordinator();
unsigned passwordCount() const;
#if defined(OS_TIZEN_TV_PRODUCT)
bool setTranslatedURL(const String&);
+ void setPreferTextLang(const String&);
#endif
protected:
typedef HeapVector<Member<Attr>> AttrNodeList;
+#if defined(OS_TIZEN)
+static char const tizenCircularScrollbarAttr[] = "tizen-circular-scrollbar";
+#endif
+
class CORE_EXPORT Element : public ContainerNode {
DEFINE_WRAPPERTYPEINFO();
}
void setContainsFullScreenElement(bool);
void setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries(bool);
+#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual bool overrideFullscreenCSS() const {
+ return false;
+ }
+#endif
bool isInTopLayer() const { return hasElementFlag(IsInTopLayer); }
void setIsInTopLayer(bool);
void notifyContextDestroyed() override;
#if defined(OS_TIZEN_TV_PRODUCT)
bool setTranslatedURL(const String&);
+ void setPreferTextLang(const String&);
#endif
virtual void suspendScheduledTasks();
void setReferrerPolicy(ReferrerPolicy);
virtual ReferrerPolicy getReferrerPolicy() const { return m_referrerPolicy; }
+ bool isVideoPlaying();
+
protected:
ExecutionContext();
virtual ~ExecutionContext();
#if defined(TIZEN_ATK_FEATURE_VD)
bool checkCSSVisibility();
- bool isWidget(AXObject* obj) const;
- bool isComposite(AXObject* obj) const;
- bool isTextObjectType(AXObject* obj) const;
- bool isSection(AXObject* obj) const;
- bool hasText(AXObject* obj) const;
#endif
protected:
// otherwise.
virtual bool prepareForCommit() = 0;
+ // TODO(japhet): These should all move to LocalFrame.
bool canNavigate(const Frame&);
virtual void printNavigationErrorMessage(const Frame&,
const char* reason) = 0;
+ virtual void printNavigationWarning(const String&) = 0;
// TODO(pilgrim): Replace all instances of ownerLayoutObject() with
// ownerLayoutItem(), https://crbug.com/499321
IntPoint lastKnownMousePosition() const override;
bool shouldSetCursor() const;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void setCursorHidden(bool hidden);
+#endif
+
void setCursor(const Cursor&);
bool scrollbarsCanBeActive() const override;
bool m_needsScrollbarsUpdate;
bool m_suppressAdjustViewSize;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool m_cursorHidden;
+#endif
bool m_allowsLayoutInvalidationAfterLayoutClean;
Member<ElementVisibilityObserver> m_visibilityObserver;
SerializedScriptValue* stateInternal() const;
HistoryScrollRestorationType scrollRestorationInternal() const;
+#if defined(OS_TIZEN)
+ double m_previousCommand;
+#endif
+
RefPtr<SerializedScriptValue> m_lastStateObjectRequested;
};
bool shouldClose() override;
SecurityContext* securityContext() const override;
void printNavigationErrorMessage(const Frame&, const char* reason) override;
+ void printNavigationWarning(const String&) override;
bool prepareForCommit() override;
void didChangeVisibilityState() override;
void setDocumentHasReceivedUserGesture() override;
return m_instrumentingAgents.get();
}
+ void notifyUrlForPlayingVideo(const KURL& url);
+
// =========================================================================
// All public functions below this point are candidates to move out of
// LocalFrame into another class.
void detach(FrameDetachType) override;
RemoteSecurityContext* securityContext() const override;
void printNavigationErrorMessage(const Frame&, const char* reason) override {}
+ void printNavigationWarning(const String&) override {}
bool prepareForCommit() override;
bool shouldClose() override;
void setDocumentHasReceivedUserGesture() override;
namespace blink {
class LocalFrame;
+class ScreenOrientation;
+class ScriptPromise;
+class ScriptState;
class Screen final : public GarbageCollected<Screen>,
public ScriptWrappable,
int availHeight() const;
int availWidth() const;
+ ScriptPromise lockOrientation(ScriptState*, const AtomicString& orientation);
+ void unlockOrientation();
+
DECLARE_VIRTUAL_TRACE();
private:
void setDelegate(SettingsDelegate*);
#if defined(OS_TIZEN_TV_PRODUCT)
+ void setMediaSubtitleNotificationEnabled(bool enabled) {
+ m_mediaSubtitleNotificationEnabled = enabled;
+ }
+ bool mediaSubtitleNotificationEnabled() const {
+ return m_mediaSubtitleNotificationEnabled;
+ }
+
void setMediaPlaybackNotificationEnabled(bool enabled) {
m_mediaPlaybackNotificationEnabled = enabled;
}
bool mediaPlaybackNotificationEnabled() const {
return m_mediaPlaybackNotificationEnabled;
}
+ void setRequestCanvasFullscreen(bool enabled) {
+ m_requestCanvasFullscreen = enabled;
+ }
+ bool requestCanvasFullscreen() const {
+ return m_requestCanvasFullscreen;
+ }
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+ void setCanvasHoleEnabled(bool enabled) {
+ m_canvasHoleEnabled = enabled;
+ }
+ bool canvasHoleEnabled() const {
+ return m_canvasHoleEnabled;
+ }
#endif
+
#if defined(OS_TIZEN)
void setHwKeyboardConnected(bool connected) { m_hwKeyboardConnected = connected; }
bool hwKeyboardConnected() const { return m_hwKeyboardConnected; }
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
+ bool m_mediaSubtitleNotificationEnabled : 1;
bool m_mediaPlaybackNotificationEnabled : 1;
+ bool m_requestCanvasFullscreen : 1;
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+ bool m_canvasHoleEnabled : 1;
#endif
#if defined(USE_EFL)
V8Window_SpeechRecognitionError_ConstructorGetter = 1690,
V8Window_SpeechRecognitionEvent_ConstructorGetter = 1691,
+ ScreenOrientationLockOrientation = 1692,
+ ScreenOrientationUnlockOrientation = 1693,
+
+ // The below items are added for Tizen compatibility.
+ AudioContextCreateGainNode = 1694,
+ AudioBufferSourceNoteOn = 1695,
+ AudioBufferSourceNoteOff = 1696,
+ AudioBufferSourcePlaybackState = 1697,
+ AudioBufferSourceNodeGain = 1698,
+
// Add new features immediately above this line. Don't change assigned
// numbers of any item, and don't reuse removed slots.
// Also, run update_use_counter_feature_enum.py in
#include "platform/geometry/FloatSize.h"
#include "platform/geometry/IntSize.h"
#include "platform/graphics/GraphicsLayerClient.h"
+#if defined(OS_TIZEN)
+#include "platform/graphics/Image.h"
+#endif
#include "platform/scroll/ScrollableArea.h"
#include "public/platform/WebScrollbar.h"
#include "public/platform/WebSize.h"
+#if defined(OS_TIZEN)
+#include "third_party/skia/include/core/SkSurface.h"
+#include "third_party/skia/include/core/SkCanvas.h"
+#endif
#include <memory>
namespace blink {
class IntSize;
class LocalFrame;
+#if defined(OS_TIZEN)
+class CircleImage : public Image {
+ public:
+ static PassRefPtr<CircleImage> create(const IntSize& size, int angle) {
+ return adoptRef(new CircleImage(size, angle));
+ }
+
+ bool currentFrameKnownToBeOpaque(MetadataMode = UseCurrentMetadata) override {
+ return m_image->isOpaque();
+ }
+
+ IntSize size() const override { return m_size; }
+
+ sk_sp<SkImage> imageForCurrentFrame() override { return m_image; }
+
+ void destroyDecodedData() override {
+ // Image pure virtual stub.
+ }
+
+ void draw(SkCanvas* canvas,
+ const SkPaint& painter,
+ const FloatRect&,
+ const FloatRect&,
+ RespectImageOrientationEnum,
+ ImageClampingMode) override {
+ // Image pure virtual stub.
+ }
+ void updateCircularScrollbar(int startAngle,
+ int sweepAngle,
+ bool isVertical) {
+ if (!m_surface)
+ return;
+
+ m_surface->getCanvas()->clear(SK_ColorTRANSPARENT);
+
+ int xPos = (360) / 2;
+ // Calculation of the layer position will be
+ // radius(1+cos( ( 60 degrees/2 )))
+ // radius is 360/2 for circular wearable,
+ // the span of circular scroll is 60 degrees
+ // cos 30 degrees is sqrt(3)/2
+ xPos = xPos * (1 + (1.734 / 2));
+ SkRect oval = SkRect::MakeXYWH(20 - xPos, 5, 350, 350);
+ SkColor blue = SkColorSetRGB(15, 136, 210);
+ SkColor gray = SkColorSetRGB(42, 42, 42);
+
+ // Draw scrolling bar.
+ SkPaint paint_p, paint_q;
+ paint_p.setAntiAlias(true);
+ paint_p.setColor(gray);
+ paint_p.setStyle(SkPaint::kStroke_Style);
+ paint_p.setStrokeCap(SkPaint::kRound_Cap);
+ paint_p.setStrokeWidth(10.0f);
+
+ // Draw rotary indicator.
+ paint_q.setAntiAlias(true);
+ paint_q.setColor(blue);
+ paint_q.setStyle(SkPaint::kStroke_Style);
+ paint_q.setStrokeCap(SkPaint::kRound_Cap);
+ paint_q.setStrokeWidth(10.0f);
+
+ startAngle = (startAngle > 54) ? 54 : startAngle;
+ sweepAngle = (sweepAngle > 6) ? sweepAngle : 6;
+
+ SkPath p, q;
+ if (isVertical) { // Scrollbar Vertical.
+ oval = SkRect::MakeXYWH(20 - xPos, 5, 350, 350);
+ p.arcTo(oval, -30, 60, false);
+ q.arcTo(oval, -30 + startAngle, sweepAngle, false);
+ } else { // Scrollbar Horizontal.
+ oval = SkRect::MakeXYWH(5, xPos - 10, 350, 350);
+ p.arcTo(oval, -120, 60, false);
+ q.arcTo(oval, -120 + startAngle, sweepAngle, false);
+ }
+
+ m_surface->getCanvas()->drawPath(p, paint_p);
+ m_surface->getCanvas()->drawPath(q, paint_q);
+ m_image = m_surface->makeImageSnapshot();
+ }
+
+ static CircleImage* GetInstance() {
+ return base::Singleton<CircleImage,
+ base::LeakySingletonTraits<CircleImage>>::get();
+ }
+
+ private:
+ CircleImage() : Image(0), m_size(IntSize(360, 360)), m_surface(nullptr) {
+ m_surface = SkSurface::MakeRaster(SkImageInfo::MakeN32(
+ m_size.width(), m_size.height(), kPremul_SkAlphaType));
+ // Draw circular scrollbar before snapshot is generated.
+ updateCircularScrollbar(0, 20, true);
+ }
+
+ CircleImage(IntSize size, int angle)
+ : Image(0), m_size(size), m_surface(nullptr) {
+ sk_sp<SkSurface> surface = createSkSurface(size, true);
+ if (!surface)
+ return;
+
+ m_surface = surface;
+ surface->getCanvas()->clear(SK_ColorTRANSPARENT);
+ // Draw circular scrollbar before snapshot is generated.
+ updateCircularScrollbar(angle, 20, true);
+
+ m_image = surface->makeImageSnapshot();
+ }
+
+ ~CircleImage() {
+ if (m_surface)
+ m_surface->getCanvas()->clear(SK_ColorTRANSPARENT);
+ }
+
+ static sk_sp<SkSurface> createSkSurface(IntSize size, bool opaque) {
+ return SkSurface::MakeRaster(SkImageInfo::MakeN32(
+ size.width(), size.height(),
+ opaque ? kOpaque_SkAlphaType : kPremul_SkAlphaType));
+ }
+
+ IntSize m_size;
+ sk_sp<SkImage> m_image;
+ sk_sp<SkSurface> m_surface;
+ friend struct base::DefaultSingletonTraits<CircleImage>;
+ DISALLOW_COPY_AND_ASSIGN(CircleImage);
+};
+#endif
+
// Represents the visual viewport the user is currently seeing the page through.
// This class corresponds to the InnerViewport on the compositor. It is a
// ScrollableArea; it's offset is set through the GraphicsLayer <-> CC sync
std::unique_ptr<GraphicsLayer> m_innerViewportScrollLayer;
std::unique_ptr<GraphicsLayer> m_overlayScrollbarHorizontal;
std::unique_ptr<GraphicsLayer> m_overlayScrollbarVertical;
+#if defined(OS_TIZEN)
+ std::unique_ptr<GraphicsLayer> m_overlayScrollbarCircularHorizontal;
+ std::unique_ptr<GraphicsLayer> m_overlayScrollbarCircularVertical;
+#endif
std::unique_ptr<WebScrollbarLayer> m_webOverlayScrollbarHorizontal;
std::unique_ptr<WebScrollbarLayer> m_webOverlayScrollbarVertical;
AffineTransform baseTransform() const;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool overrideFullscreenCSS() const override {
+ return m_overrideFullscreenCSS;
+ }
+ void setOverrideFullscreenCSS(bool ride) {
+ m_overrideFullscreenCSS = ride;
+ }
+#endif
+
bool is3D() const;
bool isAnimated2D() const;
TraceWrapperMember<CanvasRenderingContext> m_context;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool m_overrideFullscreenCSS;
+#endif
+
bool m_ignoreReset;
FloatRect m_dirtyRect;
#include "core/events/GenericEventQueue.h"
#include "core/html/AutoplayExperimentHelper.h"
#include "core/html/HTMLElement.h"
+#include "core/html/MediaSyncPara.h"
#include "core/html/track/TextTrack.h"
#include "platform/MIMETypeRegistry.h"
#include "platform/Supplementable.h"
#include "third_party/WebKit/public/web/WebFrameClient.h"
#endif
+#if defined(OS_TIZEN_TV_PRODUCT)
+enum EventType {
+ EVENT_TYPE_NONE = 0,
+ EVENT_TYPE_MRSURL_CHANGE,
+ EVENT_TYPE_CONTENTID_CHANGE,
+};
+#endif
+
namespace blink {
class AudioSourceProviderClient;
bool hasRemoteRoutes() const;
bool isPlayingRemotely() const { return m_playingRemotely; }
-
-#if defined(TIZEN_VIDEO_HOLE)
- void setPresetDisableVideoHole(bool disable);
-#endif
+ bool isPlaying() const { return m_playing; }
// error state
MediaError* error() const;
bool muted() const;
void setMuted(bool);
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ double brightness() const;
+ void initSystemBrightness(int brightness);
+ void setBrightness(double, ExceptionState&);
+ int getSystemBrightness() const;
+ void setSystemBrightness(int);
+
+ void onSystemVolumeChanged(double volume, bool init) final;
+#endif
+
void togglePlayState();
AudioTrackList& audioTracks();
unsigned int id,
long long int start_time,
long long int end_time) override;
+ void OnSyncTimeline(const std::string& timeline_selector, int sync) override;
+ void OnRegisterTimeline(
+ const WebMediaPlayer::register_timeline_cb_info_s& info) override;
+ void OnMrsUrlChange(const std::string& url) override;
+ void OnContentIdChange(const std::string& id) override;
#endif
TextTrack* addTextTrack(const AtomicString& kind,
virtual bool isHTMLAudioElement() const { return false; }
virtual bool isHTMLVideoElement() const { return false; }
+ // begin of hbbtv media sync
+ bool RegisterTimeline(const AtomicString& timeline_selector);
+ bool UnRegisterTimeline(const AtomicString& timeline_selector);
+ MediaSyncPara* GetTimelinePositions(const AtomicString& timeline_selector);
+ double GetSpeed();
+ AtomicString GetMrsUrl();
+ AtomicString GetContentId();
+ bool SyncTimeline(const AtomicString& timeline_selector,
+ int64_t timeline_pos,
+ int64_t wallclock_pos,
+ int tolerance);
+ bool SetWallClock(const AtomicString& wallclock_url);
+ // end of hbbtv media sync
+
void videoWillBeDrawnToCanvas() const;
#if defined(OS_TIZEN_TV_PRODUCT)
+ bool getTextTrackInfo(int, WebString&, WebString&);
bool setTranslatedURL(const String&);
void onDrmError();
+ bool isHTMLMediaElement() const { return true; }
+ void setPreferTextLang(const String& lang);
+ void selectHbbtvPreferTrack();
#endif
void activatePlayer();
#if defined(TIZEN_MULTIMEDIA_SUPPORT)
void suspend() override;
void resume() override;
-
+#endif
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
void launchSystemVolumeController();
void setSystemVolume(int volume) override { m_systemVolume = volume; }
int systemVolume() const { return m_systemVolume; }
#if defined(OS_TIZEN_TV_PRODUCT)
void forceSettingOfficialPlaybackPosition() override;
#endif
+#if defined(TIZEN_CANVAS_HOLE)
+ void notifyCanvasRectChanged(const WebRect&);
+#endif
protected:
HTMLMediaElement(const QualifiedName&, Document&);
void setNetworkState(NetworkState);
void audioTracksTimerFired(TimerBase*);
-
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool checkHLSSupport(const String&) const;
+ void notifyElementRemove();
+#endif
// TODO(liberato): remove once autoplay gesture override experiment concludes.
void triggerAutoplayViewportCheckForTesting();
Member<MediaError> m_error;
double m_volume;
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ double m_systemVolume;
+ double m_brightness;
+#endif
+
double m_lastSeekTime;
double m_previousProgressTime;
#if defined(OS_TIZEN_TV_PRODUCT)
bool m_hasDrmError : 1;
+ bool is_deactivate : 1;
+ bool m_isHbbtvEngineSetModeShowing : 1;
+ Member<MediaSyncPara> m_mediaSyncPara;
+ std::vector<std::string> m_textLangList;
+ // include track selected by APP and hbbtv engine
+ int m_activeTextTrackId;
+ // the track selected by js textTrack.setMode(Showing)
+ TextTrack* m_appSelectedTextTrack;
+ // the track matched by ewk_media_set_subtitle_lang()
+ TextTrack* m_hbbtvEngineSelectedTextTrack;
#endif
#if defined(TIZEN_MULTIMEDIA_SUPPORT)
// This is to suppress stuff set to JS. Do not use it for other purposes.
bool m_suppressEvents : 1;
+#endif
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
int m_systemVolume;
#endif
bool flipY);
#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
- unsigned zeroCopyVideoTbmToPlatformTexture(gpu::gles2::GLES2Interface*,
- GLuint);
+ bool zeroCopyVideoTbmToPlatformTexture(gpu::gles2::GLES2Interface*,
+ GLuint, unsigned&);
void deleteVideoFrame(unsigned image_id);
#endif
--- /dev/null
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MediaSyncPara_h
+#define MediaSyncPara_h
+
+#include "bindings/core/v8/ScriptWrappable.h"
+#include "core/CoreExport.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class CORE_EXPORT MediaSyncPara final : public GarbageCollected<MediaSyncPara>,
+ public ScriptWrappable {
+ DEFINE_WRAPPERTYPEINFO();
+
+ public:
+ static MediaSyncPara* create(uint32_t units_per_tick,
+ uint32_t units_per_second,
+ int64_t content_time,
+ bool paused) {
+ return new MediaSyncPara(units_per_tick, units_per_second, content_time,
+ paused);
+ }
+
+ uint32_t unitsPerTick() const { return m_unitsPerTick; }
+ uint32_t unitsPerSecond() const { return m_unitsPerSecond; }
+ int64_t contentTime() const { return m_contentTime; }
+ bool paused() const { return m_paused; }
+
+ DEFINE_INLINE_TRACE() {}
+
+ private:
+ MediaSyncPara(uint32_t units_per_tick,
+ uint32_t units_per_second,
+ int64_t content_time,
+ bool paused)
+ : m_unitsPerTick(units_per_tick),
+ m_unitsPerSecond(units_per_second),
+ m_contentTime(content_time),
+ m_paused(paused) {}
+
+ uint32_t m_unitsPerTick;
+ uint32_t m_unitsPerSecond;
+ int64_t m_contentTime;
+ bool m_paused;
+};
+
+} // namespace blink
+
+#endif // MediaSyncPara_h
--- /dev/null
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef RegisterTimelineEvent_h
+#define RegisterTimelineEvent_h
+
+#include "core/CoreExport.h"
+#include "core/events/Event.h"
+#include "core/html/RegisterTimelineEventInit.h"
+
+namespace blink {
+
+class CORE_EXPORT RegisterTimelineEvent final : public Event {
+ DEFINE_WRAPPERTYPEINFO();
+
+ public:
+ ~RegisterTimelineEvent() override;
+
+ static RegisterTimelineEvent* create() { return new RegisterTimelineEvent; }
+
+ static RegisterTimelineEvent* create(
+ const AtomicString& type,
+ const RegisterTimelineEventInit& initializer) {
+ return new RegisterTimelineEvent(type, initializer);
+ }
+
+ const AtomicString& interfaceName() const override;
+
+ String timelineSelector() const { return m_timelineSelector; }
+ uint32_t unitsPerTick() const { return m_unitsPerTick; }
+ uint32_t unitsPerSecond() const { return m_unitsPerSecond; }
+ uint64_t contentTime() const { return m_contentTime; }
+ unsigned short timelineState() const { return m_timelineState; }
+ DECLARE_VIRTUAL_TRACE();
+
+ private:
+ RegisterTimelineEvent();
+ RegisterTimelineEvent(const AtomicString& type,
+ const RegisterTimelineEventInit& initializer);
+
+ String m_timelineSelector;
+ uint32_t m_unitsPerTick;
+ uint32_t m_unitsPerSecond;
+ uint64_t m_contentTime;
+ unsigned short m_timelineState;
+};
+
+} // namespace blink
+
+#endif // RegisterTimelineEvent_h
--- /dev/null
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef StringChangeEvent_h
+#define StringChangeEvent_h
+
+#include "core/CoreExport.h"
+#include "core/events/Event.h"
+#include "core/html/StringChangeEventInit.h"
+
+namespace blink {
+
+class CORE_EXPORT StringChangeEvent final : public Event {
+ DEFINE_WRAPPERTYPEINFO();
+
+ public:
+ ~StringChangeEvent() override;
+
+ static StringChangeEvent* create() { return new StringChangeEvent; }
+
+ static StringChangeEvent* create(const AtomicString& type,
+ const StringChangeEventInit& initializer) {
+ return new StringChangeEvent(type, initializer);
+ }
+
+ const AtomicString& interfaceName() const override;
+
+ String str() const { return m_str; }
+
+ DECLARE_VIRTUAL_TRACE();
+
+ private:
+ StringChangeEvent();
+ StringChangeEvent(const AtomicString& type,
+ const StringChangeEventInit& initializer);
+
+ String m_str;
+};
+
+} // namespace blink
+
+#endif // SyncTimelineEvent_h
--- /dev/null
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SyncTimelineEvent_h
+#define SyncTimelineEvent_h
+
+#include "core/CoreExport.h"
+#include "core/events/Event.h"
+#include "core/html/SyncTimelineEventInit.h"
+
+namespace blink {
+
+class CORE_EXPORT SyncTimelineEvent final : public Event {
+ DEFINE_WRAPPERTYPEINFO();
+
+ public:
+ ~SyncTimelineEvent() override;
+
+ static SyncTimelineEvent* create() { return new SyncTimelineEvent; }
+
+ static SyncTimelineEvent* create(const AtomicString& type,
+ const SyncTimelineEventInit& initializer) {
+ return new SyncTimelineEvent(type, initializer);
+ }
+
+ const AtomicString& interfaceName() const override;
+
+ String timelineSelector() const { return m_timelineSelector; }
+ unsigned short sync() const { return m_sync; }
+
+ DECLARE_VIRTUAL_TRACE();
+
+ private:
+ SyncTimelineEvent();
+ SyncTimelineEvent(const AtomicString& type,
+ const SyncTimelineEventInit& initializer);
+
+ String m_timelineSelector;
+ unsigned short m_sync;
+};
+
+} // namespace blink
+
+#endif // SyncTimelineEvent_h
MediaVolumeSliderThumb,
MediaFullscreenVolumeSlider,
MediaFullscreenVolumeSliderThumb,
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ MediaBrightnessButton,
+ MediaBrightnessSlider,
+#endif
MediaExitFullscreenButton,
MediaOverlayPlayButton,
#if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
#if defined(TIZEN_MULTIMEDIA_SUPPORT)
MediaOverlaySpinner,
#endif
+#if defined(OS_TIZEN_TV_PRODUCT)
+ MediaFocusEnterFullscreenButton,
+ MediaFocusExitFullscreenButton,
+ MediaFocusPlayButton,
+ MediaFocusPauseButton,
+};
+enum MouseEventType {
+ MouseOut = 0,
+ MouseOver,
+ MouseClick,
+#endif
};
CORE_EXPORT const HTMLMediaElement* toParentMediaElement(const Node*);
bool hasOverflowButton() override { return true; }
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ void setFullScreenShadowPseudoId();
+ void setVisibility(bool visible);
+#endif
private:
explicit MediaControlMuteButtonElement(MediaControls&);
void defaultEventHandler(Event*) override;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ bool m_visible = false;
+#endif
};
// ----------------------------
explicit MediaControlPlayButtonElement(MediaControls&);
void defaultEventHandler(Event*) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ MouseEventType m_mouseEventType;
+#endif
};
// ----------------------------
WebLocalizedString::Name getOverflowStringName() override;
bool hasOverflowButton() override { return true; }
-
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void updateDisplayType() override;
+#endif
private:
explicit MediaControlFullscreenButtonElement(MediaControls&);
void defaultEventHandler(Event*) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ MouseEventType m_mouseEventType;
+ bool m_isFullscreen;
+#endif
};
// ----------------------------
bool willRespondToMouseMoveEvents() override;
bool willRespondToMouseClickEvents() override;
void setVolume(double);
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ void setVisibility(bool visible);
+ void setFullScreenShadowPseudoId();
+#endif
private:
explicit MediaControlVolumeSliderElement(MediaControls&);
void defaultEventHandler(Event*) override;
bool keepEventInNode(Event*) override;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ bool m_visible = false;
+#endif
+};
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+class MediaControlBrightnessButtonElement final
+ : public MediaControlInputElement {
+ public:
+ static MediaControlBrightnessButtonElement* create(
+ MediaControls& mediaControls);
+
+ bool willRespondToMouseClickEvents() override { return true; }
+ void updateDisplayType() override {}
+ void setVisibility(bool visible);
+
+ private:
+ explicit MediaControlBrightnessButtonElement(MediaControls&);
+
+ void defaultEventHandler(Event*) override;
+ bool m_visible = false;
+};
+
+class MediaControlBrightnessSliderElement final
+ : public MediaControlInputElement {
+ public:
+ static MediaControlBrightnessSliderElement* create(
+ MediaControls& mediaControls);
+
+ bool willRespondToMouseMoveEvents() override;
+ bool willRespondToMouseClickEvents() override;
+ void setBrightness(double);
+ double getBrightness();
+ void initSystemBrightness(int);
+ void setFullScreenShadowPseudoId();
+ void setVisibility(bool visible);
+
+ private:
+ explicit MediaControlBrightnessSliderElement(MediaControls&);
+
+ void defaultEventHandler(Event*) override;
+ bool keepEventInNode(Event*) override;
+ bool m_visible = false;
};
+#endif
// ----------------------------
void updateCurrentTimeDisplay();
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ void updateVolumeSliderDisplay();
+ void hideVolumeSlider();
+ void showVolumeSlider();
+ void updateSystemVolume();
+
+ void updateBrightnessButtonDisplay();
+ void updateBrightnessSliderDisplay();
+ void updateBrightness();
+ void initSystemBrightness();
+#endif
void changedClosedCaptionsVisibility();
void refreshClosedCaptionsButtonVisibility();
void toggleTextTrackList();
void stopSpinner();
int getSpinnerProgressCount() const;
void setSpinnerProgressCount(int);
+#endif
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
void systemVolumeChanged();
#endif
Member<MediaControlTimeRemainingDisplayElement> m_durationDisplay;
Member<MediaControlMuteButtonElement> m_muteButton;
Member<MediaControlVolumeSliderElement> m_volumeSlider;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ Member<MediaControlVolumeSliderElement> m_fullScreenVolumeSlider;
+ Member<MediaControlMuteButtonElement> m_fullScreenMuteButton;
+ Member<MediaControlBrightnessSliderElement> m_fullScreenBrightnessSlider;
+ Member<MediaControlBrightnessButtonElement> m_fullScreenBrightnessButton;
+#endif
Member<MediaControlToggleClosedCaptionsButtonElement>
m_toggleClosedCaptionsButton;
Member<MediaControlTextTrackListElement> m_textTrackList;
#include "core/html/track/TrackBase.h"
#include "platform/heap/Handle.h"
#include "wtf/text/WTFString.h"
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "platform/weborigin/KURL.h"
+#endif
namespace blink {
ExecutionContext* getExecutionContext() const override;
#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual void setSrcUrl(const KURL&);
+ const KURL& srcUrl() const { return m_srcUrl; }
+ virtual bool isTTML() { return m_isTTML; }
TextTrackCue* findCue(unsigned int id);
void addCue(double start_time,
double end_time,
unsigned int id,
std::string& data);
+ bool isDisabledByUser();
#endif
DECLARE_VIRTUAL_TRACE();
ReadinessState m_readinessState;
int m_trackIndex;
int m_renderedTrackIndex;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ KURL m_srcUrl;
+ bool m_isTTML;
+ bool m_isDisabledByUser;
+#endif
bool m_hasBeenConfigured;
};
HTMLMediaElement* owner() const;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool isAllDisabled();
+#endif
+
void scheduleChangeEvent();
void removeAllInbandTracks();
#if defined(OS_TIZEN_TV_PRODUCT)
bool scrollWithMultiplier(const ScrollOffset& scrollOffset, Node* startNode);
+ bool pressedScrollbar() const { return m_pressedScrollbar; }
+ bool mousePressEventSwallowed() const { return m_mousePressEventSwallowed; }
#endif
// FIXME(nzolghadr): This function is technically a private function of
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
bool m_handledMouseLeftButtonPressEvent;
+ bool m_pressedScrollbar;
+ bool m_mousePressEventSwallowed;
#endif
};
bool isOverLink() const;
+#if defined(OS_TIZEN)
+ bool canPlayLinkEffect() const;
+#endif
+
bool isCacheable() const { return m_cacheable; }
void setCacheable(bool cacheable) { m_cacheable = cacheable; }
LayoutUnit replacedHeight) const;
bool createsNewFormattingContext() const;
+#if defined(OS_TIZEN)
+ // This function is used in compatibility mode instead of
+ // createsNewFormattingContext()
+ // for computing marging collapse like webkit.
+ bool createsNewFormattingContextInWebkitCompatibility() const;
+#endif
const char* name() const override;
ResourceRequest m_actualRequest;
ResourceLoaderOptions m_actualOptions;
- // stores simple request headers in case of a cross-origin redirect.
- HTTPHeaderMap m_simpleRequestHeaders;
+ // stores request headers in case of a cross-origin redirect.
+ HTTPHeaderMap m_requestHeaders;
Timer<DocumentThreadableLoader> m_timeoutTimer;
double
// returned if the URL is not overriden.
virtual KURL overrideFlashEmbedWithHTML(const KURL&) { return KURL(); }
-#if defined(TIZEN_VIDEO_HOLE)
- virtual void setPresetDisableVideoHole(LocalFrame*, bool) { }
-#endif
-
#if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
virtual void requestRotateWebMediaPlayer(LocalFrame* frame,
WebMediaPlayerRotate rotate) { }
#endif
+#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual void checkHLSSupport(const String&, bool&) {}
+#endif
};
} // namespace blink
#include "core/fetch/ResourceClient.h"
#include "core/fetch/TextResource.h"
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
namespace blink {
enum class ScriptIntegrityDisposition { NotChecked = 0, Failed, Passed };
void destroyDecodedDataForFailedRevalidation() override;
+#if defined(ENABLE_STRING_COMPRESSION)
+ const CompressibleString& script();
+#else
const String& script();
+#endif
bool mimeTypeAllowedByNosniff() const;
const ResourceLoaderOptions&,
const String& charset);
+#if defined(ENABLE_STRING_COMPRESSION)
+ CompressibleString m_script;
+#else
AtomicString m_script;
+#endif
};
DEFINE_RESOURCE_TYPE_CASTS(Script);
class HTMLSelectElement;
class HitTestResult;
class IntRect;
+class KURL;
class KeyboardEvent;
class LocalFrame;
class Node;
struct WebPoint;
struct WindowFeatures;
+#if defined(OS_TIZEN_TV_PRODUCT)
+class HTMLVideoElement;
+#endif
+
class CORE_EXPORT ChromeClient : public HostWindow {
public:
virtual void chromeDestroyed() = 0;
// user.
virtual void enumerateChosenDirectory(FileChooser*) = 0;
+ virtual void notifyUrlForPlayingVideo(const KURL& url){};
+
// Pass nullptr as the GraphicsLayer to detach the root layer.
// This sets the graphics layer for the LocalFrame's WebWidget, if it has
// one. Otherwise it sets it for the WebViewImpl.
#if defined(OS_TIZEN_TV_PRODUCT)
virtual void thumbPartFocusChanged(ScrollbarOrientation, bool) const {}
virtual void runArrowScroll() const {}
+ virtual void setVideo360(HTMLVideoElement*) {}
#endif
#if defined(TIZEN_ATK_FEATURE_VD)
virtual void moveFocusToBrowser(int direction) const {}
class FocusController;
class Frame;
class FrameHost;
+class KURL;
class PluginData;
class PointerLockController;
class ScrollingCoordinator;
ViewMode viewMode() const { return m_viewMode; }
void setViewMode(ViewMode);
+ void notifyUrlForPlayingVideo(const KURL& url);
#if defined(USE_EFL)
void setLongPollingGlobalTimeout(unsigned long timeout);
unsigned long getLongPollingGlobalTimeout();
--- /dev/null
+/*
+* Copyright (C) 2017 Samsung Electronics
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Library General Public
+* License as published by the Free Software Foundation; either
+* version 2 of the License, or (at your option) any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Library General Public License for more details.
+*
+* You should have received a copy of the GNU Library General Public License
+* along with this library; see the file COPYING.LIB. If not, write to
+* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+* Boston, MA 02110-1301, USA.
+*/
+
+#ifndef ScrollLayerAnimationController_h
+#define ScrollLayerAnimationController_h
+
+#include "platform/Timer.h"
+#include "platform/graphics/GraphicsLayer.h"
+
+namespace blink {
+class GraphicsLayer;
+
+class ScrollLayerAnimationController {
+ public:
+ ScrollLayerAnimationController();
+ ~ScrollLayerAnimationController();
+
+ void showOverflowScrollLayer(GraphicsLayer* layer);
+ void clear();
+
+ private:
+ void fadeAnimationTimerFired(TimerBase*);
+ GraphicsLayer* m_layer;
+
+ Timer<ScrollLayerAnimationController> m_timer;
+};
+
+} // namespace blink
+
+#endif // ScrollLayerAnimationController_h
#define ScrollingCoordinator_h
#include "core/CoreExport.h"
+#if defined(OS_TIZEN)
+#include "core/frame/VisualViewport.h"
+#include "core/page/scrolling/ScrollLayerAnimationController.h"
+#endif
#include "core/paint/LayerHitTestRects.h"
#include "platform/PlatformWheelEvent.h"
#include "platform/geometry/IntRect.h"
ScrollbarMap m_verticalScrollbars;
HashSet<const PaintLayer*> m_layersWithTouchRects;
bool m_wasFrameScrollable;
-
+#if defined(OS_TIZEN)
+ RefPtr<CircleImage> m_image;
+ ScrollLayerAnimationController m_horizontalScrollLayerAnimator;
+ ScrollLayerAnimationController m_verticalScrollLayerAnimator;
+#endif
MainThreadScrollingReasons m_lastMainThreadScrollingReasons;
};
static bool paintMediaVolumeSliderThumb(const LayoutObject&,
const PaintInfo&,
const IntRect&);
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ static bool paintMediaBrightnessButton(const LayoutObject&,
+ const PaintInfo&,
+ const IntRect&);
+#endif
+
static bool paintMediaFullscreenButton(const LayoutObject&,
const PaintInfo&,
const IntRect&);
#include "platform/ThemeTypes.h"
#include "wtf/Allocator.h"
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "core/html/shadow/MediaControlElementTypes.h"
+#endif
namespace blink {
}
void paintSliderTicks(const LayoutObject&, const PaintInfo&, const IntRect&);
+#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual MouseEventType mediaThumbFocused() { return MouseOut; }
+ virtual void setMediaThumbMouseEvent(MouseEventType mediaThumbMouseFocused) {}
+#endif
+
#if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
virtual bool paintMediaRotateButton(const LayoutObject&,
const PaintInfo&,
class ThemePainterDefault final : public ThemePainter {
public:
ThemePainterDefault();
+#if defined(OS_TIZEN_TV_PRODUCT)
+ MouseEventType mediaThumbFocused() override;
+ void setMediaThumbMouseEvent(MouseEventType mediaThumbMouseFocused) override;
+#endif
private:
bool paintCheckbox(const LayoutObject&,
void setupMenuListArrow(const LayoutBox&,
const IntRect&,
WebThemeEngine::ExtraParams&);
+#if defined(OS_TIZEN_TV_PRODUCT)
+ MouseEventType m_mediaThumbMouseFocused;
+#endif
};
} // namespace blink
#include "bindings/core/v8/TraceWrapperMember.h"
#include "core/dom/ActiveDOMObject.h"
#include "core/dom/DocumentParserClient.h"
+#include "core/loader/ThreadableLoader.h"
#include "core/loader/ThreadableLoaderClient.h"
#include "core/xmlhttprequest/XMLHttpRequestEventTarget.h"
#include "core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.h"
#include "platform/heap/Handle.h"
#include "platform/network/EncodedFormData.h"
#include "platform/network/HTTPHeaderMap.h"
+#include "platform/network/ResourceRequest.h"
#include "platform/network/ResourceResponse.h"
+#include "platform/Timer.h"
#include "platform/weborigin/KURL.h"
#include "platform/weborigin/SecurityOrigin.h"
#include "wtf/Forward.h"
void clearResponse();
void clearRequest();
+#if defined(OS_TIZEN)
+ void AsyncStartTimerFired(TimerBase*);
+#endif
+
void createRequest(PassRefPtr<EncodedFormData>, ExceptionState&);
// Dispatches a response ProgressEvent.
bool m_downloadingToFile;
bool m_responseTextOverflow;
bool m_sendFlag;
+
+#if defined(OS_TIZEN)
+ Timer<XMLHttpRequest> m_asyncStartTimer;
+ ResourceRequest m_asyncRequest;
+ ThreadableLoaderOptions m_asyncOptions;
+ ResourceLoaderOptions m_asyncResourceLoaderOptions;
+#endif
};
std::ostream& operator<<(std::ostream&, const XMLHttpRequest*);
bool ancestorExposesActiveDescendant() const;
bool computeAncestorExposesActiveDescendant() const;
+#if defined(TIZEN_ATK_FEATURE_VD)
+ bool isWidget() const;
+ bool isComposite() const;
+ bool isTextObjectType() const;
+ bool isSection() const;
+ bool hasOnlyTextChildren();
+ bool hasTextInChildren();
+ bool hasText();
+#endif
+
//
// Accessible name calculation
//
void zero();
+ // Added for backward compatibility.
+ double gain() const { return m_gain; }
+ void setGain(double gain) { m_gain = gain; }
+
DEFINE_INLINE_TRACE() { visitor->trace(m_channels); }
private:
float m_sampleRate;
size_t m_length;
+ // Added for backward compatibility.
+ double m_gain; // scalar gain
+
HeapVector<Member<DOMFloat32Array>> m_channels;
};
AudioNode&,
float sampleRate,
AudioParamHandler& playbackRate,
- AudioParamHandler& detune);
+ AudioParamHandler& detune,
+ AudioParamHandler& gain);
~AudioBufferSourceHandler() override;
// AudioHandler
AudioBufferSourceHandler(AudioNode&,
float sampleRate,
AudioParamHandler& playbackRate,
- AudioParamHandler& detune);
+ AudioParamHandler& detune,
+ AudioParamHandler& gain);
void startSource(double when,
double grainOffset,
double grainDuration,
// The minimum playbackRate value ever used for this source.
double m_minPlaybackRate;
+
+#if defined(OS_TIZEN)
+ // Added for backward compatibility.
+ float m_lastGain; // for de-zippering
+#endif
+
+ RefPtr<AudioParamHandler> m_gain;
};
class AudioBufferSourceNode final : public AudioScheduledSourceNode {
double grainDuration,
ExceptionState&);
+ // Added for backward compatibility.
+ AudioParam* gain() const;
+
private:
AudioBufferSourceNode(BaseAudioContext&);
Member<AudioParam> m_playbackRate;
Member<AudioParam> m_detune;
+
+ // Added for backward compatibility.
+ Member<AudioParam> m_gain;
};
} // namespace blink
ParamTypeAudioListenerUpY,
ParamTypeAudioListenerUpZ,
ParamTypeConstantSourceValue,
+ ParamTypeAudioBufferSourceGain,
};
// AudioParamHandler is an actual implementation of web-exposed AudioParam
USING_GARBAGE_COLLECTED_MIXIN(AudioScheduledSourceNode);
public:
+ // These are the possible states an AudioScheduledSourceNode can be in:
+ //
+ // kUnscheduledState - Initial playback state. Created, but not yet scheduled.
+ // kScheduledState - Scheduled to play (via start()), but not yet playing.
+ // kPlayingState - Generating sound.
+ // kFinishedState - Finished generating sound.
+ //
+ // The state can only transition to the next state, except for the
+ // kFinishedState which can never be changed.
+ enum PlaybackState {
+ // These must be defined with the same names and values as in the .idl file.
+ kUnscheduledState = 0,
+ kScheduledState = 1,
+ kPlayingState = 2,
+ kFinishedState = 3
+ };
+
+ PlaybackState playbackState() const {
+ return static_cast<AudioScheduledSourceNode::PlaybackState>(
+ audioScheduledSourceHandler().playbackState());
+ }
+
void start(ExceptionState&);
void start(double when, ExceptionState&);
void stop(ExceptionState&);
ImageBitmap*,
ExceptionState&);
- // TODO(zmo): Obsolete, remove after WebGL2 conformance tests are updated.
void texImage2D(GLenum,
GLint,
GLint,
GLenum,
GLenum,
DOMArrayBufferView*);
- void texSubImage3D(GLenum,
- GLint,
- GLint,
- GLint,
- GLint,
- GLenum,
- GLenum,
- ImageBitmap*,
- ExceptionState&);
void copyTexSubImage3D(GLenum,
GLint,
DOMArrayBufferView*,
GLuint,
GLuint);
+ void compressedTexImage2D(GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLsizei imageSize,
+ GLintptr offset);
+ void compressedTexSubImage2D(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLsizei imageSize,
+ GLintptr offset);
+ void compressedTexImage3D(GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLint border,
+ GLsizei imageSize,
+ GLintptr offset);
+ void compressedTexSubImage3D(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint zoffset,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLenum format,
+ GLsizei imageSize,
+ GLintptr offset);
// Have to re-declare/re-define the following compressedTex{Sub}Image2D
// functions from the base class. This is because the above
void uniform2ui(const WebGLUniformLocation*, GLuint, GLuint);
void uniform3ui(const WebGLUniformLocation*, GLuint, GLuint, GLuint);
void uniform4ui(const WebGLUniformLocation*, GLuint, GLuint, GLuint, GLuint);
- void uniform1uiv(const WebGLUniformLocation*, const FlexibleUint32ArrayView&);
- void uniform1uiv(const WebGLUniformLocation*, Vector<GLuint>&);
- void uniform2uiv(const WebGLUniformLocation*, const FlexibleUint32ArrayView&);
- void uniform2uiv(const WebGLUniformLocation*, Vector<GLuint>&);
- void uniform3uiv(const WebGLUniformLocation*, const FlexibleUint32ArrayView&);
- void uniform3uiv(const WebGLUniformLocation*, Vector<GLuint>&);
- void uniform4uiv(const WebGLUniformLocation*, const FlexibleUint32ArrayView&);
- void uniform4uiv(const WebGLUniformLocation*, Vector<GLuint>&);
+ void uniform1fv(const WebGLUniformLocation*,
+ const FlexibleFloat32ArrayView&,
+ GLuint,
+ GLuint);
+ void uniform1fv(const WebGLUniformLocation*,
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
+ void uniform2fv(const WebGLUniformLocation*,
+ const FlexibleFloat32ArrayView&,
+ GLuint,
+ GLuint);
+ void uniform2fv(const WebGLUniformLocation*,
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
+ void uniform3fv(const WebGLUniformLocation*,
+ const FlexibleFloat32ArrayView&,
+ GLuint,
+ GLuint);
+ void uniform3fv(const WebGLUniformLocation*,
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
+ void uniform4fv(const WebGLUniformLocation*,
+ const FlexibleFloat32ArrayView&,
+ GLuint,
+ GLuint);
+ void uniform4fv(const WebGLUniformLocation*,
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
+ void uniform1iv(const WebGLUniformLocation*,
+ const FlexibleInt32ArrayView&,
+ GLuint,
+ GLuint);
+ void uniform1iv(const WebGLUniformLocation*, Vector<GLint>&, GLuint, GLuint);
+ void uniform2iv(const WebGLUniformLocation*,
+ const FlexibleInt32ArrayView&,
+ GLuint,
+ GLuint);
+ void uniform2iv(const WebGLUniformLocation*, Vector<GLint>&, GLuint, GLuint);
+ void uniform3iv(const WebGLUniformLocation*,
+ const FlexibleInt32ArrayView&,
+ GLuint,
+ GLuint);
+ void uniform3iv(const WebGLUniformLocation*, Vector<GLint>&, GLuint, GLuint);
+ void uniform4iv(const WebGLUniformLocation*,
+ const FlexibleInt32ArrayView&,
+ GLuint,
+ GLuint);
+ void uniform4iv(const WebGLUniformLocation*, Vector<GLint>&, GLuint, GLuint);
+ void uniform1uiv(const WebGLUniformLocation*,
+ const FlexibleUint32ArrayView&,
+ GLuint,
+ GLuint);
+ void uniform1uiv(const WebGLUniformLocation*,
+ Vector<GLuint>&,
+ GLuint,
+ GLuint);
+ void uniform2uiv(const WebGLUniformLocation*,
+ const FlexibleUint32ArrayView&,
+ GLuint,
+ GLuint);
+ void uniform2uiv(const WebGLUniformLocation*,
+ Vector<GLuint>&,
+ GLuint,
+ GLuint);
+ void uniform3uiv(const WebGLUniformLocation*,
+ const FlexibleUint32ArrayView&,
+ GLuint,
+ GLuint);
+ void uniform3uiv(const WebGLUniformLocation*,
+ Vector<GLuint>&,
+ GLuint,
+ GLuint);
+ void uniform4uiv(const WebGLUniformLocation*,
+ const FlexibleUint32ArrayView&,
+ GLuint,
+ GLuint);
+ void uniform4uiv(const WebGLUniformLocation*,
+ Vector<GLuint>&,
+ GLuint,
+ GLuint);
+ void uniformMatrix2fv(const WebGLUniformLocation*,
+ GLboolean,
+ DOMFloat32Array*,
+ GLuint,
+ GLuint);
+ void uniformMatrix2fv(const WebGLUniformLocation*,
+ GLboolean,
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
+ void uniformMatrix3fv(const WebGLUniformLocation*,
+ GLboolean,
+ DOMFloat32Array*,
+ GLuint,
+ GLuint);
+ void uniformMatrix3fv(const WebGLUniformLocation*,
+ GLboolean,
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
+ void uniformMatrix4fv(const WebGLUniformLocation*,
+ GLboolean,
+ DOMFloat32Array*,
+ GLuint,
+ GLuint);
+ void uniformMatrix4fv(const WebGLUniformLocation*,
+ GLboolean,
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
void uniformMatrix2x3fv(const WebGLUniformLocation*,
GLboolean,
- DOMFloat32Array*);
+ DOMFloat32Array*,
+ GLuint,
+ GLuint);
void uniformMatrix2x3fv(const WebGLUniformLocation*,
GLboolean,
- Vector<GLfloat>&);
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
void uniformMatrix3x2fv(const WebGLUniformLocation*,
GLboolean,
- DOMFloat32Array*);
+ DOMFloat32Array*,
+ GLuint,
+ GLuint);
void uniformMatrix3x2fv(const WebGLUniformLocation*,
GLboolean,
- Vector<GLfloat>&);
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
void uniformMatrix2x4fv(const WebGLUniformLocation*,
GLboolean,
- DOMFloat32Array*);
+ DOMFloat32Array*,
+ GLuint,
+ GLuint);
void uniformMatrix2x4fv(const WebGLUniformLocation*,
GLboolean,
- Vector<GLfloat>&);
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
void uniformMatrix4x2fv(const WebGLUniformLocation*,
GLboolean,
- DOMFloat32Array*);
+ DOMFloat32Array*,
+ GLuint,
+ GLuint);
void uniformMatrix4x2fv(const WebGLUniformLocation*,
GLboolean,
- Vector<GLfloat>&);
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
void uniformMatrix3x4fv(const WebGLUniformLocation*,
GLboolean,
- DOMFloat32Array*);
+ DOMFloat32Array*,
+ GLuint,
+ GLuint);
void uniformMatrix3x4fv(const WebGLUniformLocation*,
GLboolean,
- Vector<GLfloat>&);
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
void uniformMatrix4x3fv(const WebGLUniformLocation*,
GLboolean,
- DOMFloat32Array*);
+ DOMFloat32Array*,
+ GLuint,
+ GLuint);
void uniformMatrix4x3fv(const WebGLUniformLocation*,
GLboolean,
- Vector<GLfloat>&);
+ Vector<GLfloat>&,
+ GLuint,
+ GLuint);
+ // Have to re-declare/re-define the following uniform*()
+ // functions from the base class. This is because the above
+ // uniform*() hide the name from base class.
+ void uniform1fv(const WebGLUniformLocation*, const FlexibleFloat32ArrayView&);
+ void uniform1fv(const WebGLUniformLocation*, Vector<GLfloat>&);
+ void uniform2fv(const WebGLUniformLocation*, const FlexibleFloat32ArrayView&);
+ void uniform2fv(const WebGLUniformLocation*, Vector<GLfloat>&);
+ void uniform3fv(const WebGLUniformLocation*, const FlexibleFloat32ArrayView&);
+ void uniform3fv(const WebGLUniformLocation*, Vector<GLfloat>&);
+ void uniform4fv(const WebGLUniformLocation*, const FlexibleFloat32ArrayView&);
+ void uniform4fv(const WebGLUniformLocation*, Vector<GLfloat>&);
+ void uniform1iv(const WebGLUniformLocation*, const FlexibleInt32ArrayView&);
+ void uniform1iv(const WebGLUniformLocation*, Vector<GLint>&);
+ void uniform2iv(const WebGLUniformLocation*, const FlexibleInt32ArrayView&);
+ void uniform2iv(const WebGLUniformLocation*, Vector<GLint>&);
+ void uniform3iv(const WebGLUniformLocation*, const FlexibleInt32ArrayView&);
+ void uniform3iv(const WebGLUniformLocation*, Vector<GLint>&);
+ void uniform4iv(const WebGLUniformLocation*, const FlexibleInt32ArrayView&);
+ void uniform4iv(const WebGLUniformLocation*, Vector<GLint>&);
+ void uniformMatrix2fv(const WebGLUniformLocation*,
+ GLboolean transpose,
+ DOMFloat32Array* value);
+ void uniformMatrix2fv(const WebGLUniformLocation*,
+ GLboolean transpose,
+ Vector<GLfloat>& value);
+ void uniformMatrix3fv(const WebGLUniformLocation*,
+ GLboolean transpose,
+ DOMFloat32Array* value);
+ void uniformMatrix3fv(const WebGLUniformLocation*,
+ GLboolean transpose,
+ Vector<GLfloat>& value);
+ void uniformMatrix4fv(const WebGLUniformLocation*,
+ GLboolean transpose,
+ DOMFloat32Array* value);
+ void uniformMatrix4fv(const WebGLUniformLocation*,
+ GLboolean transpose,
+ Vector<GLfloat>& value);
void vertexAttribI4i(GLuint, GLint, GLint, GLint, GLint);
void vertexAttribI4iv(GLuint, const DOMInt32Array*);
/* Multiple Render Targets */
void drawBuffers(const Vector<GLenum>&);
- void clearBufferiv(GLenum, GLint, DOMInt32Array*);
- void clearBufferiv(GLenum, GLint, const Vector<GLint>&);
- void clearBufferuiv(GLenum, GLint, DOMUint32Array*);
- void clearBufferuiv(GLenum, GLint, const Vector<GLuint>&);
- void clearBufferfv(GLenum, GLint, DOMFloat32Array*);
- void clearBufferfv(GLenum, GLint, const Vector<GLfloat>&);
+ void clearBufferiv(GLenum, GLint, DOMInt32Array*, GLuint);
+ void clearBufferiv(GLenum, GLint, const Vector<GLint>&, GLuint);
+ void clearBufferuiv(GLenum, GLint, DOMUint32Array*, GLuint);
+ void clearBufferuiv(GLenum, GLint, const Vector<GLuint>&, GLuint);
+ void clearBufferfv(GLenum, GLint, DOMFloat32Array*, GLuint);
+ void clearBufferfv(GLenum, GLint, const Vector<GLfloat>&, GLuint);
void clearBufferfi(GLenum, GLint, GLfloat, GLint);
/* Query Objects */
bool validateClearBuffer(const char* functionName,
GLenum buffer,
- GLsizei length);
+ GLsizei length,
+ GLuint src_offset);
enum TexStorageType {
TexStorageType2D,
void DrawingBufferClientRestoreRenderbufferBinding() override;
void DrawingBufferClientRestoreFramebufferBinding() override;
void DrawingBufferClientRestorePixelUnpackBufferBinding() override;
+#if defined(TIZEN_CANVAS_HOLE)
+ void DrawingBufferClientCanvasRectChanged(const IntRect&) override;
+#endif
void addSharedObject(WebGLSharedObject*);
void addContextObject(WebGLContextObject*);
void notifyCanvasContextChanged();
+#if defined(TIZEN_CANVAS_HOLE)
+ void notifyCanvasRectChanged(const IntRect&);
+#endif
+
#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
void prepareOESTextureProgram(WebGLProgram*, bool);
bool isEnabledOESEglImageExternal() {
bool m_isWebGLDepthTextureFormatsTypesAdded;
bool m_isEXTsRGBFormatsTypesAdded;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool m_requestCanvasFullscreen;
+ bool m_enteredFullscreen;
+ HTMLVideoElement* m_video;
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+ bool m_canvasHoleEnabled;
+#endif
+
#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
bool m_isOESTextureVideo;
bool m_isFirstFrameOES;
bool m_isEnabledOESEglImageExternal;
- WebGLTexture* m_videoTexture;
- WebGLTexture* m_videoTextureOES;
- WebGLShader* m_videoFragmentShader;
- WebGLShader* m_videoVertexShader;
- WebGLProgram* m_videoProgram;
- HTMLVideoElement* m_video;
+ TraceWrapperMember<WebGLTexture> m_videoTexture;
+ TraceWrapperMember<WebGLTexture> m_videoTextureOES;
+ TraceWrapperMember<WebGLShader> m_videoFragmentShader;
+ TraceWrapperMember<WebGLShader> m_videoVertexShader;
+ TraceWrapperMember<WebGLProgram> m_videoProgram;
unsigned m_videoImageId;
#endif
DCHECK(functionName);
DCHECK(selectingSubRectangle);
DCHECK(image);
- *selectingSubRectangle = image &&
- !(subRect.x() == 0 && subRect.y() == 0 &&
- subRect.width() == image->width() &&
- subRect.height() == image->height());
+ int imageWidth = static_cast<int>(image->width());
+ int imageHeight = static_cast<int>(image->height());
+ *selectingSubRectangle =
+ !(subRect.x() == 0 && subRect.y() == 0 &&
+ subRect.width() == imageWidth && subRect.height() == imageHeight);
// If the source image rect selects anything except the entire
// contents of the image, assert that we're running WebGL 2.0 or
// higher, since this should never happen for WebGL 1.0 (even though
DCHECK(!*selectingSubRectangle || isWebGL2OrHigher())
<< "subRect = (" << subRect.width() << " x " << subRect.height()
<< ") @ (" << subRect.x() << ", " << subRect.y() << "), image = ("
- << (image ? image->width() : -1) << " x "
- << (image ? image->height() : -1) << ")";
+ << imageWidth << " x " << imageHeight << ")";
- if (subRect.x() < 0 || subRect.y() < 0 || subRect.maxX() > image->width() ||
- subRect.maxY() > image->height() || subRect.width() < 0 ||
+ if (subRect.x() < 0 || subRect.y() < 0 || subRect.maxX() > imageWidth ||
+ subRect.maxY() > imageHeight || subRect.width() < 0 ||
subRect.height() < 0) {
synthesizeGLError(GL_INVALID_OPERATION, functionName,
"source sub-rectangle specified via pixel unpack "
if (functionID == TexImage3D || functionID == TexSubImage3D) {
DCHECK_GE(unpackImageHeight, 0);
- // Verify that the image data can cover the required depth.
- WTF::CheckedNumeric<GLint> maxDepthSupported = 1;
+ if (depth < 1) {
+ synthesizeGLError(GL_INVALID_OPERATION, functionName,
+ "Can't define a 3D texture with depth < 1");
+ return false;
+ }
+
+ // According to the WebGL 2.0 spec, specifying depth > 1 means
+ // to select multiple rectangles stacked vertically.
+ WTF::CheckedNumeric<GLint> maxYAccessed;
if (unpackImageHeight) {
- maxDepthSupported = subRect.height();
- maxDepthSupported /= unpackImageHeight;
+ maxYAccessed = unpackImageHeight;
+ } else {
+ maxYAccessed = subRect.height();
}
+ maxYAccessed *= depth - 1;
+ maxYAccessed += subRect.height();
+ maxYAccessed += subRect.y();
- if (!maxDepthSupported.IsValid() ||
- maxDepthSupported.ValueOrDie() < depth) {
+ if (!maxYAccessed.IsValid()) {
+ synthesizeGLError(GL_INVALID_OPERATION, functionName,
+ "Out-of-range parameters passed for 3D texture "
+ "upload");
+ return false;
+ }
+
+ if (maxYAccessed.ValueOrDie() > imageHeight) {
synthesizeGLError(GL_INVALID_OPERATION, functionName,
"Not enough data supplied to upload to a 3D texture "
"with depth > 1");
// Helper function to validate input parameters for uniform functions.
bool validateUniformParameters(const char* functionName,
const WebGLUniformLocation*,
- DOMFloat32Array*,
- GLsizei mod);
- bool validateUniformParameters(const char* functionName,
- const WebGLUniformLocation*,
- DOMInt32Array*,
- GLsizei mod);
- bool validateUniformParameters(const char* functionName,
- const WebGLUniformLocation*,
void*,
GLsizei,
- GLsizei mod);
+ GLsizei mod,
+ GLuint srcOffset,
+ GLuint srcLength);
bool validateUniformMatrixParameters(const char* functionName,
const WebGLUniformLocation*,
GLboolean transpose,
DOMFloat32Array*,
- GLsizei mod);
+ GLsizei mod,
+ GLuint srcOffset,
+ GLuint srcLength);
bool validateUniformMatrixParameters(const char* functionName,
const WebGLUniformLocation*,
GLboolean transpose,
void*,
GLsizei,
- GLsizei mod);
+ GLsizei mod,
+ GLuint srcOffset,
+ GLuint srcLength);
template <typename WTFTypedArray>
bool validateUniformParameters(
const char* functionName,
const WebGLUniformLocation* location,
const TypedFlexibleArrayBufferView<WTFTypedArray>& v,
- GLsizei requiredMinSize) {
+ GLsizei requiredMinSize,
+ GLuint srcOffset,
+ GLuint srcLength) {
if (!v.dataMaybeOnStack()) {
synthesizeGLError(GL_INVALID_VALUE, functionName, "no array");
return false;
}
- return validateUniformMatrixParameters(functionName, location, false,
- v.dataMaybeOnStack(), v.length(),
- requiredMinSize);
+ return validateUniformMatrixParameters(
+ functionName, location, false, v.dataMaybeOnStack(), v.length(),
+ requiredMinSize, srcOffset, srcLength);
}
// Helper function to validate the target for bufferData and
GLint,
GLint,
ImageBitmap*,
+ const IntRect&,
+ GLsizei,
+ GLint,
ExceptionState&);
static const char* getTexImageFunctionName(TexImageFunctionID);
IntRect sentinelEmptyRect();
ScriptState*,
const CanvasContextCreationAttributes&,
unsigned);
+
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void enterFullscreen();
+#endif
+
void texImageCanvasByGPU(HTMLCanvasElement*,
+ GLenum,
GLuint,
GLenum,
GLenum,
GLint,
GLint,
const IntRect& sourceSubRectangle);
- void texImageBitmapByGPU(ImageBitmap*, GLuint, GLenum, GLenum, GLint, bool);
+ void texImageBitmapByGPU(ImageBitmap*, GLenum, GLuint, GLenum, GLenum,
+ GLint, bool);
const unsigned m_version;
#include "wtf/WeakPtr.h"
#include <memory>
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
class SkRefCnt;
namespace WTF {
PLATFORM_EXPORT static Type copy(const String&);
};
+#if defined(ENABLE_STRING_COMPRESSION)
+template <>
+struct CrossThreadCopier<CompressibleString> {
+ STATIC_ONLY(CrossThreadCopier);
+ typedef CompressibleString Type;
+ PLATFORM_EXPORT static Type copy(const CompressibleString&);
+};
+#endif
+
template <>
struct CrossThreadCopier<ResourceError> {
STATIC_ONLY(CrossThreadCopier);
VKEY_OEM_CLEAR = VK_OEM_CLEAR,
#if defined(OS_TIZEN_TV_PRODUCT)
- // VKEY_RED (193) Red key on tv remote.
- VKEY_RED = VK_RED,
+ // VKEY_RED (193) Red key on tv remote.
+ VKEY_RED = VK_RED,
- // VKEY_GREEN (194) Green key on tv remote.
- VKEY_GREEN = VK_GREEN,
+ // VKEY_GREEN (194) Green key on tv remote.
+ VKEY_GREEN = VK_GREEN,
- // VKEY_YELLOW (195) Yellow key on tv remote.
- VKEY_YELLOW = VK_YELLOW,
+ // VKEY_YELLOW (195) Yellow key on tv remote.
+ VKEY_YELLOW = VK_YELLOW,
- // VKEY_BLUE (196) Blue key on tv remote.
- VKEY_BLUE = VK_BLUE,
+ // VKEY_BLUE (196) Blue key on tv remote.
+ VKEY_BLUE = VK_BLUE,
- // VKEY_GREY (197) Grey key on tv remote.
- VKEY_GREY = VK_GREY,
+ // VKEY_GREY (197) Grey key on tv remote.
+ VKEY_GREY = VK_GREY,
- // VKEY_BROWN (198) Brown key on tv remote.
- VKEY_BROWN = VK_BROWN,
+ // VKEY_BROWN (198) Brown key on tv remote.
+ VKEY_BROWN = VK_BROWN,
- // VKEY_DTV_RETURN (2719) Return key on tv remote.
- VKEY_DTV_RETURN = VK_DTV_RETURN,
+ // VKEY_DTV_RETURN (2719) Return key on tv remote.
+ VKEY_DTV_RETURN = VK_DTV_RETURN,
- // VKEY_DTV_HOME (2757)
- VKEY_DTV_HOME = VK_DTV_HOME,
+ // VKEY_DTV_HOME (2757)
+ VKEY_DTV_HOME = VK_DTV_HOME,
- // VKEY_SOURCE (2758)
- VKEY_SOURCE = VK_SOURCE,
+ // VKEY_SOURCE (2758)
+ VKEY_SOURCE = VK_SOURCE,
- // VKEY_CH_LIST (2759)
- VKEY_CH_LIST = VK_CH_LIST,
+ // VKEY_CH_LIST (2759)
+ VKEY_CH_LIST = VK_CH_LIST,
- // VKEY_POWER (199)
- VKEY_POWER = VK_POWER,
+ // VKEY_POWER (199)
+ VKEY_POWER = VK_POWER,
- // VKEY_DTV_MENU (2795)
- VKEY_DTV_MENU = VK_DTV_MENU,
+ // VKEY_DTV_MENU (2795)
+ VKEY_DTV_MENU = VK_DTV_MENU,
- // VKEY_GUIDE (1CA)
- VKEY_GUIDE = VK_GUIDE,
+ // VKEY_GUIDE (1CA)
+ VKEY_GUIDE = VK_GUIDE,
- // VKEY_ADDDEL (1AD)
- VKEY_ADDDEL = VK_ADDDEL,
+ // VKEY_ADDDEL (1AD)
+ VKEY_ADDDEL = VK_ADDDEL,
- // VKEY_AUTO_PROGRAM (1B9)
- VKEY_AUTO_PROGRAM = VK_AUTO_PROGRAM,
+ // VKEY_AUTO_PROGRAM (1B9)
+ VKEY_AUTO_PROGRAM = VK_AUTO_PROGRAM,
- // VKEY_FAVCH (1B1)
- VKEY_FAVCH = VK_FAVCH,
+ // VKEY_FAVCH (1B1)
+ VKEY_FAVCH = VK_FAVCH,
- // VKEY_BT_DUALVIEW (1BB)
- VKEY_BT_DUALVIEW = VK_BT_DUALVIEW,
+ // VKEY_BT_DUALVIEW (1BB)
+ VKEY_BT_DUALVIEW = VK_BT_DUALVIEW,
- // VKEY_SUB_TITLE (1CC)
- VKEY_SUB_TITLE = VK_SUB_TITLE,
+ // VKEY_SUB_TITLE (1CC)
+ VKEY_SUB_TITLE = VK_SUB_TITLE,
- // VKEY_REWIND (19c) Rewind key on tv remote.
- VKEY_REWIND = VK_REWIND,
+ // VKEY_REWIND (19c) Rewind key on tv remote.
+ VKEY_REWIND = VK_REWIND,
- // VKEY_STOP (19D)
- VKEY_STOP = VK_STOP,
+ // VKEY_STOP (19D)
+ VKEY_STOP = VK_STOP,
- // VKEY_RECORD (1A0)
- VKEY_RECORD = VK_RECORD,
+ // VKEY_RECORD (1A0)
+ VKEY_RECORD = VK_RECORD,
- // VKEY_FAST_FWD (1a1) Fast forward key on tv remote.
- VKEY_FAST_FWD = VK_FAST_FWD,
+ // VKEY_FAST_FWD (1a1) Fast forward key on tv remote.
+ VKEY_FAST_FWD = VK_FAST_FWD,
- // VKEY_CHANNEL_UP (1ab) P+ key on tv remote.
- VKEY_CHANNEL_UP = VK_CHANNEL_UP,
+ // VKEY_CHANNEL_UP (1ab) P+ key on tv remote.
+ VKEY_CHANNEL_UP = VK_CHANNEL_UP,
- // VKEY_CHANNEL_DOWN (1ac) P- key on tv remote.
- VKEY_CHANNEL_DOWN = VK_CHANNEL_DOWN,
+ // VKEY_CHANNEL_DOWN (1ac) P- key on tv remote.
+ VKEY_CHANNEL_DOWN = VK_CHANNEL_DOWN,
- // VKEY_INFO (1C9)
- VKEY_INFO = VK_INFO,
+ // VKEY_INFO (1C9)
+ VKEY_INFO = VK_INFO,
- // VKEY_REPEAT (2799)
- VKEY_REPEAT = VK_REPEAT,
+ // VKEY_REPEAT (2799)
+ VKEY_REPEAT = VK_REPEAT,
- // VKEY_ASPECT (279C)
- VKEY_ASPECT = VK_ASPECT,
+ // VKEY_ASPECT (279C)
+ VKEY_ASPECT = VK_ASPECT,
- // VKEY_PMODE (279D)
- VKEY_PMODE = VK_PMODE,
+ // VKEY_PMODE (279D)
+ VKEY_PMODE = VK_PMODE,
- // VKEY_HDMI (279F)
- VKEY_HDMI = VK_HDMI,
+ // VKEY_HDMI (279F)
+ VKEY_HDMI = VK_HDMI,
- // VKEY_USBHUB_SWITCH (27A0)
- VKEY_USBHUB_SWITCH = VK_USBHUB_SWITCH,
+ // VKEY_USBHUB_SWITCH (27A0)
+ VKEY_USBHUB_SWITCH = VK_USBHUB_SWITCH,
- // VKEY_EMANUAL (27A2)
- VKEY_EMANUAL = VK_EMANUAL,
+ // VKEY_EMANUAL (27A2)
+ VKEY_EMANUAL = VK_EMANUAL,
- // VKEY_TOOLS (2797)
- VKEY_TOOLS = VK_TOOLS,
+ // VKEY_TOOLS (2797)
+ VKEY_TOOLS = VK_TOOLS,
- // VKEY_MORE (27A4)
- VKEY_MORE = VK_MORE,
+ // VKEY_MORE (27A4)
+ VKEY_MORE = VK_MORE,
- // VKEY_FACTORY (27A5)
- VKEY_FACTORY = VK_FACTORY,
+ // VKEY_FACTORY (27A5)
+ VKEY_FACTORY = VK_FACTORY,
- // VKEY_TV (27A9)
- VKEY_TV = VK_TV,
+ // VKEY_TV (27A9)
+ VKEY_TV = VK_TV,
- // VKEY_DTV (27AA)
- VKEY_DTV = VK_DTV,
+ // VKEY_DTV (27AA)
+ VKEY_DTV = VK_DTV,
- // VKEY_STB_POWER (27AB)
- VKEY_STB_POWER = VK_STB_POWER,
+ // VKEY_STB_POWER (27AB)
+ VKEY_STB_POWER = VK_STB_POWER,
- // VKEY_PANEL_DOWN (27AD)
- VKEY_PANEL_DOWN = VK_PANEL_DOWN,
+ // VKEY_PANEL_DOWN (27AD)
+ VKEY_PANEL_DOWN = VK_PANEL_DOWN,
- // VKEY_CONVERGENCE (27AE)
- VKEY_CONVERGENCE = VK_CONVERGENCE,
+ // VKEY_CONVERGENCE (27AE)
+ VKEY_CONVERGENCE = VK_CONVERGENCE,
- // VKEY_BT_COLOR_MECHA (27AF)
- VKEY_BT_COLOR_MECHA = VK_BT_COLOR_MECHA,
+ // VKEY_BT_COLOR_MECHA (27AF)
+ VKEY_BT_COLOR_MECHA = VK_BT_COLOR_MECHA,
- // VKEY_STILL_PICTURE (27B0)
- VKEY_STILL_PICTURE = VK_STILL_PICTURE,
+ // VKEY_STILL_PICTURE (27B0)
+ VKEY_STILL_PICTURE = VK_STILL_PICTURE,
- // VKEY_BT_TRIGGER (27B1)
- VKEY_BT_TRIGGER = VK_BT_TRIGGER,
+ // VKEY_BT_TRIGGER (27B1)
+ VKEY_BT_TRIGGER = VK_BT_TRIGGER,
- // VKEY_BT_HOTVK (27B2)
- VKEY_BT_HOTVK = VK_BT_HOTVK,
+ // VKEY_BT_HOTVK (27B2)
+ VKEY_BT_HOTVK = VK_BT_HOTVK,
- // VKEY_BT_DEVICE (27B3)
- VKEY_BT_DEVICE = VK_BT_DEVICE,
+ // VKEY_BT_DEVICE (27B3)
+ VKEY_BT_DEVICE = VK_BT_DEVICE,
- // VKEY_BT_CONTENTSBAR (27B4)
- VKEY_BT_CONTENTSBAR = VK_BT_CONTENTSBAR,
+ // VKEY_BT_CONTENTSBAR (27B4)
+ VKEY_BT_CONTENTSBAR = VK_BT_CONTENTSBAR,
- // VKEY_GAME (27B5)
- VKEY_GAME = VK_GAME,
+ // VKEY_GAME (27B5)
+ VKEY_GAME = VK_GAME,
- // VKEY_PIP_CHUP (27B7)
- VKEY_PIP_CHUP = VK_PIP_CHUP,
+ // VKEY_PIP_CHUP (27B7)
+ VKEY_PIP_CHUP = VK_PIP_CHUP,
- // VKEY_PIP_CHDOWN (27B8)
- VKEY_PIP_CHDOWN = VK_PIP_CHDOWN,
+ // VKEY_PIP_CHDOWN (27B8)
+ VKEY_PIP_CHDOWN = VK_PIP_CHDOWN,
- // VKEY_ANTENA (27B9)
- VKEY_ANTENA = VK_ANTENA,
+ // VKEY_ANTENA (27B9)
+ VKEY_ANTENA = VK_ANTENA,
- // VKEY_PANEL_ENTER (27BB)
- VKEY_PANEL_ENTER = VK_PANEL_ENTER,
+ // VKEY_PANEL_ENTER (27BB)
+ VKEY_PANEL_ENTER = VK_PANEL_ENTER,
- // VKEY_LINK (27BC)
- VKEY_LINK = VK_LINK,
+ // VKEY_LINK (27BC)
+ VKEY_LINK = VK_LINK,
- // VKEY_PANEL_UP (27BD)
- VKEY_PANEL_UP = VK_PANEL_UP,
+ // VKEY_PANEL_UP (27BD)
+ VKEY_PANEL_UP = VK_PANEL_UP,
- // VKEY_ANGLE (27C1)
- VKEY_ANGLE = VK_ANGLE,
+ // VKEY_ANGLE (27C1)
+ VKEY_ANGLE = VK_ANGLE,
- // VKEY_WHEEL_LEFT (27C2)
- VKEY_WHEEL_LEFT = VK_WHEEL_LEFT,
+ // VKEY_WHEEL_LEFT (27C2)
+ VKEY_WHEEL_LEFT = VK_WHEEL_LEFT,
- // VKEY_WHEEL_RIGHT (27C3)
- VKEY_WHEEL_RIGHT = VK_WHEEL_RIGHT,
+ // VKEY_WHEEL_RIGHT (27C3)
+ VKEY_WHEEL_RIGHT = VK_WHEEL_RIGHT,
- // VKEY_CONTENTS (2757)
- VKEY_CONTENTS = VK_CONTENTS,
+ // VKEY_CONTENTS (2757)
+ VKEY_CONTENTS = VK_CONTENTS,
- // VKEY_PANEL_EXIT (27C5)
- VKEY_PANEL_EXIT = VK_PANEL_EXIT,
+ // VKEY_PANEL_EXIT (27C5)
+ VKEY_PANEL_EXIT = VK_PANEL_EXIT,
- // VKEY_EXIT (27C6)
- VKEY_EXIT = VK_EXIT,
+ // VKEY_EXIT (27C6)
+ VKEY_EXIT = VK_EXIT,
- // VKEY_MBR_TV (27C7)
- VKEY_MBR_TV = VK_MBR_TV,
+ // VKEY_MBR_TV (27C7)
+ VKEY_MBR_TV = VK_MBR_TV,
- // VKEY_MBR_STB_GUIDE (27C8)
- VKEY_MBR_STB_GUIDE = VK_MBR_STB_GUIDE,
+ // VKEY_MBR_STB_GUIDE (27C8)
+ VKEY_MBR_STB_GUIDE = VK_MBR_STB_GUIDE,
- // VKEY_MBR_BD_POPUP (27C9)
- VKEY_MBR_BD_POPUP = VK_MBR_BD_POPUP,
+ // VKEY_MBR_BD_POPUP (27C9)
+ VKEY_MBR_BD_POPUP = VK_MBR_BD_POPUP,
- // VKEY_MBR_BDDVD_POWER (27CA)
- VKEY_MBR_BDDVD_POWER = VK_MBR_BDDVD_POWER,
+ // VKEY_MBR_BDDVD_POWER (27CA)
+ VKEY_MBR_BDDVD_POWER = VK_MBR_BDDVD_POWER,
- // VKEY_MBR_SETUP_FAILURE (27CB)
- VKEY_MBR_SETUP_FAILURE = VK_MBR_SETUP_FAILURE,
+ // VKEY_MBR_SETUP_FAILURE (27CB)
+ VKEY_MBR_SETUP_FAILURE = VK_MBR_SETUP_FAILURE,
- // VKEY_MBR_SETUP (27CC)
- VKEY_MBR_SETUP = VK_MBR_SETUP,
+ // VKEY_MBR_SETUP (27CC)
+ VKEY_MBR_SETUP = VK_MBR_SETUP,
- // VKEY_MBR_WATCH_TV (27CD)
- VKEY_MBR_WATCH_TV = VK_MBR_WATCH_TV,
+ // VKEY_MBR_WATCH_TV (27CD)
+ VKEY_MBR_WATCH_TV = VK_MBR_WATCH_TV,
- // VKEY_PRECH (27CE)
- VKEY_PRECH = VK_PRECH,
+ // VKEY_PRECH (27CE)
+ VKEY_PRECH = VK_PRECH,
- // VKEY_RECOMMEND_SEARCH_TOGGLE (27D0)
- VKEY_RECOMMEND_SEARCH_TOGGLE = VK_RECOMMEND_SEARCH_TOGGLE,
+ // VKEY_RECOMMEND_SEARCH_TOGGLE (27D0)
+ VKEY_RECOMMEND_SEARCH_TOGGLE = VK_RECOMMEND_SEARCH_TOGGLE,
- // VKEY_BT_NUMBER (27D1)
- VKEY_BT_NUMBER = VK_BT_NUMBER,
+ // VKEY_BT_NUMBER (27D1)
+ VKEY_BT_NUMBER = VK_BT_NUMBER,
- // VKEY_16_9 (27D2)
- VKEY_16_9 = VK_16_9,
+ // VKEY_16_9 (27D2)
+ VKEY_16_9 = VK_16_9,
- // VKEY_MTS (27D3)
- VKEY_MTS = VK_MTS,
+ // VKEY_MTS (27D3)
+ VKEY_MTS = VK_MTS,
- // VKEY_SMODE (27D5)
- VKEY_SMODE = VK_SMODE,
+ // VKEY_SMODE (27D5)
+ VKEY_SMODE = VK_SMODE,
- // VKEY_3SPEED (27D6)
- VKEY_3SPEED = VK_3SPEED,
+ // VKEY_3SPEED (27D6)
+ VKEY_3SPEED = VK_3SPEED,
- // VKEY_3D (27D7)
- VKEY_3D = VK_3D,
+ // VKEY_3D (27D7)
+ VKEY_3D = VK_3D,
- // VKEY_TTX_MIX (27D8)
- VKEY_TTX_MIX = VK_TTX_MIX,
+ // VKEY_TTX_MIX (27D8)
+ VKEY_TTX_MIX = VK_TTX_MIX,
- // VKEY_SRSTSXT (27D9)
- VKEY_SRSTSXT = VK_SRSTSXT,
+ // VKEY_SRSTSXT (27D9)
+ VKEY_SRSTSXT = VK_SRSTSXT,
- // VKEY_WIFI_PAIRING (27DA)
- VKEY_WIFI_PAIRING = VK_WIFI_PAIRING,
+ // VKEY_WIFI_PAIRING (27DA)
+ VKEY_WIFI_PAIRING = VK_WIFI_PAIRING,
- // VKEY_BT_SAMSUNG_APPS (27E3)
- VKEY_BT_SAMSUNG_APPS = VK_BT_SAMSUNG_APPS,
+ // VKEY_BT_SAMSUNG_APPS (27E3)
+ VKEY_BT_SAMSUNG_APPS = VK_BT_SAMSUNG_APPS,
- // VKEY_W_LINK (2757)
- VKEY_W_LINK = VK_W_LINK,
+ // VKEY_W_LINK (2757)
+ VKEY_W_LINK = VK_W_LINK,
- // VKEY_ESAVING (27E5)
- VKEY_ESAVING = VK_ESAVING,
+ // VKEY_ESAVING (27E5)
+ VKEY_ESAVING = VK_ESAVING,
- // VKEY_TV_SNS (27E9)
- VKEY_TV_SNS = VK_TV_SNS,
+ // VKEY_TV_SNS (27E9)
+ VKEY_TV_SNS = VK_TV_SNS,
- // VKEY_DVR (27EA)
- VKEY_DVR = VK_DVR,
+ // VKEY_DVR (27EA)
+ VKEY_DVR = VK_DVR,
- // VKEY_APP_LIST (27EB)
- VKEY_APP_LIST = VK_APP_LIST,
+ // VKEY_APP_LIST (27EB)
+ VKEY_APP_LIST = VK_APP_LIST,
- // VKEY_CAMERA (27EC)
- VKEY_CAMERA = VK_CAMERA,
+ // VKEY_CAMERA (27EC)
+ VKEY_CAMERA = VK_CAMERA,
- // VKEY_CAPTION (27ED)
- VKEY_CAPTION = VK_CAPTION,
+ // VKEY_CAPTION (27ED)
+ VKEY_CAPTION = VK_CAPTION,
- // VKEY_ZOOM1 (27EE)
- VKEY_ZOOM1 = VK_ZOOM1,
+ // VKEY_ZOOM1 (27EE)
+ VKEY_ZOOM1 = VK_ZOOM1,
- // VKEY_PANEL_PLUS (27EF)
- VKEY_PANEL_PLUS = VK_PANEL_PLUS,
+ // VKEY_PANEL_PLUS (27EF)
+ VKEY_PANEL_PLUS = VK_PANEL_PLUS,
- // VKEY_BT_VOICE (27F0)
- VKEY_BT_VOICE = VK_BT_VOICE,
+ // VKEY_BT_VOICE (27F0)
+ VKEY_BT_VOICE = VK_BT_VOICE,
- // VKEY_SEARCH (27F1)
- VKEY_SEARCH = VK_SEARCH,
+ // VKEY_SEARCH (27F1)
+ VKEY_SEARCH = VK_SEARCH,
- // VKEY_PANEL_MINUS (27F3)
- VKEY_PANEL_MINUS = VK_PANEL_MINUS,
+ // VKEY_PANEL_MINUS (27F3)
+ VKEY_PANEL_MINUS = VK_PANEL_MINUS,
- // VKEY_SOCCER_MODE (27F4)
- VKEY_SOCCER_MODE = VK_SOCCER_MODE,
+ // VKEY_SOCCER_MODE (27F4)
+ VKEY_SOCCER_MODE = VK_SOCCER_MODE,
- // VKEY_FUNCTIONS_AMAZON (27F5)
- VKEY_FUNCTIONS_AMAZON = VK_FUNCTIONS_AMAZON,
+ // VKEY_FUNCTIONS_AMAZON (27F5)
+ VKEY_FUNCTIONS_AMAZON = VK_FUNCTIONS_AMAZON,
- // VKEY_AD (27F6)
- VKEY_AD = VK_AD,
+ // VKEY_AD (27F6)
+ VKEY_AD = VK_AD,
- // VKEY_REWIND_ (27F8)
- VKEY_REWIND_ = VK_REWIND_,
+ // VKEY_REWIND_ (27F8)
+ VKEY_REWIND_ = VK_REWIND_,
- // VKEY_FF_ (27F9)
- VKEY_FF_ = VK_FF_,
+ // VKEY_FF_ (27F9)
+ VKEY_FF_ = VK_FF_,
- // VKEY_FUNCTIONS_NETFLIX (27FA)
- VKEY_FUNCTIONS_NETFLIX = VK_FUNCTIONS_NETFLIX,
+ // VKEY_FUNCTIONS_NETFLIX (27FA)
+ VKEY_FUNCTIONS_NETFLIX = VK_FUNCTIONS_NETFLIX,
- // VKEY_PIP_ONOFF (27FB)
- VKEY_PIP_ONOFF = VK_PIP_ONOFF,
+ // VKEY_PIP_ONOFF (27FB)
+ VKEY_PIP_ONOFF = VK_PIP_ONOFF,
- // VKEY_MBR_WATCH_MOVIE (27FC)
- VKEY_MBR_WATCH_MOVIE = VK_MBR_WATCH_MOVIE,
+ // VKEY_MBR_WATCH_MOVIE (27FC)
+ VKEY_MBR_WATCH_MOVIE = VK_MBR_WATCH_MOVIE,
- // VKEY_MBR_STBBD_MENU (27FD)
- VKEY_MBR_STBBD_MENU = VK_MBR_STBBD_MENU,
+ // VKEY_MBR_STBBD_MENU (27FD)
+ VKEY_MBR_STBBD_MENU = VK_MBR_STBBD_MENU,
- // VKEY_MBR_SETUP_CONFIRM (27FE)
- VKEY_MBR_SETUP_CONFIRM = VK_MBR_SETUP_CONFIRM,
+ // VKEY_MBR_SETUP_CONFIRM (27FE)
+ VKEY_MBR_SETUP_CONFIRM = VK_MBR_SETUP_CONFIRM,
- // VKEY_FAMILYHUB (27FF)
- VKEY_FAMILYHUB = VK_FAMILYHUB,
+ // VKEY_FAMILYHUB (27FF)
+ VKEY_FAMILYHUB = VK_FAMILYHUB,
- // VKEY_ANYVIEW (2800)
- VKEY_ANYVIEW = VK_ANYVIEW,
+ // VKEY_ANYVIEW (2800)
+ VKEY_ANYVIEW = VK_ANYVIEW,
- // VKEY_PAGE_LEFT (2809)
- VKEY_PAGE_LEFT = VK_PAGE_LEFT,
+ // VKEY_PAGE_LEFT (2809)
+ VKEY_PAGE_LEFT = VK_PAGE_LEFT,
- // VKEY_PAGE_RIGHT (280A)
- VKEY_PAGE_RIGHT = VK_PAGE_RIGHT,
+ // VKEY_PAGE_RIGHT (280A)
+ VKEY_PAGE_RIGHT = VK_PAGE_RIGHT,
- // VKEY_SOFT_WAKE_UP (2804)
- VKEY_SOFT_WAKE_UP = VK_SOFT_WAKE_UP,
+ // VKEY_SOFT_WAKE_UP (2804)
+ VKEY_SOFT_WAKE_UP = VK_SOFT_WAKE_UP,
- // VKEY_PANEL_ON (280B)
- VKEY_PANEL_ON = VK_PANEL_ON,
+ // VKEY_PANEL_ON (280B)
+ VKEY_PANEL_ON = VK_PANEL_ON,
- // VKEY_PLAY_BACK (280C)
- VKEY_PLAY_BACK = VK_PLAY_BACK,
+ // VKEY_PLAY_BACK (280C)
+ VKEY_PLAY_BACK = VK_PLAY_BACK,
- // VKEY_EXTRA (280D)
- VKEY_EXTRA = VK_EXTRA,
+ // VKEY_EXTRA (280D)
+ VKEY_EXTRA = VK_EXTRA,
- // VKEY_COLOR (2891)
- VKEY_COLOR = VK_COLOR,
+ // VKEY_COLOR (2891)
+ VKEY_COLOR = VK_COLOR,
- // VKEY_IME_DONE (FF60) Done key on TV IME panel
- VKEY_IME_DONE = VK_IME_DONE,
+ // VKEY_ALARM (28B2)
+ VKEY_ALARM = VK_ALARM,
- // VKEY_IME_CANCEL (FF69) Cancel key on TV IME panel
- VKEY_IME_CANCEL = VK_IME_CANCEL,
+ // VKEY_HOTEL_MOVIES (28FE)
+ VKEY_HOTEL_MOVIES = VK_HOTEL_MOVIES,
+
+ // VKEY_HOTEL_LANGUAGE (28FF)
+ VKEY_HOTEL_LANGUAGE = VK_HOTEL_LANGUAGE,
+
+ // VKEY_HOTEL_TV_GUIDE (2900)
+ VKEY_HOTEL_TV_GUIDE = VK_HOTEL_TV_GUIDE,
+
+ // VKEY_HOTEL_APPS_GUEST (2901)
+ VKEY_HOTEL_APPS_GUEST = VK_HOTEL_APPS_GUEST,
+
+ // VKEY_NOISE_REDUCTION (2917)
+ VKEY_NOISE_REDUCTION = VK_NOISE_REDUCTION,
+
+ // VKEY_NR (2919)
+ VKEY_NR = VK_NR,
+
+ // VKEY_HOTEL_ROOM_CONTROL (291A)
+ VKEY_HOTEL_ROOM_CONTROL = VK_HOTEL_ROOM_CONTROL,
+
+ // VKEY_IME_DONE (FF60) Done key on TV IME panel
+ VKEY_IME_DONE = VK_IME_DONE,
+
+ // VKEY_IME_CANCEL (FF69) Cancel key on TV IME panel
+ VKEY_IME_CANCEL = VK_IME_CANCEL,
#endif
- VKEY_UNKNOWN = 0
+ VKEY_UNKNOWN = 0
};
} // namespace blink
indexOfBestMatchingLanguageInList(const AtomicString& language,
const Vector<AtomicString>& languageList);
+#if defined(OS_TIZEN)
+void unregisterLanguageChangedCallback();
+#endif
+
} // namespace blink
#endif
void addObserver(Observer*);
void removeObserver(Observer*);
+ bool checkVideoPlaying();
+
// notifyContextDestroyed() should be explicitly dispatched from an
// observed context to notify observers that contextDestroyed().
//
MediaExitFullscreenButtonPart,
MediaFullscreenVolumeSliderPart,
MediaFullscreenVolumeSliderThumbPart,
+ MediaBrightnessButtonPart,
MediaMuteButtonPart,
MediaPlayButtonPart,
#if defined(OS_TIZEN)
#ifndef VK_DELETE
#define VK_DELETE 0x2E // DEL key
#endif
+#if !defined(OS_TIZEN_TV_PRODUCT)
#ifndef VK_HELP
#define VK_HELP 0x2F // HELP key
#endif
+#endif
#define VK_0 0x30
#define VK_1 0x31
#define VK_PLAY_BACK 0x280C
#define VK_EXTRA 0x280D
#define VK_COLOR 0x2891
+
+#define VK_ALARM 0x28B2
+#define VK_HOTEL_MOVIES 0x28FE
+#define VK_HOTEL_LANGUAGE 0x28FF
+#define VK_HOTEL_TV_GUIDE 0x2900
+#define VK_HOTEL_APPS_GUEST 0x2901
+#define VK_NOISE_REDUCTION 0x2917
+#define VK_HELP 0x2918
+#define VK_NR 0x2919
+#define VK_HOTEL_ROOM_CONTROL 0x291A
+
#define VK_IME_DONE 0xFF60 // keyname of IME Done button is Select. but Select(0xFF60) is only Tizen TV IME keyname defined by ISF, there is no X Server keycode. 0xFF60 is ISF keycode.
#define VK_IME_CANCEL 0xFF69 // keyname of IME Cancel button is Cancel. but Select(0xFF69) is only Tizen TV IME keyname defined by ISF, there is no X Server keycode. 0xFF69 is ISF keycode.
ImageClampingMode) override;
void copyToTexture(WebGraphicsContext3DProvider*,
+ GLenum,
GLuint destTextureId,
GLenum destInternalFormat,
GLenum destType,
// are RGB or RGBA format, UNSIGNED_BYTE type and level 0, as specified in
// Extensions3D::canUseCopyTextureCHROMIUM().
bool copyToPlatformTexture(gpu::gles2::GLES2Interface*,
+ GLenum target,
GLuint texture,
GLenum internalFormat,
GLenum destType,
mutable intptr_t m_gpuMemoryUsage;
static intptr_t s_globalGPUMemoryUsage;
static unsigned s_globalAcceleratedImageBufferCount;
+ mutable base::TimeTicks m_previousFrametime;
+ mutable base::TimeDelta m_totalFrametime;
+ mutable base::TimeDelta m_readbackTime;
+ mutable bool m_newframe;
+ mutable int m_frameCount;
};
struct ImageDataBuffer {
// Methods overrided by AcceleratedStaticBitmapImage only
virtual void copyToTexture(WebGraphicsContext3DProvider*,
+ GLenum,
GLuint,
GLenum,
GLenum,
virtual void DrawingBufferClientRestoreRenderbufferBinding() = 0;
virtual void DrawingBufferClientRestoreFramebufferBinding() = 0;
virtual void DrawingBufferClientRestorePixelUnpackBufferBinding() = 0;
+#if defined(TIZEN_CANVAS_HOLE)
+ virtual void DrawingBufferClientCanvasRectChanged(const IntRect&) = 0;
+#endif
};
enum PreserveDrawingBuffer {
// default framebuffer.
bool defaultBufferRequiresAlphaChannelToBePreserved();
+#if defined(TIZEN_CANVAS_HOLE)
+ void setCanvasHoleEnabled(bool);
+#endif
+
WebLayer* platformLayer();
gpu::gles2::GLES2Interface* contextGL();
cc::TextureMailbox* outMailbox,
std::unique_ptr<cc::SingleReleaseCallback>* outReleaseCallback) override;
+#if defined(TIZEN_CANVAS_HOLE)
+ void NotifyTextureRectChanged(const gfx::Rect&) override;
+#endif
+
// Returns a StaticBitmapImage backed by a texture containing the current
// contents of the front buffer. This is done without any pixel copies. The
// texture in the ImageBitmap is from the active ContextProvider on the
PassRefPtr<StaticBitmapImage> transferToStaticBitmapImage();
bool copyToPlatformTexture(gpu::gles2::GLES2Interface*,
+ GLenum target,
GLuint texture,
GLenum internalFormat,
GLenum destType,
// The format to use when creating a multisampled renderbuffer.
GLenum getMultisampledRenderbufferFormat();
+#if defined(TIZEN_CANVAS_HOLE)
+ bool m_canvasHoleEnabled = false;
+#endif
+
// Weak, reset by beginDestruction.
Client* m_client = nullptr;
const bool m_wantDepth;
const bool m_wantStencil;
+ const bool m_useDirectCanvas;
+
enum AntialiasingMode {
None,
MSAAImplicitResolve,
int m_sampleCount = 0;
bool m_destructionInProgress = false;
bool m_isHidden = false;
+
SkFilterQuality m_filterQuality = kLow_SkFilterQuality;
std::unique_ptr<WebExternalTextureLayer> m_layer;
bool ensureExtensionEnabled(const String& name);
bool isExtensionEnabled(const String& name);
- static bool canUseCopyTextureCHROMIUM(GLenum destTarget,
- GLenum destFormat,
- GLenum destType,
- GLint level);
+ static bool canUseCopyTextureCHROMIUM(GLenum destTarget);
private:
Extensions3DUtil(gpu::gles2::GLES2Interface*);
unsigned sourceImageWidth,
unsigned sourceImageHeight,
const IntRect& sourceImageSubRectangle,
+ int depth,
unsigned sourceUnpackAlignment,
+ int unpackImageHeight,
Vector<uint8_t>& data);
// Extracts the contents of the given ImageData into the passed Vector,
// packing the pixel data according to the given format and type,
// and obeying the flipY and premultiplyAlpha flags. Returns true
// upon success.
- static bool extractImageData(const uint8_t*,
+ static bool extractImageData(const uint8_t* imageData,
DataFormat sourceDataFormat,
- const IntSize&,
- const IntRect&,
+ const IntSize& imageDataSize,
+ const IntRect& sourceImageSubRectangle,
+ int depth,
+ int unpackImageHeight,
GLenum format,
GLenum type,
bool flipY,
unsigned sourceDataWidth,
unsigned sourceDataHeight,
const IntRect& sourceDataSubRectangle,
+ int depth,
unsigned sourceUnpackAlignment,
+ int unpackImageHeight,
unsigned destinationFormat,
unsigned destinationType,
AlphaOp,
static PassPtr create(size_t capacity) {
return reinterpret_cast<HeapTerminatedArray*>(
ThreadHeap::allocate<HeapTerminatedArray>(
- capacity * sizeof(T), IsEagerlyFinalizedType<T>::value));
+ WTF::Partitions::ComputeAllocationSize(capacity, sizeof(T)),
+ IsEagerlyFinalizedType<T>::value));
}
static PassPtr resize(PassPtr ptr, size_t capacity) {
return reinterpret_cast<HeapTerminatedArray*>(
- ThreadHeap::reallocate<HeapTerminatedArray>(ptr,
- capacity * sizeof(T)));
+ ThreadHeap::reallocate<HeapTerminatedArray>(
+ ptr,
+ WTF::Partitions::ComputeAllocationSize(capacity, sizeof(T))));
}
};
const KURL& url() const;
void setURL(const KURL& url);
-#if defined(USE_EFL)
+#if defined(OS_TIZEN_TV_PRODUCT)
const KURL& unencryptedURL() const;
void setUnencryptedURL(const KURL&);
-
-#if defined(OS_TIZEN_TV_PRODUCT)
bool isDecryptedFile() const;
void setDecryptedFileFlag(const bool);
#endif // defined(OS_TIZEN_TV_PRODUCT)
-#endif // defined(USE_EFL)
void removeCredentials();
bool needsHTTPOrigin() const;
KURL m_url;
-#if defined(USE_EFL)
- KURL m_unencryptedUrl;
#if defined(OS_TIZEN_TV_PRODUCT)
+ KURL m_unencryptedUrl;
bool m_isDecryptedFile;
#endif // defined(OS_TIZEN_TV_PRODUCT)
-#endif // defined(USE_EFL)
WebCachePolicy m_cachePolicy;
double m_timeoutInterval; // 0 is a magic value for platform default on
// platforms that have one.
public:
CrossThreadResourceRequestData() {}
KURL m_url;
-#if defined(USE_EFL)
- KURL m_unencryptedUrl;
#if defined(OS_TIZEN_TV_PRODUCT)
+ KURL m_unencryptedUrl;
bool m_isDecryptedFile;
#endif // defined(OS_TIZEN_TV_PRODUCT)
-#endif // defined(USE_EFL)
WebCachePolicy m_cachePolicy;
double m_timeoutInterval;
#include "wtf/MathExtras.h"
#include "wtf/Noncopyable.h"
#include "wtf/Vector.h"
-
+#if defined(OS_TIZEN)
+#include "ui/display/device_display_info_efl.h"
+#include "tizen/system_info.h"
+#endif
namespace blink {
class GraphicsLayer;
static int pixelsPerLineStep(HostWindow*);
static float minFractionToStepWhenPaging();
static int maxOverlapBetweenPages();
-
+#if defined(OS_TIZEN)
+ display::DeviceDisplayInfoEfl displayInfo;
+#endif
// Convert a non-finite scroll value (Infinity, -Infinity, NaN) to 0 as
// per http://dev.w3.org/csswg/cssom-view/#normalize-non_finite-values.
static float normalizeNonFiniteScroll(float value) {
#if defined(OS_TIZEN_TV_PRODUCT)
virtual void thumbPartFocusChanged(ScrollbarOrientation, bool) {}
#endif
-
+#if defined(OS_TIZEN)
+ void setRelativePosition(IntPoint relativePosition) {
+ m_relativePosition = relativePosition;
+ }
+ IntPoint getRelativePosition() { return m_relativePosition; }
+ void setCircularScrollUse(bool shouldUse) { m_useCircularScroll = shouldUse; }
+ bool getCircularScrollUse() const { return m_useCircularScroll; }
+#endif
protected:
ScrollableArea();
unsigned m_horizontalScrollbarNeedsPaintInvalidation : 1;
unsigned m_verticalScrollbarNeedsPaintInvalidation : 1;
unsigned m_scrollCornerNeedsPaintInvalidation : 1;
+#if defined(OS_TIZEN)
+ bool m_useCircularScroll;
+ IntPoint m_relativePosition;
+#endif
unsigned m_scrollbarsHidden : 1;
unsigned m_scrollbarCaptured : 1;
const ViewportDescription&) const override;
void printDelegate(LocalFrame*) override;
void annotatedRegionsChanged() override;
+ void notifyUrlForPlayingVideo(const KURL& url) override;
ColorChooser* openColorChooser(LocalFrame*,
ColorChooserClient*,
const Color&) override;
void thumbPartFocusChanged(ScrollbarOrientation orientation,
bool focused) const override;
void runArrowScroll() const override;
+ void setVideo360(HTMLVideoElement* video) override;
#endif
#if defined(TIZEN_ATK_FEATURE_VD)
void moveFocusToBrowser(int direction) const override;
Cursor m_lastSetMouseCursorForTesting;
bool m_cursorOverridden;
bool m_didRequestNonEmptyToolTip;
+ String m_cachedToolTipText;
};
DEFINE_TYPE_CASTS(ChromeClientImpl,
const WTF::String&,
bool loadManually,
DetachedPluginPolicy) override;
-#if defined(TIZEN_VIDEO_HOLE)
- void setPresetDisableVideoHole(LocalFrame* frame, bool disable) override;
-#endif
std::unique_ptr<WebMediaPlayer> createWebMediaPlayer(
HTMLMediaElement&,
const WebMediaPlayerSource&,
#if defined(USE_EFL)
bool getWrtParsedUrl(const KURL& url, KURL& parsed_url) override;
#endif
-
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void checkHLSSupport(const String&, bool&) override;
+#endif
private:
explicit FrameLoaderClientImpl(WebLocalFrameImpl*);
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
+ void setMediaSubtitleNotificationEnabled(bool) override;
+ bool mediaSubtitleNotificationEnabled() override;
void setMediaPlaybackNotificationEnabled(bool) override;
bool mediaPlaybackNotificationEnabled() override;
void setUseScrollbarThumbFocusNotifications(bool) override;
#if defined(OS_TIZEN)
void setHwKeyboardConnected(bool) override;
bool hwKeyboardConnected() override;
+ void setLinkEffectEnabled(bool) override;
+ bool linkEffectEnabled() const { return m_linkEffectEnabled; }
#endif
private:
float m_expensiveBackgroundThrottlingMaxBudget;
float m_expensiveBackgroundThrottlingMaxDelay;
bool m_forceZoomEnabled;
+#if defined(OS_TIZEN)
+ bool m_linkEffectEnabled;
+#endif
#if defined(OS_TIZEN_TV_PRODUCT)
bool m_allowFileAccessFromExternalURLs;
#endif
void detachCompositorAnimationTimeline(CompositorAnimationTimeline*) override;
WebWidgetClient* client() const override { return m_client; }
HitTestResult coreHitTestResultAt(const WebPoint&) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool isHitScrollbar() override;
+ bool isMouseDownEventSwallowed() override;
+#endif
private:
WebWidgetClient* m_client;
#include "wtf/Vector.h"
#include <memory>
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "core/html/HTMLVideoElement.h"
+#endif
+
namespace blink {
class BrowserControls;
virtual int getIMEOptions() override;
virtual bool getSelectionStartContentBounds(WebRect& anchor) override;
virtual void enableNightMode(bool nightMode) override;
+ virtual bool isVideoPlaying() override;
float defaultMinimumPageScaleFactor() const;
float defaultMaximumPageScaleFactor() const;
float minimumPageScaleFactor() const;
virtual void suspendScheduledTasks();
virtual void resumeScheduledTasks();
+ void suspendNetworkLoading() override;
+ void resumeNetworkLoading() override;
+
BrowserControls& browserControls();
// Called anytime browser controls layout height or content offset have
// changed.
#if defined(TIZEN_VIDEO_HOLE)
void setVideoHoleForRender(bool enable) override;
bool isVideoHoleForRender() const override;
- void setPresetDisableVideoHole(bool disable) override;
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+ void setCanvasHoleForRender(const std::string& url) override;
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
void setTranslatedUrl(const WebString, bool&);
+ void setPreferTextLang(const WebString&) override;
// Floating Video Window
void setFloatVideoWindowState(bool) override;
+ bool isHitScrollbar() override;
+ bool isMouseDownEventSwallowed() override;
+ void requestCanvasFullscreen() override;
+ void play360Video() override;
+ void pause360Video() override;
+ double video360Duration() override;
+ double video360CurrentTime() override;
+ void set360VideoCurrentTime(double current_time) override;
+ void setVideo360(HTMLVideoElement* video) { m_360video = video; }
#endif
#if defined(OS_TIZEN)
FloatSize m_elasticOverscroll;
#if defined(TIZEN_VIDEO_HOLE)
bool m_isVideoHoleForRender;
- bool m_isPresetDisableVideoHole;
+#endif
+#if defined(TIZEN_CANVAS_HOLE)
+ String m_usedCanvasHoleURL;
#endif
#if defined(OS_TIZEN)
bool m_deferCommitEnabled;
bool m_deferredByPinch;
#endif
+#if defined(OS_TIZEN_TV_PRODUCT)
+ // assume only a single video element existed in one webview instance for 360
+ // video
+ HTMLVideoElement* m_360video;
+#endif
+
// This is owned by the LayerTreeHostImpl, and should only be used on the
// compositor thread. The LayerTreeHostImpl is indirectly owned by this
// class so this pointer should be valid until this class is destructed.
static PassPtr create(size_t capacity) {
return wrapUnique(
static_cast<TerminatedArray*>(WTF::Partitions::fastMalloc(
- capacity * sizeof(T), WTF_HEAP_PROFILER_TYPE_NAME(T))));
+ WTF::Partitions::ComputeAllocationSize(capacity, sizeof(T)),
+ WTF_HEAP_PROFILER_TYPE_NAME(T))));
}
static PassPtr resize(Ptr ptr, size_t capacity) {
- return wrapUnique(static_cast<TerminatedArray*>(
- WTF::Partitions::fastRealloc(ptr.release(), capacity * sizeof(T),
- WTF_HEAP_PROFILER_TYPE_NAME(T))));
+ return wrapUnique(
+ static_cast<TerminatedArray*>(WTF::Partitions::fastRealloc(
+ ptr.release(),
+ WTF::Partitions::ComputeAllocationSize(capacity, sizeof(T)),
+ WTF_HEAP_PROFILER_TYPE_NAME(T))));
}
};
namespace WTF {
class AtomicStringTable;
+#if defined(ENABLE_STRING_COMPRESSION)
+class CompressibleStringTable;
+#endif
struct ICUConverterWrapper;
class WTF_EXPORT WTFThreadData {
~WTFThreadData();
AtomicStringTable& getAtomicStringTable() { return *m_atomicStringTable; }
+#if defined(ENABLE_STRING_COMPRESSION)
+ CompressibleStringTable* compressibleStringTable() {
+ return m_compressibleStringTable;
+ }
+#endif
ICUConverterWrapper& cachedConverterICU() { return *m_cachedConverterICU; }
private:
std::unique_ptr<AtomicStringTable> m_atomicStringTable;
+#if defined(ENABLE_STRING_COMPRESSION)
+ CompressibleStringTable* m_compressibleStringTable;
+#endif
std::unique_ptr<ICUConverterWrapper> m_cachedConverterICU;
static ThreadSpecific<WTFThreadData>* staticData;
friend WTFThreadData& wtfThreadData();
+#if defined(ENABLE_STRING_COMPRESSION)
+ friend class CompressibleStringTable;
+#endif
};
inline WTFThreadData& wtfThreadData() {
#include "wtf/WTF.h"
#include "wtf/WTFExport.h"
#include "wtf/allocator/PartitionAlloc.h"
+#include "base/numerics/safe_math.h"
#include <string.h>
namespace WTF {
return m_layoutAllocator.root();
}
+ ALWAYS_INLINE static size_t ComputeAllocationSize(size_t count, size_t size) {
+ base::CheckedNumeric<size_t> total = count;
+ total *= size;
+ return total.ValueOrDie();
+ }
+
static size_t currentDOMMemoryUsage() {
ASSERT(s_initialized);
ASSERT_NOT_REACHED();
--- /dev/null
+// Copyright 2016 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 CompressibleString_h
+#define CompressibleString_h
+
+#if defined(ENABLE_STRING_COMPRESSION)
+
+#include "platform/Timer.h"
+#include "public/platform/WebTraceLocation.h"
+#include "wtf/HashTableDeletedValueType.h"
+#include "wtf/text/StringImpl.h"
+#include "wtf/text/Unicode.h"
+#include "wtf/text/WTFString.h"
+#include "wtf/WTFThreadData.h"
+
+#define COMPRESS_STRING_THRESHOLD 100000
+#define COMPRESS_CHECK_TIME_INTERVAL 5.0
+#define DIFF_THRESHOLD_FOR_LAST_USAGE 5.0
+
+namespace WTF {
+
+class WTF_EXPORT CompressibleStringImpl
+ : public RefCounted<CompressibleStringImpl> {
+ WTF_MAKE_NONCOPYABLE(CompressibleStringImpl);
+
+ public:
+ static void setPageBackground(bool);
+ static void purgeMemory();
+
+ CompressibleStringImpl(PassRefPtr<StringImpl>);
+ ~CompressibleStringImpl();
+
+ bool isEmpty() const { return m_originalLength == 0; }
+
+ PassRefPtr<StringImpl> impl() { return m_impl; }
+ bool isCompressed() const { return !!m_compressedData; }
+ unsigned originalLength() const { return m_originalLength; }
+ bool is8Bit() const { return m_is8Bit; }
+ double stringLastAccessTime() const { return string_last_access_time_; }
+ unsigned originalContentSizeInBytes() const;
+ unsigned charactersSizeInBytes() const;
+
+ String toString();
+ const LChar* characters8();
+ const UChar* characters16();
+
+ void compressString();
+ void uncompressString();
+
+ void checkAndCompress(blink::TimerBase*);
+ static PassRefPtr<CompressibleStringImpl> create(const UChar*,
+ unsigned length);
+ static PassRefPtr<CompressibleStringImpl> create(const LChar*,
+ unsigned length);
+
+ private:
+ static bool s_isPageBackground;
+ RefPtr<StringImpl> m_impl;
+ const unsigned m_originalLength;
+ void* m_compressedData;
+ unsigned m_compressedDataSize;
+ const bool m_is8Bit;
+ double string_last_access_time_;
+ double compress_time_;
+};
+
+class WTF_EXPORT CompressibleString {
+ public:
+ CompressibleString();
+ CompressibleString(const CompressibleString&);
+ explicit CompressibleString(PassRefPtr<StringImpl>);
+
+ bool isNull() const { return !m_impl; }
+ bool isEmpty() const { return isNull() || m_impl->isEmpty(); }
+ unsigned length() const { return m_impl ? m_impl->originalLength() : 0; }
+
+ unsigned charactersSizeInBytes() const {
+ return m_impl ? m_impl->charactersSizeInBytes() : 0;
+ }
+
+ bool isCompressed() const { return m_impl ? m_impl->isCompressed() : false; }
+ bool is8Bit() const { return m_impl->is8Bit(); }
+
+ String toString() const { return m_impl ? m_impl->toString() : String(); }
+ const LChar* characters8() const {
+ return m_impl ? m_impl->characters8() : nullptr;
+ }
+ const UChar* characters16() const {
+ return m_impl ? m_impl->characters16() : nullptr;
+ }
+
+ PassRefPtr<CompressibleStringImpl> impl() const { return m_impl; }
+
+ CompressibleString isolatedCopy() const {
+ if (!m_impl)
+ return CompressibleString();
+ return CompressibleString(m_impl->impl()->isolatedCopy());
+ }
+
+ private:
+ void compressString() const;
+ void uncompressString() const;
+
+ mutable RefPtr<CompressibleStringImpl> m_impl;
+};
+class CompressibleStringTable {
+ WTF_MAKE_NONCOPYABLE(CompressibleStringTable);
+
+ public:
+ static CompressibleStringTable* create(WTFThreadData& data) {
+ data.m_compressibleStringTable = new CompressibleStringTable;
+ // data.m_compressibleStringTableDestructor =
+ // CompressibleStringTable::destroy;
+ return data.m_compressibleStringTable;
+ }
+
+ bool contains(CompressibleStringImpl* string) const {
+ return m_table.contains(string);
+ }
+
+ void remove(CompressibleStringImpl* string) { m_table.remove(string); }
+
+ void compressAll();
+ void add(CompressibleStringImpl* string);
+ void checkAndCompressOne(blink::TimerBase*);
+
+ private:
+ CompressibleStringTable()
+ : compress_string_timer_(this,
+ &CompressibleStringTable::checkAndCompressOne) {}
+
+ static void destroy(CompressibleStringTable* table) { delete table; }
+
+ HashSet<CompressibleStringImpl*> m_table;
+ blink::Timer<CompressibleStringTable> compress_string_timer_;
+};
+
+static inline CompressibleStringTable& compressibleStringTable() {
+ // Once possible we should make this non-lazy
+ // (constructed in WTFThreadData's constructor).
+ WTFThreadData& data = wtfThreadData();
+ CompressibleStringTable* table = data.compressibleStringTable();
+ if (UNLIKELY(!table))
+ table = CompressibleStringTable::create(data);
+ return *table;
+}
+
+} // namespace WTF
+
+using WTF::CompressibleString;
+using WTF::CompressibleStringImpl;
+
+#endif
+
+#endif
return nullptr;
}
+#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
+ virtual bool IsKantm2() { return false; }
+#endif
+
// Returns a newly allocated and initialized offscreen context provider,
// backed by the process-wide shared main thread context. Returns null if
// the context cannot be created or initialized.
// Sets whether this texture should use nearest neighbor interpolation as
// opposed to bilinear. Defaults to false.
virtual void setNearestNeighbor(bool) = 0;
+
+#if defined(TIZEN_CANVAS_HOLE)
+ virtual void setTextureHole(bool) = 0;
+#endif
};
} // namespace blink
PlaybackFinish,
PlaybackStop,
};
+
+ enum {
+ SubtitlePlay,
+ SubtitlePause,
+ SubtitleSeekStart,
+ SubtitleSeekComplete,
+ SubtitleStop,
+ SubtitleResume,
+ };
+
+ typedef struct register_timeline_cb_info {
+ std::string timeline_selector;
+ uint32_t units_per_tick;
+ uint32_t units_per_second;
+ int64_t content_time;
+ int timeline_state;
+ } register_timeline_cb_info_s;
#endif
typedef WebString TrackId;
virtual void setBufferingStrategy(BufferingStrategy) {}
virtual WebTimeRanges buffered() const = 0;
virtual WebTimeRanges seekable() const = 0;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ virtual void setBrightness(int) {}
+ virtual int getBrightness() { return 0; }
+#endif
// Attempts to switch the audio output device.
// Implementations of setSinkId take ownership of the WebSetSinkCallbacks
}
#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
- virtual unsigned zeroCopyVideoTbmToPlatformTexture(
- gpu::gles2::GLES2Interface*, unsigned) { return false; }
+ virtual bool zeroCopyVideoTbmToPlatformTexture(
+ gpu::gles2::GLES2Interface*, unsigned, unsigned&) { return false; }
virtual void deleteVideoFrame(unsigned image_id) { }
#endif
virtual void selectedVideoTrackChanged(TrackId* selectedTrackId) {}
#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual void setActiveTextTrack(int, bool) {}
+ virtual void notifyPlayTrack(int) {}
virtual void setTranslatedURL(const WebString&) {}
+ virtual bool registerTimeline(const std::string& timeline_selector) {
+ return false;
+ }
+ virtual bool unRegisterTimeline(const std::string& timeline_selector) {
+ return false;
+ }
+ virtual void getTimelinePositions(const std::string& timeline_selector,
+ uint32_t* units_per_tick,
+ uint32_t* units_per_second,
+ int64_t* content_time,
+ bool* paused) {}
+ virtual double getSpeed() { return 0.0; }
+ virtual std::string getMrsUrl() { return ""; }
+ virtual std::string getContentId() { return ""; }
+ virtual bool syncTimeline(const std::string& timeline_selector,
+ int64_t timeline_pos,
+ int64_t wallclock_pos,
+ int tolerance) {
+ return false;
+ }
+ virtual bool setWallClock(const std::string& wallclock_url) { return false; }
+ virtual void notifyElementRemove() {}
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+ virtual void setCanvasHoleEnabled(bool) {}
+ virtual void notifyCanvasRectChanged(const WebRect&) {}
#endif
#if defined(TIZEN_MULTIMEDIA_SUPPORT)
virtual void suspend() {}
virtual void resume() {}
- virtual void activate(){};
+ virtual void activate() {}
+ virtual void deactivate() {}
virtual bool IsMediaStreamPlayer() { return false; }
+#endif
+
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
virtual void launchSystemVolumeController() {};
#endif
};
// Warning: This method will destruct the caller.
virtual void requestReload(const WebURL& newUrl) = 0;
+#if defined(TIZEN_MULTIMEDIA_SUPPORT)
virtual void mediaPlayerHidden() {}
virtual void mediaPlayerShown() {}
+#endif
#if defined(OS_TIZEN_TV_PRODUCT)
virtual void onDrmError() = 0;
virtual void onAutoRotateSettingChanged(bool) {}
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual bool getTextTrackInfo(int, WebString&, WebString&) = 0;
virtual void forceSettingOfficialPlaybackPosition() = 0;
virtual void addTextTrack(const std::string& info) = 0;
virtual void addCue(const std::string& info,
unsigned int id,
long long int start_time,
long long int end_time) = 0;
+ virtual void OnSyncTimeline(const std::string& timeline_selector,
+ int sync) = 0;
+ virtual void OnRegisterTimeline(
+ const WebMediaPlayer::register_timeline_cb_info_s& info) = 0;
+ virtual void OnMrsUrlChange(const std::string& url) = 0;
+ virtual void OnContentIdChange(const std::string& id) = 0;
#endif
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
virtual void setSystemVolume(int volume) {};
#endif
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ virtual void onSystemVolumeChanged(double, bool) = 0;
+#endif
+
protected:
~WebMediaPlayerClient() {}
};
BLINK_PLATFORM_EXPORT WebURL url() const;
BLINK_PLATFORM_EXPORT void setURL(const WebURL&);
-#if defined(USE_EFL)
+#if defined(OS_TIZEN_TV_PRODUCT)
BLINK_PLATFORM_EXPORT WebURL unencryptedURL() const;
BLINK_PLATFORM_EXPORT void setUnencryptedURL(const WebURL&);
-#if defined(OS_TIZEN_TV_PRODUCT)
BLINK_PLATFORM_EXPORT bool isDecryptedFile() const;
BLINK_PLATFORM_EXPORT void setDecryptedFileFlag(const bool);
#endif // defined(OS_TIZEN_TV_PRODUCT)
-#endif // defined(USE_EFL)
// Used to implement third-party cookie blocking.
BLINK_PLATFORM_EXPORT WebURL firstPartyForCookies() const;
// May return null.
virtual WebMediaSession* createMediaSession() { return 0; }
- virtual WebMediaRecorderHandler* createMediaCaptureHandler() { return 0; }
+ virtual WebMediaRecorderHandler* createMediaRecorderHandler() { return 0; }
// May return null.
virtual WebApplicationCacheHost* createApplicationCacheHost(
virtual WebUserMediaClient* userMediaClient() { return 0; }
-#if defined(TIZEN_VIDEO_HOLE)
- virtual void setPresetDisableVideoHole(bool disable) { }
-#endif
-
#if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
// Media rotate ----------------------------------------------------
virtual WebURL overrideFlashEmbedWithHTML(const WebURL& url) {
return WebURL();
}
+#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual void checkHLSSupport(const WebString&, bool&) {}
+#endif
};
} // namespace blink
#ifndef WebMemoryStatistics_h
#define WebMemoryStatistics_h
-#include "public/platform/WebCommon.h"
+#include "third_party/WebKit/public/platform/WebCommon.h"
namespace blink {
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual void setMediaSubtitleNotificationEnabled(bool) = 0;
+ virtual bool mediaSubtitleNotificationEnabled() = 0;
virtual void setAllowFileAccessFromExternalURLs(bool) = 0;
virtual bool allowFileAccessFromExternalURLs() = 0;
virtual void setMediaPlaybackNotificationEnabled(bool) = 0;
#if defined(OS_TIZEN)
virtual void setHwKeyboardConnected(bool) = 0;
virtual bool hwKeyboardConnected() = 0;
+ virtual void setLinkEffectEnabled(bool) = 0;
#endif
protected:
// Returns the selection rect encompassing text and images.
virtual WebRect currentSelectionRect() const = 0;
+ // Suspends loaders for the main frame and all sub-frames
+ virtual void suspendNetworkLoading() = 0;
+
+ // Resumes perviously suspended frame loaders
+ virtual void resumeNetworkLoading() = 0;
+
// Gets the bitmap of the selected image.
virtual void selectionAsBitmap(SkBitmap& selectedRegion) const = 0;
// API to toggle between day mode and night mode in reader mode.
virtual void enableNightMode(bool) = 0;
+ // Return if there is any active video in the view
+ virtual bool isVideoPlaying() = 0;
+
// Samsung Method called to paint the rectangular region within the WebWidget
// onto the specified canvas, when the page is not having any 3D content.
#if defined(TIZEN_VIDEO_HOLE)
virtual void setVideoHoleForRender(bool enable) = 0;
virtual bool isVideoHoleForRender() const = 0;
- virtual void setPresetDisableVideoHole(bool disable) = 0;
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+ virtual void setCanvasHoleForRender(const std::string& url) = 0;
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
virtual void setTranslatedUrl(const WebString, bool&) = 0;
+ virtual void setPreferTextLang(const WebString&) = 0;
virtual void setFloatVideoWindowState(bool enable) = 0;
+ virtual void requestCanvasFullscreen() = 0;
+ virtual void play360Video() = 0;
+ virtual void pause360Video() = 0;
+ virtual double video360Duration() = 0;
+ virtual double video360CurrentTime() = 0;
+ virtual void set360VideoCurrentTime(double current_time) = 0;
#endif
#if defined(OS_TIZEN)
return false;
}
+ virtual void notifyUrlForPlayingVideo(const WebURL&) {}
+
// Called when PageImportanceSignals for the WebView is updated.
virtual void pageImportanceSignalsChanged() {}
// Note: This is called even when the mouse down event is prevent default.
virtual void onMouseDown(const WebNode& mouseDownNode) {}
+#if defined(OS_TIZEN)
+ // Request to play link effect in browser process.
+ virtual void playLinkEffect() {}
+#endif
+
// Session history -----------------------------------------------------
// Tells the embedder to navigate back or forward in session history by
// replaced.
virtual void applyReplacementRange(const WebRange&) {}
+#if defined(USE_EFL)
+ virtual bool isHitScrollbar() { return false; }
+ virtual bool isMouseDownEventSwallowed() { return false; }
+#endif
+
protected:
~WebWidget() {}
};
--- /dev/null
+// Copyright 2016 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+// Produced by stringify.cc on 2007-09-28 09:13 from file i18n/encodings/compact_enc_det/tools/detail_head.ps
+ "%!PS-Adobe-2.0\n\n/inch {72 mul} def\n/cshow {dup stringwidth pop -2 div"
+ " 0 rmoveto show} def\n\n/lmargin 0.5 inch def\n/rmargin 8.5 inch def\n/t"
+ "margin 10.5 inch def\n/bmargin 0.5 inch def\n\n\n% set to N>=0 to track "
+ "ranked encoding N\n/track-me -1 def\n/track-me2 -1 def\n\n/columns 2 def"
+ "\n\n/lpi 18 def % lines per inch\n/lpc lpi 10 mul def "
+ " % lines per column\n/lpp lpc columns mul def % lines per page\n"
+ "/probw 3.0 inch def % probability width\n/probr 50 def "
+ " % probability range\n/widowlines lpi 2 idiv def % 1/2 inch widow a"
+ "t bottom\n/widowlines lpi def % 1 inch widow at bottom\n\n/lpg l"
+ "pi 2 idiv def % 1/2 inch spacing between groups\n\n/delc 4 inch "
+ "def\n/dell -1 inch lpi div def\n\n/next-line 0 def % 24 lines per i"
+ "nch, 240 per column\n\n/Cfont /Courier findfont 6 scalefont def\n/Hfont "
+ "/Helvetica findfont 6 scalefont def\nHfont setfont\n\n\n% simple string "
+ "hash -- sum the characters\n/strhash {\n /hstr exch def\n /h 0 def\n "
+ "0 1 hstr length 1 sub {/i exch def /h h hstr i get add def} for\n h\n}"
+ " def\n\n% convert pro at 30 per 2x to 0-2.5 inches spanning -50 to 0\n/p"
+ "rob2x {\n 30 idiv probr div probw mul neg probw add\n}def\n\n\n/cliptoc"
+ "olumn {\n % ====== MUST MATCH ME ======\n gsave\n lmargin tmargin mov"
+ "eto\n next-line lpc idiv delc mul 0 rmoveto\n -1 18 rmoveto 0 -10.5 in"
+ "ch rlineto delc 2 add 0 rlineto 0 10.5 inch rlineto closepath\n clip\n"
+ " newpath\n} def\n\n/endcliptocolumn {\n grestore\n % ====== MUST MATC"
+ "H ME ======\n} def\n\n\n\n/column-box {\n lmargin tmargin moveto\n nex"
+ "t-line 1 sub lpc idiv delc mul next-line 1 sub lpc mod 1 add dell mul r"
+ "moveto\n % box\n gsave -1.5 0 rmoveto 0 detail-count dell mul neg rmov"
+ "eto probw 3 add 0 rlineto 0.25 setlinewidth stroke grestore\n gsave -1"
+ ".5 0 rmoveto 0 detail-count dell mul neg rlineto 0.25 setlinewidth strok"
+ "e grestore\n gsave probw .8 mul 0 rmoveto 0 detail-count dell mul neg r"
+ "lineto 0.25 setlinewidth 0.8 setgray stroke grestore\n gsave probw .6 m"
+ "ul 0 rmoveto 0 detail-count dell mul neg rlineto 0.25 setlinewidth 0.8 s"
+ "etgray stroke grestore\n gsave probw .4 mul 0 rmoveto 0 detail-count de"
+ "ll mul neg rlineto 0.25 setlinewidth 0.8 setgray stroke grestore\n gsav"
+ "e probw .2 mul 0 rmoveto 0 detail-count dell mul neg rlineto 0.25 setlin"
+ "ewidth 0.8 setgray stroke grestore\n gsave probw 1.5 add 0 rmoveto 0 de"
+ "tail-count dell mul neg rlineto 0.25 setlinewidth stroke grestore\n} def"
+ "\n\n\n/IncrementLine {\n /incr exch def\n /next-line next-line incr ad"
+ "d def\n next-line lpc ge next-line incr sub lpc lt and {\n % We "
+ "just went to the top of column 2; redo clip\n endcliptocolumn % M"
+ "UST match\n column-box\n /next-line lpc def\n cliptocolumn "
+ " % MUST match\n } if\n next-line lpp ge {\n % We just went to the"
+ " top of column 3; start new page column 1\n endcliptocolumn % MUS"
+ "T match\n column-box\n showpage\n Hfont setfont\n /next-line"
+ " 0 def\n show-pageno\n cliptocolumn % MUST match\n } if\n}"
+ " def\n\n/IncrementLineOutside {\n /incr exch def\n /next-line next-lin"
+ "e incr add def\n next-line lpc ge next-line incr sub lpc lt and {\n"
+ " % We just went to the top of column 2\n /next-line lpc def\n } i"
+ "f\n next-line lpp ge {\n % We just went to the top of column 3; star"
+ "t new page column 1\n showpage\n Hfont setfont\n /next-line 0 d"
+ "ef\n show-pageno\n } if\n} def\n\n/NextColumn {\n lpc 1 sub Increme"
+ "ntLine\n} def\n\n/NextPage {\n lpp 1 sub IncrementLine\n} def\n\n% Up"
+ "on entry, we are OUTSIDE the clip\n/start-detail {\n /d-title exch def\n"
+ "\n % align >= 1 inch at bottom of column, and/or start new column\n lp"
+ "c next-line lpc mod sub widowlines lt {\n % Start at top of a column\n"
+ " next-line lpc ge {\n % Start new page\n showpage\n Hf"
+ "ont setfont\n /next-line 0 def\n show-pageno\n } {\n %"
+ " Start new column\n /next-line lpc def\n } ifelse\n } if\n\n l"
+ "margin tmargin moveto\n next-line lpc idiv delc mul next-line lpc mod "
+ "dell mul rmoveto\n gsave d-title show grestore\n 0 dell rmoveto\n 1 1"
+ " 4 {/j exch def gsave probw j mul 5 div -2 rmoveto 50 j 10 mul sub 20 st"
+ "ring cvs cshow grestore} for\n 2 IncrementLineOutside\n /detail-count "
+ "1 def\n cliptocolumn % MUST match\n /d-array [] def\n} def\n"
+ "\n/size-detail {\n /d-names exch def\n /d-size exch def\n % zero sums"
+ "\n /sums d-size array def\n 0 1 d-size 1 sub {/i exch def sums i 0 pu"
+ "t} for\n /old-d-max 0 def\n /colors d-size array def\n 0 1 d-size 1 s"
+ "ub {/i exch def colors i i 3 mul 17 mod 17 div put} for\n %0 1 d-size "
+ "1 sub {/i exch def colors i d-names i get strhash 3 mul 17 mod 17 div p"
+ "ut} for\n %0 1 d-size 1 sub {/i exch def ( ) show colors i get 20 stri"
+ "ng cvs show} for\n} def\n\n/count-detail {\n /detail-total-count exch d"
+ "ef\n % if total-count >= one column, start at top of a column\n detail"
+ "-total-count lpp ge {\n % Start new page\n NextPage\n } {\n de"
+ "tail-total-count lpc ge {\n % Start new column\n NextColumn\n "
+ " } if\n } ifelse\n} def\n\n% highlight next entry with underbar\n/do-"
+ "flag {\ngsave\n setrgbcolor\n lmargin tmargin moveto\n next-line lpc "
+ "idiv delc mul next-line lpc mod dell mul rmoveto\n 0 -2 rmoveto\n pro"
+ "bw 0 rlineto\n 0 dell neg rlineto\n probw neg 0 rlineto\n closepath\n"
+ " fill\ngrestore\n} def\n\n/do-detail-e {\n /d-array exch def\n /d-enc"
+ " exch def\n /d-label exch def\n /d-max -999999 def\n\n lmargin tmargi"
+ "n moveto\n next-line lpc idiv delc mul next-line lpc mod dell mul rmov"
+ "eto\n 0.25 setlinewidth\n\n % show label, using encoding color\n gsav"
+ "e\n probw 2 add -2 rmoveto\n detail-count 1 sub 2 mod 0.25 inch mu"
+ "l 0 rmoveto\n % ([) show detail-count 20 string cvs show (] ) show\n "
+ " d-enc 0 lt {\n 0 setgray\n }{\n colors d-enc get 1 .8 se"
+ "thsbcolor\n } ifelse\n d-label show\n grestore\n % For -prune- d"
+ "raw horizontal line\n d-label length 8 gt {d-label 4 get (p) 0 get eq d"
+ "-label 5 get (r) 0 get eq and {\n /prune-val d-label cvi def\n /ne"
+ "wx prune-val 30 mul prob2x def\n gsave newx 6 rmoveto 0 -12 rlineto 1"
+ ".5 setlinewidth 0.8 setgray stroke grestore\n gsave probw 0 add 0 rli"
+ "neto 0.25 setlinewidth 0.8 setgray stroke grestore\n } if } if\n\n % t"
+ "rack max per new row\n 0 1 d-array length 1 sub {\n /i exch def\n "
+ " /sum sums i get d-array i get add def\n d-max sum lt {/d-max sum def"
+ "} if\n } for\n\n % draw line increments\n 0 1 d-array length 1 sub {\n"
+ " /i exch def\n detail-count 1 gt {\n /oldx old-d-max sums i g"
+ "et sub prob2x def\n } {\n /oldx 600 prob2x def\n } ifelse\n "
+ " /oldy dell neg def\n /newx d-max sums i get d-array i get add sub"
+ " prob2x def\n /newy 0 def\n gsave\n oldx oldy rmoveto\n newx"
+ " oldx sub newy oldy sub rlineto\n % if encoding is being tracked, ma"
+ "ke bold line\n i track-me eq\n {2 setlinewidth}\n {i track-"
+ "me2 eq {1.25 setlinewidth} {0.25 setlinewidth} ifelse}\n ifelse\n "
+ " colors i get 1 .8 sethsbcolor stroke\n grestore\n } for\n /detail"
+ "-count detail-count 1 add def\n\n % increment running total in sums, tr"
+ "ack max per row\n 0 1 d-array length 1 sub {\n /i exch def\n sums"
+ " i sums i get d-array i get add put\n } for\n /old-d-max d-max def\n"
+ "\n 1 IncrementLine\n} def\n\n\n/do-detail {\n /d-array exch def\n /d-"
+ "label exch def\n d-label -1 d-array do-detail-e\n} def\n\n% Upon exit, "
+ "we are outside the clip\n/end-detail {\n pop\n endcliptocolumn "
+ " % MUST match\n column-box\n\n % text labels\n 0 1 d-array length 1 s"
+ "ub {\n /i exch def\n gsave\n /newx old-d-max sums i get sub pro"
+ "b2x def\n newx 0 ge {\n newx 0 rmoveto\n currentpoint trans"
+ "late\n colors i get 1 .8 sethsbcolor\n gsave 0 dell neg rline"
+ "to 0.25 setlinewidth stroke grestore\n -60 rotate\n 0 -2 movet"
+ "o d-names i get show\n } if\n grestore\n } for\n d-array length "
+ "0 gt {\n lpg IncrementLineOutside\n } {\n lpg 4 idiv IncrementLin"
+ "eOutside\n } ifelse\n} def\n\n/do-src {\n/src exch def\n lmargin tmarg"
+ "in moveto\n next-line lpc idiv delc mul next-line lpc mod dell mul rmo"
+ "veto\n Cfont setfont\n src show\n Hfont setfont\n 1 IncrementLine\n}"
+ " def\n\n% Underline trigram in source text\n/do-highlight1 {\n /hl-colo"
+ "r exch def\n /hl-offset exch def\n /hl-line exch 1 sub 2 mul def\n gs"
+ "ave\n lmargin tmargin moveto\n next-line hl-line sub lpc idiv delc mul"
+ "\n next-line hl-line sub lpc mod dell mul rmoveto\n % Assume text is 6"
+ " chars in and 3.6 pts per char, but 2 chars per offset\n hl-offset 2 mu"
+ "l 6 add 3.6 mul 4 rmoveto\n\n 0 setgray 0.5 setlinewidth\n hl-color 1"
+ " eq {0 0 1 setrgbcolor} if % Latin1 blue\n hl-color 2 eq {1 0 1 setrgb"
+ "color} if % Latin2 magenta\n hl-color 3 eq {1 0.67 0 setrgbcolor} if "
+ "% Latin7 orange\n 18 -2 rlineto stroke\n grestore\n} def\n\n% Box trig"
+ "ram in source text\n/do-highlight2 {\n /hl-color exch def\n /hl-offset"
+ " exch def\n /hl-line exch 1 sub 2 mul def\n gsave\n lmargin tmargin m"
+ "oveto\n next-line hl-line sub lpc idiv delc mul\n next-line hl-line su"
+ "b lpc mod dell mul rmoveto\n % Assume text is 6 chars in and 3.6 pts pe"
+ "r char, but 2 chars per offset\n hl-offset 2 mul 6 add 3.6 mul 4 rmove"
+ "to\n\n 0 setgray 0.25 setlinewidth\n hl-color 1 eq {0 0 1 setrgbcolor}"
+ " if % Latin1 blue\n hl-color 2 eq {1 0 1 setrgbcolor} if % Latin2 mag"
+ "enta\n hl-color 3 eq {1 0.67 0 setrgbcolor} if % Latin7 orange\n -0.5"
+ " -0.5 rmoveto\n 22 0 rlineto\n 0 4 rlineto\n -11 2 rlineto\n -11 -2 "
+ "rlineto\n closepath\n stroke\n grestore\n} def\n\n/show-pageno {\ngsa"
+ "ve\nlmargin bmargin moveto 0 -12 rmoveto\n(Page ) show pageno 20 string "
+ "cvs show\ngrestore\n/pageno pageno 1 add def\n} def\n\n/pageno 1 def\nsh"
+ "ow-pageno\n%=============================\n\n\n"
--- /dev/null
+AV_CH_FRONT_CENTER,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY,
+AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_CENTER,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER,
+AV_CH_FRONT_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
--- /dev/null
+/*
+ * libudev - interface to udev device information
+ *
+ * Copyright (C) 2008-2011 Kay Sievers <kay.sievers@vrfy.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ */
+
+#ifndef _LIBUDEV_H_
+#define _LIBUDEV_H_
+
+#include <stdarg.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * udev - library context
+ *
+ * reads the udev config and system environment
+ * allows custom logging
+ */
+struct udev;
+struct udev *udev_ref(struct udev *udev);
+void udev_unref(struct udev *udev);
+struct udev *udev_new(void);
+void udev_set_log_fn(struct udev *udev,
+ void (*log_fn)(struct udev *udev,
+ int priority, const char *file, int line, const char *fn,
+ const char *format, va_list args));
+int udev_get_log_priority(struct udev *udev);
+void udev_set_log_priority(struct udev *udev, int priority);
+const char *udev_get_sys_path(struct udev *udev);
+const char *udev_get_dev_path(struct udev *udev);
+const char *udev_get_run_path(struct udev *udev);
+void *udev_get_userdata(struct udev *udev);
+void udev_set_userdata(struct udev *udev, void *userdata);
+
+/*
+ * udev_list
+ *
+ * access to libudev generated lists
+ */
+struct udev_list_entry;
+struct udev_list_entry *udev_list_entry_get_next(struct udev_list_entry *list_entry);
+struct udev_list_entry *udev_list_entry_get_by_name(struct udev_list_entry *list_entry, const char *name);
+const char *udev_list_entry_get_name(struct udev_list_entry *list_entry);
+const char *udev_list_entry_get_value(struct udev_list_entry *list_entry);
+/**
+ * udev_list_entry_foreach:
+ * @list_entry: entry to store the current position
+ * @first_entry: first entry to start with
+ *
+ * Helper to iterate over all entries of a list.
+ */
+#define udev_list_entry_foreach(list_entry, first_entry) \
+ for (list_entry = first_entry; \
+ list_entry != NULL; \
+ list_entry = udev_list_entry_get_next(list_entry))
+
+/*
+ * udev_device
+ *
+ * access to sysfs/kernel devices
+ */
+struct udev_device;
+struct udev_device *udev_device_ref(struct udev_device *udev_device);
+void udev_device_unref(struct udev_device *udev_device);
+struct udev *udev_device_get_udev(struct udev_device *udev_device);
+struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *syspath);
+struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum);
+struct udev_device *udev_device_new_from_subsystem_sysname(struct udev *udev, const char *subsystem, const char *sysname);
+struct udev_device *udev_device_new_from_environment(struct udev *udev);
+/* udev_device_get_parent_*() does not take a reference on the returned device, it is automatically unref'd with the parent */
+struct udev_device *udev_device_get_parent(struct udev_device *udev_device);
+struct udev_device *udev_device_get_parent_with_subsystem_devtype(struct udev_device *udev_device,
+ const char *subsystem, const char *devtype);
+/* retrieve device properties */
+const char *udev_device_get_devpath(struct udev_device *udev_device);
+const char *udev_device_get_subsystem(struct udev_device *udev_device);
+const char *udev_device_get_devtype(struct udev_device *udev_device);
+const char *udev_device_get_syspath(struct udev_device *udev_device);
+const char *udev_device_get_sysname(struct udev_device *udev_device);
+const char *udev_device_get_sysnum(struct udev_device *udev_device);
+const char *udev_device_get_devnode(struct udev_device *udev_device);
+int udev_device_get_is_initialized(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_devlinks_list_entry(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_device *udev_device);
+const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key);
+const char *udev_device_get_driver(struct udev_device *udev_device);
+dev_t udev_device_get_devnum(struct udev_device *udev_device);
+const char *udev_device_get_action(struct udev_device *udev_device);
+unsigned long long int udev_device_get_seqnum(struct udev_device *udev_device);
+unsigned long long int udev_device_get_usec_since_initialized(struct udev_device *udev_device);
+const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr);
+int udev_device_has_tag(struct udev_device *udev_device, const char *tag);
+
+/*
+ * udev_monitor
+ *
+ * access to kernel uevents and udev events
+ */
+struct udev_monitor;
+struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor);
+void udev_monitor_unref(struct udev_monitor *udev_monitor);
+struct udev *udev_monitor_get_udev(struct udev_monitor *udev_monitor);
+/* kernel and udev generated events over netlink */
+struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name);
+/* custom socket (use netlink and filters instead) */
+struct udev_monitor *udev_monitor_new_from_socket(struct udev *udev, const char *socket_path);
+/* bind socket */
+int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor);
+int udev_monitor_set_receive_buffer_size(struct udev_monitor *udev_monitor, int size);
+int udev_monitor_get_fd(struct udev_monitor *udev_monitor);
+struct udev_device *udev_monitor_receive_device(struct udev_monitor *udev_monitor);
+/* in-kernel socket filters to select messages that get delivered to a listener */
+int udev_monitor_filter_add_match_subsystem_devtype(struct udev_monitor *udev_monitor,
+ const char *subsystem, const char *devtype);
+int udev_monitor_filter_add_match_tag(struct udev_monitor *udev_monitor, const char *tag);
+int udev_monitor_filter_update(struct udev_monitor *udev_monitor);
+int udev_monitor_filter_remove(struct udev_monitor *udev_monitor);
+
+/*
+ * udev_enumerate
+ *
+ * search sysfs for specific devices and provide a sorted list
+ */
+struct udev_enumerate;
+struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_enumerate);
+void udev_enumerate_unref(struct udev_enumerate *udev_enumerate);
+struct udev *udev_enumerate_get_udev(struct udev_enumerate *udev_enumerate);
+struct udev_enumerate *udev_enumerate_new(struct udev *udev);
+/* device properties filter */
+int udev_enumerate_add_match_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem);
+int udev_enumerate_add_nomatch_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem);
+int udev_enumerate_add_match_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value);
+int udev_enumerate_add_nomatch_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value);
+int udev_enumerate_add_match_property(struct udev_enumerate *udev_enumerate, const char *property, const char *value);
+int udev_enumerate_add_match_sysname(struct udev_enumerate *udev_enumerate, const char *sysname);
+int udev_enumerate_add_match_tag(struct udev_enumerate *udev_enumerate, const char *tag);
+int udev_enumerate_add_match_parent(struct udev_enumerate *udev_enumerate, struct udev_device *parent);
+int udev_enumerate_add_match_is_initialized(struct udev_enumerate *udev_enumerate);
+int udev_enumerate_add_syspath(struct udev_enumerate *udev_enumerate, const char *syspath);
+/* run enumeration with active filters */
+int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerate);
+int udev_enumerate_scan_subsystems(struct udev_enumerate *udev_enumerate);
+/* return device list */
+struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *udev_enumerate);
+
+/*
+ * udev_queue
+ *
+ * access to the currently running udev events
+ */
+struct udev_queue;
+struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue);
+void udev_queue_unref(struct udev_queue *udev_queue);
+struct udev *udev_queue_get_udev(struct udev_queue *udev_queue);
+struct udev_queue *udev_queue_new(struct udev *udev);
+unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue);
+unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue);
+int udev_queue_get_udev_is_active(struct udev_queue *udev_queue);
+int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue);
+int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum);
+int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue,
+ unsigned long long int start, unsigned long long int end);
+struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue);
+
+/*
+ * udev_util
+ *
+ * udev specific utilities
+ */
+int udev_util_encode_string(const char *str, char *str_enc, size_t len);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
--- /dev/null
+/*
+ * libudev - interface to udev device information
+ *
+ * Copyright (C) 2008-2011 Kay Sievers <kay.sievers@vrfy.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ */
+
+#ifndef _LIBUDEV_H_
+#define _LIBUDEV_H_
+
+#include <stdarg.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * udev - library context
+ *
+ * reads the udev config and system environment
+ * allows custom logging
+ */
+struct udev;
+struct udev *udev_ref(struct udev *udev);
+struct udev *udev_unref(struct udev *udev);
+struct udev *udev_new(void);
+void udev_set_log_fn(struct udev *udev,
+ void (*log_fn)(struct udev *udev,
+ int priority, const char *file, int line, const char *fn,
+ const char *format, va_list args));
+int udev_get_log_priority(struct udev *udev);
+void udev_set_log_priority(struct udev *udev, int priority);
+void *udev_get_userdata(struct udev *udev);
+void udev_set_userdata(struct udev *udev, void *userdata);
+
+/*
+ * udev_list
+ *
+ * access to libudev generated lists
+ */
+struct udev_list_entry;
+struct udev_list_entry *udev_list_entry_get_next(struct udev_list_entry *list_entry);
+struct udev_list_entry *udev_list_entry_get_by_name(struct udev_list_entry *list_entry, const char *name);
+const char *udev_list_entry_get_name(struct udev_list_entry *list_entry);
+const char *udev_list_entry_get_value(struct udev_list_entry *list_entry);
+/**
+ * udev_list_entry_foreach:
+ * @list_entry: entry to store the current position
+ * @first_entry: first entry to start with
+ *
+ * Helper to iterate over all entries of a list.
+ */
+#define udev_list_entry_foreach(list_entry, first_entry) \
+ for (list_entry = first_entry; \
+ list_entry != NULL; \
+ list_entry = udev_list_entry_get_next(list_entry))
+
+/*
+ * udev_device
+ *
+ * access to sysfs/kernel devices
+ */
+struct udev_device;
+struct udev_device *udev_device_ref(struct udev_device *udev_device);
+struct udev_device *udev_device_unref(struct udev_device *udev_device);
+struct udev *udev_device_get_udev(struct udev_device *udev_device);
+struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *syspath);
+struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum);
+struct udev_device *udev_device_new_from_subsystem_sysname(struct udev *udev, const char *subsystem, const char *sysname);
+struct udev_device *udev_device_new_from_device_id(struct udev *udev, char *id);
+struct udev_device *udev_device_new_from_environment(struct udev *udev);
+/* udev_device_get_parent_*() does not take a reference on the returned device, it is automatically unref'd with the parent */
+struct udev_device *udev_device_get_parent(struct udev_device *udev_device);
+struct udev_device *udev_device_get_parent_with_subsystem_devtype(struct udev_device *udev_device,
+ const char *subsystem, const char *devtype);
+/* retrieve device properties */
+const char *udev_device_get_devpath(struct udev_device *udev_device);
+const char *udev_device_get_subsystem(struct udev_device *udev_device);
+const char *udev_device_get_devtype(struct udev_device *udev_device);
+const char *udev_device_get_syspath(struct udev_device *udev_device);
+const char *udev_device_get_sysname(struct udev_device *udev_device);
+const char *udev_device_get_sysnum(struct udev_device *udev_device);
+const char *udev_device_get_devnode(struct udev_device *udev_device);
+int udev_device_get_is_initialized(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_devlinks_list_entry(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_device *udev_device);
+const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key);
+const char *udev_device_get_driver(struct udev_device *udev_device);
+dev_t udev_device_get_devnum(struct udev_device *udev_device);
+const char *udev_device_get_action(struct udev_device *udev_device);
+unsigned long long int udev_device_get_seqnum(struct udev_device *udev_device);
+unsigned long long int udev_device_get_usec_since_initialized(struct udev_device *udev_device);
+const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr);
+int udev_device_has_tag(struct udev_device *udev_device, const char *tag);
+
+/*
+ * udev_monitor
+ *
+ * access to kernel uevents and udev events
+ */
+struct udev_monitor;
+struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor);
+struct udev_monitor *udev_monitor_unref(struct udev_monitor *udev_monitor);
+struct udev *udev_monitor_get_udev(struct udev_monitor *udev_monitor);
+/* kernel and udev generated events over netlink */
+struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name);
+/* bind socket */
+int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor);
+int udev_monitor_set_receive_buffer_size(struct udev_monitor *udev_monitor, int size);
+int udev_monitor_get_fd(struct udev_monitor *udev_monitor);
+struct udev_device *udev_monitor_receive_device(struct udev_monitor *udev_monitor);
+/* in-kernel socket filters to select messages that get delivered to a listener */
+int udev_monitor_filter_add_match_subsystem_devtype(struct udev_monitor *udev_monitor,
+ const char *subsystem, const char *devtype);
+int udev_monitor_filter_add_match_tag(struct udev_monitor *udev_monitor, const char *tag);
+int udev_monitor_filter_update(struct udev_monitor *udev_monitor);
+int udev_monitor_filter_remove(struct udev_monitor *udev_monitor);
+
+/*
+ * udev_enumerate
+ *
+ * search sysfs for specific devices and provide a sorted list
+ */
+struct udev_enumerate;
+struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_enumerate);
+struct udev_enumerate *udev_enumerate_unref(struct udev_enumerate *udev_enumerate);
+struct udev *udev_enumerate_get_udev(struct udev_enumerate *udev_enumerate);
+struct udev_enumerate *udev_enumerate_new(struct udev *udev);
+/* device properties filter */
+int udev_enumerate_add_match_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem);
+int udev_enumerate_add_nomatch_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem);
+int udev_enumerate_add_match_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value);
+int udev_enumerate_add_nomatch_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value);
+int udev_enumerate_add_match_property(struct udev_enumerate *udev_enumerate, const char *property, const char *value);
+int udev_enumerate_add_match_sysname(struct udev_enumerate *udev_enumerate, const char *sysname);
+int udev_enumerate_add_match_tag(struct udev_enumerate *udev_enumerate, const char *tag);
+int udev_enumerate_add_match_parent(struct udev_enumerate *udev_enumerate, struct udev_device *parent);
+int udev_enumerate_add_match_is_initialized(struct udev_enumerate *udev_enumerate);
+int udev_enumerate_add_syspath(struct udev_enumerate *udev_enumerate, const char *syspath);
+/* run enumeration with active filters */
+int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerate);
+int udev_enumerate_scan_subsystems(struct udev_enumerate *udev_enumerate);
+/* return device list */
+struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *udev_enumerate);
+
+/*
+ * udev_queue
+ *
+ * access to the currently running udev events
+ */
+struct udev_queue;
+struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue);
+struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue);
+struct udev *udev_queue_get_udev(struct udev_queue *udev_queue);
+struct udev_queue *udev_queue_new(struct udev *udev);
+unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue);
+unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue);
+int udev_queue_get_udev_is_active(struct udev_queue *udev_queue);
+int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue);
+int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum);
+int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue,
+ unsigned long long int start, unsigned long long int end);
+struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue);
+
+/*
+ * udev_util
+ *
+ * udev specific utilities
+ */
+int udev_util_encode_string(const char *str, char *str_enc, size_t len);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
--- /dev/null
+TOP=../../../../..
+include $(TOP)/configs/current
+
+IDL=$(wildcard *.idl include/*.idl)
+IDL_H=$(IDL:.idl=.h)
+LD=$(CXX) $(CXXFLAGS)
+
+include ../../../Makefile.template
+
+idl: $(IDL_H)
+
+%.h: %.idl
+ widl -I../gd3dapi -I../d3dapi -I../w32api -U /dev/null -H $@ $^
+
+%.svg: %.dot
+ dot -Tsvg -o $@ $<
+
+%.pdf: %.dot
+ dot -Tpdf -o $@ $<
*/
bool isLine(SkPoint line[2]) const;
+ /**
+ * Returns true if the path specifies a single line with close path
+ * (i.e. it contains a moveTo, a lineTo and closePath).
+ */
+ bool isClosedLine(SkPoint line[2]) const;
+
/** Return the number of points in the path
*/
int countPoints() const;
#include "SkColor.h"
#include "SkFlattenable.h"
-//#ifdef SK_SUPPORT_LEGACY_XFERMODE_IS_PUBLIC
+#ifdef SK_SUPPORT_LEGACY_XFERMODE_IS_PUBLIC
class GrFragmentProcessor;
class GrTexture;
* the same instance between several threads.
*/
class SK_API SkXfermode : public SkFlattenable {
-//YSYS
public:
virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
const SkAlpha aa[]) const;
typedef SkFlattenable INHERITED;
};
-//#endif
+#endif
#endif
--- /dev/null
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#include "SkTypes.h"
+#ifndef SK_BUILD_FOR_UNIX
+#ifdef SK_DEBUG
+// This file was automatically generated.
+// To change it, edit the file with the matching debug info.
+// Then execute SkDisplayType::BuildCondensedInfo() to regenerate this file.
+
+static const char gMathStrings[] =
+ "E\0"
+ "LN10\0"
+ "LN2\0"
+ "LOG10E\0"
+ "LOG2E\0"
+ "PI\0"
+ "SQRT1_2\0"
+ "SQRT2\0"
+ "abs\0"
+ "acos\0"
+ "asin\0"
+ "atan\0"
+ "atan2\0"
+ "ceil\0"
+ "cos\0"
+ "exp\0"
+ "floor\0"
+ "log\0"
+ "max\0"
+ "min\0"
+ "pow\0"
+ "random\0"
+ "round\0"
+ "sin\0"
+ "sqrt\0"
+ "tan"
+;
+
+static const SkMemberInfo gMathInfo[] = {
+ {0, -1, 67, 98},
+ {2, -2, 67, 98},
+ {7, -3, 67, 98},
+ {11, -4, 67, 98},
+ {18, -5, 67, 98},
+ {24, -6, 67, 98},
+ {27, -7, 67, 98},
+ {35, -8, 67, 98},
+ {41, -1, 66, 98},
+ {45, -2, 66, 98},
+ {50, -3, 66, 98},
+ {55, -4, 66, 98},
+ {60, -5, 66, 98},
+ {66, -6, 66, 98},
+ {71, -7, 66, 98},
+ {75, -8, 66, 98},
+ {79, -9, 66, 98},
+ {85, -10, 66, 98},
+ {89, -11, 66, 98},
+ {93, -12, 66, 98},
+ {97, -13, 66, 98},
+ {101, -14, 66, 98},
+ {108, -15, 66, 98},
+ {114, -16, 66, 98},
+ {118, -17, 66, 98},
+ {123, -18, 66, 98}
+};
+
+static const char gAddStrings[] =
+ "inPlace\0"
+ "offset\0"
+ "use\0"
+ "where"
+;
+
+static const SkMemberInfo gAddInfo[] = {
+ {0, 16, 26, 1},
+ {8, 20, 96, 1},
+ {15, 24, 37, 1},
+ {19, 28, 37, 1}
+};
+
+static const char gAddCircleStrings[] =
+ "\0"
+ "radius\0"
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gAddCircleInfo[] = {
+ {0, 3, 18, 1},
+ {1, 24, 98, 1},
+ {8, 28, 98, 1},
+ {10, 32, 98, 1}
+};
+
+static const char gUnknown1Strings[] =
+ "direction"
+;
+
+static const SkMemberInfo gUnknown1Info[] = {
+ {0, 20, 75, 1}
+};
+
+static const char gAddOvalStrings[] =
+ ""
+;
+
+static const SkMemberInfo gAddOvalInfo[] = {
+ {0, 6, 18, 5}
+};
+
+static const char gAddPathStrings[] =
+ "matrix\0"
+ "path"
+;
+
+static const SkMemberInfo gAddPathInfo[] = {
+ {0, 20, 65, 1},
+ {7, 24, 74, 1}
+};
+
+static const char gAddRectangleStrings[] =
+ "\0"
+ "bottom\0"
+ "left\0"
+ "right\0"
+ "top"
+;
+
+static const SkMemberInfo gAddRectangleInfo[] = {
+ {0, 3, 18, 1},
+ {1, 36, 98, 1},
+ {8, 24, 98, 1},
+ {13, 32, 98, 1},
+ {19, 28, 98, 1}
+};
+
+static const char gAddRoundRectStrings[] =
+ "\0"
+ "rx\0"
+ "ry"
+;
+
+static const SkMemberInfo gAddRoundRectInfo[] = {
+ {0, 6, 18, 5},
+ {1, 40, 98, 1},
+ {4, 44, 98, 1}
+};
+
+static const char gUnknown2Strings[] =
+ "begin\0"
+ "blend\0"
+ "dur\0"
+ "dynamic\0"
+ "field\0"
+ "formula\0"
+ "from\0"
+ "mirror\0"
+ "repeat\0"
+ "reset\0"
+ "target\0"
+ "to\0"
+ "values"
+;
+
+static const SkMemberInfo gUnknown2Info[] = {
+ {0, 16, 71, 1},
+ {6, 20, 119, 98},
+ {12, 36, 71, 1},
+ {16, -1, 67, 26},
+ {24, 40, 108, 2},
+ {30, 48, 40, 2},
+ {38, 56, 40, 2},
+ {43, -2, 67, 26},
+ {50, 64, 98, 1},
+ {57, -3, 67, 26},
+ {63, 68, 40, 2},
+ {70, 76, 40, 2},
+ {73, -4, 67, 40}
+};
+
+static const char gAnimateFieldStrings[] =
+ ""
+;
+
+static const SkMemberInfo gAnimateFieldInfo[] = {
+ {0, 8, 18, 13}
+};
+
+static const char gApplyStrings[] =
+ "animator\0"
+ "begin\0"
+ "dontDraw\0"
+ "dynamicScope\0"
+ "interval\0"
+ "mode\0"
+ "pickup\0"
+ "restore\0"
+ "scope\0"
+ "step\0"
+ "steps\0"
+ "time\0"
+ "transition"
+;
+
+static const SkMemberInfo gApplyInfo[] = {
+ {0, -1, 67, 10},
+ {9, 16, 71, 1},
+ {15, 20, 26, 1},
+ {24, 24, 108, 2},
+ {37, 32, 71, 1},
+ {46, 36, 13, 1},
+ {51, 40, 26, 1},
+ {58, 44, 26, 1},
+ {66, 48, 37, 1},
+ {72, -2, 67, 96},
+ {77, 52, 96, 1},
+ {83, -3, 67, 71},
+ {88, 56, 14, 1}
+};
+
+static const char gUnknown3Strings[] =
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gUnknown3Info[] = {
+ {0, 48, 98, 1},
+ {2, 52, 98, 1}
+};
+
+static const char gBitmapStrings[] =
+ "\0"
+ "erase\0"
+ "format\0"
+ "height\0"
+ "rowBytes\0"
+ "width"
+;
+
+static const SkMemberInfo gDrawBitmapInfo[] = {
+ {0, 11, 18, 2},
+ {1, -1, 67, 15},
+ {7, 56, 21, 1},
+ {14, 60, 96, 1},
+ {21, 64, 96, 1},
+ {30, 68, 96, 1}
+};
+
+static const char gBitmapShaderStrings[] =
+ "\0"
+ "filterType\0"
+ "image"
+;
+
+static const SkMemberInfo gDrawBitmapShaderInfo[] = {
+ {0, 67, 18, 2},
+ {1, 28, 47, 1},
+ {12, 32, 17, 1}
+};
+
+static const char gBlurStrings[] =
+ "blurStyle\0"
+ "radius"
+;
+
+static const SkMemberInfo gDrawBlurInfo[] = {
+ {0, 24, 63, 1},
+ {10, 20, 98, 1}
+};
+
+static const char gBoundsStrings[] =
+ "\0"
+ "inval"
+;
+
+static const SkMemberInfo gDisplayBoundsInfo[] = {
+ {0, 58, 18, 7},
+ {1, 44, 26, 1}
+};
+
+static const char gClipStrings[] =
+ "path\0"
+ "rectangle"
+;
+
+static const SkMemberInfo gDrawClipInfo[] = {
+ {0, 20, 74, 1},
+ {5, 16, 91, 1}
+};
+
+static const char gColorStrings[] =
+ "alpha\0"
+ "blue\0"
+ "color\0"
+ "green\0"
+ "hue\0"
+ "red\0"
+ "saturation\0"
+ "value"
+;
+
+static const SkMemberInfo gDrawColorInfo[] = {
+ {0, -1, 67, 98},
+ {6, -2, 67, 98},
+ {11, 20, 15, 1},
+ {17, -3, 67, 98},
+ {23, -4, 67, 98},
+ {27, -5, 67, 98},
+ {31, -6, 67, 98},
+ {42, -7, 67, 98}
+};
+
+static const char gCubicToStrings[] =
+ "x1\0"
+ "x2\0"
+ "x3\0"
+ "y1\0"
+ "y2\0"
+ "y3"
+;
+
+static const SkMemberInfo gCubicToInfo[] = {
+ {0, 20, 98, 1},
+ {3, 28, 98, 1},
+ {6, 36, 98, 1},
+ {9, 24, 98, 1},
+ {12, 32, 98, 1},
+ {15, 40, 98, 1}
+};
+
+static const char gDashStrings[] =
+ "intervals\0"
+ "phase"
+;
+
+static const SkMemberInfo gDashInfo[] = {
+ {0, 20, 119, 98},
+ {10, 36, 98, 1}
+};
+
+static const char gDataStrings[] =
+ "\0"
+ "name"
+;
+
+static const SkMemberInfo gDataInfo[] = {
+ {0, 33, 18, 3},
+ {1, 32, 108, 2}
+};
+
+static const char gDiscreteStrings[] =
+ "deviation\0"
+ "segLength"
+;
+
+static const SkMemberInfo gDiscreteInfo[] = {
+ {0, 20, 98, 1},
+ {10, 24, 98, 1}
+};
+
+static const char gDrawToStrings[] =
+ "drawOnce\0"
+ "use"
+;
+
+static const SkMemberInfo gDrawToInfo[] = {
+ {0, 72, 26, 1},
+ {9, 76, 19, 1}
+};
+
+static const char gDumpStrings[] =
+ "displayList\0"
+ "eventList\0"
+ "events\0"
+ "groups\0"
+ "name\0"
+ "posts"
+;
+
+static const SkMemberInfo gDumpInfo[] = {
+ {0, 16, 26, 1},
+ {12, 20, 26, 1},
+ {22, 24, 26, 1},
+ {29, 36, 26, 1},
+ {36, 28, 108, 2},
+ {41, 40, 26, 1}
+};
+
+static const char gEmbossStrings[] =
+ "ambient\0"
+ "direction\0"
+ "radius\0"
+ "specular"
+;
+
+static const SkMemberInfo gDrawEmbossInfo[] = {
+ {0, -1, 67, 98},
+ {8, 20, 119, 98},
+ {18, 36, 98, 1},
+ {25, -2, 67, 98}
+};
+
+static const char gEventStrings[] =
+ "code\0"
+ "disable\0"
+ "key\0"
+ "keys\0"
+ "kind\0"
+ "target\0"
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gDisplayEventInfo[] = {
+ {0, 16, 43, 1},
+ {5, 20, 26, 1},
+ {13, -1, 67, 108},
+ {17, -2, 67, 108},
+ {22, 24, 44, 1},
+ {27, 28, 108, 2},
+ {34, 36, 98, 1},
+ {36, 40, 98, 1}
+};
+
+static const char gFromPathStrings[] =
+ "mode\0"
+ "offset\0"
+ "path"
+;
+
+static const SkMemberInfo gFromPathInfo[] = {
+ {0, 20, 49, 1},
+ {5, 24, 98, 1},
+ {12, 28, 74, 1}
+};
+
+static const char gUnknown4Strings[] =
+ "\0"
+ "offsets\0"
+ "unitMapper"
+;
+
+static const SkMemberInfo gUnknown4Info[] = {
+ {0, 67, 18, 2},
+ {1, 28, 119, 98},
+ {9, 44, 108, 2}
+};
+
+static const char gGStrings[] =
+ "condition\0"
+ "enableCondition"
+;
+
+static const SkMemberInfo gGInfo[] = {
+ {0, 16, 40, 2},
+ {10, 24, 40, 2}
+};
+
+static const char gHitClearStrings[] =
+ "targets"
+;
+
+static const SkMemberInfo gHitClearInfo[] = {
+ {0, 16, 119, 36}
+};
+
+static const char gHitTestStrings[] =
+ "bullets\0"
+ "hits\0"
+ "targets\0"
+ "value"
+;
+
+static const SkMemberInfo gHitTestInfo[] = {
+ {0, 16, 119, 36},
+ {8, 32, 119, 96},
+ {13, 48, 119, 36},
+ {21, 64, 26, 1}
+};
+
+static const char gImageStrings[] =
+ "\0"
+ "base64\0"
+ "src"
+;
+
+static const SkMemberInfo gImageInfo[] = {
+ {0, 11, 18, 2},
+ {1, 56, 16, 2},
+ {8, 64, 108, 2}
+};
+
+static const char gIncludeStrings[] =
+ "src"
+;
+
+static const SkMemberInfo gIncludeInfo[] = {
+ {0, 16, 108, 2}
+};
+
+static const char gInputStrings[] =
+ "s32\0"
+ "scalar\0"
+ "string"
+;
+
+static const SkMemberInfo gInputInfo[] = {
+ {0, 16, 96, 1},
+ {4, 20, 98, 1},
+ {11, 24, 108, 2}
+};
+
+static const char gLineStrings[] =
+ "x1\0"
+ "x2\0"
+ "y1\0"
+ "y2"
+;
+
+static const SkMemberInfo gLineInfo[] = {
+ {0, 24, 98, 1},
+ {3, 28, 98, 1},
+ {6, 32, 98, 1},
+ {9, 36, 98, 1}
+};
+
+static const char gLineToStrings[] =
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gLineToInfo[] = {
+ {0, 20, 98, 1},
+ {2, 24, 98, 1}
+};
+
+static const char gLinearGradientStrings[] =
+ "\0"
+ "points"
+;
+
+static const SkMemberInfo gLinearGradientInfo[] = {
+ {0, 27, 18, 3},
+ {1, 88, 77, 4}
+};
+
+static const char gMatrixStrings[] =
+ "matrix\0"
+ "perspectX\0"
+ "perspectY\0"
+ "rotate\0"
+ "scale\0"
+ "scaleX\0"
+ "scaleY\0"
+ "skewX\0"
+ "skewY\0"
+ "translate\0"
+ "translateX\0"
+ "translateY"
+;
+
+static const SkMemberInfo gDrawMatrixInfo[] = {
+ {0, 16, 119, 98},
+ {7, -1, 67, 98},
+ {17, -2, 67, 98},
+ {27, -3, 67, 98},
+ {34, -4, 67, 98},
+ {40, -5, 67, 98},
+ {47, -6, 67, 98},
+ {54, -7, 67, 98},
+ {60, -8, 67, 98},
+ {66, -9, 67, 77},
+ {76, -10, 67, 98},
+ {87, -11, 67, 98}
+};
+
+static const char gMoveStrings[] =
+ ""
+;
+
+static const SkMemberInfo gMoveInfo[] = {
+ {0, 1, 18, 4}
+};
+
+static const char gMoveToStrings[] =
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gMoveToInfo[] = {
+ {0, 20, 98, 1},
+ {2, 24, 98, 1}
+};
+
+static const char gMovieStrings[] =
+ "src"
+;
+
+static const SkMemberInfo gMovieInfo[] = {
+ {0, 16, 108, 2}
+};
+
+static const char gOvalStrings[] =
+ ""
+;
+
+static const SkMemberInfo gOvalInfo[] = {
+ {0, 58, 18, 7}
+};
+
+static const char gPaintStrings[] =
+ "antiAlias\0"
+ "ascent\0"
+ "color\0"
+ "descent\0"
+ "filterType\0"
+ "linearText\0"
+ "maskFilter\0"
+ "measureText\0"
+ "pathEffect\0"
+ "shader\0"
+ "strikeThru\0"
+ "stroke\0"
+ "strokeCap\0"
+ "strokeJoin\0"
+ "strokeMiter\0"
+ "strokeWidth\0"
+ "style\0"
+ "textAlign\0"
+ "textScaleX\0"
+ "textSize\0"
+ "textSkewX\0"
+ "textTracking\0"
+ "typeface\0"
+ "underline\0"
+ "xfermode"
+;
+
+static const SkMemberInfo gDrawPaintInfo[] = {
+ {0, 16, 26, 1},
+ {10, -1, 67, 98},
+ {17, 20, 31, 1},
+ {23, -2, 67, 98},
+ {31, 24, 47, 1},
+ {42, 28, 26, 1},
+ {53, 32, 62, 1},
+ {64, -1, 66, 98},
+ {76, 36, 76, 1},
+ {87, 40, 102, 1},
+ {94, 44, 26, 1},
+ {105, 48, 26, 1},
+ {112, 52, 27, 1},
+ {122, 56, 58, 1},
+ {133, 60, 98, 1},
+ {145, 64, 98, 1},
+ {157, 68, 109, 1},
+ {163, 72, 9, 1},
+ {173, 76, 98, 1},
+ {184, 80, 98, 1},
+ {193, 84, 98, 1},
+ {203, 88, 98, 1},
+ {216, 92, 120, 1},
+ {225, 96, 26, 1},
+ {235, 100, 121, 1}
+};
+
+static const char gPathStrings[] =
+ "d\0"
+ "fillType\0"
+ "length"
+;
+
+static const SkMemberInfo gDrawPathInfo[] = {
+ {0, 52, 108, 2},
+ {2, -1, 67, 46},
+ {11, -2, 67, 98}
+};
+
+static const char gUnknown5Strings[] =
+ "x\0"
+ "y\0"
+ "z"
+;
+
+static const SkMemberInfo gUnknown5Info[] = {
+ {0, 0, 98, 1},
+ {2, 4, 98, 1},
+ {4, 8, 98, 1}
+};
+
+static const char gPointStrings[] =
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gDrawPointInfo[] = {
+ {0, 16, 98, 1},
+ {2, 20, 98, 1}
+};
+
+static const char gPolyToPolyStrings[] =
+ "destination\0"
+ "source"
+;
+
+static const SkMemberInfo gPolyToPolyInfo[] = {
+ {0, 24, 80, 1},
+ {12, 20, 80, 1}
+};
+
+static const char gPolygonStrings[] =
+ ""
+;
+
+static const SkMemberInfo gPolygonInfo[] = {
+ {0, 48, 18, 1}
+};
+
+static const char gPolylineStrings[] =
+ "points"
+;
+
+static const SkMemberInfo gPolylineInfo[] = {
+ {0, 88, 119, 98}
+};
+
+static const char gPostStrings[] =
+ "delay\0"
+ "initialized\0"
+ "mode\0"
+ "sink\0"
+ "target\0"
+ "type"
+;
+
+static const SkMemberInfo gPostInfo[] = {
+ {0, 16, 71, 1},
+ {6, 20, 26, 1},
+ {18, 24, 45, 1},
+ {23, -1, 67, 108},
+ {28, -2, 67, 108},
+ {35, -3, 67, 108}
+};
+
+static const char gQuadToStrings[] =
+ "x1\0"
+ "x2\0"
+ "y1\0"
+ "y2"
+;
+
+static const SkMemberInfo gQuadToInfo[] = {
+ {0, 20, 98, 1},
+ {3, 28, 98, 1},
+ {6, 24, 98, 1},
+ {9, 32, 98, 1}
+};
+
+static const char gRCubicToStrings[] =
+ ""
+;
+
+static const SkMemberInfo gRCubicToInfo[] = {
+ {0, 18, 18, 6}
+};
+
+static const char gRLineToStrings[] =
+ ""
+;
+
+static const SkMemberInfo gRLineToInfo[] = {
+ {0, 35, 18, 2}
+};
+
+static const char gRMoveToStrings[] =
+ ""
+;
+
+static const SkMemberInfo gRMoveToInfo[] = {
+ {0, 39, 18, 2}
+};
+
+static const char gRQuadToStrings[] =
+ ""
+;
+
+static const SkMemberInfo gRQuadToInfo[] = {
+ {0, 50, 18, 4}
+};
+
+static const char gRadialGradientStrings[] =
+ "\0"
+ "center\0"
+ "radius"
+;
+
+static const SkMemberInfo gRadialGradientInfo[] = {
+ {0, 27, 18, 3},
+ {1, 88, 77, 2},
+ {8, 96, 98, 1}
+};
+
+static const char gRandomStrings[] =
+ "blend\0"
+ "max\0"
+ "min\0"
+ "random\0"
+ "seed"
+;
+
+static const SkMemberInfo gDisplayRandomInfo[] = {
+ {0, 16, 98, 1},
+ {6, 24, 98, 1},
+ {10, 20, 98, 1},
+ {14, 1, 67, 98},
+ {21, -2, 67, 96}
+};
+
+static const char gRectToRectStrings[] =
+ "destination\0"
+ "source"
+;
+
+static const SkMemberInfo gRectToRectInfo[] = {
+ {0, 24, 91, 1},
+ {12, 20, 91, 1}
+};
+
+static const char gRectangleStrings[] =
+ "bottom\0"
+ "height\0"
+ "left\0"
+ "needsRedraw\0"
+ "right\0"
+ "top\0"
+ "width"
+;
+
+static const SkMemberInfo gRectangleInfo[] = {
+ {0, 36, 98, 1},
+ {7, -1, 67, 98},
+ {14, 24, 98, 1},
+ {19, -2, 67, 26},
+ {31, 32, 98, 1},
+ {37, 28, 98, 1},
+ {41, -3, 67, 98}
+};
+
+static const char gRemoveStrings[] =
+ "offset\0"
+ "where"
+;
+
+static const SkMemberInfo gRemoveInfo[] = {
+ {0, 20, 96, 1},
+ {7, 28, 37, 1}
+};
+
+static const char gReplaceStrings[] =
+ ""
+;
+
+static const SkMemberInfo gReplaceInfo[] = {
+ {0, 1, 18, 4}
+};
+
+static const char gRotateStrings[] =
+ "center\0"
+ "degrees"
+;
+
+static const SkMemberInfo gRotateInfo[] = {
+ {0, 24, 77, 2},
+ {7, 20, 98, 1}
+};
+
+static const char gRoundRectStrings[] =
+ "\0"
+ "rx\0"
+ "ry"
+;
+
+static const SkMemberInfo gRoundRectInfo[] = {
+ {0, 58, 18, 7},
+ {1, 44, 98, 1},
+ {4, 48, 98, 1}
+};
+
+static const char gS32Strings[] =
+ "value"
+;
+
+static const SkMemberInfo gS32Info[] = {
+ {0, 16, 96, 1}
+};
+
+static const char gScalarStrings[] =
+ "value"
+;
+
+static const SkMemberInfo gScalarInfo[] = {
+ {0, 16, 98, 1}
+};
+
+static const char gScaleStrings[] =
+ "center\0"
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gScaleInfo[] = {
+ {0, 28, 77, 2},
+ {7, 20, 98, 1},
+ {9, 24, 98, 1}
+};
+
+static const char gSetStrings[] =
+ "begin\0"
+ "dur\0"
+ "dynamic\0"
+ "field\0"
+ "formula\0"
+ "reset\0"
+ "target\0"
+ "to"
+;
+
+static const SkMemberInfo gSetInfo[] = {
+ {0, 16, 71, 1},
+ {6, 36, 71, 1},
+ {10, -1, 67, 26},
+ {18, 40, 108, 2},
+ {24, 48, 40, 2},
+ {32, -3, 67, 26},
+ {38, 68, 40, 2},
+ {45, 76, 40, 2}
+};
+
+static const char gShaderStrings[] =
+ "matrix\0"
+ "tileMode"
+;
+
+static const SkMemberInfo gShaderInfo[] = {
+ {0, 20, 65, 1},
+ {7, 24, 116, 1}
+};
+
+static const char gSkewStrings[] =
+ "center\0"
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gSkewInfo[] = {
+ {0, 28, 77, 2},
+ {7, 20, 98, 1},
+ {9, 24, 98, 1}
+};
+
+static const char g3D_CameraStrings[] =
+ "axis\0"
+ "hackHeight\0"
+ "hackWidth\0"
+ "location\0"
+ "observer\0"
+ "patch\0"
+ "zenith"
+;
+
+static const SkMemberInfo g3D_CameraInfo[] = {
+ {0, 36, 106, 3},
+ {5, 20, 98, 1},
+ {16, 16, 98, 1},
+ {26, 24, 106, 3},
+ {35, 60, 106, 3},
+ {44, 108, 105, 1},
+ {50, 48, 106, 3}
+};
+
+static const char g3D_PatchStrings[] =
+ "origin\0"
+ "rotateDegrees\0"
+ "u\0"
+ "v"
+;
+
+static const SkMemberInfo g3D_PatchInfo[] = {
+ {0, 40, 106, 3},
+ {7, -1, 66, 98},
+ {21, 16, 106, 3},
+ {23, 28, 106, 3}
+};
+
+static const char gUnknown6Strings[] =
+ "x\0"
+ "y\0"
+ "z"
+;
+
+static const SkMemberInfo gUnknown6Info[] = {
+ {0, 0, 98, 1},
+ {2, 4, 98, 1},
+ {4, 8, 98, 1}
+};
+
+static const char gSnapshotStrings[] =
+ "filename\0"
+ "quality\0"
+ "sequence\0"
+ "type"
+;
+
+static const SkMemberInfo gSnapshotInfo[] = {
+ {0, 16, 108, 2},
+ {9, 24, 98, 1},
+ {17, 28, 26, 1},
+ {26, 32, 20, 1}
+};
+
+static const char gStringStrings[] =
+ "length\0"
+ "slice\0"
+ "value"
+;
+
+static const SkMemberInfo gStringInfo[] = {
+ {0, -1, 67, 96},
+ {7, -1, 66, 108},
+ {13, 16, 108, 2}
+};
+
+static const char gTextStrings[] =
+ "length\0"
+ "text\0"
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gTextInfo[] = {
+ {0, -1, 67, 96},
+ {7, 24, 108, 2},
+ {12, 32, 98, 1},
+ {14, 36, 98, 1}
+};
+
+static const char gTextBoxStrings[] =
+ "\0"
+ "mode\0"
+ "spacingAdd\0"
+ "spacingAlign\0"
+ "spacingMul\0"
+ "text"
+;
+
+static const SkMemberInfo gTextBoxInfo[] = {
+ {0, 58, 18, 7},
+ {1, 60, 113, 1},
+ {6, 56, 98, 1},
+ {17, 64, 112, 1},
+ {30, 52, 98, 1},
+ {41, 44, 108, 2}
+};
+
+static const char gTextOnPathStrings[] =
+ "offset\0"
+ "path\0"
+ "text"
+;
+
+static const SkMemberInfo gTextOnPathInfo[] = {
+ {0, 24, 98, 1},
+ {7, 28, 74, 1},
+ {12, 32, 110, 1}
+};
+
+static const char gTextToPathStrings[] =
+ "path\0"
+ "text"
+;
+
+static const SkMemberInfo gTextToPathInfo[] = {
+ {0, 16, 74, 1},
+ {5, 20, 110, 1}
+};
+
+static const char gTranslateStrings[] =
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gTranslateInfo[] = {
+ {0, 20, 98, 1},
+ {2, 24, 98, 1}
+};
+
+static const char gTypedArrayStrings[] =
+ "length\0"
+ "values"
+;
+
+static const SkMemberInfo gTypedArrayInfo[] = {
+ {0, -1, 67, 96},
+ {7, 16, 119, 0}
+};
+
+static const char gTypefaceStrings[] =
+ "fontName"
+;
+
+static const SkMemberInfo gTypefaceInfo[] = {
+ {0, 20, 108, 2}
+};
+
+static const SkMemberInfo* const gInfoTables[] = {
+ gMathInfo,
+ gAddInfo,
+ gAddCircleInfo,
+ gUnknown1Info,
+ gAddOvalInfo,
+ gAddPathInfo,
+ gAddRectangleInfo,
+ gAddRoundRectInfo,
+ gUnknown2Info,
+ gAnimateFieldInfo,
+ gApplyInfo,
+ gUnknown3Info,
+ gDrawBitmapInfo,
+ gDrawBitmapShaderInfo,
+ gDrawBlurInfo,
+ gDisplayBoundsInfo,
+ gDrawClipInfo,
+ gDrawColorInfo,
+ gCubicToInfo,
+ gDashInfo,
+ gDataInfo,
+ gDiscreteInfo,
+ gDrawToInfo,
+ gDumpInfo,
+ gDrawEmbossInfo,
+ gDisplayEventInfo,
+ gFromPathInfo,
+ gUnknown4Info,
+ gGInfo,
+ gHitClearInfo,
+ gHitTestInfo,
+ gImageInfo,
+ gIncludeInfo,
+ gInputInfo,
+ gLineInfo,
+ gLineToInfo,
+ gLinearGradientInfo,
+ gDrawMatrixInfo,
+ gMoveInfo,
+ gMoveToInfo,
+ gMovieInfo,
+ gOvalInfo,
+ gDrawPaintInfo,
+ gDrawPathInfo,
+ gUnknown5Info,
+ gDrawPointInfo,
+ gPolyToPolyInfo,
+ gPolygonInfo,
+ gPolylineInfo,
+ gPostInfo,
+ gQuadToInfo,
+ gRCubicToInfo,
+ gRLineToInfo,
+ gRMoveToInfo,
+ gRQuadToInfo,
+ gRadialGradientInfo,
+ gDisplayRandomInfo,
+ gRectToRectInfo,
+ gRectangleInfo,
+ gRemoveInfo,
+ gReplaceInfo,
+ gRotateInfo,
+ gRoundRectInfo,
+ gS32Info,
+ gScalarInfo,
+ gScaleInfo,
+ gSetInfo,
+ gShaderInfo,
+ gSkewInfo,
+ g3D_CameraInfo,
+ g3D_PatchInfo,
+ gUnknown6Info,
+ gSnapshotInfo,
+ gStringInfo,
+ gTextInfo,
+ gTextBoxInfo,
+ gTextOnPathInfo,
+ gTextToPathInfo,
+ gTranslateInfo,
+ gTypedArrayInfo,
+ gTypefaceInfo,
+};
+
+static const unsigned char gInfoCounts[] = {
+ 26,4,4,1,1,2,5,3,13,1,13,2,6,3,2,2,2,8,6,
+ 2,2,2,2,6,4,8,3,3,2,1,4,3,1,3,4,2,2,12,1,
+ 2,1,1,25,3,3,2,2,1,1,6,4,1,1,1,1,3,5,2,7,
+ 2,1,2,3,1,1,3,8,2,3,7,4,3,4,3,4,6,3,2,2,
+ 2,1
+};
+
+static const unsigned char gTypeIDs[] = {
+ 1, // Math
+ 2, // Add
+ 3, // AddCircle
+ 4, // Unknown1
+ 5, // AddOval
+ 6, // AddPath
+ 7, // AddRectangle
+ 8, // AddRoundRect
+ 10, // Unknown2
+ 11, // AnimateField
+ 12, // Apply
+ 17, // Unknown3
+ 19, // Bitmap
+ 22, // BitmapShader
+ 23, // Blur
+ 25, // Bounds
+ 29, // Clip
+ 31, // Color
+ 32, // CubicTo
+ 33, // Dash
+ 34, // Data
+ 35, // Discrete
+ 38, // DrawTo
+ 39, // Dump
+ 41, // Emboss
+ 42, // Event
+ 48, // FromPath
+ 51, // Unknown4
+ 52, // G
+ 53, // HitClear
+ 54, // HitTest
+ 55, // Image
+ 56, // Include
+ 57, // Input
+ 59, // Line
+ 60, // LineTo
+ 61, // LinearGradient
+ 65, // Matrix
+ 68, // Move
+ 69, // MoveTo
+ 70, // Movie
+ 72, // Oval
+ 73, // Paint
+ 74, // Path
+ 77, // Unknown5
+ 78, // Point
+ 79, // PolyToPoly
+ 80, // Polygon
+ 81, // Polyline
+ 82, // Post
+ 83, // QuadTo
+ 84, // RCubicTo
+ 85, // RLineTo
+ 86, // RMoveTo
+ 87, // RQuadTo
+ 88, // RadialGradient
+ 89, // Random
+ 90, // RectToRect
+ 91, // Rectangle
+ 92, // Remove
+ 93, // Replace
+ 94, // Rotate
+ 95, // RoundRect
+ 96, // S32
+ 98, // Scalar
+ 99, // Scale
+ 101, // Set
+ 102, // Shader
+ 103, // Skew
+ 104, // 3D_Camera
+ 105, // 3D_Patch
+ 106, // Unknown6
+ 107, // Snapshot
+ 108, // String
+ 110, // Text
+ 111, // TextBox
+ 114, // TextOnPath
+ 115, // TextToPath
+ 117, // Translate
+ 119, // TypedArray
+ 120, // Typeface
+
+};
+
+static const int kTypeIDs = 81;
+
+static const char* const gInfoNames[] = {
+ gMathStrings,
+ gAddStrings,
+ gAddCircleStrings,
+ gUnknown1Strings,
+ gAddOvalStrings,
+ gAddPathStrings,
+ gAddRectangleStrings,
+ gAddRoundRectStrings,
+ gUnknown2Strings,
+ gAnimateFieldStrings,
+ gApplyStrings,
+ gUnknown3Strings,
+ gBitmapStrings,
+ gBitmapShaderStrings,
+ gBlurStrings,
+ gBoundsStrings,
+ gClipStrings,
+ gColorStrings,
+ gCubicToStrings,
+ gDashStrings,
+ gDataStrings,
+ gDiscreteStrings,
+ gDrawToStrings,
+ gDumpStrings,
+ gEmbossStrings,
+ gEventStrings,
+ gFromPathStrings,
+ gUnknown4Strings,
+ gGStrings,
+ gHitClearStrings,
+ gHitTestStrings,
+ gImageStrings,
+ gIncludeStrings,
+ gInputStrings,
+ gLineStrings,
+ gLineToStrings,
+ gLinearGradientStrings,
+ gMatrixStrings,
+ gMoveStrings,
+ gMoveToStrings,
+ gMovieStrings,
+ gOvalStrings,
+ gPaintStrings,
+ gPathStrings,
+ gUnknown5Strings,
+ gPointStrings,
+ gPolyToPolyStrings,
+ gPolygonStrings,
+ gPolylineStrings,
+ gPostStrings,
+ gQuadToStrings,
+ gRCubicToStrings,
+ gRLineToStrings,
+ gRMoveToStrings,
+ gRQuadToStrings,
+ gRadialGradientStrings,
+ gRandomStrings,
+ gRectToRectStrings,
+ gRectangleStrings,
+ gRemoveStrings,
+ gReplaceStrings,
+ gRotateStrings,
+ gRoundRectStrings,
+ gS32Strings,
+ gScalarStrings,
+ gScaleStrings,
+ gSetStrings,
+ gShaderStrings,
+ gSkewStrings,
+ g3D_CameraStrings,
+ g3D_PatchStrings,
+ gUnknown6Strings,
+ gSnapshotStrings,
+ gStringStrings,
+ gTextStrings,
+ gTextBoxStrings,
+ gTextOnPathStrings,
+ gTextToPathStrings,
+ gTranslateStrings,
+ gTypedArrayStrings,
+ gTypefaceStrings
+};
+
+#endif
+#endif
--- /dev/null
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#include "SkTypes.h"
+#ifndef SK_BUILD_FOR_UNIX
+#ifdef SK_RELEASE
+// This file was automatically generated.
+// To change it, edit the file with the matching debug info.
+// Then execute SkDisplayType::BuildCondensedInfo() to regenerate this file.
+
+static const char gMathStrings[] =
+ "E\0"
+ "LN10\0"
+ "LN2\0"
+ "LOG10E\0"
+ "LOG2E\0"
+ "PI\0"
+ "SQRT1_2\0"
+ "SQRT2\0"
+ "abs\0"
+ "acos\0"
+ "asin\0"
+ "atan\0"
+ "atan2\0"
+ "ceil\0"
+ "cos\0"
+ "exp\0"
+ "floor\0"
+ "log\0"
+ "max\0"
+ "min\0"
+ "pow\0"
+ "random\0"
+ "round\0"
+ "sin\0"
+ "sqrt\0"
+ "tan"
+;
+
+static const SkMemberInfo gMathInfo[] = {
+ {0, -1, 67, 98},
+ {2, -2, 67, 98},
+ {7, -3, 67, 98},
+ {11, -4, 67, 98},
+ {18, -5, 67, 98},
+ {24, -6, 67, 98},
+ {27, -7, 67, 98},
+ {35, -8, 67, 98},
+ {41, -1, 66, 98},
+ {45, -2, 66, 98},
+ {50, -3, 66, 98},
+ {55, -4, 66, 98},
+ {60, -5, 66, 98},
+ {66, -6, 66, 98},
+ {71, -7, 66, 98},
+ {75, -8, 66, 98},
+ {79, -9, 66, 98},
+ {85, -10, 66, 98},
+ {89, -11, 66, 98},
+ {93, -12, 66, 98},
+ {97, -13, 66, 98},
+ {101, -14, 66, 98},
+ {108, -15, 66, 98},
+ {114, -16, 66, 98},
+ {118, -17, 66, 98},
+ {123, -18, 66, 98}
+};
+
+static const char gAddStrings[] =
+ "inPlace\0"
+ "offset\0"
+ "use\0"
+ "where"
+;
+
+static const SkMemberInfo gAddInfo[] = {
+ {0, 4, 26, 1},
+ {8, 8, 96, 1},
+ {15, 12, 37, 1},
+ {19, 16, 37, 1}
+};
+
+static const char gAddCircleStrings[] =
+ "\0"
+ "radius\0"
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gAddCircleInfo[] = {
+ {0, 3, 18, 1},
+ {1, 12, 98, 1},
+ {8, 16, 98, 1},
+ {10, 20, 98, 1}
+};
+
+static const char gUnknown1Strings[] =
+ "direction"
+;
+
+static const SkMemberInfo gUnknown1Info[] = {
+ {0, 8, 75, 1}
+};
+
+static const char gAddOvalStrings[] =
+ ""
+;
+
+static const SkMemberInfo gAddOvalInfo[] = {
+ {0, 6, 18, 5}
+};
+
+static const char gAddPathStrings[] =
+ "matrix\0"
+ "path"
+;
+
+static const SkMemberInfo gAddPathInfo[] = {
+ {0, 8, 65, 1},
+ {7, 12, 74, 1}
+};
+
+static const char gAddRectangleStrings[] =
+ "\0"
+ "bottom\0"
+ "left\0"
+ "right\0"
+ "top"
+;
+
+static const SkMemberInfo gAddRectangleInfo[] = {
+ {0, 3, 18, 1},
+ {1, 24, 98, 1},
+ {8, 12, 98, 1},
+ {13, 20, 98, 1},
+ {19, 16, 98, 1}
+};
+
+static const char gAddRoundRectStrings[] =
+ "\0"
+ "rx\0"
+ "ry"
+;
+
+static const SkMemberInfo gAddRoundRectInfo[] = {
+ {0, 6, 18, 5},
+ {1, 28, 98, 1},
+ {4, 32, 98, 1}
+};
+
+static const char gUnknown2Strings[] =
+ "begin\0"
+ "blend\0"
+ "dur\0"
+ "dynamic\0"
+ "field\0"
+ "formula\0"
+ "from\0"
+ "mirror\0"
+ "repeat\0"
+ "reset\0"
+ "target\0"
+ "to\0"
+ "values"
+;
+
+static const SkMemberInfo gUnknown2Info[] = {
+ {0, 4, 71, 1},
+ {6, 8, 119, 98},
+ {12, 16, 71, 1},
+ {16, -1, 67, 26},
+ {24, 20, 108, 1},
+ {30, 24, 40, 1},
+ {38, 28, 40, 1},
+ {43, -2, 67, 26},
+ {50, 32, 98, 1},
+ {57, -3, 67, 26},
+ {63, 36, 40, 1},
+ {70, 40, 40, 1},
+ {73, -4, 67, 40}
+};
+
+static const char gAnimateFieldStrings[] =
+ ""
+;
+
+static const SkMemberInfo gAnimateFieldInfo[] = {
+ {0, 8, 18, 13}
+};
+
+static const char gApplyStrings[] =
+ "animator\0"
+ "begin\0"
+ "dontDraw\0"
+ "dynamicScope\0"
+ "interval\0"
+ "mode\0"
+ "pickup\0"
+ "restore\0"
+ "scope\0"
+ "step\0"
+ "steps\0"
+ "time\0"
+ "transition"
+;
+
+static const SkMemberInfo gApplyInfo[] = {
+ {0, -1, 67, 10},
+ {9, 4, 71, 1},
+ {15, 8, 26, 1},
+ {24, 12, 108, 1},
+ {37, 16, 71, 1},
+ {46, 20, 13, 1},
+ {51, 24, 26, 1},
+ {58, 28, 26, 1},
+ {66, 32, 37, 1},
+ {72, -2, 67, 96},
+ {77, 36, 96, 1},
+ {83, -3, 67, 71},
+ {88, 40, 14, 1}
+};
+
+static const char gUnknown3Strings[] =
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gUnknown3Info[] = {
+ {0, 36, 98, 1},
+ {2, 40, 98, 1}
+};
+
+static const char gBitmapStrings[] =
+ "\0"
+ "erase\0"
+ "format\0"
+ "height\0"
+ "rowBytes\0"
+ "width"
+;
+
+static const SkMemberInfo gDrawBitmapInfo[] = {
+ {0, 11, 18, 2},
+ {1, -1, 67, 15},
+ {7, 44, 21, 1},
+ {14, 48, 96, 1},
+ {21, 52, 96, 1},
+ {30, 56, 96, 1}
+};
+
+static const char gBitmapShaderStrings[] =
+ "\0"
+ "filterType\0"
+ "image"
+;
+
+static const SkMemberInfo gDrawBitmapShaderInfo[] = {
+ {0, 66, 18, 2},
+ {1, 16, 47, 1},
+ {12, 20, 17, 1}
+};
+
+static const char gBlurStrings[] =
+ "blurStyle\0"
+ "radius"
+;
+
+static const SkMemberInfo gDrawBlurInfo[] = {
+ {0, 12, 63, 1},
+ {10, 8, 98, 1}
+};
+
+static const char gBoundsStrings[] =
+ "\0"
+ "inval"
+;
+
+static const SkMemberInfo gDisplayBoundsInfo[] = {
+ {0, 57, 18, 7},
+ {1, 32, 26, 1}
+};
+
+static const char gClipStrings[] =
+ "path\0"
+ "rectangle"
+;
+
+static const SkMemberInfo gDrawClipInfo[] = {
+ {0, 8, 74, 1},
+ {5, 4, 91, 1}
+};
+
+static const char gColorStrings[] =
+ "alpha\0"
+ "blue\0"
+ "color\0"
+ "green\0"
+ "hue\0"
+ "red\0"
+ "saturation\0"
+ "value"
+;
+
+static const SkMemberInfo gDrawColorInfo[] = {
+ {0, -1, 67, 98},
+ {6, -2, 67, 98},
+ {11, 8, 15, 1},
+ {17, -3, 67, 98},
+ {23, -4, 67, 98},
+ {27, -5, 67, 98},
+ {31, -6, 67, 98},
+ {42, -7, 67, 98}
+};
+
+static const char gCubicToStrings[] =
+ "x1\0"
+ "x2\0"
+ "x3\0"
+ "y1\0"
+ "y2\0"
+ "y3"
+;
+
+static const SkMemberInfo gCubicToInfo[] = {
+ {0, 8, 98, 1},
+ {3, 16, 98, 1},
+ {6, 24, 98, 1},
+ {9, 12, 98, 1},
+ {12, 20, 98, 1},
+ {15, 28, 98, 1}
+};
+
+static const char gDashStrings[] =
+ "intervals\0"
+ "phase"
+;
+
+static const SkMemberInfo gDashInfo[] = {
+ {0, 8, 119, 98},
+ {10, 16, 98, 1}
+};
+
+static const char gDataStrings[] =
+ "\0"
+ "name"
+;
+
+static const SkMemberInfo gDataInfo[] = {
+ {0, 32, 18, 3},
+ {1, 16, 108, 1}
+};
+
+static const char gDiscreteStrings[] =
+ "deviation\0"
+ "segLength"
+;
+
+static const SkMemberInfo gDiscreteInfo[] = {
+ {0, 8, 98, 1},
+ {10, 12, 98, 1}
+};
+
+static const char gDrawToStrings[] =
+ "drawOnce\0"
+ "use"
+;
+
+static const SkMemberInfo gDrawToInfo[] = {
+ {0, 36, 26, 1},
+ {9, 40, 19, 1}
+};
+
+static const char gEmbossStrings[] =
+ "ambient\0"
+ "direction\0"
+ "radius\0"
+ "specular"
+;
+
+static const SkMemberInfo gDrawEmbossInfo[] = {
+ {0, -1, 67, 98},
+ {8, 8, 119, 98},
+ {18, 16, 98, 1},
+ {25, -2, 67, 98}
+};
+
+static const char gEventStrings[] =
+ "code\0"
+ "disable\0"
+ "key\0"
+ "keys\0"
+ "kind\0"
+ "target\0"
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gDisplayEventInfo[] = {
+ {0, 4, 43, 1},
+ {5, 8, 26, 1},
+ {13, -1, 67, 108},
+ {17, -2, 67, 108},
+ {22, 12, 44, 1},
+ {27, 16, 108, 1},
+ {34, 20, 98, 1},
+ {36, 24, 98, 1}
+};
+
+static const char gFromPathStrings[] =
+ "mode\0"
+ "offset\0"
+ "path"
+;
+
+static const SkMemberInfo gFromPathInfo[] = {
+ {0, 8, 49, 1},
+ {5, 12, 98, 1},
+ {12, 16, 74, 1}
+};
+
+static const char gUnknown4Strings[] =
+ "\0"
+ "offsets\0"
+ "unitMapper"
+;
+
+static const SkMemberInfo gUnknown4Info[] = {
+ {0, 66, 18, 2},
+ {1, 16, 119, 98},
+ {9, 24, 108, 1}
+};
+
+static const char gGStrings[] =
+ "condition\0"
+ "enableCondition"
+;
+
+static const SkMemberInfo gGInfo[] = {
+ {0, 4, 40, 1},
+ {10, 8, 40, 1}
+};
+
+static const char gHitClearStrings[] =
+ "targets"
+;
+
+static const SkMemberInfo gHitClearInfo[] = {
+ {0, 4, 119, 36}
+};
+
+static const char gHitTestStrings[] =
+ "bullets\0"
+ "hits\0"
+ "targets\0"
+ "value"
+;
+
+static const SkMemberInfo gHitTestInfo[] = {
+ {0, 4, 119, 36},
+ {8, 12, 119, 96},
+ {13, 20, 119, 36},
+ {21, 28, 26, 1}
+};
+
+static const char gImageStrings[] =
+ "\0"
+ "base64\0"
+ "src"
+;
+
+static const SkMemberInfo gImageInfo[] = {
+ {0, 11, 18, 2},
+ {1, 44, 16, 2},
+ {8, 52, 108, 1}
+};
+
+static const char gIncludeStrings[] =
+ "src"
+;
+
+static const SkMemberInfo gIncludeInfo[] = {
+ {0, 4, 108, 1}
+};
+
+static const char gInputStrings[] =
+ "s32\0"
+ "scalar\0"
+ "string"
+;
+
+static const SkMemberInfo gInputInfo[] = {
+ {0, 4, 96, 1},
+ {4, 8, 98, 1},
+ {11, 12, 108, 1}
+};
+
+static const char gLineStrings[] =
+ "x1\0"
+ "x2\0"
+ "y1\0"
+ "y2"
+;
+
+static const SkMemberInfo gLineInfo[] = {
+ {0, 12, 98, 1},
+ {3, 16, 98, 1},
+ {6, 20, 98, 1},
+ {9, 24, 98, 1}
+};
+
+static const char gLineToStrings[] =
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gLineToInfo[] = {
+ {0, 8, 98, 1},
+ {2, 12, 98, 1}
+};
+
+static const char gLinearGradientStrings[] =
+ "\0"
+ "points"
+;
+
+static const SkMemberInfo gLinearGradientInfo[] = {
+ {0, 26, 18, 3},
+ {1, 48, 77, 4}
+};
+
+static const char gMatrixStrings[] =
+ "matrix\0"
+ "perspectX\0"
+ "perspectY\0"
+ "rotate\0"
+ "scale\0"
+ "scaleX\0"
+ "scaleY\0"
+ "skewX\0"
+ "skewY\0"
+ "translate\0"
+ "translateX\0"
+ "translateY"
+;
+
+static const SkMemberInfo gDrawMatrixInfo[] = {
+ {0, 4, 119, 98},
+ {7, -1, 67, 98},
+ {17, -2, 67, 98},
+ {27, -3, 67, 98},
+ {34, -4, 67, 98},
+ {40, -5, 67, 98},
+ {47, -6, 67, 98},
+ {54, -7, 67, 98},
+ {60, -8, 67, 98},
+ {66, -9, 67, 77},
+ {76, -10, 67, 98},
+ {87, -11, 67, 98}
+};
+
+static const char gMoveStrings[] =
+ ""
+;
+
+static const SkMemberInfo gMoveInfo[] = {
+ {0, 1, 18, 4}
+};
+
+static const char gMoveToStrings[] =
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gMoveToInfo[] = {
+ {0, 8, 98, 1},
+ {2, 12, 98, 1}
+};
+
+static const char gMovieStrings[] =
+ "src"
+;
+
+static const SkMemberInfo gMovieInfo[] = {
+ {0, 4, 108, 1}
+};
+
+static const char gOvalStrings[] =
+ ""
+;
+
+static const SkMemberInfo gOvalInfo[] = {
+ {0, 57, 18, 7}
+};
+
+static const char gPaintStrings[] =
+ "antiAlias\0"
+ "ascent\0"
+ "color\0"
+ "descent\0"
+ "filterType\0"
+ "linearText\0"
+ "maskFilter\0"
+ "measureText\0"
+ "pathEffect\0"
+ "shader\0"
+ "strikeThru\0"
+ "stroke\0"
+ "strokeCap\0"
+ "strokeJoin\0"
+ "strokeMiter\0"
+ "strokeWidth\0"
+ "style\0"
+ "textAlign\0"
+ "textScaleX\0"
+ "textSize\0"
+ "textSkewX\0"
+ "textTracking\0"
+ "typeface\0"
+ "underline\0"
+ "xfermode"
+;
+
+static const SkMemberInfo gDrawPaintInfo[] = {
+ {0, 4, 26, 1},
+ {10, -1, 67, 98},
+ {17, 8, 31, 1},
+ {23, -2, 67, 98},
+ {31, 12, 47, 1},
+ {42, 16, 26, 1},
+ {53, 20, 62, 1},
+ {64, -1, 66, 98},
+ {76, 24, 76, 1},
+ {87, 28, 102, 1},
+ {94, 32, 26, 1},
+ {105, 36, 26, 1},
+ {112, 40, 27, 1},
+ {122, 44, 58, 1},
+ {133, 48, 98, 1},
+ {145, 52, 98, 1},
+ {157, 56, 109, 1},
+ {163, 60, 9, 1},
+ {173, 64, 98, 1},
+ {184, 68, 98, 1},
+ {193, 72, 98, 1},
+ {203, 76, 98, 1},
+ {216, 80, 120, 1},
+ {225, 84, 26, 1},
+ {235, 88, 121, 1}
+};
+
+static const char gPathStrings[] =
+ "d\0"
+ "fillType\0"
+ "length"
+;
+
+static const SkMemberInfo gDrawPathInfo[] = {
+ {0, 32, 108, 1},
+ {2, -1, 67, 46},
+ {11, -2, 67, 98}
+};
+
+static const char gUnknown5Strings[] =
+ "x\0"
+ "y\0"
+ "z"
+;
+
+static const SkMemberInfo gUnknown5Info[] = {
+ {0, 0, 98, 1},
+ {2, 4, 98, 1},
+ {4, 8, 98, 1}
+};
+
+static const char gPointStrings[] =
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gDrawPointInfo[] = {
+ {0, 4, 98, 1},
+ {2, 8, 98, 1}
+};
+
+static const char gPolyToPolyStrings[] =
+ "destination\0"
+ "source"
+;
+
+static const SkMemberInfo gPolyToPolyInfo[] = {
+ {0, 12, 80, 1},
+ {12, 8, 80, 1}
+};
+
+static const char gPolygonStrings[] =
+ ""
+;
+
+static const SkMemberInfo gPolygonInfo[] = {
+ {0, 47, 18, 1}
+};
+
+static const char gPolylineStrings[] =
+ "points"
+;
+
+static const SkMemberInfo gPolylineInfo[] = {
+ {0, 56, 119, 98}
+};
+
+static const char gPostStrings[] =
+ "delay\0"
+ "initialized\0"
+ "mode\0"
+ "sink\0"
+ "target\0"
+ "type"
+;
+
+static const SkMemberInfo gPostInfo[] = {
+ {0, 4, 71, 1},
+ {6, 8, 26, 1},
+ {18, 12, 45, 1},
+ {23, -1, 67, 108},
+ {28, -2, 67, 108},
+ {35, -3, 67, 108}
+};
+
+static const char gQuadToStrings[] =
+ "x1\0"
+ "x2\0"
+ "y1\0"
+ "y2"
+;
+
+static const SkMemberInfo gQuadToInfo[] = {
+ {0, 8, 98, 1},
+ {3, 16, 98, 1},
+ {6, 12, 98, 1},
+ {9, 20, 98, 1}
+};
+
+static const char gRCubicToStrings[] =
+ ""
+;
+
+static const SkMemberInfo gRCubicToInfo[] = {
+ {0, 18, 18, 6}
+};
+
+static const char gRLineToStrings[] =
+ ""
+;
+
+static const SkMemberInfo gRLineToInfo[] = {
+ {0, 34, 18, 2}
+};
+
+static const char gRMoveToStrings[] =
+ ""
+;
+
+static const SkMemberInfo gRMoveToInfo[] = {
+ {0, 38, 18, 2}
+};
+
+static const char gRQuadToStrings[] =
+ ""
+;
+
+static const SkMemberInfo gRQuadToInfo[] = {
+ {0, 49, 18, 4}
+};
+
+static const char gRadialGradientStrings[] =
+ "\0"
+ "center\0"
+ "radius"
+;
+
+static const SkMemberInfo gRadialGradientInfo[] = {
+ {0, 26, 18, 3},
+ {1, 48, 77, 2},
+ {8, 56, 98, 1}
+};
+
+static const char gRandomStrings[] =
+ "blend\0"
+ "max\0"
+ "min\0"
+ "random\0"
+ "seed"
+;
+
+static const SkMemberInfo gDisplayRandomInfo[] = {
+ {0, 4, 98, 1},
+ {6, 12, 98, 1},
+ {10, 8, 98, 1},
+ {14, 1, 67, 98},
+ {21, -2, 67, 96}
+};
+
+static const char gRectToRectStrings[] =
+ "destination\0"
+ "source"
+;
+
+static const SkMemberInfo gRectToRectInfo[] = {
+ {0, 12, 91, 1},
+ {12, 8, 91, 1}
+};
+
+static const char gRectangleStrings[] =
+ "bottom\0"
+ "height\0"
+ "left\0"
+ "needsRedraw\0"
+ "right\0"
+ "top\0"
+ "width"
+;
+
+static const SkMemberInfo gRectangleInfo[] = {
+ {0, 24, 98, 1},
+ {7, -1, 67, 98},
+ {14, 12, 98, 1},
+ {19, -2, 67, 26},
+ {31, 20, 98, 1},
+ {37, 16, 98, 1},
+ {41, -3, 67, 98}
+};
+
+static const char gRemoveStrings[] =
+ "offset\0"
+ "where"
+;
+
+static const SkMemberInfo gRemoveInfo[] = {
+ {0, 8, 96, 1},
+ {7, 16, 37, 1}
+};
+
+static const char gReplaceStrings[] =
+ ""
+;
+
+static const SkMemberInfo gReplaceInfo[] = {
+ {0, 1, 18, 4}
+};
+
+static const char gRotateStrings[] =
+ "center\0"
+ "degrees"
+;
+
+static const SkMemberInfo gRotateInfo[] = {
+ {0, 12, 77, 2},
+ {7, 8, 98, 1}
+};
+
+static const char gRoundRectStrings[] =
+ "\0"
+ "rx\0"
+ "ry"
+;
+
+static const SkMemberInfo gRoundRectInfo[] = {
+ {0, 57, 18, 7},
+ {1, 32, 98, 1},
+ {4, 36, 98, 1}
+};
+
+static const char gS32Strings[] =
+ "value"
+;
+
+static const SkMemberInfo gS32Info[] = {
+ {0, 4, 96, 1}
+};
+
+static const char gScalarStrings[] =
+ "value"
+;
+
+static const SkMemberInfo gScalarInfo[] = {
+ {0, 4, 98, 1}
+};
+
+static const char gScaleStrings[] =
+ "center\0"
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gScaleInfo[] = {
+ {0, 16, 77, 2},
+ {7, 8, 98, 1},
+ {9, 12, 98, 1}
+};
+
+static const char gSetStrings[] =
+ "begin\0"
+ "dur\0"
+ "dynamic\0"
+ "field\0"
+ "formula\0"
+ "reset\0"
+ "target\0"
+ "to"
+;
+
+static const SkMemberInfo gSetInfo[] = {
+ {0, 4, 71, 1},
+ {6, 16, 71, 1},
+ {10, -1, 67, 26},
+ {18, 20, 108, 1},
+ {24, 24, 40, 1},
+ {32, -3, 67, 26},
+ {38, 36, 40, 1},
+ {45, 40, 40, 1}
+};
+
+static const char gShaderStrings[] =
+ "matrix\0"
+ "tileMode"
+;
+
+static const SkMemberInfo gShaderInfo[] = {
+ {0, 8, 65, 1},
+ {7, 12, 116, 1}
+};
+
+static const char gSkewStrings[] =
+ "center\0"
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gSkewInfo[] = {
+ {0, 16, 77, 2},
+ {7, 8, 98, 1},
+ {9, 12, 98, 1}
+};
+
+static const char g3D_CameraStrings[] =
+ "axis\0"
+ "hackHeight\0"
+ "hackWidth\0"
+ "location\0"
+ "observer\0"
+ "patch\0"
+ "zenith"
+;
+
+static const SkMemberInfo g3D_CameraInfo[] = {
+ {0, 24, 106, 3},
+ {5, 8, 98, 1},
+ {16, 4, 98, 1},
+ {26, 12, 106, 3},
+ {35, 48, 106, 3},
+ {44, 96, 105, 1},
+ {50, 36, 106, 3}
+};
+
+static const char g3D_PatchStrings[] =
+ "origin\0"
+ "rotateDegrees\0"
+ "u\0"
+ "v"
+;
+
+static const SkMemberInfo g3D_PatchInfo[] = {
+ {0, 28, 106, 3},
+ {7, -1, 66, 98},
+ {21, 4, 106, 3},
+ {23, 16, 106, 3}
+};
+
+static const char gUnknown6Strings[] =
+ "x\0"
+ "y\0"
+ "z"
+;
+
+static const SkMemberInfo gUnknown6Info[] = {
+ {0, 0, 98, 1},
+ {2, 4, 98, 1},
+ {4, 8, 98, 1}
+};
+
+static const char gSnapshotStrings[] =
+ "filename\0"
+ "quality\0"
+ "sequence\0"
+ "type"
+;
+
+static const SkMemberInfo gSnapshotInfo[] = {
+ {0, 4, 108, 1},
+ {9, 8, 98, 1},
+ {17, 12, 26, 1},
+ {26, 16, 20, 1}
+};
+
+static const char gStringStrings[] =
+ "length\0"
+ "slice\0"
+ "value"
+;
+
+static const SkMemberInfo gStringInfo[] = {
+ {0, -1, 67, 96},
+ {7, -1, 66, 108},
+ {13, 4, 108, 1}
+};
+
+static const char gTextStrings[] =
+ "length\0"
+ "text\0"
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gTextInfo[] = {
+ {0, -1, 67, 96},
+ {7, 12, 108, 1},
+ {12, 16, 98, 1},
+ {14, 20, 98, 1}
+};
+
+static const char gTextBoxStrings[] =
+ "\0"
+ "mode\0"
+ "spacingAdd\0"
+ "spacingAlign\0"
+ "spacingMul\0"
+ "text"
+;
+
+static const SkMemberInfo gTextBoxInfo[] = {
+ {0, 57, 18, 7},
+ {1, 44, 113, 1},
+ {6, 40, 98, 1},
+ {17, 48, 112, 1},
+ {30, 36, 98, 1},
+ {41, 32, 108, 1}
+};
+
+static const char gTextOnPathStrings[] =
+ "offset\0"
+ "path\0"
+ "text"
+;
+
+static const SkMemberInfo gTextOnPathInfo[] = {
+ {0, 12, 98, 1},
+ {7, 16, 74, 1},
+ {12, 20, 110, 1}
+};
+
+static const char gTextToPathStrings[] =
+ "path\0"
+ "text"
+;
+
+static const SkMemberInfo gTextToPathInfo[] = {
+ {0, 4, 74, 1},
+ {5, 8, 110, 1}
+};
+
+static const char gTranslateStrings[] =
+ "x\0"
+ "y"
+;
+
+static const SkMemberInfo gTranslateInfo[] = {
+ {0, 8, 98, 1},
+ {2, 12, 98, 1}
+};
+
+static const char gTypedArrayStrings[] =
+ "length\0"
+ "values"
+;
+
+static const SkMemberInfo gTypedArrayInfo[] = {
+ {0, -1, 67, 96},
+ {7, 4, 119, 0}
+};
+
+static const char gTypefaceStrings[] =
+ "fontName"
+;
+
+static const SkMemberInfo gTypefaceInfo[] = {
+ {0, 8, 108, 1}
+};
+
+static const SkMemberInfo* const gInfoTables[] = {
+ gMathInfo,
+ gAddInfo,
+ gAddCircleInfo,
+ gUnknown1Info,
+ gAddOvalInfo,
+ gAddPathInfo,
+ gAddRectangleInfo,
+ gAddRoundRectInfo,
+ gUnknown2Info,
+ gAnimateFieldInfo,
+ gApplyInfo,
+ gUnknown3Info,
+ gDrawBitmapInfo,
+ gDrawBitmapShaderInfo,
+ gDrawBlurInfo,
+ gDisplayBoundsInfo,
+ gDrawClipInfo,
+ gDrawColorInfo,
+ gCubicToInfo,
+ gDashInfo,
+ gDataInfo,
+ gDiscreteInfo,
+ gDrawToInfo,
+ gDrawEmbossInfo,
+ gDisplayEventInfo,
+ gFromPathInfo,
+ gUnknown4Info,
+ gGInfo,
+ gHitClearInfo,
+ gHitTestInfo,
+ gImageInfo,
+ gIncludeInfo,
+ gInputInfo,
+ gLineInfo,
+ gLineToInfo,
+ gLinearGradientInfo,
+ gDrawMatrixInfo,
+ gMoveInfo,
+ gMoveToInfo,
+ gMovieInfo,
+ gOvalInfo,
+ gDrawPaintInfo,
+ gDrawPathInfo,
+ gUnknown5Info,
+ gDrawPointInfo,
+ gPolyToPolyInfo,
+ gPolygonInfo,
+ gPolylineInfo,
+ gPostInfo,
+ gQuadToInfo,
+ gRCubicToInfo,
+ gRLineToInfo,
+ gRMoveToInfo,
+ gRQuadToInfo,
+ gRadialGradientInfo,
+ gDisplayRandomInfo,
+ gRectToRectInfo,
+ gRectangleInfo,
+ gRemoveInfo,
+ gReplaceInfo,
+ gRotateInfo,
+ gRoundRectInfo,
+ gS32Info,
+ gScalarInfo,
+ gScaleInfo,
+ gSetInfo,
+ gShaderInfo,
+ gSkewInfo,
+ g3D_CameraInfo,
+ g3D_PatchInfo,
+ gUnknown6Info,
+ gSnapshotInfo,
+ gStringInfo,
+ gTextInfo,
+ gTextBoxInfo,
+ gTextOnPathInfo,
+ gTextToPathInfo,
+ gTranslateInfo,
+ gTypedArrayInfo,
+ gTypefaceInfo,
+};
+
+static const unsigned char gInfoCounts[] = {
+ 26,4,4,1,1,2,5,3,13,1,13,2,6,3,2,2,2,8,6,
+ 2,2,2,2,4,8,3,3,2,1,4,3,1,3,4,2,2,12,1,2,
+ 1,1,25,3,3,2,2,1,1,6,4,1,1,1,1,3,5,2,7,2,
+ 1,2,3,1,1,3,8,2,3,7,4,3,4,3,4,6,3,2,2,2,
+ 1
+};
+
+static const unsigned char gTypeIDs[] = {
+ 1, // Math
+ 2, // Add
+ 3, // AddCircle
+ 4, // Unknown1
+ 5, // AddOval
+ 6, // AddPath
+ 7, // AddRectangle
+ 8, // AddRoundRect
+ 10, // Unknown2
+ 11, // AnimateField
+ 12, // Apply
+ 17, // Unknown3
+ 19, // Bitmap
+ 22, // BitmapShader
+ 23, // Blur
+ 25, // Bounds
+ 29, // Clip
+ 31, // Color
+ 32, // CubicTo
+ 33, // Dash
+ 34, // Data
+ 35, // Discrete
+ 38, // DrawTo
+ 41, // Emboss
+ 42, // Event
+ 48, // FromPath
+ 51, // Unknown4
+ 52, // G
+ 53, // HitClear
+ 54, // HitTest
+ 55, // Image
+ 56, // Include
+ 57, // Input
+ 59, // Line
+ 60, // LineTo
+ 61, // LinearGradient
+ 65, // Matrix
+ 68, // Move
+ 69, // MoveTo
+ 70, // Movie
+ 72, // Oval
+ 73, // Paint
+ 74, // Path
+ 77, // Unknown5
+ 78, // Point
+ 79, // PolyToPoly
+ 80, // Polygon
+ 81, // Polyline
+ 82, // Post
+ 83, // QuadTo
+ 84, // RCubicTo
+ 85, // RLineTo
+ 86, // RMoveTo
+ 87, // RQuadTo
+ 88, // RadialGradient
+ 89, // Random
+ 90, // RectToRect
+ 91, // Rectangle
+ 92, // Remove
+ 93, // Replace
+ 94, // Rotate
+ 95, // RoundRect
+ 96, // S32
+ 98, // Scalar
+ 99, // Scale
+ 101, // Set
+ 102, // Shader
+ 103, // Skew
+ 104, // 3D_Camera
+ 105, // 3D_Patch
+ 106, // Unknown6
+ 107, // Snapshot
+ 108, // String
+ 110, // Text
+ 111, // TextBox
+ 114, // TextOnPath
+ 115, // TextToPath
+ 117, // Translate
+ 119, // TypedArray
+ 120, // Typeface
+
+};
+
+static const int kTypeIDs = 80;
+
+static const char* const gInfoNames[] = {
+ gMathStrings,
+ gAddStrings,
+ gAddCircleStrings,
+ gUnknown1Strings,
+ gAddOvalStrings,
+ gAddPathStrings,
+ gAddRectangleStrings,
+ gAddRoundRectStrings,
+ gUnknown2Strings,
+ gAnimateFieldStrings,
+ gApplyStrings,
+ gUnknown3Strings,
+ gBitmapStrings,
+ gBitmapShaderStrings,
+ gBlurStrings,
+ gBoundsStrings,
+ gClipStrings,
+ gColorStrings,
+ gCubicToStrings,
+ gDashStrings,
+ gDataStrings,
+ gDiscreteStrings,
+ gDrawToStrings,
+ gEmbossStrings,
+ gEventStrings,
+ gFromPathStrings,
+ gUnknown4Strings,
+ gGStrings,
+ gHitClearStrings,
+ gHitTestStrings,
+ gImageStrings,
+ gIncludeStrings,
+ gInputStrings,
+ gLineStrings,
+ gLineToStrings,
+ gLinearGradientStrings,
+ gMatrixStrings,
+ gMoveStrings,
+ gMoveToStrings,
+ gMovieStrings,
+ gOvalStrings,
+ gPaintStrings,
+ gPathStrings,
+ gUnknown5Strings,
+ gPointStrings,
+ gPolyToPolyStrings,
+ gPolygonStrings,
+ gPolylineStrings,
+ gPostStrings,
+ gQuadToStrings,
+ gRCubicToStrings,
+ gRLineToStrings,
+ gRMoveToStrings,
+ gRQuadToStrings,
+ gRadialGradientStrings,
+ gRandomStrings,
+ gRectToRectStrings,
+ gRectangleStrings,
+ gRemoveStrings,
+ gReplaceStrings,
+ gRotateStrings,
+ gRoundRectStrings,
+ gS32Strings,
+ gScalarStrings,
+ gScaleStrings,
+ gSetStrings,
+ gShaderStrings,
+ gSkewStrings,
+ g3D_CameraStrings,
+ g3D_PatchStrings,
+ gUnknown6Strings,
+ gSnapshotStrings,
+ gStringStrings,
+ gTextStrings,
+ gTextBoxStrings,
+ gTextOnPathStrings,
+ gTextToPathStrings,
+ gTranslateStrings,
+ gTypedArrayStrings,
+ gTypefaceStrings
+};
+#endif
+#endif
#define INTERNAL_TRACE_MEMORY(category, name)
+#if !defined(ENABLE_TRACE_EVENT)
+// Remove the macro function to add a trace event.
+#undef INTERNAL_TRACE_EVENT_ADD
+#define INTERNAL_TRACE_EVENT_ADD(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP(...)
+#endif
+
namespace skia {
namespace tracing_internals {
--- /dev/null
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * GenerateChecksums() in ../../src/utils/SkWhitelistTypefaces.cpp generated SkWhitelistChecksums.inc.
+ * Run 'whitelist_typefaces --generate' to create anew.
+ */
+
+#include "SkTDArray.h"
+
+struct Whitelist {
+ const char* fFontName;
+ uint32_t fChecksum;
+ bool fSerializedNameOnly;
+ bool fSerializedSub;
+};
+
+static Whitelist whitelist[] = {
+ { "Aegean", 0x639a35c7, false, false },
+ { "Analecta", 0x639a35c7, false, false },
+ { "Arial", 0xbc28cb14, false, false },
+ { "DejaVu Sans", 0x639a35c7, false, false },
+ { "DejaVu Sans Mono", 0xbc29a5d9, false, false },
+ { "DejaVu Serif", 0x9db67efe, false, false },
+ { "FreeMono", 0x724884f4, false, false },
+ { "FreeSans", 0x7dfc48a3, false, false },
+ { "FreeSerif", 0xa1ae8c77, false, false },
+ { "Khmer OS", 0x917c40aa, false, false },
+ { "Kochi Gothic", 0x962132dd, false, false },
+ { "Lohit Kannada", 0x0b6ce863, false, false },
+ { "Lohit Marathi", 0x0eb0a941, false, false },
+ { "Lohit Oriya", 0xf3e9d313, false, false },
+ { "Lohit Punjabi", 0xfd8b26e0, false, false },
+ { "Lohit Tamil", 0xa8111d99, false, false },
+ { "Lohit Telugu", 0xd34299e0, false, false },
+ { "Meera", 0xe3e16220, false, false },
+ { "Mukti Narrow", 0x53f7d053, false, false },
+ { "NanumBarunGothic", 0x639a35c7, false, false },
+ { "NanumGothic", 0xff8d773d, false, false },
+ { "OpenSymbol", 0x4fcaf331, false, false },
+ { "Symbola", 0x639a35c7, false, false },
+ { "TakaoPGothic", 0x068c405a, false, false },
+ { "Waree", 0x6a2bfca8, false, false },
+ { "WenQuanYi Micro Hei", 0xcdec08a3, false, false },
+ { "padmaa", 0x09eb1865, false, false },
+};
+
+static const int whitelistCount = (int) SK_ARRAY_COUNT(whitelist);
--- /dev/null
+// Inspired by crbug.com/455429
+path.moveTo(-1113, 81);
+path.lineTo(-1113, 83);
+path.lineTo(-1113, 82);
+path.lineTo(-1112, 82);
+path.lineTo(-1112, 83);
+path.lineTo(-1111, 82);
+path.lineTo(-1111, 82);
+path.lineTo(-1110, 81);
+path.lineTo(-1110, 81);
+path.lineTo(-1109, 80);
+path.lineTo(-1109, 80);
+path.lineTo(-1108, 78);
+path.lineTo(-1108, 76);
+path.lineTo(-1107, 71);
+path.lineTo(-1107, 73);
+path.lineTo(-1106, 76);
+path.lineTo(-1106, 80);
+path.lineTo(-1105, 82);
+path.lineTo(-1105, 83);
+path.lineTo(-1104, 82);
+path.lineTo(-1104, 84);
+path.lineTo(-1103, 92);
+path.lineTo(-1103, 51);
+path.lineTo(-1102, 0);
+path.lineTo(-1102, 72);
+path.lineTo(-1101, 85);
+path.lineTo(-1101, 80);
+path.lineTo(-1100, 75);
+path.lineTo(-1099, 78);
+path.lineTo(-1099, 77);
+path.lineTo(-1098, 76);
+path.lineTo(-1098, 72);
+path.lineTo(-1097, 70);
+path.lineTo(-1097, 63);
+path.lineTo(-1096, 59);
+path.lineTo(-1096, 53);
+path.lineTo(-1095, 50);
+path.lineTo(-1095, 46);
+path.lineTo(-1094, 47);
+path.lineTo(-1094, 55);
+path.lineTo(-1093, 63);
+path.lineTo(-1093, 72);
+path.lineTo(-1092, 77);
+path.lineTo(-1092, 80);
+path.lineTo(-1091, 82);
+path.lineTo(-1091, 84);
+path.lineTo(-1090, 85);
+path.lineTo(-1090, 87);
+path.lineTo(-1089, 84);
+path.lineTo(-1089, 85);
+path.lineTo(-1088, 84);
+path.lineTo(-1088, 84);
+path.lineTo(-1087, 84);
+path.lineTo(-1087, 83);
+path.lineTo(-1086, 83);
+path.lineTo(-1085, 84);
+path.lineTo(-1085, 84);
+path.lineTo(-1084, 82);
+path.lineTo(-1084, 83);
+path.lineTo(-1083, 82);
+path.lineTo(-1083, 82);
+path.lineTo(-1082, 83);
+path.lineTo(-1082, 82);
+path.lineTo(-1081, 84);
+path.lineTo(-1081, 81);
+path.lineTo(-1080, 84);
+path.lineTo(-1080, 81);
+path.lineTo(-1079, 83);
+path.lineTo(-1079, 82);
+path.lineTo(-1078, 82);
+path.lineTo(-1078, 83);
+path.lineTo(-1077, 82);
+path.lineTo(-1077, 82);
+path.lineTo(-1076, 81);
+path.lineTo(-1076, 81);
+path.lineTo(-1075, 80);
+path.lineTo(-1075, 80);
+path.lineTo(-1074, 78);
+path.lineTo(-1074, 76);
+path.lineTo(-1073, 71);
+path.lineTo(-1073, 73);
+path.lineTo(-1072, 76);
+path.lineTo(-1072, 80);
+path.lineTo(-1071, 82);
+path.lineTo(-1071, 83);
+path.lineTo(-1070, 82);
+path.lineTo(-1070, 84);
+path.lineTo(-1069, 92);
+path.lineTo(-1069, 51);
+path.lineTo(-1068, 0);
+path.lineTo(-1068, 72);
+path.lineTo(-1067, 85);
+path.lineTo(-1067, 80);
+path.lineTo(-1066, 75);
+path.lineTo(-1066, 78);
+path.lineTo(-1065, 77);
+path.lineTo(-1065, 76);
+path.lineTo(-1064, 75);
+path.lineTo(-1064, 70);
+path.lineTo(-1063, 65);
+path.lineTo(-1063, 59);
+path.lineTo(-1062, 56);
+path.lineTo(-1062, 50);
+path.lineTo(-1061, 46);
+path.lineTo(-1060, 50);
+path.lineTo(-1060, 63);
+path.lineTo(-1059, 68);
+path.lineTo(-1059, 77);
+path.lineTo(-1058, 78);
+path.lineTo(-1057, 82);
+path.lineTo(-1057, 83);
+path.lineTo(-1056, 85);
+path.lineTo(-1056, 87);
+path.lineTo(-1055, 84);
+path.lineTo(-1055, 85);
+path.lineTo(-1054, 84);
+path.lineTo(-1054, 84);
+path.lineTo(-1053, 84);
+path.lineTo(-1053, 83);
+path.lineTo(-1052, 83);
+path.lineTo(-1052, 83);
+path.lineTo(-1051, 84);
+path.lineTo(-1051, 84);
+path.lineTo(-1050, 82);
+path.lineTo(-1050, 83);
+path.lineTo(-1049, 82);
+path.lineTo(-1049, 82);
+path.lineTo(-1048, 83);
+path.lineTo(-1048, 82);
+path.lineTo(-1047, 84);
+path.lineTo(-1047, 81);
+path.lineTo(-1046, 84);
+path.lineTo(-1046, 81);
+path.lineTo(-1045, 81);
+path.lineTo(-1045, 83);
+path.lineTo(-1044, 82);
+path.lineTo(-1044, 83);
+path.lineTo(-1043, 82);
+path.lineTo(-1043, 83);
+path.lineTo(-1042, 81);
+path.lineTo(-1042, 82);
+path.lineTo(-1041, 82);
+path.lineTo(-1041, 80);
+path.lineTo(-1040, 78);
+path.lineTo(-1040, 76);
+path.lineTo(-1039, 71);
+path.lineTo(-1039, 73);
+path.lineTo(-1038, 75);
+path.lineTo(-1038, 80);
+path.lineTo(-1037, 82);
+path.lineTo(-1037, 83);
+path.lineTo(-1036, 83);
+path.lineTo(-1036, 84);
+path.lineTo(-1035, 92);
+path.lineTo(-1035, 51);
+path.lineTo(-1034, 0);
+path.lineTo(-1034, 72);
+path.lineTo(-1033, 85);
+path.lineTo(-1033, 80);
+path.lineTo(-1032, 75);
+path.lineTo(-1032, 78);
+path.lineTo(-1031, 77);
+path.lineTo(-1031, 76);
+path.lineTo(-1030, 75);
+path.lineTo(-1030, 70);
+path.lineTo(-1029, 65);
+path.lineTo(-1029, 59);
+path.lineTo(-1028, 56);
+path.lineTo(-1028, 50);
+path.lineTo(-1027, 48);
+path.lineTo(-1027, 46);
+path.lineTo(-1026, 50);
+path.lineTo(-1026, 55);
+path.lineTo(-1025, 68);
+path.lineTo(-1025, 72);
+path.lineTo(-1024, 78);
+path.lineTo(-1024, 80);
+path.lineTo(-1023, 83);
+path.lineTo(-1023, 84);
+path.lineTo(-1022, 87);
+path.lineTo(-1022, 84);
+path.lineTo(-1021, 85);
+path.lineTo(-1020, 84);
+path.lineTo(-1020, 85);
+path.lineTo(-1019, 83);
+path.lineTo(-1019, 83);
+path.lineTo(-1018, 83);
+path.lineTo(-1018, 83);
+path.lineTo(-1017, 84);
+path.lineTo(-1017, 82);
+path.lineTo(-1016, 82);
+path.lineTo(-1016, 82);
+path.lineTo(-1015, 83);
+path.lineTo(-1014, 83);
+path.lineTo(-1014, 82);
+path.lineTo(-1013, 84);
+path.lineTo(-1013, 81);
+path.lineTo(-1012, 84);
+path.lineTo(-1012, 83);
+path.lineTo(-1011, 81);
+path.lineTo(-1011, 83);
+path.lineTo(-1010, 82);
+path.lineTo(-1010, 83);
+path.lineTo(-1009, 82);
+path.lineTo(-1009, 83);
+path.lineTo(-1008, 81);
+path.lineTo(-1008, 82);
+path.lineTo(-1007, 82);
+path.lineTo(-1007, 80);
+path.lineTo(-1006, 78);
+path.lineTo(-1006, 76);
+path.lineTo(-1005, 71);
+path.lineTo(-1005, 71);
+path.lineTo(-1004, 75);
+path.lineTo(-1004, 80);
+path.lineTo(-1003, 82);
+path.lineTo(-1003, 83);
+path.lineTo(-1002, 83);
+path.lineTo(-1002, 84);
+path.lineTo(-1001, 92);
+path.lineTo(-1001, 92);
+path.lineTo(-1000, 0);
+path.lineTo(-1000, 72);
+path.lineTo(-999, 85);
+path.lineTo(-999, 84);
+path.lineTo(-998, 75);
+path.lineTo(-998, 78);
+path.lineTo(-997, 77);
+path.lineTo(-997, 77);
+path.lineTo(-996, 75);
+path.lineTo(-996, 72);
+path.lineTo(-995, 65);
+path.lineTo(-995, 63);
+path.lineTo(-994, 56);
+path.lineTo(-994, 53);
+path.lineTo(-993, 48);
+path.lineTo(-993, 46);
+path.lineTo(-992, 50);
+path.lineTo(-992, 55);
+path.lineTo(-991, 68);
+path.lineTo(-991, 72);
+path.lineTo(-990, 78);
+path.lineTo(-990, 80);
+path.lineTo(-989, 83);
+path.lineTo(-989, 84);
+path.lineTo(-988, 87);
+path.lineTo(-988, 84);
+path.lineTo(-987, 86);
+path.lineTo(-987, 84);
+path.lineTo(-986, 85);
+path.lineTo(-986, 85);
+path.lineTo(-985, 83);
+path.lineTo(-985, 83);
+path.lineTo(-984, 83);
+path.lineTo(-984, 83);
+path.lineTo(-983, 84);
+path.lineTo(-983, 82);
+path.lineTo(-982, 82);
+path.lineTo(-982, 82);
+path.lineTo(-981, 83);
+path.lineTo(-981, 83);
+path.lineTo(-980, 82);
+path.lineTo(-980, 84);
+path.lineTo(-979, 81);
+path.lineTo(-979, 84);
+path.lineTo(-978, 81);
+path.lineTo(-978, 81);
+path.lineTo(-977, 83);
+path.lineTo(-977, 82);
+path.lineTo(-976, 83);
+path.lineTo(-976, 82);
+path.lineTo(-975, 83);
+path.lineTo(-975, 81);
+path.lineTo(-974, 82);
+path.lineTo(-974, 82);
+path.lineTo(-973, 80);
+path.lineTo(-973, 78);
+path.lineTo(-972, 78);
+path.lineTo(-972, 71);
+path.lineTo(-971, 71);
+path.lineTo(-970, 75);
+path.lineTo(-970, 76);
+path.lineTo(-969, 82);
+path.lineTo(-969, 81);
+path.lineTo(-968, 83);
+path.lineTo(-968, 82);
+path.lineTo(-967, 92);
+path.lineTo(-967, 92);
+path.lineTo(-966, 0);
+path.lineTo(-966, 20);
+path.lineTo(-965, 85);
+path.lineTo(-965, 84);
+path.lineTo(-964, 75);
+path.lineTo(-964, 78);
+path.lineTo(-963, 77);
+path.lineTo(-963, 77);
+path.lineTo(-962, 75);
+path.lineTo(-962, 72);
+path.lineTo(-961, 65);
+path.lineTo(-961, 63);
+path.lineTo(-960, 56);
+path.lineTo(-960, 53);
+path.lineTo(-959, 48);
+path.lineTo(-959, 46);
+path.lineTo(-958, 50);
+path.lineTo(-958, 55);
+path.lineTo(-957, 68);
+path.lineTo(-957, 72);
+path.lineTo(-956, 78);
+path.lineTo(-955, 83);
+path.lineTo(-955, 84);
+path.lineTo(-954, 87);
+path.lineTo(-954, 84);
+path.lineTo(-953, 86);
+path.lineTo(-953, 84);
+path.lineTo(-952, 85);
+path.lineTo(-952, 85);
+path.lineTo(-951, 83);
+path.lineTo(-951, 83);
+path.lineTo(-950, 83);
+path.lineTo(-950, 83);
+path.lineTo(-949, 84);
+path.lineTo(-949, 82);
+path.lineTo(-948, 82);
+path.lineTo(-948, 83);
+path.lineTo(-947, 83);
+path.lineTo(-947, 82);
+path.lineTo(-946, 82);
+path.lineTo(-946, 84);
+path.lineTo(-945, 82);
+path.lineTo(-945, 84);
+path.lineTo(-944, 83);
+path.lineTo(-944, 81);
+path.lineTo(-943, 83);
+path.lineTo(-943, 82);
+path.lineTo(-942, 82);
+path.lineTo(-942, 83);
+path.lineTo(-941, 83);
+path.lineTo(-941, 81);
+path.lineTo(-940, 82);
+path.lineTo(-940, 81);
+path.lineTo(-939, 80);
+path.lineTo(-939, 78);
+path.lineTo(-938, 78);
+path.lineTo(-938, 71);
+path.lineTo(-937, 71);
+path.lineTo(-937, 75);
+path.lineTo(-936, 76);
+path.lineTo(-936, 82);
+path.lineTo(-935, 81);
+path.lineTo(-935, 83);
+path.lineTo(-934, 82);
+path.lineTo(-934, 92);
+path.lineTo(-933, 92);
+path.lineTo(-933, 0);
+path.lineTo(-932, 20);
+path.lineTo(-932, 85);
+path.lineTo(-931, 84);
+path.lineTo(-931, 75);
+path.lineTo(-930, 78);
+path.lineTo(-930, 77);
+path.lineTo(-929, 77);
+path.lineTo(-929, 76);
+path.lineTo(-928, 72);
+path.lineTo(-927, 65);
+path.lineTo(-927, 63);
+path.lineTo(-926, 56);
+path.lineTo(-926, 53);
+path.lineTo(-925, 50);
+path.lineTo(-925, 46);
+path.lineTo(-924, 47);
+path.lineTo(-924, 55);
+path.lineTo(-923, 63);
+path.lineTo(-923, 72);
+path.lineTo(-922, 77);
+path.lineTo(-922, 80);
+path.lineTo(-921, 82);
+path.lineTo(-921, 84);
+path.lineTo(-920, 85);
+path.lineTo(-920, 87);
+path.lineTo(-919, 86);
+path.lineTo(-919, 84);
+path.lineTo(-918, 85);
+path.lineTo(-918, 85);
+path.lineTo(-917, 84);
+path.lineTo(-917, 83);
+path.lineTo(-916, 83);
+path.lineTo(-916, 83);
+path.lineTo(-915, 84);
+path.lineTo(-915, 82);
+path.lineTo(-914, 82);
+path.lineTo(-914, 83);
+path.lineTo(-913, 83);
+path.lineTo(-913, 82);
+path.lineTo(-912, 82);
+path.lineTo(-912, 82);
+path.lineTo(-911, 84);
+path.lineTo(-911, 81);
+path.lineTo(-910, 83);
+path.lineTo(-910, 81);
+path.lineTo(-909, 83);
+path.lineTo(-909, 82);
+path.lineTo(-908, 82);
+path.lineTo(-908, 83);
+path.lineTo(-907, 83);
+path.lineTo(-907, 81);
+path.lineTo(-906, 82);
+path.lineTo(-906, 81);
+path.lineTo(-905, 80);
+path.lineTo(-905, 78);
+path.lineTo(-904, 78);
+path.lineTo(-904, 71);
+path.lineTo(-903, 71);
+path.lineTo(-903, 75);
+path.lineTo(-902, 76);
+path.lineTo(-902, 80);
+path.lineTo(-901, 82);
+path.lineTo(-901, 83);
+path.lineTo(-900, 82);
+path.lineTo(-900, 92);
+path.lineTo(-899, 92);
+path.lineTo(-899, 0);
+path.lineTo(-898, 20);
+path.lineTo(-898, 72);
+path.lineTo(-897, 85);
+path.lineTo(-897, 80);
+path.lineTo(-896, 75);
+path.lineTo(-896, 78);
+path.lineTo(-895, 77);
+path.lineTo(-895, 76);
+path.lineTo(-894, 72);
+path.lineTo(-894, 70);
+path.lineTo(-893, 63);
+path.lineTo(-893, 59);
+path.lineTo(-892, 53);
+path.lineTo(-892, 50);
+path.lineTo(-891, 46);
+path.lineTo(-891, 47);
+path.lineTo(-890, 55);
+path.lineTo(-890, 63);
+path.lineTo(-889, 72);
+path.lineTo(-889, 77);
+path.lineTo(-888, 80);
+path.lineTo(-888, 82);
+path.lineTo(-887, 84);
+path.lineTo(-887, 85);
+path.lineTo(-886, 87);
+path.lineTo(-886, 86);
+path.lineTo(-885, 84);
+path.lineTo(-885, 85);
+path.lineTo(-884, 85);
+path.lineTo(-883, 84);
+path.lineTo(-883, 83);
+path.lineTo(-882, 83);
+path.lineTo(-882, 83);
+path.lineTo(-881, 84);
+path.lineTo(-881, 82);
+path.lineTo(-880, 82);
+path.lineTo(-880, 83);
+path.lineTo(-879, 83);
+path.lineTo(-879, 82);
+path.lineTo(-878, 82);
+path.lineTo(-878, 84);
+path.lineTo(-877, 82);
+path.lineTo(-877, 84);
+path.lineTo(-876, 83);
+path.lineTo(-876, 81);
+path.lineTo(-875, 83);
+path.lineTo(-875, 82);
+path.lineTo(-874, 82);
+path.lineTo(-874, 83);
+path.lineTo(-873, 83);
+path.lineTo(-873, 82);
+path.lineTo(-872, 81);
+path.lineTo(-872, 81);
+path.lineTo(-871, 80);
+path.lineTo(-871, 78);
+path.lineTo(-870, 78);
+path.lineTo(-870, 76);
+path.lineTo(-869, 71);
+path.lineTo(-869, 73);
+path.lineTo(-868, 76);
+path.lineTo(-868, 80);
+path.lineTo(-867, 82);
+path.lineTo(-867, 83);
+path.lineTo(-866, 82);
+path.lineTo(-866, 84);
+path.lineTo(-865, 92);
+path.lineTo(-865, 51);
+path.lineTo(-864, 0);
+path.lineTo(-864, 72);
+path.lineTo(-863, 85);
+path.lineTo(-863, 80);
+path.lineTo(-862, 75);
+path.lineTo(-862, 78);
+path.lineTo(-861, 77);
+path.lineTo(-861, 76);
+path.lineTo(-860, 72);
+path.lineTo(-860, 70);
+path.lineTo(-859, 63);
+path.lineTo(-859, 59);
+path.lineTo(-858, 53);
+path.lineTo(-858, 50);
+path.lineTo(-857, 46);
+path.lineTo(-857, 47);
+path.lineTo(-856, 55);
+path.lineTo(-856, 63);
+path.lineTo(-855, 72);
+path.lineTo(-855, 77);
+path.lineTo(-854, 80);
+path.lineTo(-854, 82);
+path.lineTo(-853, 84);
+path.lineTo(-853, 85);
+path.lineTo(-852, 87);
+path.lineTo(-852, 86);
+path.lineTo(-851, 84);
+path.lineTo(-851, 85);
+path.lineTo(-850, 85);
+path.lineTo(-850, 84);
+path.lineTo(-849, 83);
+path.lineTo(-849, 83);
+path.lineTo(-848, 83);
+path.lineTo(-848, 84);
+path.lineTo(-847, 84);
+path.lineTo(-847, 82);
+path.lineTo(-846, 83);
+path.lineTo(-846, 82);
+path.lineTo(-845, 82);
+path.lineTo(-845, 83);
+path.lineTo(-844, 82);
+path.lineTo(-844, 84);
+path.lineTo(-843, 81);
+path.lineTo(-843, 84);
+path.lineTo(-842, 81);
+path.lineTo(-842, 83);
+path.lineTo(-841, 82);
+path.lineTo(-840, 82);
+path.lineTo(-840, 83);
+path.lineTo(-839, 82);
+path.lineTo(-839, 82);
+path.lineTo(-838, 81);
+path.lineTo(-838, 81);
+path.lineTo(-837, 82);
+path.lineTo(-837, 80);
+path.lineTo(-836, 78);
+path.lineTo(-836, 76);
+path.lineTo(-835, 71);
+path.lineTo(-834, 76);
+path.lineTo(-834, 80);
+path.lineTo(-833, 82);
+path.lineTo(-833, 83);
+path.lineTo(-832, 82);
+path.lineTo(-832, 84);
+path.lineTo(-831, 92);
+path.lineTo(-831, 51);
+path.lineTo(-830, 0);
+path.lineTo(-830, 72);
+path.lineTo(-829, 85);
+path.lineTo(-829, 80);
+path.lineTo(-828, 75);
+path.lineTo(-828, 78);
+path.lineTo(-827, 77);
+path.lineTo(-827, 76);
+path.lineTo(-826, 75);
+path.lineTo(-826, 70);
+path.lineTo(-825, 65);
+path.lineTo(-825, 59);
+path.lineTo(-824, 56);
+path.lineTo(-824, 50);
+path.lineTo(-823, 48);
+path.lineTo(-823, 46);
+path.lineTo(-822, 50);
+path.lineTo(-822, 63);
+path.lineTo(-821, 68);
+path.lineTo(-821, 77);
+path.lineTo(-820, 78);
+path.lineTo(-820, 82);
+path.lineTo(-819, 83);
+path.lineTo(-819, 85);
+path.lineTo(-818, 87);
+path.lineTo(-818, 84);
+path.lineTo(-817, 85);
+path.lineTo(-817, 84);
+path.lineTo(-816, 84);
+path.lineTo(-816, 84);
+path.lineTo(-815, 83);
+path.lineTo(-815, 83);
+path.lineTo(-814, 83);
+path.lineTo(-814, 84);
+path.lineTo(-813, 84);
+path.lineTo(-813, 82);
+path.lineTo(-812, 83);
+path.lineTo(-812, 82);
+path.lineTo(-811, 82);
+path.lineTo(-811, 83);
+path.lineTo(-810, 82);
+path.lineTo(-810, 84);
+path.lineTo(-809, 81);
+path.lineTo(-809, 84);
+path.lineTo(-808, 81);
+path.lineTo(-808, 83);
+path.lineTo(-807, 82);
+path.lineTo(-807, 82);
+path.lineTo(-806, 83);
+path.lineTo(-806, 82);
+path.lineTo(-805, 82);
+path.lineTo(-805, 81);
+path.lineTo(-804, 82);
+path.lineTo(-804, 82);
+path.lineTo(-803, 80);
+path.lineTo(-803, 78);
+path.lineTo(-802, 76);
+path.lineTo(-802, 71);
+path.lineTo(-801, 73);
+path.lineTo(-801, 75);
+path.lineTo(-800, 80);
+path.lineTo(-800, 82);
+path.lineTo(-799, 83);
+path.lineTo(-799, 83);
+path.lineTo(-798, 84);
+path.lineTo(-797, 92);
+path.lineTo(-797, 51);
+path.lineTo(-796, 0);
+path.lineTo(-796, 72);
+path.lineTo(-795, 85);
+path.lineTo(-795, 80);
+path.lineTo(-794, 75);
+path.lineTo(-794, 78);
+path.lineTo(-793, 77);
+path.lineTo(-793, 76);
+path.lineTo(-792, 75);
+path.lineTo(-792, 70);
+path.lineTo(-791, 65);
+path.lineTo(-791, 59);
+path.lineTo(-790, 56);
+path.lineTo(-790, 50);
+path.lineTo(-789, 48);
+path.lineTo(-789, 46);
+path.lineTo(-788, 50);
+path.lineTo(-788, 63);
+path.lineTo(-787, 68);
+path.lineTo(-787, 77);
+path.lineTo(-786, 78);
+path.lineTo(-786, 82);
+path.lineTo(-785, 83);
+path.lineTo(-785, 85);
+path.lineTo(-784, 87);
+path.lineTo(-784, 84);
+path.lineTo(-783, 85);
+path.lineTo(-783, 84);
+path.lineTo(-782, 84);
+path.lineTo(-782, 84);
+path.lineTo(-781, 83);
+path.lineTo(-781, 83);
+path.lineTo(-780, 83);
+path.lineTo(-780, 83);
+path.lineTo(-779, 84);
+path.lineTo(-779, 82);
+path.lineTo(-778, 83);
+path.lineTo(-778, 82);
+path.lineTo(-777, 82);
+path.lineTo(-777, 83);
+path.lineTo(-776, 82);
+path.lineTo(-776, 84);
+path.lineTo(-775, 81);
+path.lineTo(-775, 84);
+path.lineTo(-774, 81);
+path.lineTo(-774, 81);
+path.lineTo(-773, 83);
+path.lineTo(-773, 82);
+path.lineTo(-772, 83);
+path.lineTo(-772, 82);
+path.lineTo(-771, 83);
+path.lineTo(-771, 81);
+path.lineTo(-770, 82);
+path.lineTo(-770, 82);
+path.lineTo(-769, 80);
+path.lineTo(-769, 78);
+path.lineTo(-768, 76);
+path.lineTo(-768, 71);
+path.lineTo(-767, 73);
+path.lineTo(-767, 75);
+path.lineTo(-766, 80);
+path.lineTo(-766, 82);
+path.lineTo(-765, 83);
+path.lineTo(-765, 83);
+path.lineTo(-764, 84);
+path.lineTo(-764, 92);
+path.lineTo(-763, 92);
+path.lineTo(-763, 0);
+path.lineTo(-762, 72);
+path.lineTo(-762, 85);
+path.lineTo(-761, 80);
+path.lineTo(-761, 75);
+path.lineTo(-760, 78);
+path.lineTo(-760, 77);
+path.lineTo(-759, 76);
+path.lineTo(-759, 75);
+path.lineTo(-758, 70);
+path.lineTo(-758, 65);
+path.lineTo(-757, 63);
+path.lineTo(-757, 56);
+path.lineTo(-756, 53);
+path.lineTo(-756, 48);
+path.lineTo(-755, 46);
+path.lineTo(-754, 50);
+path.lineTo(-754, 55);
+path.lineTo(-753, 68);
+path.lineTo(-753, 72);
+path.lineTo(-752, 78);
+path.lineTo(-752, 80);
+path.lineTo(-751, 83);
+path.lineTo(-751, 84);
+path.lineTo(-750, 87);
+path.lineTo(-750, 84);
+path.lineTo(-749, 86);
+path.lineTo(-749, 84);
+path.lineTo(-748, 85);
+path.lineTo(-748, 85);
+path.lineTo(-747, 83);
+path.lineTo(-747, 83);
+path.lineTo(-746, 83);
+path.lineTo(-746, 83);
+path.lineTo(-745, 84);
+path.lineTo(-745, 82);
+path.lineTo(-744, 82);
+path.lineTo(-744, 83);
+path.lineTo(-743, 82);
+path.lineTo(-743, 83);
+path.lineTo(-742, 82);
+path.lineTo(-742, 84);
+path.lineTo(-741, 81);
+path.lineTo(-741, 84);
+path.lineTo(-740, 81);
+path.lineTo(-740, 81);
+path.lineTo(-739, 83);
+path.lineTo(-739, 82);
+path.lineTo(-738, 83);
+path.lineTo(-738, 82);
+path.lineTo(-737, 83);
+path.lineTo(-737, 81);
+path.lineTo(-736, 82);
+path.lineTo(-736, 82);
+path.lineTo(-735, 80);
+path.lineTo(-735, 78);
+path.lineTo(-734, 78);
+path.lineTo(-734, 71);
+path.lineTo(-733, 71);
+path.lineTo(-733, 75);
+path.lineTo(-732, 76);
+path.lineTo(-732, 82);
+path.lineTo(-731, 83);
+path.lineTo(-731, 83);
+path.lineTo(-730, 82);
+path.lineTo(-730, 92);
+path.lineTo(-729, 92);
+path.lineTo(-729, 0);
+path.lineTo(-728, 20);
+path.lineTo(-728, 85);
+path.lineTo(-727, 84);
+path.lineTo(-727, 75);
+path.lineTo(-726, 78);
+path.lineTo(-726, 78);
+path.lineTo(-725, 77);
+path.lineTo(-725, 75);
+path.lineTo(-724, 72);
+path.lineTo(-724, 65);
+path.lineTo(-723, 63);
+path.lineTo(-723, 56);
+path.lineTo(-722, 53);
+path.lineTo(-722, 48);
+path.lineTo(-721, 46);
+path.lineTo(-721, 50);
+path.lineTo(-720, 55);
+path.lineTo(-720, 68);
+path.lineTo(-719, 72);
+path.lineTo(-719, 78);
+path.lineTo(-718, 80);
+path.lineTo(-718, 83);
+path.lineTo(-717, 84);
+path.lineTo(-717, 87);
+path.lineTo(-716, 84);
+path.lineTo(-715, 86);
+path.lineTo(-714, 85);
+path.lineTo(-714, 84);
+path.lineTo(-713, 83);
+path.lineTo(-712, 83);
+path.lineTo(-712, 83);
+path.lineTo(-711, 84);
+path.lineTo(-711, 82);
+path.lineTo(-710, 82);
+path.lineTo(-710, 83);
+path.lineTo(-709, 83);
+path.lineTo(-709, 82);
+path.lineTo(-708, 82);
+path.lineTo(-708, 84);
+path.lineTo(-707, 82);
+path.lineTo(-707, 84);
+path.lineTo(-706, 83);
+path.lineTo(-706, 81);
+path.lineTo(-705, 83);
+path.lineTo(-705, 82);
+path.lineTo(-704, 82);
+path.lineTo(-704, 83);
+path.lineTo(-703, 83);
+path.lineTo(-703, 81);
+path.lineTo(-702, 82);
+path.lineTo(-702, 81);
+path.lineTo(-701, 80);
+path.lineTo(-701, 78);
+path.lineTo(-700, 78);
+path.lineTo(-700, 71);
+path.lineTo(-699, 71);
+path.lineTo(-699, 75);
+path.lineTo(-698, 76);
+path.lineTo(-698, 80);
+path.lineTo(-697, 82);
+path.lineTo(-697, 83);
+path.lineTo(-696, 82);
+path.lineTo(-696, 92);
+path.lineTo(-695, 92);
+path.lineTo(-695, 0);
+path.lineTo(-694, 20);
+path.lineTo(-694, 85);
+path.lineTo(-693, 84);
+path.lineTo(-693, 75);
+path.lineTo(-692, 78);
+path.lineTo(-692, 78);
+path.lineTo(-691, 77);
+path.lineTo(-691, 76);
+path.lineTo(-690, 72);
+path.lineTo(-690, 65);
+path.lineTo(-689, 63);
+path.lineTo(-689, 59);
+path.lineTo(-688, 53);
+path.lineTo(-688, 50);
+path.lineTo(-687, 46);
+path.lineTo(-687, 47);
+path.lineTo(-686, 55);
+path.lineTo(-686, 63);
+path.lineTo(-685, 72);
+path.lineTo(-685, 77);
+path.lineTo(-684, 80);
+path.lineTo(-684, 82);
+path.lineTo(-683, 84);
+path.lineTo(-683, 85);
+path.lineTo(-682, 87);
+path.lineTo(-682, 86);
+path.lineTo(-681, 84);
+path.lineTo(-681, 85);
+path.lineTo(-680, 85);
+path.lineTo(-680, 84);
+path.lineTo(-679, 83);
+path.lineTo(-679, 83);
+path.lineTo(-678, 83);
+path.lineTo(-678, 84);
+path.lineTo(-677, 82);
+path.lineTo(-677, 82);
+path.lineTo(-676, 83);
+path.lineTo(-676, 83);
+path.lineTo(-675, 82);
+path.lineTo(-675, 82);
+path.lineTo(-674, 84);
+path.lineTo(-674, 82);
+path.lineTo(-673, 84);
+path.lineTo(-673, 83);
+path.lineTo(-672, 81);
+path.lineTo(-672, 83);
+path.lineTo(-671, 82);
+path.lineTo(-671, 82);
+path.lineTo(-670, 83);
+path.lineTo(-669, 82);
+path.lineTo(-669, 81);
+path.lineTo(-668, 82);
+path.lineTo(-668, 81);
+path.lineTo(-667, 80);
+path.lineTo(-667, 80);
+path.lineTo(-666, 78);
+path.lineTo(-666, 76);
+path.lineTo(-665, 71);
+path.lineTo(-665, 73);
+path.lineTo(-664, 76);
+path.lineTo(-664, 80);
+path.lineTo(-663, 82);
+path.lineTo(-663, 83);
+path.lineTo(-662, 82);
+path.lineTo(-662, 84);
+path.lineTo(-661, 92);
+path.lineTo(-661, 51);
+path.lineTo(-660, 0);
+path.lineTo(-660, 72);
+path.lineTo(-659, 85);
+path.lineTo(-659, 80);
+path.lineTo(-658, 75);
+path.lineTo(-658, 78);
+path.lineTo(-657, 77);
+path.lineTo(-657, 76);
+path.lineTo(-656, 72);
+path.lineTo(-656, 70);
+path.lineTo(-655, 63);
+path.lineTo(-655, 59);
+path.lineTo(-654, 53);
+path.lineTo(-654, 50);
+path.lineTo(-653, 46);
+path.lineTo(-653, 47);
+path.lineTo(-652, 55);
+path.lineTo(-652, 63);
+path.lineTo(-651, 68);
+path.lineTo(-651, 77);
+path.lineTo(-650, 78);
+path.lineTo(-650, 82);
+path.lineTo(-649, 84);
+path.lineTo(-649, 85);
+path.lineTo(-648, 87);
+path.lineTo(-648, 86);
+path.lineTo(-647, 85);
+path.lineTo(-647, 84);
+path.lineTo(-646, 84);
+path.lineTo(-646, 84);
+path.lineTo(-645, 83);
+path.lineTo(-645, 83);
+path.lineTo(-644, 83);
+path.lineTo(-644, 84);
+path.lineTo(-643, 84);
+path.lineTo(-643, 82);
+path.lineTo(-642, 83);
+path.lineTo(-642, 82);
+path.lineTo(-641, 82);
+path.lineTo(-641, 83);
+path.lineTo(-640, 82);
+path.lineTo(-640, 84);
+path.lineTo(-639, 81);
+path.lineTo(-639, 84);
+path.lineTo(-638, 81);
+path.lineTo(-638, 83);
+path.lineTo(-637, 82);
+path.lineTo(-637, 82);
+path.lineTo(-636, 83);
+path.lineTo(-636, 82);
+path.lineTo(-635, 82);
+path.lineTo(-635, 81);
+path.lineTo(-634, 81);
+path.lineTo(-634, 80);
+path.lineTo(-633, 80);
+path.lineTo(-633, 78);
+path.lineTo(-632, 76);
+path.lineTo(-632, 71);
+path.lineTo(-631, 76);
+path.lineTo(-630, 80);
+path.lineTo(-630, 82);
+path.lineTo(-629, 83);
+path.lineTo(-629, 82);
+path.lineTo(-628, 84);
+path.lineTo(-628, 92);
+path.lineTo(-627, 51);
+path.lineTo(-626, 0);
+path.lineTo(-626, 72);
+path.lineTo(-625, 85);
+path.lineTo(-625, 80);
+path.lineTo(-624, 75);
+path.lineTo(-624, 78);
+path.lineTo(-623, 77);
+path.lineTo(-623, 76);
+path.lineTo(-622, 75);
+path.lineTo(-622, 70);
+path.lineTo(-621, 65);
+path.lineTo(-620, 56);
+path.lineTo(-620, 50);
+path.lineTo(-619, 48);
+path.lineTo(-619, 46);
+path.lineTo(-618, 50);
+path.lineTo(-618, 63);
+path.lineTo(-617, 68);
+path.lineTo(-617, 77);
+path.lineTo(-616, 78);
+path.lineTo(-616, 82);
+path.lineTo(-615, 83);
+path.lineTo(-615, 85);
+path.lineTo(-614, 87);
+path.lineTo(-614, 84);
+path.lineTo(-613, 85);
+path.lineTo(-613, 84);
+path.lineTo(-612, 85);
+path.lineTo(-612, 84);
+path.lineTo(-611, 83);
+path.lineTo(-611, 83);
+path.lineTo(-610, 83);
+path.lineTo(-610, 84);
+path.lineTo(-609, 84);
+path.lineTo(-609, 82);
+path.lineTo(-608, 83);
+path.lineTo(-608, 82);
+path.lineTo(-607, 82);
+path.lineTo(-607, 83);
+path.lineTo(-606, 82);
+path.lineTo(-606, 84);
+path.lineTo(-605, 81);
+path.lineTo(-605, 84);
+path.lineTo(-604, 81);
+path.lineTo(-604, 83);
+path.lineTo(-603, 82);
+path.lineTo(-603, 82);
+path.lineTo(-602, 83);
+path.lineTo(-602, 82);
+path.lineTo(-601, 83);
+path.lineTo(-601, 81);
+path.lineTo(-600, 81);
+path.lineTo(-600, 82);
+path.lineTo(-599, 80);
+path.lineTo(-599, 78);
+path.lineTo(-598, 76);
+path.lineTo(-598, 71);
+path.lineTo(-597, 73);
+path.lineTo(-597, 75);
+path.lineTo(-596, 80);
+path.lineTo(-596, 82);
+path.lineTo(-595, 83);
+path.lineTo(-595, 83);
+path.lineTo(-594, 84);
+path.lineTo(-594, 92);
+path.lineTo(-593, 51);
+path.lineTo(-593, 0);
+path.lineTo(-592, 72);
+path.lineTo(-592, 85);
+path.lineTo(-591, 80);
+path.lineTo(-591, 75);
+path.lineTo(-590, 78);
+path.lineTo(-590, 77);
+path.lineTo(-589, 76);
+path.lineTo(-589, 75);
+path.lineTo(-588, 70);
+path.lineTo(-588, 65);
+path.lineTo(-587, 59);
+path.lineTo(-587, 56);
+path.lineTo(-586, 50);
+path.lineTo(-586, 48);
+path.lineTo(-585, 46);
+path.lineTo(-584, 50);
+path.lineTo(-584, 63);
+path.lineTo(-583, 68);
+path.lineTo(-583, 77);
+path.lineTo(-582, 78);
+path.lineTo(-582, 82);
+path.lineTo(-581, 83);
+path.lineTo(-581, 85);
+path.lineTo(-580, 87);
+path.lineTo(-580, 84);
+path.lineTo(-579, 85);
+path.lineTo(-579, 84);
+path.lineTo(-578, 84);
+path.lineTo(-578, 85);
+path.lineTo(-577, 83);
+path.lineTo(-577, 83);
+path.lineTo(-576, 83);
+path.lineTo(-576, 84);
+path.lineTo(-575, 84);
+path.lineTo(-575, 82);
+path.lineTo(-574, 82);
+path.lineTo(-574, 82);
+path.lineTo(-573, 83);
+path.lineTo(-573, 83);
+path.lineTo(-572, 82);
+path.lineTo(-572, 84);
+path.lineTo(-571, 81);
+path.lineTo(-571, 84);
+path.lineTo(-570, 81);
+path.lineTo(-570, 81);
+path.lineTo(-569, 83);
+path.lineTo(-569, 82);
+path.lineTo(-568, 83);
+path.lineTo(-568, 82);
+path.lineTo(-567, 83);
+path.lineTo(-567, 81);
+path.lineTo(-566, 82);
+path.lineTo(-566, 82);
+path.lineTo(-565, 80);
+path.lineTo(-565, 78);
+path.lineTo(-564, 76);
+path.lineTo(-564, 71);
+path.lineTo(-563, 73);
+path.lineTo(-563, 75);
+path.lineTo(-562, 80);
+path.lineTo(-562, 82);
+path.lineTo(-561, 83);
+path.lineTo(-561, 83);
+path.lineTo(-560, 84);
+path.lineTo(-560, 92);
+path.lineTo(-559, 51);
+path.lineTo(-559, 0);
+path.lineTo(-558, 20);
+path.lineTo(-558, 85);
+path.lineTo(-557, 84);
+path.lineTo(-557, 75);
+path.lineTo(-556, 78);
+path.lineTo(-556, 77);
+path.lineTo(-555, 77);
+path.lineTo(-555, 75);
+path.lineTo(-554, 72);
+path.lineTo(-554, 65);
+path.lineTo(-553, 63);
+path.lineTo(-553, 56);
+path.lineTo(-552, 53);
+path.lineTo(-552, 48);
+path.lineTo(-551, 46);
+path.lineTo(-551, 50);
+path.lineTo(-550, 55);
+path.lineTo(-550, 68);
+path.lineTo(-549, 72);
+path.lineTo(-549, 78);
+path.lineTo(-548, 80);
+path.lineTo(-547, 83);
+path.lineTo(-547, 87);
+path.lineTo(-546, 84);
+path.lineTo(-546, 86);
+path.lineTo(-545, 84);
+path.lineTo(-545, 85);
+path.lineTo(-544, 85);
+path.lineTo(-544, 83);
+path.lineTo(-543, 83);
+path.lineTo(-543, 83);
+path.lineTo(-542, 83);
+path.lineTo(-541, 84);
+path.lineTo(-541, 82);
+path.lineTo(-540, 82);
+path.lineTo(-540, 82);
+path.lineTo(-539, 83);
+path.lineTo(-539, 83);
+path.lineTo(-538, 82);
+path.lineTo(-538, 84);
+path.lineTo(-537, 81);
+path.lineTo(-537, 84);
+path.lineTo(-536, 81);
+path.lineTo(-536, 81);
+path.lineTo(-535, 83);
+path.lineTo(-535, 82);
+path.lineTo(-534, 83);
+path.lineTo(-534, 82);
+path.lineTo(-533, 83);
+path.lineTo(-533, 81);
+path.lineTo(-532, 82);
+path.lineTo(-532, 82);
+path.lineTo(-531, 80);
+path.lineTo(-531, 78);
+path.lineTo(-530, 78);
+path.lineTo(-530, 71);
+path.lineTo(-529, 71);
+path.lineTo(-529, 75);
+path.lineTo(-528, 76);
+path.lineTo(-528, 82);
+path.lineTo(-527, 81);
+path.lineTo(-527, 83);
+path.lineTo(-526, 82);
+path.lineTo(-526, 92);
+path.lineTo(-525, 92);
+path.lineTo(-525, 0);
+path.lineTo(-524, 20);
+path.lineTo(-524, 85);
+path.lineTo(-523, 84);
+path.lineTo(-523, 75);
+path.lineTo(-522, 78);
+path.lineTo(-522, 77);
+path.lineTo(-521, 77);
+path.lineTo(-521, 75);
+path.lineTo(-520, 72);
+path.lineTo(-520, 65);
+path.lineTo(-519, 63);
+path.lineTo(-519, 56);
+path.lineTo(-518, 53);
+path.lineTo(-518, 48);
+path.lineTo(-517, 46);
+path.lineTo(-517, 50);
+path.lineTo(-516, 55);
+path.lineTo(-516, 68);
+path.lineTo(-515, 72);
+path.lineTo(-515, 78);
+path.lineTo(-514, 80);
+path.lineTo(-514, 83);
+path.lineTo(-513, 84);
+path.lineTo(-513, 87);
+path.lineTo(-512, 84);
+path.lineTo(-512, 86);
+path.lineTo(-511, 84);
+path.lineTo(-511, 85);
+path.lineTo(-510, 85);
+path.lineTo(-510, 84);
+path.lineTo(-509, 83);
+path.lineTo(-509, 83);
+path.lineTo(-508, 83);
+path.lineTo(-508, 84);
+path.lineTo(-507, 82);
+path.lineTo(-507, 82);
+path.lineTo(-506, 83);
+path.lineTo(-506, 83);
+path.lineTo(-505, 82);
+path.lineTo(-505, 82);
+path.lineTo(-504, 84);
+path.lineTo(-504, 82);
+path.lineTo(-503, 84);
+path.lineTo(-503, 83);
+path.lineTo(-502, 81);
+path.lineTo(-502, 83);
+path.lineTo(-501, 82);
+path.lineTo(-501, 82);
+path.lineTo(-500, 83);
+path.lineTo(-500, 83);
+path.lineTo(-499, 81);
+path.lineTo(-498, 82);
+path.lineTo(-498, 81);
+path.lineTo(-497, 80);
+path.lineTo(-497, 78);
+path.lineTo(-496, 78);
+path.lineTo(-496, 71);
+path.lineTo(-495, 71);
+path.lineTo(-495, 75);
+path.lineTo(-494, 76);
+path.lineTo(-494, 82);
+path.lineTo(-493, 81);
+path.lineTo(-493, 83);
+path.lineTo(-492, 82);
+path.lineTo(-492, 92);
+path.lineTo(-491, 92);
+path.lineTo(-491, 0);
+path.lineTo(-490, 20);
+path.lineTo(-490, 85);
+path.lineTo(-489, 84);
+path.lineTo(-489, 75);
+path.lineTo(-488, 78);
+path.lineTo(-488, 77);
+path.lineTo(-487, 77);
+path.lineTo(-487, 75);
+path.lineTo(-486, 72);
+path.lineTo(-486, 70);
+path.lineTo(-485, 63);
+path.lineTo(-485, 59);
+path.lineTo(-484, 53);
+path.lineTo(-484, 50);
+path.lineTo(-483, 46);
+path.lineTo(-483, 47);
+path.lineTo(-482, 55);
+path.lineTo(-482, 63);
+path.lineTo(-481, 72);
+path.lineTo(-481, 77);
+path.lineTo(-480, 80);
+path.lineTo(-480, 82);
+path.lineTo(-479, 84);
+path.lineTo(-479, 85);
+path.lineTo(-478, 87);
+path.lineTo(-478, 86);
+path.lineTo(-477, 84);
+path.lineTo(-477, 85);
+path.lineTo(-476, 85);
+path.lineTo(-476, 84);
+path.lineTo(-475, 83);
+path.lineTo(-475, 83);
+path.lineTo(-474, 83);
+path.lineTo(-474, 84);
+path.lineTo(-473, 82);
+path.lineTo(-473, 82);
+path.lineTo(-472, 83);
+path.lineTo(-472, 83);
+path.lineTo(-471, 82);
+path.lineTo(-471, 82);
+path.lineTo(-470, 84);
+path.lineTo(-470, 82);
+path.lineTo(-469, 81);
+path.lineTo(-469, 84);
+path.lineTo(-468, 81);
+path.lineTo(-468, 83);
+path.lineTo(-467, 82);
+path.lineTo(-467, 82);
+path.lineTo(-466, 83);
+path.lineTo(-466, 82);
+path.lineTo(-465, 82);
+path.lineTo(-465, 81);
+path.lineTo(-464, 82);
+path.lineTo(-464, 80);
+path.lineTo(-463, 80);
+path.lineTo(-463, 78);
+path.lineTo(-462, 76);
+path.lineTo(-462, 71);
+path.lineTo(-461, 73);
+path.lineTo(-461, 76);
+path.lineTo(-460, 80);
+path.lineTo(-460, 82);
+path.lineTo(-459, 83);
+path.lineTo(-459, 82);
+path.lineTo(-458, 84);
+path.lineTo(-458, 92);
+path.lineTo(-457, 51);
+path.lineTo(-456, 0);
+path.lineTo(-456, 72);
+path.lineTo(-455, 85);
+path.lineTo(-455, 80);
+path.lineTo(-454, 75);
+path.lineTo(-454, 78);
+path.lineTo(-453, 77);
+path.lineTo(-453, 76);
+path.lineTo(-452, 72);
+path.lineTo(-452, 70);
+path.lineTo(-451, 65);
+path.lineTo(-451, 59);
+path.lineTo(-450, 53);
+path.lineTo(-450, 50);
+path.lineTo(-449, 48);
+path.lineTo(-449, 46);
+path.lineTo(-448, 50);
+path.lineTo(-448, 63);
+path.lineTo(-447, 68);
+path.lineTo(-447, 77);
+path.lineTo(-446, 78);
+path.lineTo(-446, 82);
+path.lineTo(-445, 83);
+path.lineTo(-445, 85);
+path.lineTo(-444, 87);
+path.lineTo(-444, 84);
+path.lineTo(-443, 85);
+path.lineTo(-443, 84);
+path.lineTo(-442, 84);
+path.lineTo(-442, 84);
+path.lineTo(-441, 83);
+path.lineTo(-441, 83);
+path.lineTo(-440, 83);
+path.lineTo(-440, 84);
+path.lineTo(-439, 84);
+path.lineTo(-439, 82);
+path.lineTo(-438, 83);
+path.lineTo(-438, 82);
+path.lineTo(-437, 82);
+path.lineTo(-437, 83);
+path.lineTo(-436, 82);
+path.lineTo(-436, 84);
+path.lineTo(-435, 81);
+path.lineTo(-435, 84);
+path.lineTo(-434, 81);
+path.lineTo(-434, 83);
+path.lineTo(-433, 82);
+path.lineTo(-433, 82);
+path.lineTo(-432, 83);
+path.lineTo(-432, 82);
+path.lineTo(-431, 82);
+path.lineTo(-431, 81);
+path.lineTo(-430, 81);
+path.lineTo(-430, 80);
+path.lineTo(-429, 80);
+path.lineTo(-429, 78);
+path.lineTo(-428, 76);
+path.lineTo(-428, 71);
+path.lineTo(-427, 73);
+path.lineTo(-427, 76);
+path.lineTo(-426, 80);
+path.lineTo(-426, 82);
+path.lineTo(-425, 83);
+path.lineTo(-425, 83);
+path.lineTo(-424, 84);
+path.lineTo(-424, 92);
+path.lineTo(-423, 51);
+path.lineTo(-423, 0);
+path.lineTo(-422, 72);
+path.lineTo(-422, 85);
+path.lineTo(-421, 80);
+path.lineTo(-421, 75);
+path.lineTo(-420, 78);
+path.lineTo(-420, 77);
+path.lineTo(-419, 76);
+path.lineTo(-419, 75);
+path.lineTo(-418, 70);
+path.lineTo(-418, 65);
+path.lineTo(-417, 59);
+path.lineTo(-417, 56);
+path.lineTo(-416, 50);
+path.lineTo(-416, 48);
+path.lineTo(-415, 46);
+path.lineTo(-415, 50);
+path.lineTo(-414, 63);
+path.lineTo(-413, 68);
+path.lineTo(-413, 77);
+path.lineTo(-412, 78);
+path.lineTo(-412, 82);
+path.lineTo(-411, 83);
+path.lineTo(-411, 85);
+path.lineTo(-410, 87);
+path.lineTo(-410, 84);
+path.lineTo(-409, 85);
+path.lineTo(-409, 84);
+path.lineTo(-408, 84);
+path.lineTo(-408, 84);
+path.lineTo(-407, 83);
+path.lineTo(-407, 83);
+path.lineTo(-406, 83);
+path.lineTo(-406, 84);
+path.lineTo(-405, 84);
+path.lineTo(-405, 82);
+path.lineTo(-404, 83);
+path.lineTo(-404, 82);
+path.lineTo(-403, 82);
+path.lineTo(-403, 83);
+path.lineTo(-402, 82);
+path.lineTo(-402, 84);
+path.lineTo(-401, 81);
+path.lineTo(-401, 84);
+path.lineTo(-400, 81);
+path.lineTo(-400, 81);
+path.lineTo(-399, 83);
+path.lineTo(-399, 82);
+path.lineTo(-398, 83);
+path.lineTo(-398, 82);
+path.lineTo(-397, 83);
+path.lineTo(-397, 81);
+path.lineTo(-396, 82);
+path.lineTo(-396, 82);
+path.lineTo(-395, 80);
+path.lineTo(-395, 78);
+path.lineTo(-394, 76);
+path.lineTo(-394, 71);
+path.lineTo(-393, 73);
+path.lineTo(-393, 75);
+path.lineTo(-392, 80);
+path.lineTo(-392, 82);
+path.lineTo(-391, 83);
+path.lineTo(-391, 83);
+path.lineTo(-390, 84);
+path.lineTo(-390, 92);
+path.lineTo(-389, 51);
+path.lineTo(-389, 0);
+path.lineTo(-388, 72);
+path.lineTo(-388, 85);
+path.lineTo(-387, 80);
+path.lineTo(-387, 75);
+path.lineTo(-386, 78);
+path.lineTo(-386, 77);
+path.lineTo(-385, 76);
+path.lineTo(-385, 75);
+path.lineTo(-384, 70);
+path.lineTo(-384, 65);
+path.lineTo(-383, 59);
+path.lineTo(-383, 56);
+path.lineTo(-382, 50);
+path.lineTo(-382, 48);
+path.lineTo(-381, 46);
+path.lineTo(-381, 50);
+path.lineTo(-380, 63);
+path.lineTo(-380, 68);
+path.lineTo(-379, 77);
+path.lineTo(-379, 78);
+path.lineTo(-378, 82);
+path.lineTo(-378, 83);
+path.lineTo(-377, 84);
+path.lineTo(-377, 87);
+path.lineTo(-376, 84);
+path.lineTo(-376, 86);
+path.lineTo(-375, 84);
+path.lineTo(-375, 85);
+path.lineTo(-374, 85);
+path.lineTo(-374, 83);
+path.lineTo(-373, 83);
+path.lineTo(-373, 83);
+path.lineTo(-372, 83);
+path.lineTo(-372, 84);
+path.lineTo(-371, 82);
+path.lineTo(-370, 82);
+path.lineTo(-370, 82);
+path.lineTo(-369, 83);
+path.lineTo(-369, 83);
+path.lineTo(-368, 82);
+path.lineTo(-368, 84);
+path.lineTo(-367, 81);
+path.lineTo(-367, 84);
+path.lineTo(-366, 81);
+path.lineTo(-366, 81);
+path.lineTo(-365, 83);
+path.lineTo(-365, 82);
+path.lineTo(-364, 83);
+path.lineTo(-364, 82);
+path.lineTo(-363, 83);
+path.lineTo(-363, 81);
+path.lineTo(-362, 82);
+path.lineTo(-362, 82);
+path.lineTo(-361, 80);
+path.lineTo(-361, 78);
+path.lineTo(-360, 76);
+path.lineTo(-360, 71);
+path.lineTo(-359, 73);
+path.lineTo(-359, 75);
+path.lineTo(-358, 80);
+path.lineTo(-358, 82);
+path.lineTo(-357, 81);
+path.lineTo(-357, 83);
+path.lineTo(-356, 82);
+path.lineTo(-356, 92);
+path.lineTo(-355, 92);
+path.lineTo(-355, 0);
+path.lineTo(-354, 20);
+path.lineTo(-354, 85);
+path.lineTo(-353, 84);
+path.lineTo(-353, 75);
+path.lineTo(-352, 78);
+path.lineTo(-352, 77);
+path.lineTo(-351, 77);
+path.lineTo(-351, 75);
+path.lineTo(-350, 72);
+path.lineTo(-350, 65);
+path.lineTo(-349, 63);
+path.lineTo(-349, 56);
+path.lineTo(-348, 53);
+path.lineTo(-348, 48);
+path.lineTo(-347, 46);
+path.lineTo(-347, 50);
+path.lineTo(-346, 55);
+path.lineTo(-346, 68);
+path.lineTo(-345, 72);
+path.lineTo(-345, 78);
+path.lineTo(-344, 80);
+path.lineTo(-344, 83);
+path.lineTo(-343, 84);
+path.lineTo(-343, 87);
+path.lineTo(-342, 84);
+path.lineTo(-342, 86);
+path.lineTo(-341, 84);
+path.lineTo(-341, 85);
+path.lineTo(-340, 85);
+path.lineTo(-340, 84);
+path.lineTo(-339, 83);
+path.lineTo(-339, 83);
+path.lineTo(-338, 83);
+path.lineTo(-338, 84);
+path.lineTo(-337, 82);
+path.lineTo(-337, 82);
+path.lineTo(-336, 83);
+path.lineTo(-336, 83);
+path.lineTo(-335, 82);
+path.lineTo(-335, 82);
+path.lineTo(-334, 84);
+path.lineTo(-334, 82);
+path.lineTo(-333, 84);
+path.lineTo(-333, 83);
+path.lineTo(-332, 81);
+path.lineTo(-332, 83);
+path.lineTo(-331, 82);
+path.lineTo(-331, 82);
+path.lineTo(-330, 83);
+path.lineTo(-330, 83);
+path.lineTo(-329, 81);
+path.lineTo(-328, 82);
+path.lineTo(-328, 81);
+path.lineTo(-327, 80);
+path.lineTo(-327, 78);
+path.lineTo(-326, 78);
+path.lineTo(-326, 71);
+path.lineTo(-325, 71);
+path.lineTo(-325, 75);
+path.lineTo(-324, 76);
+path.lineTo(-324, 82);
+path.lineTo(-323, 81);
+path.lineTo(-323, 83);
+path.lineTo(-322, 82);
+path.lineTo(-322, 92);
+path.lineTo(-321, 92);
+path.lineTo(-321, 0);
+path.lineTo(-320, 20);
+path.lineTo(-320, 85);
+path.lineTo(-319, 84);
+path.lineTo(-319, 75);
+path.lineTo(-318, 78);
+path.lineTo(-318, 77);
+path.lineTo(-317, 77);
+path.lineTo(-317, 75);
+path.lineTo(-316, 72);
+path.lineTo(-316, 65);
+path.lineTo(-315, 63);
+path.lineTo(-315, 59);
+path.lineTo(-314, 53);
+path.lineTo(-314, 48);
+path.lineTo(-313, 46);
+path.lineTo(-313, 47);
+path.lineTo(-312, 55);
+path.lineTo(-312, 63);
+path.lineTo(-311, 72);
+path.lineTo(-311, 77);
+path.lineTo(-310, 80);
+path.lineTo(-310, 82);
+path.lineTo(-309, 84);
+path.lineTo(-309, 85);
+path.lineTo(-308, 87);
+path.lineTo(-308, 86);
+path.lineTo(-307, 84);
+path.lineTo(-307, 85);
+path.lineTo(-306, 85);
+path.lineTo(-306, 84);
+path.lineTo(-305, 83);
+path.lineTo(-305, 83);
+path.lineTo(-304, 83);
+path.lineTo(-304, 84);
+path.lineTo(-303, 82);
+path.lineTo(-303, 82);
+path.lineTo(-302, 83);
+path.lineTo(-302, 83);
+path.lineTo(-301, 82);
+path.lineTo(-301, 82);
+path.lineTo(-300, 84);
+path.lineTo(-300, 82);
+path.lineTo(-299, 84);
+path.lineTo(-299, 83);
+path.lineTo(-298, 81);
+path.lineTo(-298, 83);
+path.lineTo(-297, 82);
+path.lineTo(-297, 82);
+path.lineTo(-296, 83);
+path.lineTo(-296, 83);
+path.lineTo(-295, 81);
+path.lineTo(-295, 82);
+path.lineTo(-294, 81);
+path.lineTo(-294, 80);
+path.lineTo(-293, 78);
+path.lineTo(-293, 78);
+path.lineTo(-292, 71);
+path.lineTo(-292, 71);
+path.lineTo(-291, 73);
+path.lineTo(-291, 76);
+path.lineTo(-290, 80);
+path.lineTo(-290, 82);
+path.lineTo(-289, 83);
+path.lineTo(-289, 82);
+path.lineTo(-288, 84);
+path.lineTo(-288, 92);
+path.lineTo(-287, 51);
+path.lineTo(-287, 0);
+path.lineTo(-286, 72);
+path.lineTo(-285, 85);
+path.lineTo(-285, 80);
+path.lineTo(-284, 75);
+path.lineTo(-284, 78);
+path.lineTo(-283, 77);
+path.lineTo(-283, 76);
+path.lineTo(-282, 72);
+path.lineTo(-282, 70);
+path.lineTo(-281, 63);
+path.lineTo(-281, 59);
+path.lineTo(-280, 53);
+path.lineTo(-280, 50);
+path.lineTo(-279, 46);
+path.lineTo(-278, 47);
+path.lineTo(-278, 63);
+path.lineTo(-277, 72);
+path.lineTo(-277, 77);
+path.lineTo(-276, 80);
+path.lineTo(-276, 82);
+path.lineTo(-275, 84);
+path.lineTo(-275, 85);
+path.lineTo(-274, 87);
+path.lineTo(-274, 86);
+path.lineTo(-273, 84);
+path.lineTo(-273, 85);
+path.lineTo(-272, 85);
+path.lineTo(-272, 84);
+path.lineTo(-271, 83);
+path.lineTo(-271, 83);
+path.lineTo(-270, 83);
+path.lineTo(-270, 84);
+path.lineTo(-269, 82);
+path.lineTo(-269, 82);
+path.lineTo(-268, 83);
+path.lineTo(-268, 83);
+path.lineTo(-267, 82);
+path.lineTo(-267, 82);
+path.lineTo(-266, 82);
+path.lineTo(-266, 84);
+path.lineTo(-265, 81);
+path.lineTo(-265, 84);
+path.lineTo(-264, 81);
+path.lineTo(-264, 83);
+path.lineTo(-263, 82);
+path.lineTo(-263, 82);
+path.lineTo(-262, 83);
+path.lineTo(-262, 82);
+path.lineTo(-261, 82);
+path.lineTo(-261, 81);
+path.lineTo(-260, 81);
+path.lineTo(-260, 80);
+path.lineTo(-259, 80);
+path.lineTo(-259, 78);
+path.lineTo(-258, 76);
+path.lineTo(-258, 71);
+path.lineTo(-257, 73);
+path.lineTo(-257, 76);
+path.lineTo(-256, 80);
+path.lineTo(-256, 82);
+path.lineTo(-255, 83);
+path.lineTo(-255, 82);
+path.lineTo(-254, 84);
+path.lineTo(-254, 92);
+path.lineTo(-253, 51);
+path.lineTo(-253, 0);
+path.lineTo(-252, 72);
+path.lineTo(-252, 85);
+path.lineTo(-251, 80);
+path.lineTo(-251, 75);
+path.lineTo(-250, 78);
+path.lineTo(-250, 77);
+path.lineTo(-249, 76);
+path.lineTo(-249, 72);
+path.lineTo(-248, 70);
+path.lineTo(-248, 63);
+path.lineTo(-247, 59);
+path.lineTo(-247, 56);
+path.lineTo(-246, 50);
+path.lineTo(-246, 48);
+path.lineTo(-245, 46);
+path.lineTo(-245, 50);
+path.lineTo(-244, 63);
+path.lineTo(-244, 68);
+path.lineTo(-243, 77);
+path.lineTo(-242, 78);
+path.lineTo(-242, 82);
+path.lineTo(-241, 83);
+path.lineTo(-241, 85);
+path.lineTo(-240, 87);
+path.lineTo(-240, 84);
+path.lineTo(-239, 85);
+path.lineTo(-239, 84);
+path.lineTo(-238, 84);
+path.lineTo(-238, 84);
+path.lineTo(-237, 83);
+path.lineTo(-237, 83);
+path.lineTo(-236, 83);
+path.lineTo(-236, 84);
+path.lineTo(-235, 84);
+path.lineTo(-235, 82);
+path.lineTo(-234, 83);
+path.lineTo(-234, 82);
+path.lineTo(-233, 82);
+path.lineTo(-233, 83);
+path.lineTo(-232, 82);
+path.lineTo(-232, 84);
+path.lineTo(-231, 81);
+path.lineTo(-231, 84);
+path.lineTo(-230, 81);
+path.lineTo(-230, 83);
+path.lineTo(-229, 82);
+path.lineTo(-229, 82);
+path.lineTo(-228, 83);
+path.lineTo(-228, 82);
+path.lineTo(-227, 82);
+path.lineTo(-227, 81);
+path.lineTo(-226, 82);
+path.lineTo(-226, 82);
+path.lineTo(-225, 80);
+path.lineTo(-225, 78);
+path.lineTo(-224, 76);
+path.lineTo(-224, 71);
+path.lineTo(-223, 73);
+path.lineTo(-223, 75);
+path.lineTo(-222, 80);
+path.lineTo(-222, 82);
+path.lineTo(-221, 83);
+path.lineTo(-221, 83);
+path.lineTo(-220, 84);
+path.lineTo(-220, 92);
+path.lineTo(-219, 51);
+path.lineTo(-219, 0);
+path.lineTo(-218, 72);
+path.lineTo(-218, 85);
+path.lineTo(-217, 80);
+path.lineTo(-217, 75);
+path.lineTo(-216, 78);
+path.lineTo(-216, 77);
+path.lineTo(-215, 76);
+path.lineTo(-215, 75);
+path.lineTo(-214, 70);
+path.lineTo(-214, 65);
+path.lineTo(-213, 59);
+path.lineTo(-213, 56);
+path.lineTo(-212, 50);
+path.lineTo(-212, 48);
+path.lineTo(-211, 50);
+path.lineTo(-210, 63);
+path.lineTo(-210, 68);
+path.lineTo(-209, 77);
+path.lineTo(-209, 78);
+path.lineTo(-208, 82);
+path.lineTo(-208, 83);
+path.lineTo(-207, 85);
+path.lineTo(-207, 87);
+path.lineTo(-206, 84);
+path.lineTo(-206, 85);
+path.lineTo(-205, 84);
+path.lineTo(-205, 85);
+path.lineTo(-204, 84);
+path.lineTo(-204, 83);
+path.lineTo(-203, 83);
+path.lineTo(-203, 83);
+path.lineTo(-202, 83);
+path.lineTo(-201, 82);
+path.lineTo(-200, 82);
+path.lineTo(-200, 82);
+path.lineTo(-199, 83);
+path.lineTo(-199, 83);
+path.lineTo(-198, 82);
+path.lineTo(-198, 84);
+path.lineTo(-197, 81);
+path.lineTo(-197, 84);
+path.lineTo(-196, 81);
+path.lineTo(-196, 81);
+path.lineTo(-195, 83);
+path.lineTo(-195, 82);
+path.lineTo(-194, 83);
+path.lineTo(-194, 82);
+path.lineTo(-193, 83);
+path.lineTo(-193, 81);
+path.lineTo(-192, 82);
+path.lineTo(-192, 82);
+path.lineTo(-191, 80);
+path.lineTo(-191, 78);
+path.lineTo(-190, 76);
+path.lineTo(-190, 71);
+path.lineTo(-189, 73);
+path.lineTo(-189, 75);
+path.lineTo(-188, 80);
+path.lineTo(-188, 82);
+path.lineTo(-187, 83);
+path.lineTo(-187, 83);
+path.lineTo(-186, 84);
+path.lineTo(-186, 92);
+path.lineTo(-185, 51);
+path.lineTo(-185, 0);
+path.lineTo(-184, 72);
+path.lineTo(-184, 85);
+path.lineTo(-183, 80);
+path.lineTo(-183, 75);
+path.lineTo(-182, 78);
+path.lineTo(-182, 77);
+path.lineTo(-181, 77);
+path.lineTo(-181, 75);
+path.lineTo(-180, 70);
+path.lineTo(-180, 65);
+path.lineTo(-179, 63);
+path.lineTo(-179, 56);
+path.lineTo(-178, 53);
+path.lineTo(-178, 48);
+path.lineTo(-177, 46);
+path.lineTo(-177, 50);
+path.lineTo(-176, 55);
+path.lineTo(-176, 68);
+path.lineTo(-175, 72);
+path.lineTo(-175, 78);
+path.lineTo(-174, 80);
+path.lineTo(-174, 83);
+path.lineTo(-173, 84);
+path.lineTo(-173, 87);
+path.lineTo(-172, 84);
+path.lineTo(-172, 86);
+path.lineTo(-171, 84);
+path.lineTo(-171, 85);
+path.lineTo(-170, 85);
+path.lineTo(-170, 83);
+path.lineTo(-169, 83);
+path.lineTo(-169, 83);
+path.lineTo(-168, 83);
+path.lineTo(-168, 84);
+path.lineTo(-167, 82);
+path.lineTo(-167, 82);
+path.lineTo(-166, 82);
+path.lineTo(-166, 83);
+path.lineTo(-165, 83);
+path.lineTo(-165, 82);
+path.lineTo(-164, 84);
+path.lineTo(-164, 81);
+path.lineTo(-163, 84);
+path.lineTo(-163, 81);
+path.lineTo(-162, 81);
+path.lineTo(-162, 83);
+path.lineTo(-161, 82);
+path.lineTo(-161, 83);
+path.lineTo(-160, 82);
+path.lineTo(-160, 83);
+path.lineTo(-159, 81);
+path.lineTo(-159, 82);
+path.lineTo(-158, 82);
+path.lineTo(-157, 80);
+path.lineTo(-157, 78);
+path.lineTo(-156, 78);
+path.lineTo(-156, 71);
+path.lineTo(-155, 71);
+path.lineTo(-155, 75);
+path.lineTo(-154, 76);
+path.lineTo(-154, 82);
+path.lineTo(-153, 81);
+path.lineTo(-153, 83);
+path.lineTo(-152, 82);
+path.lineTo(-152, 92);
+path.lineTo(-151, 92);
+path.lineTo(-151, 0);
+path.lineTo(-150, 20);
+path.lineTo(-150, 85);
+path.lineTo(-149, 84);
+path.lineTo(-149, 75);
+path.lineTo(-148, 78);
+path.lineTo(-148, 77);
+path.lineTo(-147, 77);
+path.lineTo(-147, 75);
+path.lineTo(-146, 72);
+path.lineTo(-146, 65);
+path.lineTo(-145, 63);
+path.lineTo(-145, 56);
+path.lineTo(-144, 53);
+path.lineTo(-144, 48);
+path.lineTo(-143, 46);
+path.lineTo(-143, 50);
+path.lineTo(-142, 55);
+path.lineTo(-142, 68);
+path.lineTo(-141, 72);
+path.lineTo(-141, 77);
+path.lineTo(-140, 80);
+path.lineTo(-140, 82);
+path.lineTo(-139, 84);
+path.lineTo(-139, 85);
+path.lineTo(-138, 87);
+path.lineTo(-138, 86);
+path.lineTo(-137, 84);
+path.lineTo(-137, 85);
+path.lineTo(-136, 85);
+path.lineTo(-136, 84);
+path.lineTo(-135, 83);
+path.lineTo(-135, 83);
+path.lineTo(-134, 83);
+path.lineTo(-134, 84);
+path.lineTo(-133, 82);
+path.lineTo(-133, 82);
+path.lineTo(-132, 83);
+path.lineTo(-132, 83);
+path.lineTo(-131, 82);
+path.lineTo(-131, 82);
+path.lineTo(-130, 84);
+path.lineTo(-130, 82);
+path.lineTo(-129, 84);
+path.lineTo(-129, 83);
+path.lineTo(-128, 81);
+path.lineTo(-128, 83);
+path.lineTo(-127, 82);
+path.lineTo(-127, 82);
+path.lineTo(-126, 83);
+path.lineTo(-126, 83);
+path.lineTo(-125, 82);
+path.lineTo(-125, 81);
+path.lineTo(-124, 81);
+path.lineTo(-124, 80);
+path.lineTo(-123, 80);
+path.lineTo(-123, 78);
+path.lineTo(-122, 76);
+path.lineTo(-122, 71);
+path.lineTo(-121, 73);
+path.lineTo(-121, 76);
+path.lineTo(-120, 80);
+path.lineTo(-120, 82);
+path.lineTo(-119, 83);
+path.lineTo(-119, 82);
+path.lineTo(-118, 84);
+path.lineTo(-118, 92);
+path.cubicTo(-115.9f, 92, -113.1f, 0, -111, 0);
+path.lineTo(-110, 65);
+path.lineTo(-110, 50);
+path.lineTo(-109, 46);
+path.lineTo(-109, 47);
+path.lineTo(-108, 55);
+path.lineTo(-108, 63);
+path.lineTo(-107, 72);
+path.lineTo(-107, 77);
+path.lineTo(-106, 78);
+path.lineTo(-106, 82);
+path.lineTo(-105, 84);
+path.lineTo(-105, 85);
+path.lineTo(-104, 87);
+path.lineTo(-104, 86);
+path.lineTo(-103, 85);
+path.lineTo(-103, 84);
+path.lineTo(-102, 85);
+path.lineTo(-102, 84);
+path.lineTo(-101, 83);
+path.lineTo(-101, 83);
+path.lineTo(-100, 83);
+path.lineTo(-100, 84);
+path.lineTo(-99, 84);
+path.lineTo(-99, 82);
+path.lineTo(-98, 83);
+path.lineTo(-98, 82);
+path.lineTo(-97, 82);
+path.lineTo(-97, 83);
+path.lineTo(-96, 82);
+path.lineTo(-96, 84);
+path.lineTo(-95, 81);
+path.lineTo(-95, 84);
+path.lineTo(-94, 81);
+path.lineTo(-94, 83);
+path.lineTo(-93, 82);
+path.lineTo(-92, 83);
+path.lineTo(-92, 82);
+path.lineTo(-91, 82);
+path.lineTo(-91, 81);
+path.lineTo(-90, 81);
+path.lineTo(-90, 80);
+path.lineTo(-89, 80);
+path.lineTo(-89, 78);
+path.lineTo(-88, 76);
+path.lineTo(-88, 71);
+path.lineTo(-87, 73);
+path.lineTo(-87, 76);
+path.lineTo(-86, 80);
+path.lineTo(-86, 82);
+path.lineTo(-85, 83);
+path.lineTo(-85, 82);
+path.lineTo(-84, 84);
+path.lineTo(-84, 92);
+path.lineTo(-83, 51);
+path.lineTo(-83, 0);
+path.lineTo(-82, 72);
+path.lineTo(-82, 85);
+path.lineTo(-81, 80);
+path.lineTo(-81, 75);
+path.lineTo(-80, 78);
+path.lineTo(-80, 77);
+path.lineTo(-79, 76);
+path.lineTo(-79, 75);
+path.lineTo(-78, 70);
+path.lineTo(-78, 65);
+path.lineTo(-77, 59);
+path.lineTo(-77, 56);
+path.lineTo(-76, 50);
+path.lineTo(-76, 48);
+path.lineTo(-75, 46);
+path.lineTo(-75, 50);
+path.lineTo(-74, 63);
+path.lineTo(-74, 68);
+path.lineTo(-73, 77);
+path.lineTo(-72, 78);
+path.lineTo(-72, 82);
+path.lineTo(-71, 83);
+path.lineTo(-71, 85);
+path.lineTo(-70, 87);
+path.lineTo(-70, 84);
+path.lineTo(-69, 85);
+path.lineTo(-69, 84);
+path.lineTo(-68, 84);
+path.lineTo(-68, 84);
+path.lineTo(-67, 83);
+path.lineTo(-67, 83);
+path.lineTo(-66, 83);
+path.lineTo(-66, 84);
+path.lineTo(-65, 84);
+path.lineTo(-65, 82);
+path.lineTo(-64, 83);
+path.lineTo(-64, 82);
+path.lineTo(-63, 82);
+path.lineTo(-63, 83);
+path.lineTo(-62, 82);
+path.lineTo(-62, 84);
+path.lineTo(-61, 81);
+path.lineTo(-61, 84);
+path.lineTo(-60, 81);
+path.lineTo(-60, 83);
+path.lineTo(-59, 82);
+path.lineTo(-59, 82);
+path.lineTo(-58, 83);
+path.lineTo(-58, 82);
+path.lineTo(-57, 82);
+path.lineTo(-57, 81);
+path.lineTo(-56, 82);
+path.lineTo(-56, 82);
+path.lineTo(-55, 80);
+path.lineTo(-55, 78);
+path.lineTo(-54, 76);
+path.lineTo(-54, 71);
+path.lineTo(-53, 73);
+path.lineTo(-53, 75);
+path.lineTo(-52, 80);
+path.lineTo(-52, 82);
+path.lineTo(-51, 83);
+path.lineTo(-51, 83);
+path.lineTo(-50, 84);
+path.lineTo(-50, 92);
+path.lineTo(-49, 51);
+path.lineTo(-49, 0);
+path.lineTo(-48, 72);
+path.lineTo(-48, 85);
+path.lineTo(-47, 80);
+path.lineTo(-47, 75);
+path.lineTo(-46, 78);
+path.lineTo(-46, 77);
+path.lineTo(-45, 76);
+path.lineTo(-45, 75);
+path.lineTo(-44, 70);
+path.lineTo(-44, 65);
+path.lineTo(-43, 59);
+path.lineTo(-43, 56);
+path.lineTo(-42, 50);
+path.lineTo(-42, 48);
+path.lineTo(-41, 46);
+path.lineTo(-41, 50);
+path.lineTo(-40, 63);
+path.lineTo(-40, 68);
+path.lineTo(-39, 77);
+path.lineTo(-39, 78);
+path.lineTo(-38, 80);
+path.lineTo(-38, 83);
+path.lineTo(-37, 85);
+path.lineTo(-37, 87);
+path.lineTo(-36, 84);
+path.lineTo(-36, 85);
+path.lineTo(-35, 84);
+path.lineTo(-35, 85);
+path.lineTo(-34, 85);
+path.lineTo(-34, 83);
+path.lineTo(-33, 83);
+path.lineTo(-33, 83);
+path.lineTo(-32, 83);
+path.lineTo(-32, 84);
+path.lineTo(-31, 82);
+path.lineTo(-31, 82);
+path.lineTo(-30, 82);
+path.lineTo(-29, 83);
+path.lineTo(-29, 83);
+path.lineTo(-28, 82);
+path.lineTo(-28, 84);
+path.lineTo(-27, 81);
+path.lineTo(-27, 84);
+path.lineTo(-26, 81);
+path.lineTo(-26, 81);
+path.lineTo(-25, 83);
+path.lineTo(-25, 82);
+path.lineTo(-24, 83);
+path.lineTo(-24, 82);
+path.lineTo(-23, 83);
+path.lineTo(-23, 81);
+path.lineTo(-22, 82);
+path.lineTo(-22, 82);
+path.lineTo(-21, 80);
+path.lineTo(-21, 78);
+path.lineTo(-20, 76);
+path.lineTo(-20, 71);
+path.lineTo(-19, 73);
+path.lineTo(-19, 75);
+path.lineTo(-18, 80);
+path.lineTo(-18, 82);
+path.lineTo(-17, 83);
+path.lineTo(-17, 83);
+path.lineTo(-16, 84);
+path.lineTo(-16, 92);
+path.lineTo(-15, 51);
+path.lineTo(-15, 0);
+path.lineTo(-14, 72);
+path.lineTo(-14, 85);
+path.lineTo(-13, 80);
+path.lineTo(-13, 75);
+path.lineTo(-12, 78);
+path.lineTo(-12, 77);
+path.lineTo(-11, 76);
+path.lineTo(-11, 75);
+path.lineTo(-10, 72);
+path.lineTo(-10, 65);
+path.lineTo(-9, 63);
+path.lineTo(-9, 56);
+path.lineTo(-8, 53);
+path.lineTo(-8, 48);
+path.lineTo(-7, 46);
+path.lineTo(-7, 50);
+path.lineTo(-6, 55);
+path.lineTo(-6, 68);
+path.lineTo(-5, 72);
+path.lineTo(-5, 78);
+path.lineTo(-4, 80);
+path.lineTo(-4, 83);
+path.lineTo(-3, 84);
+path.lineTo(-3, 87);
+path.lineTo(-2, 84);
+path.lineTo(-2, 86);
+path.lineTo(-1, 84);
+path.lineTo(-1, 85);
+path.lineTo(0, 85);
+path.lineTo(0, 83);
+path.lineTo(1, 83);
+path.lineTo(1, 83);
+path.lineTo(2, 83);
+path.lineTo(2, 84);
+path.lineTo(3, 82);
+path.lineTo(3, 82);
+path.lineTo(4, 82);
+path.lineTo(4, 83);
+path.lineTo(5, 83);
+path.lineTo(5, 82);
+path.lineTo(6, 84);
+path.lineTo(6, 82);
+path.lineTo(7, 84);
+path.lineTo(7, 81);
+path.lineTo(8, 81);
+path.lineTo(8, 83);
+path.lineTo(9, 82);
+path.lineTo(9, 82);
+path.lineTo(10, 83);
+path.lineTo(10, 83);
+path.lineTo(11, 81);
+path.lineTo(11, 82);
+path.lineTo(12, 81);
+path.lineTo(12, 80);
+path.lineTo(13, 78);
+path.lineTo(14, 78);
+path.lineTo(14, 71);
+path.lineTo(15, 71);
+path.lineTo(15, 75);
+path.lineTo(16, 76);
+path.lineTo(16, 82);
+path.lineTo(17, 81);
+path.lineTo(17, 83);
+path.lineTo(18, 82);
+path.lineTo(18, 92);
+path.lineTo(19, 92);
+path.lineTo(19, 0);
+path.lineTo(20, 20);
+path.lineTo(20, 85);
+path.lineTo(21, 84);
+path.lineTo(21, 75);
+path.lineTo(22, 78);
+path.lineTo(22, 77);
+path.lineTo(23, 77);
+path.lineTo(23, 75);
+path.lineTo(24, 72);
+path.lineTo(24, 65);
+path.lineTo(25, 63);
+path.lineTo(25, 56);
+path.lineTo(26, 53);
+path.lineTo(26, 48);
+path.lineTo(27, 46);
+path.lineTo(27, 50);
+path.lineTo(28, 55);
+path.lineTo(28, 68);
+path.lineTo(29, 72);
+path.lineTo(29, 77);
+path.lineTo(30, 80);
+path.lineTo(30, 82);
+path.lineTo(31, 84);
+path.lineTo(31, 87);
+path.lineTo(32, 84);
+path.lineTo(32, 86);
+path.lineTo(33, 84);
+path.lineTo(33, 85);
+path.lineTo(34, 85);
+path.lineTo(34, 84);
+path.lineTo(35, 83);
+path.lineTo(35, 83);
+path.lineTo(36, 83);
+path.lineTo(36, 84);
+path.lineTo(37, 82);
+path.lineTo(37, 82);
+path.lineTo(38, 83);
+path.lineTo(38, 83);
+path.lineTo(39, 82);
+path.lineTo(39, 82);
+path.lineTo(40, 84);
+path.lineTo(40, 82);
+path.lineTo(41, 84);
+path.lineTo(41, 83);
+path.lineTo(42, 81);
+path.lineTo(42, 83);
+path.lineTo(43, 82);
+path.lineTo(43, 82);
+path.lineTo(44, 83);
+path.lineTo(44, 83);
+path.lineTo(45, 81);
+path.lineTo(45, 82);
+path.lineTo(46, 81);
+path.lineTo(46, 80);
+path.lineTo(47, 78);
+path.lineTo(47, 78);
+path.lineTo(48, 71);
+path.lineTo(48, 71);
+path.lineTo(49, 75);
+path.lineTo(49, 76);
+path.lineTo(50, 80);
+path.lineTo(50, 82);
+path.lineTo(51, 83);
+path.lineTo(51, 82);
+path.lineTo(52, 92);
+path.lineTo(52, 92);
+path.lineTo(53, 51);
+path.lineTo(53, 0);
+path.lineTo(54, 72);
+path.lineTo(54, 85);
+path.lineTo(55, 80);
+path.lineTo(56, 75);
+path.lineTo(56, 78);
+path.lineTo(57, 77);
+path.lineTo(57, 76);
+path.lineTo(58, 72);
+path.lineTo(58, 70);
+path.lineTo(59, 63);
+path.lineTo(59, 59);
+path.lineTo(60, 53);
+path.lineTo(60, 50);
+path.lineTo(61, 46);
+path.lineTo(61, 47);
+path.lineTo(62, 55);
+path.lineTo(62, 63);
+path.lineTo(63, 72);
+path.lineTo(63, 77);
+path.lineTo(64, 80);
+path.lineTo(64, 82);
+path.lineTo(65, 84);
+path.lineTo(65, 85);
+path.lineTo(66, 87);
+path.lineTo(66, 86);
+path.lineTo(67, 84);
+path.lineTo(67, 85);
+path.lineTo(68, 85);
+path.lineTo(68, 84);
+path.lineTo(69, 83);
+path.lineTo(69, 83);
+path.lineTo(70, 83);
+path.lineTo(70, 84);
+path.lineTo(71, 82);
+path.lineTo(71, 82);
+path.lineTo(72, 83);
+path.lineTo(72, 82);
+path.lineTo(73, 83);
+path.lineTo(73, 82);
+path.lineTo(74, 84);
+path.lineTo(74, 82);
+path.lineTo(75, 81);
+path.lineTo(75, 84);
+path.lineTo(76, 81);
+path.lineTo(76, 83);
+path.lineTo(77, 82);
+path.lineTo(77, 82);
+path.lineTo(78, 83);
+path.lineTo(78, 82);
+path.lineTo(79, 82);
+path.lineTo(79, 81);
+path.lineTo(80, 81);
+path.lineTo(80, 80);
+path.lineTo(81, 80);
+path.lineTo(81, 78);
+path.lineTo(82, 76);
+path.lineTo(82, 71);
+path.lineTo(83, 73);
+path.lineTo(83, 76);
+path.lineTo(84, 80);
+path.lineTo(84, 82);
+path.lineTo(85, 83);
+path.lineTo(85, 82);
+path.lineTo(86, 84);
+path.lineTo(86, 92);
+path.lineTo(87, 51);
+path.lineTo(87, 0);
+path.lineTo(88, 72);
+path.lineTo(88, 85);
+path.lineTo(89, 80);
+path.lineTo(89, 75);
+path.lineTo(90, 78);
+path.lineTo(90, 77);
+path.lineTo(91, 76);
+path.lineTo(91, 72);
+path.lineTo(92, 70);
+path.lineTo(93, 53);
+path.lineTo(94, 50);
+path.lineTo(94, 46);
+path.lineTo(95, 47);
+path.lineTo(95, 55);
+path.lineTo(96, 63);
+path.lineTo(96, 72);
+path.lineTo(97, 77);
+path.lineTo(97, 80);
+path.lineTo(98, 82);
+path.lineTo(99, 84);
+path.lineTo(99, 85);
+path.lineTo(100, 87);
+path.lineTo(100, 86);
+path.lineTo(101, 84);
+path.lineTo(101, 85);
+path.lineTo(102, 85);
+path.lineTo(102, 84);
+path.lineTo(103, 83);
+path.lineTo(103, 83);
+path.lineTo(104, 83);
+path.lineTo(104, 84);
+path.lineTo(105, 84);
+path.lineTo(105, 82);
+path.lineTo(106, 83);
+path.lineTo(106, 82);
+path.lineTo(107, 82);
+path.lineTo(107, 83);
+path.lineTo(108, 82);
+path.lineTo(108, 84);
+path.lineTo(109, 81);
+path.lineTo(109, 84);
+path.lineTo(110, 81);
+path.lineTo(110, 83);
+path.lineTo(111, 82);
+path.lineTo(111, 82);
+path.lineTo(112, 83);
+path.lineTo(112, 82);
+path.lineTo(113, 82);
+path.lineTo(113, 81);
+path.lineTo(114, 81);
+path.lineTo(114, 80);
+path.lineTo(115, 80);
+path.lineTo(115, 78);
+path.lineTo(116, 76);
+path.lineTo(116, 71);
+path.lineTo(117, 73);
+path.lineTo(117, 76);
+path.lineTo(118, 80);
+path.lineTo(118, 82);
+path.lineTo(119, 83);
+path.lineTo(119, 82);
+path.lineTo(120, 84);
+path.lineTo(120, 92);
+path.lineTo(121, 51);
+path.lineTo(121, 0);
+path.lineTo(122, 72);
+path.lineTo(122, 85);
+path.lineTo(123, 80);
+path.lineTo(123, 75);
+path.lineTo(124, 78);
+path.lineTo(124, 77);
+path.lineTo(125, 76);
+path.lineTo(125, 75);
+path.lineTo(126, 70);
+path.lineTo(126, 65);
+path.lineTo(127, 59);
+path.lineTo(127, 56);
+path.lineTo(128, 50);
+path.lineTo(128, 48);
+path.lineTo(129, 46);
+path.lineTo(129, 50);
+path.lineTo(130, 63);
+path.lineTo(130, 68);
+path.lineTo(131, 77);
+path.lineTo(131, 78);
+path.lineTo(132, 82);
+path.lineTo(132, 83);
+path.lineTo(133, 85);
+path.lineTo(133, 87);
+path.lineTo(134, 84);
+path.lineTo(134, 85);
+path.lineTo(135, 84);
+path.lineTo(135, 84);
+path.lineTo(136, 84);
+path.lineTo(136, 83);
+path.lineTo(137, 83);
+path.lineTo(137, 83);
+path.lineTo(138, 84);
+path.lineTo(138, 84);
+path.lineTo(139, 82);
+path.lineTo(139, 83);
+path.lineTo(140, 82);
+path.lineTo(140, 82);
+path.lineTo(141, 83);
+path.lineTo(141, 82);
+path.lineTo(142, 84);
+path.lineTo(143, 81);
+path.lineTo(143, 84);
+path.lineTo(144, 81);
+path.lineTo(144, 83);
+path.lineTo(145, 82);
+path.lineTo(145, 82);
+path.lineTo(146, 83);
+path.lineTo(146, 82);
+path.lineTo(147, 82);
+path.lineTo(147, 81);
+path.lineTo(148, 82);
+path.lineTo(148, 80);
+path.lineTo(149, 80);
+path.lineTo(149, 78);
+path.lineTo(150, 76);
+path.lineTo(150, 71);
+path.lineTo(151, 73);
+path.lineTo(151, 75);
+path.lineTo(152, 80);
+path.lineTo(152, 82);
+path.lineTo(153, 83);
+path.lineTo(153, 83);
+path.lineTo(154, 84);
+path.lineTo(154, 92);
+path.lineTo(155, 51);
+path.lineTo(155, 0);
+path.lineTo(156, 72);
+path.lineTo(156, 85);
+path.lineTo(157, 80);
+path.lineTo(157, 75);
+path.lineTo(158, 78);
+path.lineTo(158, 77);
+path.lineTo(159, 76);
+path.lineTo(159, 75);
+path.lineTo(160, 70);
+path.lineTo(160, 65);
+path.lineTo(161, 59);
+path.lineTo(161, 56);
+path.lineTo(162, 50);
+path.lineTo(162, 48);
+path.lineTo(163, 46);
+path.lineTo(163, 50);
+path.lineTo(164, 63);
+path.lineTo(164, 68);
+path.lineTo(165, 77);
+path.lineTo(165, 78);
+path.lineTo(166, 82);
+path.lineTo(166, 83);
+path.lineTo(167, 85);
+path.lineTo(167, 87);
+path.lineTo(168, 84);
+path.lineTo(168, 85);
+path.lineTo(169, 84);
+path.lineTo(169, 84);
+path.lineTo(170, 84);
+path.lineTo(170, 83);
+path.lineTo(171, 83);
+path.lineTo(171, 83);
+path.lineTo(172, 84);
+path.lineTo(172, 84);
+path.lineTo(173, 82);
+path.lineTo(173, 82);
+path.lineTo(174, 82);
+path.lineTo(174, 83);
+path.lineTo(175, 83);
+path.lineTo(175, 82);
+path.lineTo(176, 84);
+path.lineTo(176, 81);
+path.lineTo(177, 84);
+path.lineTo(177, 81);
+path.lineTo(178, 81);
+path.lineTo(178, 83);
+path.lineTo(179, 82);
+path.lineTo(179, 83);
+path.lineTo(180, 82);
+path.lineTo(180, 83);
+path.lineTo(181, 81);
+path.lineTo(181, 82);
+path.lineTo(182, 82);
+path.lineTo(182, 80);
+path.lineTo(183, 78);
+path.lineTo(183, 76);
+path.lineTo(184, 71);
+path.lineTo(184, 73);
+path.lineTo(185, 75);
+path.lineTo(186, 80);
+path.lineTo(186, 82);
+path.lineTo(187, 83);
+path.lineTo(187, 83);
+path.lineTo(188, 84);
+path.lineTo(188, 92);
+path.lineTo(189, 51);
+path.lineTo(189, 0);
+path.lineTo(190, 72);
+path.lineTo(190, 85);
+path.lineTo(191, 80);
+path.lineTo(191, 75);
+path.lineTo(192, 78);
+path.lineTo(192, 77);
+path.lineTo(193, 76);
+path.lineTo(193, 75);
+path.lineTo(194, 70);
+path.lineTo(194, 65);
+path.lineTo(195, 59);
+path.lineTo(195, 56);
+path.lineTo(196, 53);
+path.lineTo(196, 48);
+path.lineTo(197, 46);
+path.lineTo(197, 50);
+path.lineTo(198, 55);
+path.lineTo(198, 68);
+path.lineTo(199, 72);
+path.lineTo(199, 78);
+path.lineTo(200, 80);
+path.lineTo(200, 83);
+path.lineTo(201, 84);
+path.lineTo(201, 87);
+path.lineTo(202, 84);
+path.lineTo(202, 86);
+path.lineTo(203, 84);
+path.lineTo(203, 85);
+path.lineTo(204, 85);
+path.lineTo(204, 83);
+path.lineTo(205, 83);
+path.lineTo(205, 83);
+path.lineTo(206, 83);
+path.lineTo(206, 84);
+path.lineTo(207, 82);
+path.lineTo(207, 82);
+path.lineTo(208, 82);
+path.lineTo(208, 83);
+path.lineTo(209, 83);
+path.lineTo(209, 82);
+path.lineTo(210, 84);
+path.lineTo(210, 81);
+path.lineTo(211, 84);
+path.lineTo(211, 81);
+path.lineTo(212, 81);
+path.lineTo(212, 83);
+path.lineTo(213, 82);
+path.lineTo(213, 83);
+path.lineTo(214, 82);
+path.lineTo(214, 83);
+path.lineTo(215, 81);
+path.lineTo(215, 82);
+path.lineTo(216, 81);
+path.lineTo(216, 80);
+path.lineTo(217, 78);
+path.lineTo(217, 78);
+path.lineTo(218, 71);
+path.lineTo(218, 71);
+path.lineTo(219, 75);
+path.lineTo(219, 76);
+path.lineTo(220, 82);
+path.lineTo(220, 81);
+path.lineTo(221, 83);
+path.lineTo(221, 82);
+path.lineTo(222, 92);
+path.lineTo(222, 92);
+path.lineTo(223, 0);
+path.lineTo(223, 20);
+path.lineTo(224, 85);
+path.lineTo(224, 84);
+path.lineTo(225, 75);
+path.lineTo(225, 78);
+path.lineTo(226, 77);
+path.lineTo(226, 77);
+path.lineTo(227, 75);
+path.lineTo(227, 72);
+path.lineTo(228, 65);
+path.lineTo(228, 63);
+path.lineTo(229, 56);
+path.lineTo(230, 53);
+path.lineTo(230, 48);
+path.lineTo(231, 46);
+path.lineTo(231, 50);
+path.lineTo(232, 55);
+path.lineTo(232, 68);
+path.lineTo(233, 72);
+path.lineTo(233, 78);
+path.lineTo(234, 80);
+path.lineTo(234, 83);
+path.lineTo(235, 84);
+path.lineTo(235, 87);
+path.lineTo(236, 84);
+path.lineTo(236, 86);
+path.lineTo(237, 84);
+path.lineTo(237, 85);
+path.lineTo(238, 85);
+path.lineTo(238, 83);
+path.lineTo(239, 83);
+path.lineTo(239, 83);
+path.lineTo(240, 83);
+path.lineTo(240, 84);
+path.lineTo(241, 82);
+path.lineTo(241, 82);
+path.lineTo(242, 83);
+path.lineTo(242, 83);
+path.lineTo(243, 82);
+path.lineTo(243, 82);
+path.lineTo(244, 82);
+path.lineTo(244, 84);
+path.lineTo(245, 81);
+path.lineTo(245, 83);
+path.lineTo(246, 81);
+path.lineTo(246, 83);
+path.lineTo(247, 82);
+path.lineTo(247, 82);
+path.lineTo(248, 83);
+path.lineTo(248, 83);
+path.lineTo(249, 81);
+path.lineTo(249, 82);
+path.lineTo(250, 81);
+path.lineTo(250, 80);
+path.lineTo(251, 78);
+path.lineTo(251, 78);
+path.lineTo(252, 71);
+path.lineTo(252, 71);
+path.lineTo(253, 75);
+path.lineTo(253, 76);
+path.lineTo(254, 82);
+path.lineTo(254, 81);
+path.lineTo(255, 83);
+path.lineTo(255, 82);
+path.lineTo(256, 92);
+path.lineTo(256, 92);
+path.lineTo(257, 0);
+path.lineTo(257, 20);
+path.lineTo(258, 85);
+path.lineTo(258, 84);
+path.lineTo(259, 75);
+path.lineTo(259, 78);
+path.lineTo(260, 78);
+path.lineTo(260, 77);
+path.lineTo(261, 76);
+path.lineTo(261, 72);
+path.lineTo(262, 65);
+path.lineTo(262, 63);
+path.lineTo(263, 59);
+path.lineTo(263, 53);
+path.lineTo(264, 50);
+path.lineTo(264, 46);
+path.lineTo(265, 50);
+path.lineTo(265, 55);
+path.lineTo(266, 63);
+path.lineTo(266, 72);
+path.lineTo(267, 77);
+path.lineTo(267, 80);
+path.lineTo(268, 82);
+path.lineTo(268, 84);
+path.lineTo(269, 85);
+path.lineTo(269, 87);
+path.lineTo(270, 86);
+path.lineTo(270, 84);
+path.lineTo(271, 85);
+path.lineTo(271, 85);
+path.lineTo(272, 84);
+path.lineTo(273, 83);
+path.lineTo(273, 83);
+path.lineTo(274, 83);
+path.lineTo(274, 84);
+path.lineTo(275, 82);
+path.lineTo(275, 82);
+path.lineTo(276, 83);
+path.lineTo(276, 83);
+path.lineTo(277, 82);
+path.lineTo(277, 82);
+path.lineTo(278, 82);
+path.lineTo(278, 84);
+path.lineTo(279, 81);
+path.lineTo(279, 83);
+path.lineTo(280, 81);
+path.lineTo(280, 83);
+path.lineTo(281, 82);
+path.lineTo(281, 82);
+path.lineTo(282, 83);
+path.lineTo(282, 82);
+path.lineTo(283, 82);
+path.lineTo(283, 81);
+path.lineTo(284, 81);
+path.lineTo(284, 80);
+path.lineTo(285, 80);
+path.lineTo(285, 78);
+path.lineTo(286, 76);
+path.lineTo(286, 71);
+path.lineTo(287, 73);
+path.lineTo(287, 76);
+path.lineTo(288, 80);
+path.lineTo(288, 82);
+path.lineTo(289, 83);
+path.lineTo(289, 82);
+path.lineTo(290, 84);
+path.lineTo(290, 92);
+path.lineTo(291, 51);
+path.lineTo(291, 0);
+path.lineTo(292, 72);
+path.lineTo(292, 85);
+path.lineTo(293, 80);
+path.lineTo(293, 75);
+path.lineTo(294, 78);
+path.lineTo(294, 77);
+path.lineTo(295, 76);
+path.lineTo(295, 72);
+path.lineTo(296, 70);
+path.lineTo(296, 63);
+path.lineTo(297, 59);
+path.lineTo(297, 53);
+path.lineTo(298, 50);
+path.lineTo(298, 46);
+path.lineTo(299, 47);
+path.lineTo(299, 55);
+path.lineTo(300, 63);
+path.lineTo(300, 68);
+path.lineTo(301, 77);
+path.lineTo(301, 78);
+path.lineTo(302, 82);
+path.lineTo(302, 84);
+path.lineTo(303, 85);
+path.lineTo(303, 87);
+path.lineTo(304, 84);
+path.lineTo(304, 85);
+path.lineTo(305, 84);
+path.lineTo(305, 84);
+path.lineTo(306, 84);
+path.lineTo(306, 83);
+path.lineTo(307, 83);
+path.lineTo(307, 83);
+path.lineTo(308, 84);
+path.lineTo(308, 84);
+path.lineTo(309, 82);
+path.lineTo(309, 83);
+path.lineTo(310, 82);
+path.lineTo(310, 82);
+path.lineTo(311, 83);
+path.lineTo(311, 82);
+path.lineTo(312, 84);
+path.lineTo(312, 81);
+path.lineTo(313, 84);
+path.lineTo(313, 81);
+path.lineTo(314, 83);
+path.lineTo(314, 82);
+path.lineTo(315, 82);
+path.lineTo(316, 83);
+path.lineTo(316, 82);
+path.lineTo(317, 82);
+path.lineTo(317, 81);
+path.lineTo(318, 81);
+path.lineTo(318, 80);
+path.lineTo(319, 80);
+path.lineTo(319, 78);
+path.lineTo(320, 76);
+path.lineTo(321, 71);
+path.lineTo(321, 76);
+path.lineTo(322, 80);
+path.lineTo(322, 82);
+path.lineTo(323, 83);
+path.lineTo(323, 82);
+path.lineTo(324, 84);
+path.lineTo(324, 92);
+path.lineTo(325, 51);
+path.lineTo(325, 0);
+path.lineTo(326, 72);
+path.lineTo(326, 85);
+path.lineTo(327, 80);
+path.lineTo(327, 75);
+path.lineTo(328, 78);
+path.lineTo(328, 77);
+path.lineTo(329, 76);
+path.lineTo(329, 75);
+path.lineTo(330, 70);
+path.lineTo(330, 65);
+path.lineTo(331, 59);
+path.lineTo(331, 56);
+path.lineTo(332, 50);
+path.lineTo(332, 48);
+path.lineTo(333, 46);
+path.lineTo(333, 50);
+path.lineTo(334, 63);
+path.lineTo(334, 68);
+path.lineTo(335, 77);
+path.lineTo(335, 78);
+path.lineTo(336, 82);
+path.lineTo(336, 83);
+path.lineTo(337, 85);
+path.lineTo(337, 87);
+path.lineTo(338, 84);
+path.lineTo(338, 85);
+path.lineTo(339, 84);
+path.lineTo(339, 84);
+path.lineTo(340, 84);
+path.lineTo(340, 83);
+path.lineTo(341, 83);
+path.lineTo(341, 83);
+path.lineTo(342, 84);
+path.lineTo(342, 84);
+path.lineTo(343, 82);
+path.lineTo(343, 83);
+path.lineTo(344, 82);
+path.lineTo(344, 82);
+path.lineTo(345, 83);
+path.lineTo(345, 82);
+path.lineTo(346, 84);
+path.lineTo(346, 81);
+path.lineTo(347, 84);
+path.lineTo(347, 81);
+path.lineTo(348, 81);
+path.lineTo(348, 83);
+path.lineTo(349, 82);
+path.lineTo(349, 83);
+path.lineTo(350, 82);
+path.lineTo(350, 83);
+path.lineTo(351, 81);
+path.lineTo(351, 82);
+path.lineTo(352, 82);
+path.lineTo(352, 80);
+path.lineTo(353, 78);
+path.lineTo(353, 76);
+path.lineTo(354, 71);
+path.lineTo(354, 73);
+path.lineTo(355, 75);
+path.lineTo(355, 80);
+path.lineTo(356, 82);
+path.lineTo(356, 83);
+path.lineTo(357, 83);
+path.lineTo(357, 84);
+path.lineTo(358, 92);
+path.lineTo(359, 51);
+path.lineTo(359, 0);
+path.lineTo(360, 72);
+path.lineTo(360, 85);
+path.lineTo(361, 80);
+path.lineTo(361, 75);
+path.lineTo(362, 78);
+path.lineTo(362, 77);
+path.lineTo(363, 76);
+path.lineTo(363, 75);
+path.lineTo(364, 70);
+path.lineTo(364, 65);
+path.lineTo(365, 59);
+path.lineTo(365, 56);
+path.lineTo(366, 50);
+path.lineTo(366, 48);
+path.lineTo(367, 46);
+path.lineTo(367, 50);
+path.lineTo(368, 63);
+path.lineTo(368, 68);
+path.lineTo(369, 72);
+path.lineTo(369, 78);
+path.lineTo(370, 80);
+path.lineTo(370, 83);
+path.lineTo(371, 84);
+path.lineTo(371, 87);
+path.lineTo(372, 84);
+path.lineTo(372, 86);
+path.lineTo(373, 84);
+path.lineTo(373, 85);
+path.lineTo(374, 85);
+path.lineTo(374, 83);
+path.lineTo(375, 83);
+path.lineTo(375, 83);
+path.lineTo(376, 83);
+path.lineTo(376, 84);
+path.lineTo(377, 82);
+path.lineTo(377, 82);
+path.lineTo(378, 82);
+path.lineTo(378, 83);
+path.lineTo(379, 83);
+path.lineTo(379, 82);
+path.lineTo(380, 84);
+path.lineTo(380, 81);
+path.lineTo(381, 84);
+path.lineTo(381, 81);
+path.lineTo(382, 81);
+path.lineTo(382, 83);
+path.lineTo(383, 82);
+path.lineTo(383, 83);
+path.lineTo(384, 82);
+path.lineTo(384, 83);
+path.lineTo(385, 81);
+path.lineTo(385, 82);
+path.lineTo(386, 82);
+path.lineTo(386, 80);
+path.lineTo(387, 78);
+path.lineTo(387, 76);
+path.lineTo(388, 71);
+path.lineTo(388, 73);
+path.lineTo(389, 75);
+path.lineTo(389, 76);
+path.lineTo(390, 82);
+path.lineTo(390, 81);
+path.lineTo(391, 83);
+path.lineTo(391, 82);
+path.lineTo(392, 92);
+path.lineTo(392, 92);
+path.lineTo(393, 0);
+path.lineTo(393, 20);
+path.lineTo(394, 85);
+path.lineTo(394, 84);
+path.lineTo(395, 75);
+path.lineTo(395, 78);
+path.lineTo(396, 77);
+path.lineTo(396, 77);
+path.lineTo(397, 76);
+path.lineTo(398, 70);
+path.lineTo(398, 63);
+path.lineTo(399, 56);
+path.lineTo(399, 53);
+path.lineTo(400, 48);
+path.lineTo(401, 46);
+path.lineTo(401, 50);
+path.lineTo(402, 55);
+path.lineTo(402, 68);
+path.lineTo(403, 72);
+path.lineTo(403, 78);
+path.lineTo(404, 80);
+path.lineTo(404, 83);
+path.lineTo(405, 84);
+path.lineTo(405, 87);
+path.lineTo(406, 84);
+path.lineTo(406, 86);
+path.lineTo(407, 84);
+path.lineTo(407, 85);
+path.lineTo(408, 85);
+path.lineTo(408, 83);
+path.lineTo(409, 83);
+path.lineTo(409, 83);
+path.lineTo(410, 83);
+path.lineTo(410, 84);
+path.lineTo(411, 82);
+path.lineTo(411, 82);
+path.lineTo(412, 83);
+path.lineTo(412, 82);
+path.lineTo(413, 83);
+path.lineTo(413, 82);
+path.lineTo(414, 84);
+path.lineTo(414, 82);
+path.lineTo(415, 84);
+path.lineTo(415, 81);
+path.lineTo(416, 81);
+path.lineTo(416, 83);
+path.lineTo(417, 82);
+path.lineTo(417, 82);
+path.lineTo(418, 83);
+path.lineTo(418, 83);
+path.lineTo(419, 81);
+path.lineTo(419, 82);
+path.lineTo(420, 81);
+path.lineTo(420, 80);
+path.lineTo(421, 78);
+path.lineTo(421, 78);
+path.lineTo(422, 71);
+path.lineTo(422, 71);
+path.lineTo(423, 75);
+path.lineTo(423, 76);
+path.lineTo(424, 82);
+path.lineTo(424, 81);
+path.lineTo(425, 83);
+path.lineTo(425, 82);
+path.lineTo(426, 92);
+path.lineTo(426, 92);
+path.lineTo(427, 0);
+path.lineTo(427, 20);
+path.lineTo(428, 85);
+path.lineTo(428, 84);
+path.lineTo(429, 75);
+path.lineTo(429, 78);
+path.lineTo(430, 77);
+path.lineTo(430, 77);
+path.lineTo(431, 75);
+path.lineTo(431, 72);
+path.lineTo(432, 65);
+path.lineTo(432, 63);
+path.lineTo(433, 56);
+path.lineTo(433, 53);
+path.lineTo(434, 48);
+path.lineTo(434, 46);
+path.lineTo(435, 50);
+path.lineTo(435, 55);
+path.lineTo(436, 68);
+path.lineTo(436, 72);
+path.lineTo(437, 78);
+path.lineTo(437, 80);
+path.lineTo(438, 82);
+path.lineTo(438, 84);
+path.lineTo(439, 85);
+path.lineTo(439, 87);
+path.lineTo(440, 85);
+path.lineTo(440, 84);
+path.lineTo(441, 85);
+path.lineTo(441, 85);
+path.lineTo(442, 84);
+path.lineTo(442, 83);
+path.lineTo(443, 83);
+path.lineTo(444, 83);
+path.lineTo(444, 84);
+path.lineTo(445, 82);
+path.lineTo(445, 82);
+path.lineTo(446, 83);
+path.lineTo(446, 83);
+path.lineTo(447, 82);
+path.lineTo(447, 82);
+path.lineTo(448, 84);
+path.lineTo(448, 82);
+path.lineTo(449, 84);
+path.lineTo(449, 83);
+path.lineTo(450, 81);
+path.lineTo(450, 83);
+path.lineTo(451, 82);
+path.lineTo(451, 82);
+path.lineTo(452, 83);
+path.lineTo(452, 83);
+path.lineTo(453, 81);
+path.lineTo(453, 82);
+path.lineTo(454, 81);
+path.lineTo(454, 80);
+path.lineTo(455, 78);
+path.lineTo(455, 78);
+path.lineTo(456, 76);
+path.lineTo(456, 71);
+path.lineTo(457, 75);
+path.lineTo(457, 76);
+path.lineTo(458, 80);
+path.lineTo(458, 82);
+path.lineTo(459, 83);
+path.lineTo(459, 82);
+path.lineTo(460, 84);
+path.lineTo(460, 92);
+path.lineTo(461, 51);
+path.lineTo(461, 0);
+path.lineTo(462, 72);
+path.lineTo(462, 85);
+path.lineTo(463, 80);
+path.lineTo(463, 75);
+path.cubicTo(463.6f, 75, 464.4f, 78, 465, 78);
+path.lineTo(465, 72);
+path.lineTo(466, 70);
+path.lineTo(466, 63);
+path.lineTo(467, 59);
+path.lineTo(467, 53);
+path.lineTo(468, 50);
+path.lineTo(468, 46);
+path.lineTo(469, 47);
+path.lineTo(469, 55);
+path.lineTo(470, 63);
+path.lineTo(470, 72);
+path.lineTo(471, 77);
+path.lineTo(471, 80);
+path.lineTo(472, 82);
+path.lineTo(472, 84);
+path.lineTo(473, 85);
+path.lineTo(473, 87);
+path.lineTo(474, 86);
+path.lineTo(474, 84);
+path.lineTo(475, 85);
+path.lineTo(475, 85);
+path.lineTo(476, 84);
+path.lineTo(476, 83);
+path.lineTo(477, 83);
+path.lineTo(477, 83);
+path.lineTo(478, 84);
+path.lineTo(478, 82);
+path.lineTo(479, 82);
+path.lineTo(479, 83);
+path.lineTo(480, 82);
+path.lineTo(480, 83);
+path.lineTo(481, 82);
+path.lineTo(481, 82);
+path.lineTo(482, 84);
+path.lineTo(482, 81);
+path.lineTo(483, 84);
+path.lineTo(483, 81);
+path.lineTo(484, 83);
+path.lineTo(484, 82);
+path.lineTo(485, 82);
+path.lineTo(485, 83);
+path.lineTo(486, 82);
+path.lineTo(487, 82);
+path.lineTo(487, 81);
+path.lineTo(488, 81);
+path.lineTo(488, 80);
+path.lineTo(489, 80);
+path.lineTo(489, 78);
+path.lineTo(490, 76);
+path.lineTo(490, 71);
+path.lineTo(491, 73);
+path.lineTo(491, 76);
+path.lineTo(492, 80);
+path.lineTo(492, 82);
+path.lineTo(493, 83);
+path.lineTo(493, 82);
+path.lineTo(494, 84);
+path.lineTo(494, 92);
+path.lineTo(495, 51);
+path.lineTo(495, 0);
+path.lineTo(496, 72);
+path.lineTo(496, 85);
+path.lineTo(497, 80);
+path.lineTo(497, 75);
+path.lineTo(498, 78);
+path.lineTo(498, 77);
+path.lineTo(499, 76);
+path.lineTo(499, 72);
+path.lineTo(500, 70);
+path.lineTo(500, 65);
+path.lineTo(501, 59);
+path.lineTo(501, 53);
+path.lineTo(502, 50);
+path.lineTo(502, 48);
+path.lineTo(503, 46);
+path.lineTo(503, 50);
+path.lineTo(504, 63);
+path.lineTo(504, 72);
+path.lineTo(505, 77);
+path.lineTo(505, 78);
+path.lineTo(506, 82);
+path.lineTo(506, 83);
+path.lineTo(507, 85);
+path.lineTo(507, 87);
+path.lineTo(508, 84);
+path.lineTo(508, 85);
+path.lineTo(509, 84);
+path.lineTo(509, 84);
+path.lineTo(510, 84);
+path.lineTo(510, 83);
+path.lineTo(511, 83);
+path.lineTo(511, 83);
+path.lineTo(512, 84);
+path.lineTo(512, 84);
+path.lineTo(513, 82);
+path.lineTo(513, 83);
+path.lineTo(514, 82);
+path.lineTo(514, 82);
+path.lineTo(515, 83);
+path.lineTo(515, 82);
+path.lineTo(516, 84);
+path.lineTo(516, 81);
+path.lineTo(517, 84);
+path.lineTo(517, 81);
+path.lineTo(518, 83);
+path.lineTo(518, 82);
+path.lineTo(519, 82);
+path.lineTo(519, 83);
+path.lineTo(520, 82);
+path.lineTo(520, 83);
+path.lineTo(521, 81);
+path.lineTo(521, 81);
+path.lineTo(522, 82);
+path.lineTo(522, 80);
+path.lineTo(523, 78);
+path.lineTo(523, 76);
+path.lineTo(524, 71);
+path.lineTo(524, 73);
+path.lineTo(525, 75);
+path.lineTo(525, 80);
+path.lineTo(526, 82);
+path.lineTo(526, 83);
+path.lineTo(527, 83);
+path.lineTo(527, 84);
+path.lineTo(528, 92);
+path.lineTo(529, 51);
+path.lineTo(529, 0);
+path.lineTo(530, 72);
+path.lineTo(530, 85);
+path.lineTo(531, 80);
+path.lineTo(531, 75);
+path.lineTo(532, 78);
+path.lineTo(532, 77);
+path.lineTo(533, 76);
+path.lineTo(533, 75);
+path.lineTo(534, 70);
+path.lineTo(534, 65);
+path.lineTo(535, 59);
+path.lineTo(535, 56);
+path.lineTo(536, 50);
+path.lineTo(536, 48);
+path.lineTo(537, 46);
+path.lineTo(537, 50);
+path.lineTo(538, 63);
+path.lineTo(538, 68);
+path.lineTo(539, 77);
+path.lineTo(539, 78);
+path.lineTo(540, 80);
+path.lineTo(540, 83);
+path.lineTo(541, 84);
+path.lineTo(541, 87);
+path.lineTo(542, 84);
+path.lineTo(542, 85);
+path.lineTo(543, 84);
+path.lineTo(543, 85);
+path.lineTo(544, 85);
+path.lineTo(544, 83);
+path.lineTo(545, 83);
+path.lineTo(545, 83);
+path.lineTo(546, 83);
+path.lineTo(546, 84);
+path.lineTo(547, 82);
+path.lineTo(547, 82);
+path.lineTo(548, 82);
+path.lineTo(548, 83);
+path.lineTo(549, 83);
+path.lineTo(549, 82);
+path.lineTo(550, 84);
+path.lineTo(550, 82);
+path.lineTo(551, 84);
+path.lineTo(551, 81);
+path.lineTo(552, 81);
+path.lineTo(552, 83);
+path.lineTo(553, 82);
+path.lineTo(553, 83);
+path.lineTo(554, 82);
+path.lineTo(554, 83);
+path.lineTo(555, 81);
+path.lineTo(555, 82);
+path.lineTo(556, 82);
+path.lineTo(556, 80);
+path.lineTo(557, 78);
+path.lineTo(557, 76);
+path.lineTo(558, 71);
+path.lineTo(558, 73);
+path.lineTo(559, 75);
+path.lineTo(559, 80);
+path.lineTo(560, 82);
+path.lineTo(560, 83);
+path.lineTo(561, 83);
+path.lineTo(561, 82);
+path.lineTo(562, 92);
+path.lineTo(562, 51);
+path.lineTo(563, 0);
+path.lineTo(563, 20);
+path.lineTo(564, 85);
+path.lineTo(564, 84);
+path.lineTo(565, 75);
+path.lineTo(565, 78);
+path.lineTo(566, 77);
+path.lineTo(566, 77);
+path.lineTo(567, 75);
+path.lineTo(567, 72);
+path.lineTo(568, 65);
+path.lineTo(568, 63);
+path.lineTo(569, 56);
+path.lineTo(569, 53);
+path.lineTo(570, 48);
+path.lineTo(570, 46);
+path.lineTo(571, 50);
+path.lineTo(572, 55);
+path.lineTo(572, 68);
+path.lineTo(573, 72);
+path.lineTo(573, 78);
+path.lineTo(574, 80);
+path.lineTo(574, 83);
+path.lineTo(575, 84);
+path.lineTo(575, 87);
+path.lineTo(576, 84);
+path.lineTo(576, 86);
+path.lineTo(577, 84);
+path.lineTo(577, 85);
+path.lineTo(578, 85);
+path.lineTo(578, 83);
+path.lineTo(579, 83);
+path.lineTo(579, 83);
+path.lineTo(580, 83);
+path.lineTo(580, 84);
+path.lineTo(581, 82);
+path.lineTo(581, 82);
+path.lineTo(582, 82);
+path.lineTo(582, 83);
+path.lineTo(583, 83);
+path.lineTo(583, 82);
+path.lineTo(584, 84);
+path.lineTo(584, 81);
+path.lineTo(585, 84);
+path.lineTo(585, 83);
+path.lineTo(586, 81);
+path.lineTo(586, 83);
+path.lineTo(587, 82);
+path.lineTo(587, 82);
+path.lineTo(588, 83);
+path.lineTo(588, 83);
+path.lineTo(589, 81);
+path.lineTo(589, 82);
+path.lineTo(590, 81);
+path.lineTo(590, 80);
+path.lineTo(591, 78);
+path.lineTo(591, 78);
+path.lineTo(592, 71);
+path.lineTo(592, 71);
+path.lineTo(593, 75);
+path.lineTo(593, 76);
+path.lineTo(594, 82);
+path.lineTo(594, 81);
+path.lineTo(595, 83);
+path.lineTo(595, 82);
+path.lineTo(596, 92);
+path.lineTo(596, 92);
+path.lineTo(597, 0);
+path.lineTo(597, 20);
+path.lineTo(598, 85);
+path.lineTo(598, 84);
+path.lineTo(599, 75);
+path.lineTo(599, 78);
+path.lineTo(600, 77);
+path.lineTo(600, 77);
+path.lineTo(601, 75);
+path.lineTo(601, 72);
+path.lineTo(602, 65);
+path.lineTo(602, 63);
+path.lineTo(603, 56);
+path.lineTo(603, 53);
+path.lineTo(604, 48);
+path.lineTo(604, 46);
+path.lineTo(605, 50);
+path.lineTo(605, 55);
+path.lineTo(606, 68);
+path.lineTo(606, 72);
+path.lineTo(607, 78);
+path.lineTo(607, 80);
+path.lineTo(608, 83);
+path.lineTo(608, 84);
+path.lineTo(609, 85);
+path.lineTo(609, 87);
+path.lineTo(610, 85);
+path.lineTo(610, 84);
+path.lineTo(611, 85);
+path.lineTo(611, 85);
+path.lineTo(612, 84);
+path.lineTo(612, 83);
+path.lineTo(613, 83);
+path.lineTo(613, 83);
+path.lineTo(614, 84);
+path.lineTo(615, 82);
+path.lineTo(615, 82);
+path.lineTo(616, 83);
+path.lineTo(616, 83);
+path.lineTo(617, 82);
+path.lineTo(617, 82);
+path.lineTo(618, 84);
+path.lineTo(618, 82);
+path.lineTo(619, 84);
+path.lineTo(619, 83);
+path.lineTo(620, 81);
+path.lineTo(620, 83);
+path.lineTo(621, 82);
+path.lineTo(621, 82);
+path.lineTo(622, 83);
+path.lineTo(622, 83);
+path.lineTo(623, 81);
+path.lineTo(623, 82);
+path.lineTo(624, 81);
+path.lineTo(624, 80);
+path.lineTo(625, 78);
+path.lineTo(625, 78);
+path.lineTo(626, 71);
+path.lineTo(626, 71);
+path.lineTo(627, 75);
+path.lineTo(627, 76);
+path.lineTo(628, 82);
+path.lineTo(628, 81);
+path.lineTo(629, 83);
+path.lineTo(629, 82);
+path.lineTo(630, 84);
+path.lineTo(630, 92);
+path.lineTo(631, 0);
+path.lineTo(631, 20);
+path.lineTo(632, 72);
+path.lineTo(632, 85);
+path.lineTo(633, 80);
+path.lineTo(633, 75);
+path.lineTo(634, 78);
+path.lineTo(634, 77);
+path.lineTo(635, 76);
+path.lineTo(635, 72);
+path.lineTo(636, 70);
+path.lineTo(636, 63);
+path.lineTo(637, 59);
+path.lineTo(637, 53);
+path.lineTo(638, 50);
+path.lineTo(638, 46);
+path.lineTo(639, 47);
+path.lineTo(639, 55);
+path.lineTo(640, 63);
+path.lineTo(640, 72);
+path.lineTo(641, 77);
+path.lineTo(641, 80);
+path.lineTo(642, 82);
+path.lineTo(642, 84);
+path.lineTo(643, 85);
+path.lineTo(643, 87);
+path.lineTo(644, 86);
+path.lineTo(644, 84);
+path.lineTo(645, 85);
+path.lineTo(645, 85);
+path.lineTo(646, 84);
+path.lineTo(646, 83);
+path.lineTo(647, 83);
+path.lineTo(647, 83);
+path.lineTo(648, 84);
+path.lineTo(648, 82);
+path.lineTo(649, 82);
+path.lineTo(650, 83);
+path.lineTo(650, 82);
+path.lineTo(651, 82);
+path.lineTo(651, 84);
+path.lineTo(652, 82);
+path.lineTo(652, 84);
+path.lineTo(653, 83);
+path.lineTo(653, 81);
+path.lineTo(654, 83);
+path.lineTo(654, 82);
+path.lineTo(655, 82);
+path.lineTo(655, 83);
+path.lineTo(656, 83);
+path.lineTo(657, 81);
+path.lineTo(657, 82);
+path.lineTo(658, 81);
+path.lineTo(658, 80);
+path.lineTo(659, 78);
+path.lineTo(659, 78);
+path.lineTo(660, 71);
+path.lineTo(660, 71);
+path.lineTo(661, 73);
+path.lineTo(661, 76);
+path.lineTo(662, 80);
+path.lineTo(662, 82);
+path.lineTo(663, 83);
+path.lineTo(663, 82);
+path.lineTo(664, 84);
+path.lineTo(664, 92);
+path.lineTo(665, 51);
+path.lineTo(665, 0);
+path.lineTo(666, 72);
+path.lineTo(666, 85);
+path.lineTo(667, 80);
+path.lineTo(667, 75);
+path.lineTo(668, 78);
+path.lineTo(668, 77);
+path.lineTo(669, 76);
+path.lineTo(669, 72);
+path.lineTo(670, 70);
+path.lineTo(670, 63);
+path.lineTo(671, 59);
+path.lineTo(671, 53);
+path.lineTo(672, 50);
+path.lineTo(672, 46);
+path.lineTo(673, 55);
+path.lineTo(674, 63);
+path.lineTo(674, 72);
+path.lineTo(675, 77);
+path.lineTo(675, 80);
+path.lineTo(676, 82);
+path.lineTo(676, 84);
+path.lineTo(677, 85);
+path.lineTo(677, 87);
+path.lineTo(678, 86);
+path.lineTo(678, 84);
+path.lineTo(679, 85);
+path.lineTo(679, 85);
+path.lineTo(680, 84);
+path.lineTo(680, 83);
+path.lineTo(681, 83);
+path.lineTo(681, 83);
+path.lineTo(682, 84);
+path.lineTo(682, 82);
+path.lineTo(683, 82);
+path.lineTo(683, 83);
+path.lineTo(684, 83);
+path.lineTo(684, 82);
+path.lineTo(685, 82);
+path.lineTo(685, 82);
+path.lineTo(686, 84);
+path.lineTo(686, 81);
+path.lineTo(687, 83);
+path.lineTo(687, 81);
+path.lineTo(688, 83);
+path.lineTo(688, 82);
+path.lineTo(689, 82);
+path.lineTo(689, 83);
+path.lineTo(690, 82);
+path.lineTo(690, 82);
+path.lineTo(691, 81);
+path.lineTo(691, 81);
+path.lineTo(692, 80);
+path.lineTo(692, 80);
+path.lineTo(693, 78);
+path.lineTo(693, 76);
+path.lineTo(694, 71);
+path.lineTo(694, 73);
+path.lineTo(695, 76);
+path.lineTo(695, 80);
+path.lineTo(696, 82);
+path.lineTo(696, 83);
+path.lineTo(697, 82);
+path.lineTo(697, 84);
+path.lineTo(698, 92);
+path.lineTo(698, 51);
+path.lineTo(699, 0);
+path.lineTo(700, 72);
+path.lineTo(700, 85);
+path.lineTo(701, 80);
+path.lineTo(701, 75);
+path.lineTo(702, 78);
+path.lineTo(702, 77);
+path.lineTo(703, 76);
+path.lineTo(703, 72);
+path.lineTo(704, 70);
+path.lineTo(704, 63);
+path.lineTo(705, 59);
+path.lineTo(705, 53);
+path.lineTo(706, 50);
+path.lineTo(706, 46);
+path.lineTo(707, 47);
+path.lineTo(707, 55);
+path.lineTo(708, 63);
+path.lineTo(708, 72);
+path.lineTo(709, 77);
+path.lineTo(709, 80);
+path.lineTo(710, 82);
+path.lineTo(710, 84);
+path.lineTo(711, 85);
+path.lineTo(711, 87);
+path.lineTo(712, 86);
+path.lineTo(712, 85);
+path.lineTo(713, 84);
+path.lineTo(713, 84);
+path.lineTo(714, 84);
+path.lineTo(714, 83);
+path.lineTo(715, 83);
+path.lineTo(715, 83);
+path.lineTo(716, 84);
+path.lineTo(716, 84);
+path.lineTo(717, 82);
+path.lineTo(717, 83);
+path.lineTo(718, 82);
+path.lineTo(718, 82);
+path.lineTo(719, 83);
+path.lineTo(719, 82);
+path.lineTo(720, 84);
+path.lineTo(720, 81);
+path.lineTo(721, 84);
+path.lineTo(721, 81);
+path.lineTo(722, 83);
+path.lineTo(722, 82);
+path.lineTo(723, 82);
+path.lineTo(723, 83);
+path.lineTo(724, 82);
+path.lineTo(724, 82);
+path.lineTo(725, 81);
+path.lineTo(725, 81);
+path.lineTo(726, 80);
+path.lineTo(726, 80);
+path.lineTo(727, 78);
+path.lineTo(727, 76);
+path.lineTo(728, 71);
+path.lineTo(728, 73);
+path.lineTo(729, 76);
+path.lineTo(729, 80);
+path.lineTo(730, 82);
+path.lineTo(730, 83);
+path.lineTo(731, 82);
+path.lineTo(731, 84);
+path.lineTo(732, 92);
+path.lineTo(732, 51);
+path.lineTo(733, 0);
+path.lineTo(733, 72);
+path.lineTo(734, 85);
+path.lineTo(734, 80);
+path.lineTo(735, 75);
+path.lineTo(735, 78);
+path.lineTo(736, 77);
+path.lineTo(736, 76);
+path.lineTo(737, 75);
+path.lineTo(737, 70);
+path.lineTo(738, 65);
+path.lineTo(738, 59);
+path.lineTo(739, 56);
+path.lineTo(739, 50);
+path.lineTo(740, 48);
+path.lineTo(740, 46);
+path.lineTo(741, 50);
+path.lineTo(741, 63);
+path.lineTo(742, 68);
+path.lineTo(743, 77);
+path.lineTo(743, 78);
+path.lineTo(744, 82);
+path.lineTo(744, 83);
+path.lineTo(745, 85);
+path.lineTo(745, 87);
+path.lineTo(746, 84);
+path.lineTo(746, 85);
+path.lineTo(747, 84);
+path.lineTo(747, 84);
+path.lineTo(748, 84);
+path.lineTo(748, 83);
+path.lineTo(749, 83);
+path.lineTo(749, 83);
+path.lineTo(750, 84);
+path.lineTo(750, 84);
+path.lineTo(751, 82);
+path.lineTo(751, 83);
+path.lineTo(752, 82);
+path.lineTo(752, 82);
+path.lineTo(753, 83);
+path.lineTo(753, 82);
+path.lineTo(754, 84);
+path.lineTo(754, 81);
+path.lineTo(755, 84);
+path.lineTo(755, 81);
+path.lineTo(756, 83);
+path.lineTo(756, 82);
+path.lineTo(757, 82);
+path.lineTo(757, 83);
+path.lineTo(758, 82);
+path.lineTo(758, 82);
+path.lineTo(759, 81);
+path.lineTo(759, 81);
+path.lineTo(760, 82);
+path.lineTo(760, 80);
+path.lineTo(761, 78);
+path.lineTo(761, 76);
+path.lineTo(762, 71);
+path.lineTo(762, 73);
+path.lineTo(763, 75);
+path.lineTo(763, 80);
+path.lineTo(764, 82);
+path.lineTo(764, 83);
+path.lineTo(765, 83);
+path.lineTo(765, 84);
+path.lineTo(766, 92);
+path.lineTo(766, 51);
+path.lineTo(767, 0);
+path.lineTo(767, 72);
+path.lineTo(768, 85);
+path.lineTo(768, 80);
+path.lineTo(769, 75);
+path.lineTo(769, 78);
+path.lineTo(770, 77);
+path.lineTo(770, 76);
+path.lineTo(771, 75);
+path.lineTo(771, 70);
+path.lineTo(772, 65);
+path.lineTo(772, 59);
+path.lineTo(773, 56);
+path.lineTo(773, 50);
+path.lineTo(774, 48);
+path.lineTo(774, 46);
+path.lineTo(775, 50);
+path.lineTo(775, 63);
+path.lineTo(776, 68);
+path.lineTo(776, 77);
+path.lineTo(777, 78);
+path.lineTo(777, 82);
+path.lineTo(778, 83);
+path.lineTo(778, 85);
+path.lineTo(779, 87);
+path.lineTo(779, 84);
+path.lineTo(780, 85);
+path.lineTo(780, 84);
+path.lineTo(781, 84);
+path.lineTo(781, 85);
+path.lineTo(782, 83);
+path.lineTo(782, 83);
+path.lineTo(783, 83);
+path.lineTo(783, 84);
+path.lineTo(784, 84);
+path.lineTo(785, 82);
+path.lineTo(785, 82);
+path.lineTo(786, 82);
+path.lineTo(786, 83);
+path.lineTo(787, 83);
+path.lineTo(787, 82);
+path.lineTo(788, 84);
+path.lineTo(788, 81);
+path.lineTo(789, 84);
+path.lineTo(789, 81);
+path.lineTo(790, 81);
+path.lineTo(790, 83);
+path.lineTo(791, 82);
+path.lineTo(791, 83);
+path.lineTo(792, 82);
+path.lineTo(792, 83);
+path.lineTo(793, 81);
+path.lineTo(793, 82);
+path.lineTo(794, 82);
+path.lineTo(794, 80);
+path.lineTo(795, 78);
+path.lineTo(795, 76);
+path.lineTo(796, 71);
+path.lineTo(796, 73);
+path.lineTo(797, 75);
+path.lineTo(797, 80);
+path.lineTo(798, 82);
+path.lineTo(798, 83);
+path.lineTo(799, 83);
+path.lineTo(799, 84);
+path.lineTo(800, 92);
+path.lineTo(800, 51);
+path.lineTo(801, 0);
+path.lineTo(801, 72);
+path.lineTo(802, 85);
+path.lineTo(802, 80);
+path.lineTo(803, 75);
+path.lineTo(803, 78);
+path.lineTo(804, 77);
+path.lineTo(804, 76);
+path.lineTo(805, 75);
+path.lineTo(805, 70);
+path.lineTo(806, 65);
+path.lineTo(806, 59);
+path.lineTo(807, 56);
+path.lineTo(807, 50);
+path.lineTo(808, 48);
+path.lineTo(808, 46);
+path.lineTo(809, 50);
+path.lineTo(809, 55);
+path.lineTo(810, 68);
+path.lineTo(810, 77);
+path.lineTo(811, 78);
+path.lineTo(811, 80);
+path.lineTo(812, 83);
+path.lineTo(812, 84);
+path.lineTo(813, 87);
+path.lineTo(813, 84);
+path.lineTo(814, 86);
+path.lineTo(814, 84);
+path.lineTo(815, 85);
+path.lineTo(815, 85);
+path.lineTo(816, 83);
+path.lineTo(816, 83);
+path.lineTo(817, 83);
+path.lineTo(817, 83);
+path.lineTo(818, 84);
+path.lineTo(818, 82);
+path.lineTo(819, 82);
+path.lineTo(819, 82);
+path.lineTo(820, 83);
+path.lineTo(820, 83);
+path.lineTo(821, 82);
+path.lineTo(821, 84);
+path.lineTo(822, 81);
+path.lineTo(822, 84);
+path.lineTo(823, 81);
+path.lineTo(823, 81);
+path.lineTo(824, 83);
+path.lineTo(824, 82);
+path.lineTo(825, 83);
+path.lineTo(825, 82);
+path.lineTo(826, 83);
+path.lineTo(826, 81);
+path.lineTo(827, 82);
+path.lineTo(828, 82);
+path.lineTo(828, 80);
+path.lineTo(829, 78);
+path.lineTo(829, 78);
+path.lineTo(830, 71);
+path.lineTo(830, 71);
+path.lineTo(831, 75);
+path.lineTo(831, 76);
+path.lineTo(832, 82);
+path.lineTo(832, 81);
+path.lineTo(833, 83);
+path.lineTo(833, 82);
+path.lineTo(834, 92);
+path.lineTo(834, 92);
+path.lineTo(835, 0);
+path.lineTo(835, 20);
+path.lineTo(836, 85);
+path.lineTo(836, 84);
+path.lineTo(837, 75);
+path.lineTo(837, 78);
+path.lineTo(838, 77);
+path.lineTo(838, 77);
+path.lineTo(839, 75);
+path.lineTo(839, 72);
+path.lineTo(840, 65);
+path.lineTo(840, 63);
+path.lineTo(841, 56);
+path.lineTo(841, 53);
+path.lineTo(842, 48);
+path.lineTo(842, 46);
+path.lineTo(843, 50);
+path.lineTo(843, 55);
+path.lineTo(844, 68);
+path.lineTo(844, 72);
+path.lineTo(845, 78);
+path.lineTo(845, 80);
+path.lineTo(846, 83);
+path.lineTo(846, 84);
+path.lineTo(847, 85);
+path.lineTo(847, 87);
+path.lineTo(848, 85);
+path.lineTo(848, 84);
+path.lineTo(849, 85);
+path.lineTo(849, 85);
+path.lineTo(850, 84);
+path.lineTo(850, 83);
+path.lineTo(851, 83);
+path.lineTo(851, 83);
+path.lineTo(852, 84);
+path.lineTo(852, 82);
+path.lineTo(853, 82);
+path.lineTo(853, 83);
+path.lineTo(854, 83);
+path.lineTo(854, 82);
+path.lineTo(855, 82);
+path.lineTo(855, 84);
+path.lineTo(856, 82);
+path.lineTo(856, 84);
+path.lineTo(857, 83);
+path.lineTo(857, 81);
+path.lineTo(858, 83);
+path.lineTo(858, 82);
+path.lineTo(859, 82);
+path.lineTo(859, 83);
+path.lineTo(860, 83);
+path.lineTo(860, 81);
+path.lineTo(861, 82);
+path.lineTo(861, 81);
+path.lineTo(862, 80);
+path.lineTo(862, 78);
+path.lineTo(863, 78);
+path.lineTo(863, 71);
+path.lineTo(864, 71);
+path.lineTo(864, 75);
+path.lineTo(865, 76);
+path.lineTo(865, 82);
+path.lineTo(866, 81);
+path.lineTo(866, 83);
+path.lineTo(867, 82);
+path.lineTo(867, 84);
+path.lineTo(868, 92);
+path.lineTo(868, 51);
+path.lineTo(869, 0);
+path.lineTo(869, 72);
+path.lineTo(870, 85);
+path.lineTo(871, 80);
+path.lineTo(871, 75);
+path.lineTo(872, 78);
+path.lineTo(872, 77);
+path.lineTo(873, 76);
+path.lineTo(873, 72);
+path.lineTo(874, 70);
+path.lineTo(874, 63);
+path.lineTo(875, 59);
+path.lineTo(875, 53);
+path.lineTo(876, 50);
+path.lineTo(876, 46);
+path.lineTo(877, 47);
+path.lineTo(877, 55);
+path.lineTo(878, 63);
+path.lineTo(878, 72);
+path.lineTo(879, 77);
+path.lineTo(879, 80);
+path.lineTo(880, 82);
+path.lineTo(880, 84);
+path.lineTo(881, 85);
+path.lineTo(881, 87);
+path.lineTo(882, 86);
+path.lineTo(882, 84);
+path.lineTo(883, 85);
+path.lineTo(883, 85);
+path.lineTo(884, 84);
+path.lineTo(884, 83);
+path.lineTo(885, 83);
+path.lineTo(885, 83);
+path.lineTo(886, 84);
+path.lineTo(886, 84);
+path.lineTo(887, 82);
+path.lineTo(887, 83);
+path.lineTo(888, 82);
+path.lineTo(888, 83);
+path.lineTo(889, 82);
+path.lineTo(889, 82);
+path.lineTo(890, 84);
+path.lineTo(890, 81);
+path.lineTo(891, 84);
+path.lineTo(891, 81);
+path.lineTo(892, 83);
+path.lineTo(892, 82);
+path.lineTo(893, 82);
+path.lineTo(893, 83);
+path.lineTo(894, 82);
+path.lineTo(894, 82);
+path.lineTo(895, 81);
+path.lineTo(895, 81);
+path.lineTo(896, 80);
+path.lineTo(896, 80);
+path.lineTo(897, 78);
+path.lineTo(897, 76);
+path.lineTo(898, 71);
+path.lineTo(898, 73);
+path.lineTo(899, 76);
+path.lineTo(899, 80);
+path.lineTo(900, 82);
+path.lineTo(900, 83);
+path.lineTo(901, 82);
+path.lineTo(901, 84);
+path.lineTo(902, 92);
+path.lineTo(902, 51);
+path.lineTo(903, 0);
+path.lineTo(903, 72);
+path.lineTo(904, 85);
+path.lineTo(904, 80);
+path.lineTo(905, 75);
+path.lineTo(905, 78);
+path.lineTo(906, 77);
+path.lineTo(906, 76);
+path.lineTo(907, 75);
+path.lineTo(907, 70);
+path.lineTo(908, 65);
+path.lineTo(908, 59);
+path.lineTo(909, 56);
+path.lineTo(909, 50);
+path.lineTo(910, 48);
+path.lineTo(910, 46);
+path.lineTo(911, 50);
+path.lineTo(911, 63);
+path.lineTo(912, 68);
+path.lineTo(913, 77);
+path.lineTo(913, 78);
+path.lineTo(914, 82);
+path.lineTo(914, 83);
+path.lineTo(915, 85);
+path.lineTo(915, 87);
+path.lineTo(916, 84);
+path.lineTo(916, 85);
+path.lineTo(917, 84);
+path.lineTo(917, 84);
+path.lineTo(918, 84);
+path.lineTo(918, 83);
+path.lineTo(919, 83);
+path.lineTo(919, 83);
+path.lineTo(920, 83);
+path.lineTo(920, 84);
+path.lineTo(921, 82);
+path.lineTo(921, 82);
+path.lineTo(922, 82);
+path.lineTo(922, 83);
+path.lineTo(923, 83);
+path.lineTo(923, 82);
+path.lineTo(924, 84);
+path.lineTo(924, 81);
+path.lineTo(925, 84);
+path.lineTo(925, 81);
+path.lineTo(926, 81);
+path.lineTo(926, 83);
+path.lineTo(927, 82);
+path.lineTo(927, 83);
+path.lineTo(928, 82);
+path.lineTo(928, 83);
+path.lineTo(929, 81);
+path.lineTo(929, 82);
+path.lineTo(930, 82);
+path.lineTo(930, 80);
+path.lineTo(931, 78);
+path.lineTo(931, 76);
+path.lineTo(932, 71);
+path.lineTo(932, 73);
+path.lineTo(933, 75);
+path.lineTo(933, 80);
+path.lineTo(934, 82);
+path.lineTo(934, 81);
+path.lineTo(935, 83);
+path.lineTo(935, 82);
+path.lineTo(936, 92);
+path.lineTo(936, 92);
+path.lineTo(937, 0);
+path.lineTo(937, 20);
+path.lineTo(938, 85);
+path.lineTo(938, 84);
+path.lineTo(939, 75);
+path.lineTo(939, 78);
+path.lineTo(940, 77);
+path.lineTo(940, 77);
+path.lineTo(941, 75);
+path.lineTo(941, 72);
+path.lineTo(942, 65);
+path.lineTo(942, 63);
+path.lineTo(943, 56);
+path.lineTo(943, 53);
+path.lineTo(944, 48);
+path.lineTo(944, 46);
+path.lineTo(945, 50);
+path.lineTo(945, 55);
+path.lineTo(946, 68);
+path.lineTo(946, 72);
+path.lineTo(947, 78);
+path.lineTo(947, 80);
+path.lineTo(948, 83);
+path.lineTo(948, 84);
+path.lineTo(949, 85);
+path.lineTo(949, 87);
+path.lineTo(950, 86);
+path.lineTo(950, 84);
+path.lineTo(951, 85);
+path.lineTo(951, 85);
+path.lineTo(952, 84);
+path.lineTo(952, 83);
+path.lineTo(953, 83);
+path.lineTo(953, 83);
+path.lineTo(954, 84);
+path.lineTo(954, 82);
+path.lineTo(955, 82);
+path.lineTo(956, 83);
+path.lineTo(956, 83);
+path.lineTo(957, 82);
+path.lineTo(957, 82);
+path.lineTo(958, 84);
+path.lineTo(958, 82);
+path.lineTo(959, 84);
+path.lineTo(959, 83);
+path.lineTo(960, 81);
+path.lineTo(960, 83);
+path.lineTo(961, 82);
+path.lineTo(961, 82);
+path.lineTo(962, 83);
+path.lineTo(963, 81);
+path.lineTo(963, 82);
+path.lineTo(964, 81);
+path.lineTo(964, 80);
+path.lineTo(965, 78);
+path.lineTo(965, 78);
+path.lineTo(966, 71);
+path.lineTo(966, 71);
+path.lineTo(967, 73);
+path.lineTo(967, 76);
+path.lineTo(968, 80);
+path.lineTo(968, 82);
+path.lineTo(969, 83);
+path.lineTo(969, 82);
+path.lineTo(970, 84);
+path.lineTo(970, 92);
+path.lineTo(971, 51);
+path.lineTo(971, 0);
+path.lineTo(972, 72);
+path.lineTo(972, 85);
+path.lineTo(973, 80);
+path.lineTo(973, 75);
+path.lineTo(974, 78);
+path.lineTo(974, 77);
+path.lineTo(975, 76);
+path.lineTo(975, 72);
+path.lineTo(976, 70);
+path.lineTo(976, 63);
+path.lineTo(977, 59);
+path.lineTo(977, 53);
+path.lineTo(978, 50);
+path.lineTo(978, 46);
+path.lineTo(979, 47);
+path.lineTo(979, 55);
+path.lineTo(980, 63);
+path.lineTo(980, 72);
+path.lineTo(981, 77);
+path.lineTo(981, 80);
+path.lineTo(982, 82);
+path.lineTo(982, 84);
+path.lineTo(983, 85);
+path.lineTo(983, 87);
+path.lineTo(984, 86);
+path.lineTo(984, 84);
+path.lineTo(985, 85);
+path.lineTo(985, 85);
+path.lineTo(986, 84);
+path.lineTo(986, 83);
+path.lineTo(987, 83);
+path.lineTo(987, 83);
+path.lineTo(988, 84);
+path.lineTo(988, 82);
+path.lineTo(989, 82);
+path.lineTo(989, 83);
+path.lineTo(990, 83);
+path.lineTo(990, 82);
+path.lineTo(991, 82);
+path.lineTo(991, 82);
+path.lineTo(992, 84);
+path.lineTo(992, 81);
+path.lineTo(993, 84);
+path.lineTo(993, 81);
+path.lineTo(994, 83);
+path.lineTo(994, 82);
+path.lineTo(995, 82);
+path.lineTo(995, 83);
+path.lineTo(996, 82);
+path.lineTo(996, 82);
+path.lineTo(997, 81);
+path.lineTo(997, 81);
+path.lineTo(998, 80);
+path.lineTo(999, 80);
+path.lineTo(999, 78);
+path.lineTo(1000, 76);
+path.lineTo(1000, 71);
+path.lineTo(1001, 73);
+path.lineTo(1001, 76);
+path.lineTo(1002, 80);
+path.lineTo(1002, 82);
+path.lineTo(1003, 83);
+path.lineTo(1003, 82);
+path.lineTo(1004, 84);
+path.lineTo(1004, 92);
+path.lineTo(1005, 51);
+path.lineTo(1005, 0);
+path.lineTo(1006, 72);
+path.lineTo(1006, 85);
+path.lineTo(1007, 80);
+path.lineTo(1007, 75);
+path.lineTo(1008, 78);
+path.lineTo(1008, 77);
+path.lineTo(1009, 76);
+path.lineTo(1009, 72);
+path.lineTo(1010, 70);
+path.lineTo(1010, 63);
+path.lineTo(1011, 59);
+path.lineTo(1011, 56);
+path.lineTo(1012, 50);
+path.lineTo(1012, 48);
+path.lineTo(1013, 46);
+path.lineTo(1013, 55);
+path.lineTo(1014, 63);
+path.lineTo(1014, 68);
+path.lineTo(1015, 77);
+path.lineTo(1015, 78);
+path.lineTo(1016, 82);
+path.lineTo(1016, 83);
+path.lineTo(1017, 85);
+path.lineTo(1017, 87);
+path.lineTo(1018, 84);
+path.lineTo(1018, 85);
+path.lineTo(1019, 84);
+path.lineTo(1019, 84);
+path.lineTo(1020, 85);
+path.lineTo(1020, 84);
+path.lineTo(1021, 83);
+path.lineTo(1021, 83);
+path.lineTo(1022, 84);
+path.lineTo(1022, 84);
+path.lineTo(1023, 82);
+path.lineTo(1023, 83);
+path.lineTo(1024, 82);
+path.lineTo(1024, 82);
+path.lineTo(1025, 83);
+path.lineTo(1025, 82);
+path.lineTo(1026, 84);
+path.lineTo(1026, 81);
+path.lineTo(1027, 84);
+path.lineTo(1027, 81);
+path.lineTo(1028, 83);
+path.lineTo(1028, 82);
+path.lineTo(1029, 82);
+path.lineTo(1029, 83);
+path.lineTo(1030, 82);
+path.lineTo(1030, 82);
+path.lineTo(1031, 81);
+path.lineTo(1031, 82);
+path.lineTo(1032, 82);
+path.lineTo(1032, 80);
+path.lineTo(1033, 78);
+path.lineTo(1033, 76);
+path.lineTo(1034, 71);
+path.lineTo(1034, 73);
+path.lineTo(1035, 75);
+path.lineTo(1035, 80);
+path.lineTo(1036, 82);
+path.lineTo(1036, 83);
+path.lineTo(1037, 83);
+path.lineTo(1037, 84);
+path.lineTo(1038, 92);
+path.lineTo(1038, 51);
+path.lineTo(1039, 0);
+path.lineTo(1039, 72);
+path.lineTo(1040, 85);
+path.lineTo(1041, 80);
+path.lineTo(1041, 75);
+path.lineTo(1042, 78);
+path.lineTo(1042, 77);
+path.lineTo(1043, 76);
+path.lineTo(1043, 75);
+path.lineTo(1044, 70);
+path.lineTo(1044, 65);
+path.lineTo(1045, 59);
+path.lineTo(1045, 56);
+path.lineTo(1046, 50);
+path.lineTo(1046, 48);
+path.lineTo(1047, 46);
+path.lineTo(1047, 50);
+path.lineTo(1048, 63);
+path.lineTo(1048, 68);
+path.lineTo(1049, 77);
+path.lineTo(1049, 78);
+path.lineTo(1050, 82);
+path.lineTo(1050, 83);
+path.lineTo(1051, 85);
+path.lineTo(1051, 87);
+path.lineTo(1052, 84);
+path.lineTo(1052, 85);
+path.lineTo(1053, 84);
+path.lineTo(1053, 85);
+path.lineTo(1054, 84);
+path.lineTo(1054, 83);
+path.lineTo(1055, 83);
+path.lineTo(1055, 83);
+path.lineTo(1056, 83);
+path.lineTo(1056, 84);
+path.lineTo(1057, 82);
+path.lineTo(1057, 82);
+path.lineTo(1058, 83);
+path.lineTo(1058, 82);
+path.lineTo(1059, 83);
+path.lineTo(1059, 82);
+path.lineTo(1060, 84);
+path.lineTo(1060, 81);
+path.lineTo(1061, 84);
+path.lineTo(1061, 81);
+path.lineTo(1062, 81);
+path.lineTo(1062, 83);
+path.lineTo(1063, 82);
+path.lineTo(1063, 83);
+path.lineTo(1064, 82);
+path.lineTo(1064, 83);
+path.lineTo(1065, 81);
+path.lineTo(1065, 82);
+path.lineTo(1066, 82);
+path.lineTo(1066, 80);
+path.lineTo(1067, 78);
+path.lineTo(1067, 76);
+path.lineTo(1068, 71);
+path.lineTo(1068, 73);
+path.lineTo(1069, 75);
+path.lineTo(1069, 80);
+path.lineTo(1070, 82);
+path.lineTo(1070, 83);
+path.lineTo(1071, 83);
+path.lineTo(1071, 84);
+path.lineTo(1072, 92);
+path.lineTo(1072, 51);
+path.lineTo(1073, 0);
+path.lineTo(1073, 72);
+path.lineTo(1074, 85);
+path.lineTo(1074, 80);
+path.lineTo(1075, 75);
+path.lineTo(1075, 78);
+path.lineTo(1076, 77);
+path.lineTo(1076, 76);
+path.lineTo(1077, 75);
+path.lineTo(1077, 70);
+path.lineTo(1078, 65);
+path.lineTo(1078, 59);
+path.lineTo(1079, 56);
+path.lineTo(1079, 53);
+path.lineTo(1080, 48);
+path.lineTo(1080, 46);
+path.lineTo(1081, 50);
+path.lineTo(1081, 55);
+path.lineTo(1082, 68);
+path.lineTo(1082, 72);
+path.lineTo(1083, 78);
+path.lineTo(1084, 80);
+path.lineTo(1084, 83);
+path.lineTo(1085, 84);
+path.lineTo(1085, 87);
+path.lineTo(1086, 84);
+path.lineTo(1086, 86);
+path.lineTo(1087, 84);
+path.lineTo(1087, 85);
+path.lineTo(1088, 85);
+path.lineTo(1088, 83);
+path.lineTo(1089, 83);
+path.lineTo(1089, 83);
+path.lineTo(1090, 83);
+path.lineTo(1090, 84);
+path.lineTo(1091, 82);
+path.lineTo(1091, 82);
+path.lineTo(1092, 83);
+path.lineTo(1093, 83);
+path.lineTo(1093, 82);
+path.lineTo(1094, 84);
+path.lineTo(1094, 81);
+path.lineTo(1095, 84);
+path.lineTo(1095, 81);
+path.lineTo(1096, 81);
+path.lineTo(1096, 83);
+path.lineTo(1097, 82);
+path.lineTo(1097, 83);
+path.lineTo(1098, 82);
+path.lineTo(1098, 83);
+path.lineTo(1099, 81);
+path.lineTo(1099, 82);
+path.lineTo(1100, 82);
+path.lineTo(1100, 80);
+path.lineTo(1101, 78);
+path.lineTo(1101, 76);
+path.lineTo(1102, 71);
+path.lineTo(1102, 73);
+path.lineTo(1103, 75);
+path.lineTo(1103, 80);
+path.lineTo(1104, 82);
+path.lineTo(1104, 83);
+path.lineTo(1105, 83);
+path.lineTo(1105, 84);
+path.lineTo(1106, 92);
+path.lineTo(1106, 92);
+path.lineTo(1107, 0);
+path.lineTo(1107, 20);
+path.lineTo(1108, 85);
+path.lineTo(1108, 84);
+path.lineTo(1109, 75);
+path.lineTo(1109, 78);
+path.lineTo(1110, 77);
+path.lineTo(1110, 77);
+path.lineTo(1111, 75);
+path.lineTo(1111, 72);
+path.lineTo(1112, 65);
+path.lineTo(1112, 63);
+path.lineTo(1113, 56);
+path.lineTo(1113, 53);
+path.lineTo(1114, 48);
+path.lineTo(1114, 46);
+path.lineTo(1115, 50);
+path.lineTo(1115, 55);
+path.lineTo(1116, 68);
+path.lineTo(1116, 72);
+path.lineTo(1117, 78);
+path.lineTo(1117, 80);
+path.lineTo(1118, 83);
+path.lineTo(1118, 84);
+path.lineTo(1119, 87);
+path.lineTo(1119, 84);
+path.lineTo(1120, 86);
+path.lineTo(1120, 84);
+path.lineTo(1121, 85);
+path.lineTo(1121, 85);
+path.lineTo(1122, 83);
+path.lineTo(1122, 83);
+path.lineTo(1123, 83);
+path.lineTo(1123, 83);
+path.lineTo(1124, 84);
+path.lineTo(1124, 82);
+path.lineTo(1125, 82);
+path.lineTo(1125, 83);
+path.lineTo(1126, 83);
+path.lineTo(1127, 82);
+path.lineTo(1127, 82);
+path.lineTo(1128, 84);
+path.lineTo(1128, 82);
+path.lineTo(1129, 84);
+path.lineTo(1129, 83);
+path.lineTo(1130, 81);
+path.lineTo(1130, 83);
+path.lineTo(1131, 82);
+path.lineTo(1131, 82);
+path.lineTo(1132, 83);
+path.lineTo(1132, 83);
+path.lineTo(1133, 81);
+path.lineTo(1133, 82);
+path.lineTo(1134, 81);
+path.lineTo(1134, 80);
+path.lineTo(1135, 78);
+path.lineTo(1135, 78);
+path.lineTo(1136, 71);
+path.lineTo(1136, 71);
+path.lineTo(1137, 75);
+path.lineTo(1137, 76);
+path.lineTo(1138, 82);
+path.lineTo(1138, 81);
+path.lineTo(1139, 83);
+path.lineTo(1139, 82);
+path.lineTo(1140, 92);
+path.lineTo(1140, 92);
+path.lineTo(1141, 0);
+path.lineTo(1141, 20);
+path.lineTo(1142, 85);
+path.lineTo(1142, 84);
+path.lineTo(1143, 75);
+path.lineTo(1143, 78);
+path.lineTo(1144, 77);
+path.lineTo(1144, 77);
+path.lineTo(1145, 75);
+path.lineTo(1145, 72);
+path.lineTo(1146, 70);
+path.lineTo(1146, 63);
+path.lineTo(1147, 56);
+path.lineTo(1147, 53);
+path.lineTo(1148, 50);
+path.lineTo(1148, 46);
+path.lineTo(1149, 47);
+path.lineTo(1149, 55);
+path.lineTo(1150, 63);
+path.lineTo(1150, 72);
+path.lineTo(1151, 77);
+path.lineTo(1151, 80);
+path.lineTo(1152, 82);
+path.lineTo(1152, 84);
+path.lineTo(1153, 85);
+path.lineTo(1153, 87);
+path.lineTo(1154, 86);
+path.lineTo(1154, 84);
+path.lineTo(1155, 85);
+path.lineTo(1155, 85);
+path.lineTo(1156, 84);
+path.lineTo(1156, 83);
+path.lineTo(1157, 83);
+path.lineTo(1157, 83);
+path.lineTo(1158, 84);
+path.lineTo(1158, 82);
+path.lineTo(1159, 82);
+path.lineTo(1159, 83);
+path.lineTo(1160, 83);
+path.lineTo(1160, 82);
+path.lineTo(1161, 82);
+path.lineTo(1161, 84);
+path.lineTo(1162, 82);
+path.lineTo(1162, 84);
+path.lineTo(1163, 83);
+path.lineTo(1163, 81);
+path.lineTo(1164, 83);
+path.lineTo(1164, 82);
+path.lineTo(1165, 82);
+path.lineTo(1165, 83);
+path.lineTo(1166, 83);
+path.lineTo(1166, 81);
+path.lineTo(1167, 82);
+path.lineTo(1167, 81);
+path.lineTo(1168, 80);
+path.lineTo(1169, 78);
+path.lineTo(1169, 78);
+path.lineTo(1170, 71);
+path.lineTo(1170, 71);
+path.lineTo(1171, 75);
+path.lineTo(1171, 76);
+path.lineTo(1172, 82);
+path.lineTo(1172, 81);
+path.lineTo(1173, 83);
+path.lineTo(1173, 82);
+path.lineTo(1174, 84);
+path.lineTo(1174, 92);
+path.lineTo(1175, 51);
+path.lineTo(1175, 0);
+path.lineTo(1176, 72);
+path.lineTo(1176, 85);
+path.lineTo(1177, 80);
+path.lineTo(1177, 75);
+path.lineTo(1178, 78);
+path.lineTo(1178, 77);
+path.lineTo(1179, 76);
+path.lineTo(1179, 72);
+path.lineTo(1180, 70);
+path.lineTo(1180, 63);
+path.lineTo(1181, 59);
+path.lineTo(1181, 53);
+path.lineTo(1182, 50);
+path.lineTo(1182, 46);
+path.lineTo(1183, 47);
+path.lineTo(1183, 55);
+path.lineTo(1184, 63);
+path.lineTo(1184, 72);
+path.lineTo(1185, 77);
+path.lineTo(1185, 80);
+path.lineTo(1186, 82);
+path.lineTo(1186, 84);
+path.lineTo(1187, 85);
+path.lineTo(1187, 87);
+path.lineTo(1188, 86);
+path.lineTo(1188, 84);
+path.lineTo(1189, 85);
+path.lineTo(1189, 85);
+path.lineTo(1190, 84);
+path.lineTo(1190, 83);
+path.lineTo(1191, 83);
+path.lineTo(1191, 83);
+path.lineTo(1192, 84);
+path.lineTo(1192, 84);
+path.lineTo(1193, 82);
+path.lineTo(1193, 83);
+path.lineTo(1194, 82);
+path.lineTo(1194, 82);
+path.lineTo(1195, 83);
+path.lineTo(1195, 82);
+path.lineTo(1196, 84);
+path.lineTo(1196, 81);
+path.lineTo(1197, 84);
+path.lineTo(1197, 81);
+path.lineTo(1198, 83);
+path.lineTo(1198, 82);
+path.lineTo(1199, 82);
+path.lineTo(1199, 83);
+path.lineTo(1200, 82);
+path.lineTo(1200, 82);
+path.lineTo(1201, 81);
+path.lineTo(1201, 81);
+path.lineTo(1202, 80);
+path.lineTo(1202, 80);
+path.lineTo(1203, 78);
+path.lineTo(1203, 76);
+path.lineTo(1204, 71);
+path.lineTo(1204, 73);
+path.lineTo(1205, 76);
+path.lineTo(1206, 81);
+path.lineTo(1206, 83);
+path.lineTo(1207, 82);
+path.lineTo(1207, 84);
+path.lineTo(1208, 92);
+path.lineTo(1208, 51);
+path.lineTo(1209, 0);
+path.lineTo(1209, 72);
+path.lineTo(1210, 85);
+path.lineTo(1210, 80);
+path.lineTo(1211, 75);
+path.lineTo(1212, 78);
+path.lineTo(1212, 77);
+path.lineTo(1213, 76);
+path.lineTo(1213, 72);
+path.lineTo(1214, 70);
+path.lineTo(1214, 65);
+path.lineTo(1215, 59);
+path.lineTo(1215, 56);
+path.lineTo(1216, 50);
+path.lineTo(1216, 48);
+path.lineTo(1217, 46);
+path.lineTo(1217, 50);
+path.lineTo(1218, 63);
+path.lineTo(1218, 68);
+path.lineTo(1219, 77);
+path.lineTo(1219, 78);
+path.lineTo(1220, 82);
+path.lineTo(1220, 83);
+path.lineTo(1221, 85);
+path.lineTo(1221, 87);
+path.lineTo(1222, 84);
+path.lineTo(1222, 85);
+path.lineTo(1223, 84);
+path.lineTo(1223, 84);
+path.lineTo(1224, 84);
+path.lineTo(1224, 83);
+path.lineTo(1225, 83);
+path.lineTo(1225, 83);
+path.lineTo(1226, 84);
+path.lineTo(1226, 84);
+path.lineTo(1227, 82);
+path.lineTo(1227, 83);
+path.lineTo(1228, 82);
+path.lineTo(1228, 82);
+path.lineTo(1229, 83);
+path.lineTo(1229, 82);
+path.lineTo(1230, 84);
+path.lineTo(1230, 81);
+path.lineTo(1231, 84);
+path.lineTo(1231, 81);
+path.lineTo(1232, 83);
+path.lineTo(1232, 82);
+path.lineTo(1233, 82);
+path.lineTo(1233, 83);
+path.lineTo(1234, 82);
+path.lineTo(1234, 82);
+path.lineTo(1235, 81);
+path.lineTo(1235, 82);
+path.lineTo(1236, 80);
+path.lineTo(1236, 80);
+path.lineTo(1237, 78);
+path.lineTo(1237, 76);
+path.lineTo(1238, 71);
+path.lineTo(1238, 73);
+path.lineTo(1239, 75);
+path.lineTo(1239, 80);
+path.lineTo(1240, 82);
+path.lineTo(1240, 83);
+path.lineTo(1241, 83);
+path.lineTo(1241, 84);
+path.lineTo(1242, 92);
+path.lineTo(1242, 51);
+path.lineTo(1243, 0);
+path.lineTo(1243, 72);
+path.lineTo(1244, 85);
+path.lineTo(1244, 80);
+path.lineTo(1245, 75);
+path.lineTo(1245, 78);
+path.lineTo(1246, 77);
+path.lineTo(1246, 76);
+path.lineTo(1247, 75);
+path.lineTo(1247, 70);
+path.lineTo(1248, 65);
+path.lineTo(1248, 59);
+path.lineTo(1249, 56);
+path.lineTo(1249, 50);
+path.lineTo(1250, 48);
+path.lineTo(1250, 46);
+path.lineTo(1251, 50);
+path.lineTo(1251, 63);
+path.lineTo(1252, 68);
+path.lineTo(1252, 77);
+path.lineTo(1253, 78);
+path.lineTo(1253, 82);
+path.lineTo(1254, 83);
+path.lineTo(1254, 85);
+path.lineTo(1255, 87);
+path.lineTo(1256, 84);
+path.lineTo(1256, 85);
+path.lineTo(1257, 84);
+path.lineTo(1257, 84);
+path.lineTo(1258, 85);
+path.lineTo(1258, 83);
+path.lineTo(1259, 83);
+path.lineTo(1259, 83);
+path.lineTo(1260, 83);
+path.lineTo(1260, 84);
+path.lineTo(1261, 82);
+path.lineTo(1261, 82);
+path.lineTo(1262, 82);
+path.lineTo(1262, 83);
+path.lineTo(1263, 83);
+path.lineTo(1263, 82);
+path.lineTo(1264, 84);
+path.lineTo(1264, 81);
+path.lineTo(1265, 84);
+path.lineTo(1265, 81);
+path.lineTo(1266, 81);
+path.lineTo(1266, 83);
+path.lineTo(1267, 82);
+path.lineTo(1267, 83);
+path.lineTo(1268, 82);
+path.lineTo(1268, 83);
+path.lineTo(1269, 81);
+path.lineTo(1269, 82);
+path.lineTo(1270, 82);
+path.lineTo(1270, 80);
+path.lineTo(1271, 78);
+path.lineTo(1271, 76);
+path.lineTo(1272, 71);
+path.lineTo(1272, 73);
+path.lineTo(1273, 75);
+path.lineTo(1273, 80);
+path.lineTo(1274, 82);
+path.lineTo(1274, 81);
+path.lineTo(1275, 83);
+path.lineTo(1275, 82);
+path.lineTo(1276, 92);
+path.lineTo(1276, 92);
+path.lineTo(1277, 0);
+path.lineTo(1277, 20);
+path.lineTo(1278, 85);
+path.lineTo(1278, 84);
+path.lineTo(1279, 75);
+path.lineTo(1279, 78);
+path.lineTo(1280, 77);
+path.lineTo(1280, 77);
+path.lineTo(1281, 75);
+path.lineTo(1281, 72);
+path.lineTo(1282, 65);
+path.lineTo(1282, 63);
+path.lineTo(1283, 56);
+path.lineTo(1283, 53);
+path.lineTo(1284, 48);
+path.lineTo(1284, 46);
+path.lineTo(1285, 50);
+path.lineTo(1285, 55);
+path.lineTo(1286, 68);
+path.lineTo(1286, 72);
+path.lineTo(1287, 78);
+path.lineTo(1287, 80);
+path.lineTo(1288, 83);
+path.lineTo(1288, 84);
+path.lineTo(1289, 87);
+path.lineTo(1289, 84);
+path.lineTo(1290, 86);
+path.lineTo(1290, 84);
+path.lineTo(1291, 85);
+path.lineTo(1291, 85);
+path.lineTo(1292, 84);
+path.lineTo(1292, 83);
+path.lineTo(1293, 83);
+path.lineTo(1293, 83);
+path.lineTo(1294, 84);
+path.lineTo(1294, 82);
+path.lineTo(1295, 82);
+path.lineTo(1295, 83);
+path.lineTo(1296, 83);
+path.lineTo(1296, 82);
+path.lineTo(1297, 82);
+path.lineTo(1297, 84);
+path.lineTo(1298, 82);
+path.lineTo(1299, 84);
+path.lineTo(1299, 83);
+path.lineTo(1300, 81);
+path.lineTo(1300, 83);
+path.lineTo(1301, 82);
+path.lineTo(1301, 82);
+path.lineTo(1302, 83);
+path.lineTo(1302, 83);
+path.lineTo(1303, 81);
+path.lineTo(1303, 82);
+path.lineTo(1304, 81);
+path.lineTo(1304, 80);
+path.lineTo(1305, 78);
+path.lineTo(1305, 78);
+path.lineTo(1306, 71);
+path.lineTo(1306, 71);
+path.lineTo(1307, 75);
+path.lineTo(1307, 76);
+path.lineTo(1308, 82);
+path.lineTo(1308, 81);
+path.lineTo(1309, 83);
+path.lineTo(1309, 82);
+path.lineTo(1310, 92);
+path.lineTo(1310, 92);
+path.lineTo(1311, 0);
+path.lineTo(1311, 20);
+path.lineTo(1312, 85);
+path.lineTo(1312, 84);
+path.lineTo(1313, 80);
+path.lineTo(1313, 75);
+path.lineTo(1314, 78);
+path.lineTo(1314, 77);
+path.lineTo(1315, 76);
+path.lineTo(1315, 72);
+path.lineTo(1316, 70);
+path.lineTo(1316, 63);
+path.lineTo(1317, 59);
+path.lineTo(1317, 53);
+path.lineTo(1318, 50);
+path.lineTo(1318, 46);
+path.lineTo(1319, 47);
+path.lineTo(1319, 55);
+path.lineTo(1320, 63);
+path.lineTo(1320, 72);
+path.lineTo(1321, 77);
+path.lineTo(1321, 80);
+path.lineTo(1322, 82);
+path.lineTo(1322, 84);
+path.lineTo(1323, 85);
+path.lineTo(1323, 87);
+path.lineTo(1324, 84);
+path.lineTo(1325, 85);
+path.lineTo(1325, 85);
+path.lineTo(1326, 84);
+path.lineTo(1326, 83);
+path.lineTo(1327, 83);
+path.lineTo(1327, 83);
+path.lineTo(1328, 84);
+path.lineTo(1328, 82);
+path.lineTo(1329, 82);
+path.lineTo(1329, 83);
+path.lineTo(1330, 82);
+path.lineTo(1330, 83);
+path.lineTo(1331, 82);
+path.lineTo(1331, 84);
+path.lineTo(1332, 82);
+path.lineTo(1332, 84);
+path.lineTo(1333, 83);
+path.lineTo(1333, 81);
+path.lineTo(1334, 83);
+path.lineTo(1334, 82);
+path.lineTo(1335, 82);
+path.lineTo(1335, 83);
+path.lineTo(1336, 82);
+path.lineTo(1336, 82);
+path.lineTo(1337, 81);
+path.lineTo(1337, 81);
+path.lineTo(1338, 80);
+path.lineTo(1338, 80);
+path.lineTo(1339, 78);
+path.lineTo(1339, 76);
+path.lineTo(1340, 71);
+path.lineTo(1340, 73);
+path.lineTo(1341, 76);
+path.lineTo(1341, 80);
+path.lineTo(1342, 82);
+path.lineTo(1343, 83);
+path.lineTo(1343, 82);
+path.lineTo(1344, 84);
+path.lineTo(1344, 92);
+path.lineTo(1345, 51);
+path.lineTo(1345, 0);
+path.lineTo(1346, 72);
+path.lineTo(1346, 85);
+path.lineTo(1347, 80);
+path.lineTo(1347, 75);
+path.lineTo(1348, 78);
+path.lineTo(1348, 77);
+path.lineTo(1349, 76);
+path.lineTo(1349, 72);
+path.lineTo(1350, 70);
+path.lineTo(1350, 63);
+path.lineTo(1351, 59);
+path.lineTo(1351, 53);
+path.lineTo(1352, 50);
+path.lineTo(1352, 46);
+path.lineTo(1353, 47);
+path.lineTo(1353, 55);
+path.lineTo(1354, 63);
+path.lineTo(1354, 72);
+path.lineTo(1355, 77);
+path.lineTo(1355, 80);
+path.lineTo(1356, 82);
+path.lineTo(1356, 84);
+path.lineTo(1357, 85);
+path.lineTo(1357, 87);
+path.lineTo(1358, 86);
+path.lineTo(1358, 84);
+path.lineTo(1359, 85);
+path.lineTo(1359, 85);
+path.lineTo(1360, 84);
+path.lineTo(1360, 83);
+path.lineTo(1361, 83);
+path.lineTo(1361, 83);
+path.lineTo(1362, 84);
+path.lineTo(1362, 84);
+path.lineTo(1363, 82);
+path.lineTo(1363, 83);
+path.lineTo(1364, 82);
+path.lineTo(1364, 82);
+path.lineTo(1365, 83);
+path.lineTo(1365, 82);
+path.lineTo(1366, 84);
+path.lineTo(1366, 81);
+path.lineTo(1367, 84);
+path.lineTo(1367, 81);
+path.lineTo(1368, 83);
+path.lineTo(1368, 82);
+path.lineTo(1369, 82);
+path.lineTo(1369, 83);
+path.lineTo(1370, 82);
+path.lineTo(1370, 82);
+path.lineTo(1371, 81);
+path.lineTo(1371, 81);
+path.lineTo(1372, 80);
+path.lineTo(1372, 80);
+path.lineTo(1373, 78);
+path.lineTo(1373, 76);
+path.lineTo(1374, 71);
+path.lineTo(1374, 73);
+path.lineTo(1375, 76);
+path.lineTo(1375, 80);
+path.lineTo(1376, 82);
+path.lineTo(1376, 83);
+path.lineTo(1377, 82);
+path.lineTo(1377, 84);
+path.lineTo(1378, 92);
+path.lineTo(1378, 51);
+path.lineTo(1379, 0);
+path.lineTo(1379, 72);
+path.lineTo(1380, 85);
+path.lineTo(1380, 80);
+path.lineTo(1381, 75);
+path.lineTo(1381, 78);
+path.lineTo(1382, 77);
+path.lineTo(1382, 76);
+path.lineTo(1383, 75);
+path.lineTo(1383, 70);
+path.lineTo(1384, 65);
+path.lineTo(1384, 59);
+path.lineTo(1385, 56);
+path.lineTo(1386, 50);
+path.lineTo(1386, 48);
+path.lineTo(1387, 46);
+path.lineTo(1387, 50);
+path.lineTo(1388, 63);
+path.lineTo(1388, 68);
+path.lineTo(1389, 77);
+path.lineTo(1389, 78);
+path.lineTo(1390, 82);
+path.lineTo(1390, 83);
+path.lineTo(1391, 85);
+path.lineTo(1391, 87);
+path.lineTo(1392, 84);
+path.lineTo(1392, 85);
+path.lineTo(1393, 84);
+path.lineTo(1393, 84);
+path.lineTo(1394, 84);
+path.lineTo(1394, 83);
+path.lineTo(1395, 83);
+path.lineTo(1395, 83);
+path.lineTo(1396, 84);
+path.lineTo(1396, 84);
+path.lineTo(1397, 82);
+path.lineTo(1397, 83);
+path.lineTo(1398, 82);
+path.lineTo(1398, 82);
+path.lineTo(1399, 83);
+path.lineTo(1399, 82);
+path.lineTo(1400, 84);
+path.lineTo(1400, 81);
+path.lineTo(1401, 84);
+path.lineTo(1401, 81);
+path.lineTo(1402, 81);
+path.lineTo(1402, 83);
+path.lineTo(1403, 82);
+path.lineTo(1403, 83);
+path.lineTo(1404, 82);
+path.lineTo(1404, 83);
+path.lineTo(1405, 81);
+path.lineTo(1405, 82);
+path.lineTo(1406, 82);
+path.lineTo(1406, 80);
+path.lineTo(1407, 78);
+path.lineTo(1407, 76);
+path.lineTo(1408, 71);
+path.lineTo(1408, 73);
+path.lineTo(1409, 75);
+path.lineTo(1409, 80);
+path.lineTo(1410, 82);
+path.lineTo(1410, 83);
+path.lineTo(1411, 83);
+path.lineTo(1411, 84);
+path.lineTo(1412, 92);
+path.lineTo(1412, 51);
+path.lineTo(1413, 0);
+path.lineTo(1413, 72);
+path.lineTo(1414, 85);
+path.lineTo(1414, 80);
+path.lineTo(1415, 75);
+path.lineTo(1415, 78);
+path.lineTo(1416, 77);
+path.lineTo(1416, 76);
+path.lineTo(1417, 75);
+path.lineTo(1417, 70);
+path.lineTo(1418, 65);
+path.lineTo(1418, 59);
+path.lineTo(1419, 56);
+path.lineTo(1419, 50);
+path.lineTo(1420, 48);
+path.lineTo(1420, 46);
+path.lineTo(1421, 50);
+path.lineTo(1421, 63);
+path.lineTo(1422, 68);
+path.lineTo(1422, 77);
+path.lineTo(1423, 78);
+path.lineTo(1423, 82);
+path.lineTo(1424, 83);
+path.lineTo(1424, 85);
+path.lineTo(1425, 87);
+path.lineTo(1425, 84);
+path.lineTo(1426, 86);
+path.lineTo(1426, 84);
+path.lineTo(1427, 84);
+path.lineTo(1427, 85);
+path.lineTo(1428, 83);
+path.lineTo(1429, 83);
+path.lineTo(1429, 83);
+path.lineTo(1430, 83);
+path.lineTo(1430, 84);
+path.lineTo(1431, 82);
+path.lineTo(1431, 82);
+path.lineTo(1432, 82);
+path.lineTo(1432, 83);
+path.lineTo(1433, 83);
+path.lineTo(1433, 82);
+path.lineTo(1434, 84);
+path.lineTo(1434, 81);
+path.lineTo(1435, 84);
+path.lineTo(1435, 81);
+path.lineTo(1436, 81);
+path.lineTo(1436, 83);
+path.lineTo(1437, 82);
+path.lineTo(1437, 83);
+path.lineTo(1438, 82);
+path.lineTo(1438, 83);
+path.lineTo(1439, 81);
+path.lineTo(1439, 82);
+path.lineTo(1440, 82);
+path.lineTo(1440, 80);
+path.lineTo(1441, 78);
+path.lineTo(1441, 76);
+path.lineTo(1442, 71);
+path.lineTo(1442, 73);
+path.lineTo(1443, 75);
+path.lineTo(1443, 80);
+path.lineTo(1444, 82);
+path.lineTo(1445, 83);
+path.lineTo(1445, 82);
+path.lineTo(1446, 92);
+path.lineTo(1446, 92);
+path.lineTo(1447, 0);
+path.lineTo(1447, 72);
+path.lineTo(1448, 85);
+path.lineTo(1448, 84);
+path.lineTo(1449, 75);
+path.lineTo(1449, 78);
+path.lineTo(1450, 77);
+path.lineTo(1450, 77);
+path.lineTo(1451, 75);
+path.lineTo(1451, 72);
+path.lineTo(1452, 65);
+path.lineTo(1452, 63);
+path.lineTo(1453, 56);
+path.lineTo(1453, 53);
+path.lineTo(1454, 48);
+path.lineTo(1454, 46);
+path.lineTo(1455, 50);
+path.lineTo(1455, 55);
+path.lineTo(1456, 68);
+path.lineTo(1456, 72);
+path.lineTo(1457, 78);
+path.lineTo(1457, 80);
+path.lineTo(1458, 83);
+path.lineTo(1458, 84);
+path.lineTo(1459, 87);
+path.lineTo(1459, 84);
+path.lineTo(1460, 86);
+path.lineTo(1460, 84);
+path.lineTo(1461, 85);
+path.lineTo(1461, 85);
+path.lineTo(1462, 83);
+path.lineTo(1462, 83);
+path.lineTo(1463, 83);
+path.lineTo(1463, 83);
+path.lineTo(1464, 84);
+path.lineTo(1464, 82);
+path.lineTo(1465, 82);
+path.lineTo(1465, 82);
+path.lineTo(1466, 83);
+path.lineTo(1466, 82);
+path.lineTo(1467, 82);
+path.lineTo(1467, 84);
+path.lineTo(1468, 81);
+path.lineTo(1468, 84);
+path.lineTo(1469, 81);
+path.lineTo(1470, 83);
+path.lineTo(1470, 82);
+path.lineTo(1471, 83);
+path.lineTo(1472, 82);
+path.lineTo(1472, 83);
+path.lineTo(1473, 81);
+path.lineTo(1473, 82);
+path.lineTo(1474, 81);
+path.lineTo(1474, 80);
+path.lineTo(1475, 78);
+path.lineTo(1475, 78);
+path.lineTo(1476, 71);
+path.lineTo(1476, 71);
+path.lineTo(1477, 75);
+path.lineTo(1477, 76);
+path.lineTo(1478, 82);
+path.lineTo(1478, 81);
+path.lineTo(1479, 83);
+path.lineTo(1479, 82);
+path.lineTo(1480, 92);
+path.lineTo(1480, 92);
+path.lineTo(1481, 0);
+path.lineTo(1481, 20);
+path.lineTo(1482, 85);
+path.lineTo(1482, 84);
+path.lineTo(1483, 75);
+path.lineTo(1483, 78);
+path.lineTo(1484, 77);
+path.lineTo(1484, 77);
+path.lineTo(1485, 75);
+path.lineTo(1485, 72);
+path.lineTo(1486, 65);
+path.lineTo(1486, 63);
+path.lineTo(1487, 56);
+path.lineTo(1487, 53);
+path.lineTo(1488, 48);
+path.lineTo(1488, 46);
+path.lineTo(1489, 50);
+path.lineTo(1489, 55);
+path.lineTo(1490, 68);
+path.lineTo(1490, 72);
+path.lineTo(1491, 78);
+path.lineTo(1491, 80);
+path.lineTo(1492, 83);
+path.lineTo(1492, 84);
+path.lineTo(1493, 87);
+path.lineTo(1493, 84);
+path.lineTo(1494, 86);
+path.lineTo(1494, 84);
+path.lineTo(1495, 85);
+path.lineTo(1495, 85);
+path.lineTo(1496, 84);
+path.lineTo(1496, 83);
+path.lineTo(1497, 83);
+path.lineTo(1497, 83);
+path.lineTo(1498, 84);
+path.lineTo(1498, 82);
+path.lineTo(1499, 82);
+path.lineTo(1499, 83);
+path.lineTo(1500, 83);
+path.lineTo(1500, 82);
+path.lineTo(1501, 82);
+path.lineTo(1501, 84);
+path.lineTo(1502, 82);
+path.lineTo(1502, 84);
+path.lineTo(1503, 83);
+path.lineTo(1503, 81);
+path.lineTo(1504, 83);
+path.lineTo(1504, 82);
+path.lineTo(1505, 82);
+path.lineTo(1505, 83);
+path.lineTo(1506, 83);
+path.lineTo(1506, 81);
+path.lineTo(1507, 82);
+path.lineTo(1507, 81);
+path.lineTo(1508, 80);
+path.lineTo(1508, 78);
+path.lineTo(1509, 78);
+path.lineTo(1509, 71);
+path.lineTo(1510, 71);
+path.lineTo(1511, 76);
--- /dev/null
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+// Auto-generated by create_test_font.cpp
+
+static SkTestFontData gTestFonts[] = {
+ { LiberationMonoNormalPoints, LiberationMonoNormalVerbs, LiberationMonoNormalCharCodes,
+ LiberationMonoNormalCharCodesCount, LiberationMonoNormalWidths,
+ LiberationMonoNormalMetrics, "Toy Liberation Mono", SkTypeface::kNormal, nullptr
+ },
+ { LiberationMonoBoldPoints, LiberationMonoBoldVerbs, LiberationMonoBoldCharCodes,
+ LiberationMonoBoldCharCodesCount, LiberationMonoBoldWidths,
+ LiberationMonoBoldMetrics, "Toy Liberation Mono", SkTypeface::kBold, nullptr
+ },
+ { LiberationMonoItalicPoints, LiberationMonoItalicVerbs, LiberationMonoItalicCharCodes,
+ LiberationMonoItalicCharCodesCount, LiberationMonoItalicWidths,
+ LiberationMonoItalicMetrics, "Toy Liberation Mono", SkTypeface::kItalic, nullptr
+ },
+ { LiberationMonoBoldItalicPoints, LiberationMonoBoldItalicVerbs, LiberationMonoBoldItalicCharCodes,
+ LiberationMonoBoldItalicCharCodesCount, LiberationMonoBoldItalicWidths,
+ LiberationMonoBoldItalicMetrics, "Toy Liberation Mono", SkTypeface::kBoldItalic, nullptr
+ },
+ { LiberationSansNormalPoints, LiberationSansNormalVerbs, LiberationSansNormalCharCodes,
+ LiberationSansNormalCharCodesCount, LiberationSansNormalWidths,
+ LiberationSansNormalMetrics, "Toy Liberation Sans", SkTypeface::kNormal, nullptr
+ },
+ { LiberationSansBoldPoints, LiberationSansBoldVerbs, LiberationSansBoldCharCodes,
+ LiberationSansBoldCharCodesCount, LiberationSansBoldWidths,
+ LiberationSansBoldMetrics, "Toy Liberation Sans", SkTypeface::kBold, nullptr
+ },
+ { LiberationSansItalicPoints, LiberationSansItalicVerbs, LiberationSansItalicCharCodes,
+ LiberationSansItalicCharCodesCount, LiberationSansItalicWidths,
+ LiberationSansItalicMetrics, "Toy Liberation Sans", SkTypeface::kItalic, nullptr
+ },
+ { LiberationSansBoldItalicPoints, LiberationSansBoldItalicVerbs, LiberationSansBoldItalicCharCodes,
+ LiberationSansBoldItalicCharCodesCount, LiberationSansBoldItalicWidths,
+ LiberationSansBoldItalicMetrics, "Toy Liberation Sans", SkTypeface::kBoldItalic, nullptr
+ },
+ { LiberationSerifNormalPoints, LiberationSerifNormalVerbs, LiberationSerifNormalCharCodes,
+ LiberationSerifNormalCharCodesCount, LiberationSerifNormalWidths,
+ LiberationSerifNormalMetrics, "Toy Liberation Serif", SkTypeface::kNormal, nullptr
+ },
+ { LiberationSerifBoldPoints, LiberationSerifBoldVerbs, LiberationSerifBoldCharCodes,
+ LiberationSerifBoldCharCodesCount, LiberationSerifBoldWidths,
+ LiberationSerifBoldMetrics, "Toy Liberation Serif", SkTypeface::kBold, nullptr
+ },
+ { LiberationSerifItalicPoints, LiberationSerifItalicVerbs, LiberationSerifItalicCharCodes,
+ LiberationSerifItalicCharCodesCount, LiberationSerifItalicWidths,
+ LiberationSerifItalicMetrics, "Toy Liberation Serif", SkTypeface::kItalic, nullptr
+ },
+ { LiberationSerifBoldItalicPoints, LiberationSerifBoldItalicVerbs, LiberationSerifBoldItalicCharCodes,
+ LiberationSerifBoldItalicCharCodesCount, LiberationSerifBoldItalicWidths,
+ LiberationSerifBoldItalicMetrics, "Toy Liberation Serif", SkTypeface::kBoldItalic, nullptr
+ },
+};
+
+const int gTestFontsCount = (int) SK_ARRAY_COUNT(gTestFonts);
+
+struct SubFont {
+ const char* fName;
+ SkFontStyle fStyle;
+ SkTestFontData& fFont;
+ const char* fFile;
+};
+
+const SubFont gSubFonts[] = {
+ { "monospace", SkFontStyle(), gTestFonts[0], "LiberationMono-Regular.ttf" },
+ { "monospace", SkFontStyle::FromOldStyle(SkTypeface::kBold), gTestFonts[1], "LiberationMono-Bold.ttf" },
+ { "monospace", SkFontStyle::FromOldStyle(SkTypeface::kItalic), gTestFonts[2], "LiberationMono-Italic.ttf" },
+ { "monospace", SkFontStyle::FromOldStyle(SkTypeface::kBoldItalic), gTestFonts[3], "LiberationMono-BoldItalic.ttf" },
+ { "sans-serif", SkFontStyle(), gTestFonts[4], "LiberationSans-Regular.ttf" },
+ { "sans-serif", SkFontStyle::FromOldStyle(SkTypeface::kBold), gTestFonts[5], "LiberationSans-Bold.ttf" },
+ { "sans-serif", SkFontStyle::FromOldStyle(SkTypeface::kItalic), gTestFonts[6], "LiberationSans-Italic.ttf" },
+ { "sans-serif", SkFontStyle::FromOldStyle(SkTypeface::kBoldItalic), gTestFonts[7], "LiberationSans-BoldItalic.ttf" },
+ { "serif", SkFontStyle(), gTestFonts[8], "LiberationSerif-Regular.ttf" },
+ { "serif", SkFontStyle::FromOldStyle(SkTypeface::kBold), gTestFonts[9], "LiberationSerif-Bold.ttf" },
+ { "serif", SkFontStyle::FromOldStyle(SkTypeface::kItalic), gTestFonts[10], "LiberationSerif-Italic.ttf" },
+ { "serif", SkFontStyle::FromOldStyle(SkTypeface::kBoldItalic), gTestFonts[11], "LiberationSerif-BoldItalic.ttf" },
+ { "Toy Liberation Mono", SkFontStyle(), gTestFonts[0], "LiberationMono-Regular.ttf" },
+ { "Toy Liberation Mono", SkFontStyle::FromOldStyle(SkTypeface::kBold), gTestFonts[1], "LiberationMono-Bold.ttf" },
+ { "Toy Liberation Mono", SkFontStyle::FromOldStyle(SkTypeface::kItalic), gTestFonts[2], "LiberationMono-Italic.ttf" },
+ { "Toy Liberation Mono", SkFontStyle::FromOldStyle(SkTypeface::kBoldItalic), gTestFonts[3], "LiberationMono-BoldItalic.ttf" },
+ { "Toy Liberation Sans", SkFontStyle(), gTestFonts[4], "LiberationSans-Regular.ttf" },
+ { "Toy Liberation Sans", SkFontStyle::FromOldStyle(SkTypeface::kBold), gTestFonts[5], "LiberationSans-Bold.ttf" },
+ { "Toy Liberation Sans", SkFontStyle::FromOldStyle(SkTypeface::kItalic), gTestFonts[6], "LiberationSans-Italic.ttf" },
+ { "Toy Liberation Sans", SkFontStyle::FromOldStyle(SkTypeface::kBoldItalic), gTestFonts[7], "LiberationSans-BoldItalic.ttf" },
+ { "Toy Liberation Serif", SkFontStyle(), gTestFonts[8], "LiberationSerif-Regular.ttf" },
+ { "Toy Liberation Serif", SkFontStyle::FromOldStyle(SkTypeface::kBold), gTestFonts[9], "LiberationSerif-Bold.ttf" },
+ { "Toy Liberation Serif", SkFontStyle::FromOldStyle(SkTypeface::kItalic), gTestFonts[10], "LiberationSerif-Italic.ttf" },
+ { "Toy Liberation Serif", SkFontStyle::FromOldStyle(SkTypeface::kBoldItalic), gTestFonts[11], "LiberationSerif-BoldItalic.ttf" },
+};
+
+const int gSubFontsCount = (int) SK_ARRAY_COUNT(gSubFonts);
+
+const int gDefaultFontIndex = 4;
--- /dev/null
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+// Auto-generated by create_test_font.cpp
+
+const SkScalar LiberationMonoNormalPoints[] = {
+0.0620117f, 0, 0.0620117f, -0.366211f, 0.437988f, -0.366211f, 0.437988f, 0, 0.375f,
+-0.304199f, 0.125f, -0.304199f, 0.125f, -0.0629883f, 0.375f, -0.0629883f, 0.336426f,
+-0.193848f, 0.26416f, -0.193848f, 0.252441f, -0.658203f, 0.348145f, -0.658203f, 0.251465f,
+0, 0.251465f, -0.0981445f, 0.346191f, -0.0981445f, 0.346191f, 0, 0.443359f, -0.412598f,
+0.374023f, -0.412598f, 0.354492f, -0.724609f, 0.463867f, -0.724609f, 0.224121f, -0.412598f,
+0.155273f, -0.412598f, 0.135254f, -0.724609f, 0.244629f, -0.724609f, 0.454102f, -0.406738f,
+0.421387f, -0.251953f, 0.54834f, -0.251953f, 0.54834f, -0.199219f, 0.410156f, -0.199219f,
+0.367188f, 0, 0.313477f, 0, 0.355469f, -0.199219f, 0.178223f, -0.199219f, 0.137207f,
+0, 0.0834961f, 0, 0.124512f, -0.199219f, 0.0263672f, -0.199219f, 0.0263672f, -0.251953f,
+0.13623f, -0.251953f, 0.168945f, -0.406738f, 0.0512695f, -0.406738f, 0.0512695f,
+-0.459473f, 0.179688f, -0.459473f, 0.223145f, -0.658691f, 0.276855f, -0.658691f,
+0.233887f, -0.459473f, 0.411133f, -0.459473f, 0.454102f, -0.658691f, 0.507812f, -0.658691f,
+0.464844f, -0.459473f, 0.567871f, -0.459473f, 0.567871f, -0.406738f, 0.224121f, -0.406738f,
+0.19043f, -0.251953f, 0.367188f, -0.251953f, 0.399902f, -0.406738f, 0.561523f, -0.185547f,
+0.561523f, -0.148926f, 0.547852f, -0.117676f, 0.53418f, -0.0864258f, 0.506348f, -0.0632324f,
+0.478516f, -0.0400391f, 0.435791f, -0.026123f, 0.393066f, -0.012207f, 0.334961f,
+-0.00976562f, 0.334961f, 0.0688477f, 0.272461f, 0.0688477f, 0.272461f, -0.00976562f,
+0.16748f, -0.0131836f, 0.108154f, -0.0583496f, 0.0488281f, -0.103516f, 0.0322266f,
+-0.185059f, 0.115234f, -0.203125f, 0.120605f, -0.176758f, 0.131592f, -0.154541f,
+0.142578f, -0.132324f, 0.161377f, -0.115723f, 0.180176f, -0.0991211f, 0.20752f, -0.0891113f,
+0.234863f, -0.0791016f, 0.272461f, -0.0771484f, 0.272461f, -0.315918f, 0.268555f,
+-0.316895f, 0.265137f, -0.317871f, 0.263184f, -0.318359f, 0.260254f, -0.319336f,
+0.258789f, -0.319824f, 0.257812f, -0.319824f, 0.233887f, -0.325684f, 0.209961f, -0.332764f,
+0.186035f, -0.339844f, 0.164551f, -0.349365f, 0.143066f, -0.358887f, 0.124512f, -0.372314f,
+0.105957f, -0.385742f, 0.0922852f, -0.403564f, 0.0786133f, -0.421387f, 0.0710449f,
+-0.445068f, 0.0634766f, -0.46875f, 0.0634766f, -0.499512f, 0.0634766f, -0.539551f,
+0.0791016f, -0.568604f, 0.0947266f, -0.597656f, 0.122559f, -0.616943f, 0.150391f,
+-0.63623f, 0.188721f, -0.645996f, 0.227051f, -0.655762f, 0.272461f, -0.657227f, 0.272461f,
+-0.720703f, 0.334961f, -0.720703f, 0.334961f, -0.657227f, 0.384766f, -0.655273f,
+0.420166f, -0.644531f, 0.455566f, -0.633789f, 0.480469f, -0.614258f, 0.505371f, -0.594727f,
+0.520996f, -0.566162f, 0.536621f, -0.537598f, 0.546387f, -0.500488f, 0.461426f, -0.484375f,
+0.456543f, -0.507812f, 0.447021f, -0.5271f, 0.4375f, -0.546387f, 0.422119f, -0.560303f,
+0.406738f, -0.574219f, 0.385254f, -0.582275f, 0.36377f, -0.590332f, 0.334961f, -0.592285f,
+0.334961f, -0.384277f, 0.363281f, -0.377441f, 0.391113f, -0.369873f, 0.418945f, -0.362305f,
+0.444092f, -0.351807f, 0.469238f, -0.341309f, 0.490723f, -0.327148f, 0.512207f, -0.312988f,
+0.528076f, -0.293213f, 0.543945f, -0.273438f, 0.552734f, -0.24707f, 0.561523f, -0.220703f,
+0.561523f, -0.185547f, 0.147461f, -0.49707f, 0.147461f, -0.470703f, 0.157227f, -0.453369f,
+0.166992f, -0.436035f, 0.183838f, -0.424561f, 0.200684f, -0.413086f, 0.223389f, -0.405762f,
+0.246094f, -0.398438f, 0.272461f, -0.391602f, 0.272461f, -0.593262f, 0.237793f, -0.591797f,
+0.213867f, -0.58374f, 0.189941f, -0.575684f, 0.175293f, -0.562744f, 0.160645f, -0.549805f,
+0.154053f, -0.532959f, 0.147461f, -0.516113f, 0.147461f, -0.49707f, 0.477539f, -0.187012f,
+0.477539f, -0.217773f, 0.46582f, -0.237549f, 0.454102f, -0.257324f, 0.43457f, -0.27002f,
+0.415039f, -0.282715f, 0.38916f, -0.290771f, 0.363281f, -0.298828f, 0.334961f, -0.306152f,
+0.334961f, -0.0761719f, 0.366699f, -0.078125f, 0.392822f, -0.0854492f, 0.418945f,
+-0.0927734f, 0.437744f, -0.106445f, 0.456543f, -0.120117f, 0.467041f, -0.140137f,
+0.477539f, -0.160156f, 0.477539f, -0.187012f, 0.10791f, 0, 0.0371094f, 0, 0.492188f,
+-0.660645f, 0.563965f, -0.660645f, 0.14209f, -0.664551f, 0.17041f, -0.664551f, 0.195557f,
+-0.656982f, 0.220703f, -0.649414f, 0.239502f, -0.630615f, 0.258301f, -0.611816f,
+0.269287f, -0.580322f, 0.280273f, -0.548828f, 0.280273f, -0.500488f, 0.280273f, -0.453613f,
+0.269287f, -0.421875f, 0.258301f, -0.390137f, 0.239258f, -0.370605f, 0.220215f, -0.351074f,
+0.194824f, -0.342529f, 0.169434f, -0.333984f, 0.140137f, -0.333984f, 0.11084f, -0.333984f,
+0.0852051f, -0.342529f, 0.0595703f, -0.351074f, 0.0405273f, -0.370361f, 0.0214844f,
+-0.389648f, 0.0107422f, -0.421631f, 0, -0.453613f, 0, -0.500488f, 0, -0.548828f,
+0.0109863f, -0.580322f, 0.0219727f, -0.611816f, 0.0410156f, -0.630615f, 0.0600586f,
+-0.649414f, 0.0859375f, -0.656982f, 0.111816f, -0.664551f, 0.14209f, -0.664551f,
+0.208496f, -0.500488f, 0.208496f, -0.532715f, 0.204102f, -0.554199f, 0.199707f, -0.575684f,
+0.191162f, -0.588623f, 0.182617f, -0.601562f, 0.170166f, -0.606689f, 0.157715f, -0.611816f,
+0.141602f, -0.611816f, 0.124512f, -0.611816f, 0.111328f, -0.606445f, 0.0981445f,
+-0.601074f, 0.0893555f, -0.588135f, 0.0805664f, -0.575195f, 0.0761719f, -0.553955f,
+0.0717773f, -0.532715f, 0.0717773f, -0.500488f, 0.0717773f, -0.469238f, 0.076416f,
+-0.447998f, 0.0810547f, -0.426758f, 0.0898438f, -0.413574f, 0.0986328f, -0.400391f,
+0.111572f, -0.394775f, 0.124512f, -0.38916f, 0.141113f, -0.38916f, 0.156738f, -0.38916f,
+0.169189f, -0.394775f, 0.181641f, -0.400391f, 0.19043f, -0.413574f, 0.199219f, -0.426758f,
+0.203857f, -0.447998f, 0.208496f, -0.469238f, 0.208496f, -0.500488f, 0.462402f, -0.324707f,
+0.490723f, -0.324707f, 0.515869f, -0.317139f, 0.541016f, -0.30957f, 0.559814f, -0.290771f,
+0.578613f, -0.271973f, 0.5896f, -0.240479f, 0.600586f, -0.208984f, 0.600586f, -0.160645f,
+0.600586f, -0.11377f, 0.5896f, -0.0820312f, 0.578613f, -0.050293f, 0.55957f, -0.0307617f,
+0.540527f, -0.0112305f, 0.515137f, -0.00268555f, 0.489746f, 0.00585938f, 0.460449f,
+0.00585938f, 0.431152f, 0.00585938f, 0.405518f, -0.00268555f, 0.379883f, -0.0112305f,
+0.36084f, -0.0305176f, 0.341797f, -0.0498047f, 0.331055f, -0.0817871f, 0.320312f,
+-0.11377f, 0.320312f, -0.160645f, 0.320312f, -0.208984f, 0.331299f, -0.240479f, 0.342285f,
+-0.271973f, 0.361328f, -0.290771f, 0.380371f, -0.30957f, 0.40625f, -0.317139f, 0.432129f,
+-0.324707f, 0.462402f, -0.324707f, 0.528809f, -0.160645f, 0.528809f, -0.192871f,
+0.524414f, -0.214355f, 0.52002f, -0.23584f, 0.511475f, -0.248779f, 0.50293f, -0.261719f,
+0.490479f, -0.266846f, 0.478027f, -0.271973f, 0.461914f, -0.271973f, 0.444824f, -0.271973f,
+0.431641f, -0.266602f, 0.418457f, -0.26123f, 0.409668f, -0.248291f, 0.400879f, -0.235352f,
+0.396484f, -0.214111f, 0.39209f, -0.192871f, 0.39209f, -0.160645f, 0.39209f, -0.129395f,
+0.396729f, -0.108154f, 0.401367f, -0.0869141f, 0.410156f, -0.0737305f, 0.418945f,
+-0.0605469f, 0.431885f, -0.0549316f, 0.444824f, -0.0493164f, 0.461426f, -0.0493164f,
+0.477051f, -0.0493164f, 0.489502f, -0.0549316f, 0.501953f, -0.0605469f, 0.510742f,
+-0.0737305f, 0.519531f, -0.0869141f, 0.52417f, -0.108154f, 0.528809f, -0.129395f,
+0.528809f, -0.160645f, 0.523438f, 0.00585938f, 0.503418f, 0.00585938f, 0.484863f,
+0.000732422f, 0.466309f, -0.00439453f, 0.449951f, -0.0129395f, 0.433594f, -0.0214844f,
+0.419434f, -0.032959f, 0.405273f, -0.0444336f, 0.394531f, -0.0571289f, 0.380859f,
+-0.0449219f, 0.363525f, -0.0327148f, 0.346191f, -0.0205078f, 0.325195f, -0.0112305f,
+0.304199f, -0.00195312f, 0.279053f, 0.00390625f, 0.253906f, 0.00976562f, 0.225098f,
+0.00976562f, 0.171875f, 0.00976562f, 0.133301f, -0.00439453f, 0.0947266f, -0.0185547f,
+0.0698242f, -0.043457f, 0.0449219f, -0.0683594f, 0.032959f, -0.102051f, 0.0209961f,
+-0.135742f, 0.0209961f, -0.174805f, 0.0209961f, -0.212402f, 0.0319824f, -0.243164f,
+0.0429688f, -0.273926f, 0.0620117f, -0.299072f, 0.0810547f, -0.324219f, 0.107178f,
+-0.343994f, 0.133301f, -0.36377f, 0.163574f, -0.379395f, 0.15625f, -0.393066f, 0.149658f,
+-0.409668f, 0.143066f, -0.42627f, 0.137939f, -0.444092f, 0.132812f, -0.461914f, 0.129883f,
+-0.480469f, 0.126953f, -0.499023f, 0.126953f, -0.51709f, 0.126953f, -0.547363f, 0.137451f,
+-0.573975f, 0.147949f, -0.600586f, 0.169189f, -0.620361f, 0.19043f, -0.640137f, 0.222656f,
+-0.651367f, 0.254883f, -0.662598f, 0.29834f, -0.662598f, 0.332031f, -0.662598f, 0.36084f,
+-0.654053f, 0.389648f, -0.645508f, 0.410645f, -0.628906f, 0.431641f, -0.612305f,
+0.443359f, -0.587891f, 0.455078f, -0.563477f, 0.455078f, -0.532227f, 0.455078f, -0.497559f,
+0.438477f, -0.471191f, 0.421875f, -0.444824f, 0.394043f, -0.423828f, 0.366211f, -0.402832f,
+0.330322f, -0.385742f, 0.294434f, -0.368652f, 0.256348f, -0.352539f, 0.271484f, -0.326172f,
+0.286621f, -0.301758f, 0.301758f, -0.277344f, 0.318359f, -0.253906f, 0.334961f, -0.230469f,
+0.353027f, -0.207764f, 0.371094f, -0.185059f, 0.391602f, -0.162598f, 0.412109f, -0.205078f,
+0.42749f, -0.253418f, 0.442871f, -0.301758f, 0.452637f, -0.36084f, 0.523438f, -0.339844f,
+0.510742f, -0.271973f, 0.489502f, -0.216064f, 0.468262f, -0.160156f, 0.444336f, -0.114258f,
+0.465332f, -0.0878906f, 0.489014f, -0.0754395f, 0.512695f, -0.0629883f, 0.532227f,
+-0.0629883f, 0.544922f, -0.0629883f, 0.556641f, -0.0646973f, 0.568359f, -0.0664062f,
+0.578613f, -0.0708008f, 0.578613f, -0.00488281f, 0.566895f, 0.000488281f, 0.553223f,
+0.00317383f, 0.539551f, 0.00585938f, 0.523438f, 0.00585938f, 0.380859f, -0.529785f,
+0.380859f, -0.546387f, 0.375f, -0.560059f, 0.369141f, -0.57373f, 0.358154f, -0.583252f,
+0.347168f, -0.592773f, 0.331543f, -0.598145f, 0.315918f, -0.603516f, 0.296875f, -0.603516f,
+0.275391f, -0.603516f, 0.257568f, -0.597412f, 0.239746f, -0.591309f, 0.226807f, -0.580078f,
+0.213867f, -0.568848f, 0.206543f, -0.55249f, 0.199219f, -0.536133f, 0.199219f, -0.515625f,
+0.199219f, -0.483887f, 0.208496f, -0.455566f, 0.217773f, -0.427246f, 0.229004f, -0.40625f,
+0.260254f, -0.419434f, 0.287842f, -0.431641f, 0.31543f, -0.443848f, 0.336182f, -0.458008f,
+0.356934f, -0.472168f, 0.368896f, -0.489502f, 0.380859f, -0.506836f, 0.380859f, -0.529785f,
+0.344727f, -0.105957f, 0.30127f, -0.154785f, 0.261963f, -0.209717f, 0.222656f, -0.264648f,
+0.19043f, -0.321289f, 0.148926f, -0.298828f, 0.125977f, -0.262451f, 0.103027f, -0.226074f,
+0.103027f, -0.176758f, 0.103027f, -0.151367f, 0.11084f, -0.128906f, 0.118652f, -0.106445f,
+0.134277f, -0.0898438f, 0.149902f, -0.0732422f, 0.173584f, -0.0637207f, 0.197266f,
+-0.0541992f, 0.229004f, -0.0541992f, 0.248047f, -0.0541992f, 0.265381f, -0.0588379f,
+0.282715f, -0.0634766f, 0.297363f, -0.0708008f, 0.312012f, -0.078125f, 0.323975f,
+-0.0874023f, 0.335938f, -0.0966797f, 0.344727f, -0.105957f, 0.333984f, -0.412598f,
+0.265137f, -0.412598f, 0.245117f, -0.724609f, 0.354492f, -0.724609f, 0.258301f, -0.258789f,
+0.258301f, -0.191406f, 0.268311f, -0.131836f, 0.27832f, -0.0722656f, 0.299805f, -0.0161133f,
+0.321289f, 0.0400391f, 0.354736f, 0.0949707f, 0.388184f, 0.149902f, 0.435059f, 0.20752f,
+0.342285f, 0.20752f, 0.297363f, 0.152344f, 0.264404f, 0.098877f, 0.231445f, 0.0454102f,
+0.209717f, -0.0107422f, 0.187988f, -0.0668945f, 0.17749f, -0.128174f, 0.166992f,
+-0.189453f, 0.166992f, -0.259766f, 0.166992f, -0.330078f, 0.17749f, -0.390869f, 0.187988f,
+-0.45166f, 0.209717f, -0.507568f, 0.231445f, -0.563477f, 0.264404f, -0.616455f, 0.297363f,
+-0.669434f, 0.342285f, -0.724609f, 0.435059f, -0.724609f, 0.388184f, -0.666992f,
+0.354736f, -0.612061f, 0.321289f, -0.557129f, 0.299805f, -0.500977f, 0.27832f, -0.444824f,
+0.268311f, -0.385254f, 0.258301f, -0.325684f, 0.258301f, -0.258789f, 0.432129f, -0.259766f,
+0.432129f, -0.189453f, 0.421875f, -0.128174f, 0.411621f, -0.0668945f, 0.390137f,
+-0.0107422f, 0.368652f, 0.0454102f, 0.335693f, 0.098877f, 0.302734f, 0.152344f, 0.257812f,
+0.20752f, 0.164062f, 0.20752f, 0.210938f, 0.149902f, 0.244629f, 0.0949707f, 0.27832f,
+0.0400391f, 0.299805f, -0.0161133f, 0.321289f, -0.0722656f, 0.331543f, -0.131836f,
+0.341797f, -0.191406f, 0.341797f, -0.258789f, 0.341797f, -0.325684f, 0.331543f, -0.385254f,
+0.321289f, -0.444824f, 0.299805f, -0.500977f, 0.27832f, -0.557129f, 0.244629f, -0.612061f,
+0.210938f, -0.666992f, 0.164062f, -0.724609f, 0.257812f, -0.724609f, 0.302734f, -0.669434f,
+0.335693f, -0.616455f, 0.368652f, -0.563477f, 0.390137f, -0.507568f, 0.411621f, -0.45166f,
+0.421875f, -0.390869f, 0.432129f, -0.330078f, 0.432129f, -0.259766f, 0.327637f, -0.580078f,
+0.456543f, -0.630371f, 0.478516f, -0.565918f, 0.34082f, -0.530273f, 0.431152f, -0.408203f,
+0.373047f, -0.373047f, 0.299805f, -0.499023f, 0.223633f, -0.374023f, 0.165527f, -0.40918f,
+0.257812f, -0.530273f, 0.121094f, -0.565918f, 0.143066f, -0.631348f, 0.273438f, -0.579102f,
+0.267578f, -0.724121f, 0.333984f, -0.724121f, 0.335449f, -0.296875f, 0.335449f, -0.0878906f,
+0.263672f, -0.0878906f, 0.263672f, -0.296875f, 0.0566406f, -0.296875f, 0.0566406f,
+-0.368164f, 0.263672f, -0.368164f, 0.263672f, -0.577148f, 0.335449f, -0.577148f,
+0.335449f, -0.368164f, 0.54248f, -0.368164f, 0.54248f, -0.296875f, 0.126465f, 0.177246f,
+0.208984f, -0.145996f, 0.338379f, -0.145996f, 0.186523f, 0.177246f, 0.163086f, -0.226562f,
+0.163086f, -0.304688f, 0.436523f, -0.304688f, 0.436523f, -0.226562f, 0.242188f, 0,
+0.242188f, -0.145996f, 0.356934f, -0.145996f, 0.356934f, 0, 0.0556641f, 0.00976562f,
+0.456543f, -0.724609f, 0.543457f, -0.724609f, 0.144531f, 0.00976562f, 0.538574f,
+-0.32959f, 0.538574f, -0.234375f, 0.519775f, -0.169678f, 0.500977f, -0.10498f, 0.468506f,
+-0.0649414f, 0.436035f, -0.0249023f, 0.39209f, -0.00756836f, 0.348145f, 0.00976562f,
+0.29834f, 0.00976562f, 0.248047f, 0.00976562f, 0.20459f, -0.00756836f, 0.161133f,
+-0.0249023f, 0.12915f, -0.0646973f, 0.097168f, -0.104492f, 0.0788574f, -0.169434f,
+0.0605469f, -0.234375f, 0.0605469f, -0.32959f, 0.0605469f, -0.429199f, 0.0788574f,
+-0.494629f, 0.097168f, -0.560059f, 0.129395f, -0.598877f, 0.161621f, -0.637695f,
+0.205566f, -0.65332f, 0.249512f, -0.668945f, 0.30127f, -0.668945f, 0.350586f, -0.668945f,
+0.393799f, -0.65332f, 0.437012f, -0.637695f, 0.469238f, -0.598877f, 0.501465f, -0.560059f,
+0.52002f, -0.494629f, 0.538574f, -0.429199f, 0.538574f, -0.32959f, 0.449219f, -0.32959f,
+0.449219f, -0.407227f, 0.439453f, -0.458984f, 0.429688f, -0.510742f, 0.410645f, -0.541504f,
+0.391602f, -0.572266f, 0.364014f, -0.584961f, 0.336426f, -0.597656f, 0.30127f, -0.597656f,
+0.26416f, -0.597656f, 0.23584f, -0.584717f, 0.20752f, -0.571777f, 0.188232f, -0.541016f,
+0.168945f, -0.510254f, 0.15918f, -0.45874f, 0.149414f, -0.407227f, 0.149414f, -0.32959f,
+0.149414f, -0.254395f, 0.159424f, -0.203125f, 0.169434f, -0.151855f, 0.188721f, -0.120605f,
+0.208008f, -0.0893555f, 0.23584f, -0.0756836f, 0.263672f, -0.0620117f, 0.299316f,
+-0.0620117f, 0.333984f, -0.0620117f, 0.361816f, -0.0756836f, 0.389648f, -0.0893555f,
+0.408936f, -0.120605f, 0.428223f, -0.151855f, 0.438721f, -0.203125f, 0.449219f, -0.254395f,
+0.449219f, -0.32959f, 0.0766602f, 0, 0.0766602f, -0.0708008f, 0.291016f, -0.0708008f,
+0.291016f, -0.569336f, 0.281738f, -0.549805f, 0.258301f, -0.532471f, 0.234863f, -0.515137f,
+0.204346f, -0.502441f, 0.173828f, -0.489746f, 0.13916f, -0.482178f, 0.104492f, -0.474609f,
+0.0722656f, -0.474609f, 0.0722656f, -0.546875f, 0.108398f, -0.546875f, 0.143311f,
+-0.555176f, 0.178223f, -0.563477f, 0.208496f, -0.578369f, 0.23877f, -0.593262f, 0.262207f,
+-0.61377f, 0.285645f, -0.634277f, 0.29834f, -0.658691f, 0.379395f, -0.658691f, 0.379395f,
+-0.0708008f, 0.551758f, -0.0708008f, 0.551758f, 0, 0.0703125f, 0, 0.0703125f, -0.0571289f,
+0.0917969f, -0.104492f, 0.126953f, -0.144531f, 0.162109f, -0.18457f, 0.201904f, -0.219971f,
+0.241699f, -0.255371f, 0.281982f, -0.287598f, 0.322266f, -0.319824f, 0.354736f, -0.351318f,
+0.387207f, -0.382812f, 0.407715f, -0.415283f, 0.428223f, -0.447754f, 0.428223f, -0.483887f,
+0.428223f, -0.513184f, 0.418701f, -0.534424f, 0.40918f, -0.555664f, 0.391846f, -0.56958f,
+0.374512f, -0.583496f, 0.35083f, -0.590088f, 0.327148f, -0.59668f, 0.29834f, -0.59668f,
+0.271973f, -0.59668f, 0.249268f, -0.589355f, 0.226562f, -0.582031f, 0.209473f, -0.567383f,
+0.192383f, -0.552734f, 0.181641f, -0.531006f, 0.170898f, -0.509277f, 0.16748f, -0.480469f,
+0.0776367f, -0.48877f, 0.0820312f, -0.525879f, 0.0976562f, -0.558594f, 0.113281f,
+-0.591309f, 0.140381f, -0.615967f, 0.16748f, -0.640625f, 0.207031f, -0.654785f, 0.246582f,
+-0.668945f, 0.29834f, -0.668945f, 0.349609f, -0.668945f, 0.390381f, -0.657227f, 0.431152f,
+-0.645508f, 0.459717f, -0.622803f, 0.488281f, -0.600098f, 0.503418f, -0.566406f,
+0.518555f, -0.532715f, 0.518555f, -0.489258f, 0.518555f, -0.443359f, 0.497559f, -0.404053f,
+0.476562f, -0.364746f, 0.443604f, -0.32959f, 0.410645f, -0.294434f, 0.370605f, -0.262695f,
+0.330566f, -0.230957f, 0.29248f, -0.199707f, 0.254395f, -0.168457f, 0.223145f, -0.136963f,
+0.191895f, -0.105469f, 0.17627f, -0.0712891f, 0.529297f, -0.0712891f, 0.529297f,
+0, 0.536621f, -0.180664f, 0.536621f, -0.13623f, 0.52124f, -0.10083f, 0.505859f, -0.0654297f,
+0.476318f, -0.0410156f, 0.446777f, -0.0166016f, 0.40332f, -0.00341797f, 0.359863f,
+0.00976562f, 0.303223f, 0.00976562f, 0.239746f, 0.00976562f, 0.195801f, -0.00610352f,
+0.151855f, -0.0219727f, 0.123535f, -0.0480957f, 0.0952148f, -0.0742188f, 0.0810547f,
+-0.107666f, 0.0668945f, -0.141113f, 0.0625f, -0.176758f, 0.15332f, -0.185059f, 0.157227f,
+-0.157715f, 0.167725f, -0.135254f, 0.178223f, -0.112793f, 0.196289f, -0.0966797f,
+0.214355f, -0.0805664f, 0.240967f, -0.0717773f, 0.267578f, -0.0629883f, 0.303223f,
+-0.0629883f, 0.369629f, -0.0629883f, 0.407471f, -0.09375f, 0.445312f, -0.124512f,
+0.445312f, -0.183594f, 0.445312f, -0.216797f, 0.428467f, -0.23877f, 0.411621f, -0.260742f,
+0.386475f, -0.273682f, 0.361328f, -0.286621f, 0.331787f, -0.291992f, 0.302246f, -0.297363f,
+0.277344f, -0.297363f, 0.227539f, -0.297363f, 0.227539f, -0.373535f, 0.275391f, -0.373535f,
+0.300293f, -0.373535f, 0.327148f, -0.379639f, 0.354004f, -0.385742f, 0.376221f, -0.39917f,
+0.398438f, -0.412598f, 0.412842f, -0.434326f, 0.427246f, -0.456055f, 0.427246f, -0.486816f,
+0.427246f, -0.538574f, 0.394775f, -0.567627f, 0.362305f, -0.59668f, 0.29834f, -0.59668f,
+0.240234f, -0.59668f, 0.204346f, -0.566895f, 0.168457f, -0.537109f, 0.162598f, -0.48291f,
+0.0742188f, -0.489746f, 0.0795898f, -0.535156f, 0.0991211f, -0.568848f, 0.118652f,
+-0.602539f, 0.148682f, -0.624756f, 0.178711f, -0.646973f, 0.217285f, -0.657959f,
+0.255859f, -0.668945f, 0.299316f, -0.668945f, 0.357422f, -0.668945f, 0.398682f, -0.655273f,
+0.439941f, -0.641602f, 0.466309f, -0.618164f, 0.492676f, -0.594727f, 0.505127f, -0.563232f,
+0.517578f, -0.531738f, 0.517578f, -0.496094f, 0.517578f, -0.469238f, 0.508545f, -0.444092f,
+0.499512f, -0.418945f, 0.481689f, -0.397949f, 0.463867f, -0.376953f, 0.436768f, -0.361328f,
+0.409668f, -0.345703f, 0.373535f, -0.338379f, 0.373535f, -0.336426f, 0.413574f, -0.332031f,
+0.444092f, -0.317383f, 0.474609f, -0.302734f, 0.495117f, -0.281494f, 0.515625f, -0.260254f,
+0.526123f, -0.234375f, 0.536621f, -0.208496f, 0.536621f, -0.180664f, 0.45752f, -0.155762f,
+0.45752f, 0, 0.369629f, 0, 0.369629f, -0.155762f, 0.050293f, -0.155762f, 0.050293f,
+-0.224121f, 0.360352f, -0.658691f, 0.45752f, -0.658691f, 0.45752f, -0.225098f, 0.549316f,
+-0.225098f, 0.549316f, -0.155762f, 0.369629f, -0.563477f, 0.125488f, -0.225098f,
+0.369629f, -0.225098f, 0.536621f, -0.216797f, 0.536621f, -0.167969f, 0.520996f, -0.126221f,
+0.505371f, -0.0844727f, 0.474609f, -0.0544434f, 0.443848f, -0.0244141f, 0.398193f,
+-0.00732422f, 0.352539f, 0.00976562f, 0.29248f, 0.00976562f, 0.238281f, 0.00976562f,
+0.197998f, -0.00292969f, 0.157715f, -0.015625f, 0.129883f, -0.0378418f, 0.102051f,
+-0.0600586f, 0.0856934f, -0.0898438f, 0.0693359f, -0.119629f, 0.0625f, -0.153809f,
+0.151367f, -0.164062f, 0.156738f, -0.144531f, 0.166504f, -0.126221f, 0.17627f, -0.10791f,
+0.193115f, -0.0935059f, 0.209961f, -0.0791016f, 0.234619f, -0.0705566f, 0.259277f,
+-0.0620117f, 0.294434f, -0.0620117f, 0.328613f, -0.0620117f, 0.356445f, -0.0725098f,
+0.384277f, -0.0830078f, 0.404053f, -0.102539f, 0.423828f, -0.12207f, 0.43457f, -0.150635f,
+0.445312f, -0.179199f, 0.445312f, -0.214844f, 0.445312f, -0.244141f, 0.435059f, -0.269287f,
+0.424805f, -0.294434f, 0.405762f, -0.312988f, 0.386719f, -0.331543f, 0.359131f, -0.342041f,
+0.331543f, -0.352539f, 0.296387f, -0.352539f, 0.274414f, -0.352539f, 0.255859f, -0.348633f,
+0.237305f, -0.344727f, 0.221436f, -0.337891f, 0.205566f, -0.331055f, 0.192627f, -0.322021f,
+0.179688f, -0.312988f, 0.168457f, -0.303223f, 0.0825195f, -0.303223f, 0.105469f,
+-0.658691f, 0.496582f, -0.658691f, 0.496582f, -0.587891f, 0.186523f, -0.587891f,
+0.172363f, -0.380371f, 0.195801f, -0.398438f, 0.230957f, -0.411377f, 0.266113f, -0.424316f,
+0.314453f, -0.424316f, 0.365723f, -0.424316f, 0.406738f, -0.408691f, 0.447754f, -0.393066f,
+0.476562f, -0.365479f, 0.505371f, -0.337891f, 0.520996f, -0.299805f, 0.536621f, -0.261719f,
+0.536621f, -0.216797f, 0.535156f, -0.217773f, 0.535156f, -0.168945f, 0.520752f, -0.127197f,
+0.506348f, -0.0854492f, 0.478271f, -0.0549316f, 0.450195f, -0.0244141f, 0.408691f,
+-0.00732422f, 0.367188f, 0.00976562f, 0.312988f, 0.00976562f, 0.25293f, 0.00976562f,
+0.208008f, -0.0129395f, 0.163086f, -0.0356445f, 0.133301f, -0.0776367f, 0.103516f,
+-0.119629f, 0.088623f, -0.179443f, 0.0737305f, -0.239258f, 0.0737305f, -0.313477f,
+0.0737305f, -0.399902f, 0.0905762f, -0.466309f, 0.107422f, -0.532715f, 0.13916f,
+-0.577637f, 0.170898f, -0.622559f, 0.216553f, -0.645752f, 0.262207f, -0.668945f,
+0.319824f, -0.668945f, 0.35498f, -0.668945f, 0.385742f, -0.661621f, 0.416504f, -0.654297f,
+0.44165f, -0.637939f, 0.466797f, -0.621582f, 0.48584f, -0.594727f, 0.504883f, -0.567871f,
+0.516113f, -0.528809f, 0.432129f, -0.513672f, 0.418457f, -0.558105f, 0.388428f, -0.577881f,
+0.358398f, -0.597656f, 0.318848f, -0.597656f, 0.282715f, -0.597656f, 0.253418f, -0.580811f,
+0.224121f, -0.563965f, 0.203613f, -0.53125f, 0.183105f, -0.498535f, 0.172119f, -0.450439f,
+0.161133f, -0.402344f, 0.161133f, -0.339355f, 0.185059f, -0.383789f, 0.228516f, -0.406982f,
+0.271973f, -0.430176f, 0.328125f, -0.430176f, 0.375f, -0.430176f, 0.41333f, -0.415039f,
+0.45166f, -0.399902f, 0.47876f, -0.37207f, 0.505859f, -0.344238f, 0.520508f, -0.305176f,
+0.535156f, -0.266113f, 0.535156f, -0.217773f, 0.445801f, -0.213867f, 0.445801f, -0.246582f,
+0.437012f, -0.273926f, 0.428223f, -0.30127f, 0.410645f, -0.320801f, 0.393066f, -0.340332f,
+0.367188f, -0.351318f, 0.341309f, -0.362305f, 0.307129f, -0.362305f, 0.283203f, -0.362305f,
+0.258789f, -0.354248f, 0.234375f, -0.346191f, 0.2146f, -0.330322f, 0.194824f, -0.314453f,
+0.182373f, -0.290527f, 0.169922f, -0.266602f, 0.169922f, -0.234863f, 0.169922f, -0.199707f,
+0.179688f, -0.168213f, 0.189453f, -0.136719f, 0.207764f, -0.112793f, 0.226074f, -0.0888672f,
+0.251953f, -0.0749512f, 0.277832f, -0.0610352f, 0.310059f, -0.0610352f, 0.341797f,
+-0.0610352f, 0.366943f, -0.0720215f, 0.39209f, -0.0830078f, 0.409668f, -0.103027f,
+0.427246f, -0.123047f, 0.436523f, -0.151367f, 0.445801f, -0.179688f, 0.445801f, -0.213867f,
+0.521973f, -0.59082f, 0.475098f, -0.523438f, 0.43335f, -0.45166f, 0.391602f, -0.379883f,
+0.359863f, -0.30542f, 0.328125f, -0.230957f, 0.30957f, -0.154297f, 0.291016f, -0.0776367f,
+0.291016f, 0, 0.199219f, 0, 0.199219f, -0.0771484f, 0.21875f, -0.154053f, 0.238281f,
+-0.230957f, 0.270996f, -0.305664f, 0.303711f, -0.380371f, 0.34668f, -0.45166f, 0.389648f,
+-0.522949f, 0.437012f, -0.587891f, 0.0771484f, -0.587891f, 0.0771484f, -0.658691f,
+0.521973f, -0.658691f, 0.53418f, -0.18457f, 0.53418f, -0.143555f, 0.520264f, -0.108154f,
+0.506348f, -0.0727539f, 0.477783f, -0.0463867f, 0.449219f, -0.0200195f, 0.405029f,
+-0.00512695f, 0.36084f, 0.00976562f, 0.299805f, 0.00976562f, 0.239258f, 0.00976562f,
+0.195068f, -0.00512695f, 0.150879f, -0.0200195f, 0.121826f, -0.0461426f, 0.0927734f,
+-0.0722656f, 0.0788574f, -0.107666f, 0.0649414f, -0.143066f, 0.0649414f, -0.183594f,
+0.0649414f, -0.218262f, 0.076416f, -0.246338f, 0.0878906f, -0.274414f, 0.107178f,
+-0.294922f, 0.126465f, -0.31543f, 0.151123f, -0.328125f, 0.175781f, -0.34082f, 0.202148f,
+-0.345215f, 0.202148f, -0.347168f, 0.17334f, -0.354004f, 0.150635f, -0.369141f, 0.12793f,
+-0.384277f, 0.112549f, -0.404785f, 0.097168f, -0.425293f, 0.0891113f, -0.449707f,
+0.0810547f, -0.474121f, 0.0810547f, -0.5f, 0.0810547f, -0.533203f, 0.0949707f, -0.563721f,
+0.108887f, -0.594238f, 0.13623f, -0.617676f, 0.163574f, -0.641113f, 0.204102f, -0.655029f,
+0.244629f, -0.668945f, 0.297852f, -0.668945f, 0.354004f, -0.668945f, 0.395264f, -0.654785f,
+0.436523f, -0.640625f, 0.463623f, -0.617188f, 0.490723f, -0.59375f, 0.503906f, -0.562988f,
+0.51709f, -0.532227f, 0.51709f, -0.499023f, 0.51709f, -0.473633f, 0.509033f, -0.449219f,
+0.500977f, -0.424805f, 0.485596f, -0.404297f, 0.470215f, -0.383789f, 0.44751f, -0.368896f,
+0.424805f, -0.354004f, 0.39502f, -0.348145f, 0.39502f, -0.346191f, 0.424805f, -0.341309f,
+0.450195f, -0.328369f, 0.475586f, -0.31543f, 0.494385f, -0.294922f, 0.513184f, -0.274414f,
+0.523682f, -0.246826f, 0.53418f, -0.219238f, 0.53418f, -0.18457f, 0.425781f, -0.494141f,
+0.425781f, -0.51709f, 0.419189f, -0.537109f, 0.412598f, -0.557129f, 0.397461f, -0.571777f,
+0.382324f, -0.586426f, 0.35791f, -0.594971f, 0.333496f, -0.603516f, 0.297852f, -0.603516f,
+0.263672f, -0.603516f, 0.239502f, -0.594971f, 0.215332f, -0.586426f, 0.199951f, -0.571777f,
+0.18457f, -0.557129f, 0.177734f, -0.537109f, 0.170898f, -0.51709f, 0.170898f, -0.494141f,
+0.170898f, -0.476074f, 0.17627f, -0.456055f, 0.181641f, -0.436035f, 0.195801f, -0.419189f,
+0.209961f, -0.402344f, 0.234863f, -0.391357f, 0.259766f, -0.380371f, 0.298828f, -0.380371f,
+0.34082f, -0.380371f, 0.365723f, -0.391602f, 0.390625f, -0.402832f, 0.404053f, -0.419678f,
+0.41748f, -0.436523f, 0.421631f, -0.456543f, 0.425781f, -0.476562f, 0.425781f, -0.494141f,
+0.442871f, -0.192871f, 0.442871f, -0.214844f, 0.436035f, -0.236572f, 0.429199f, -0.258301f,
+0.412598f, -0.275635f, 0.395996f, -0.292969f, 0.36792f, -0.303711f, 0.339844f, -0.314453f,
+0.297852f, -0.314453f, 0.259277f, -0.314453f, 0.232178f, -0.303711f, 0.205078f, -0.292969f,
+0.188232f, -0.275391f, 0.171387f, -0.257812f, 0.163574f, -0.23584f, 0.155762f, -0.213867f,
+0.155762f, -0.190918f, 0.155762f, -0.162109f, 0.163574f, -0.137451f, 0.171387f, -0.112793f,
+0.188477f, -0.0947266f, 0.205566f, -0.0766602f, 0.233398f, -0.0664062f, 0.26123f,
+-0.0561523f, 0.300781f, -0.0561523f, 0.341309f, -0.0561523f, 0.368408f, -0.0661621f,
+0.395508f, -0.0761719f, 0.412109f, -0.0944824f, 0.428711f, -0.112793f, 0.435791f,
+-0.137939f, 0.442871f, -0.163086f, 0.442871f, -0.192871f, 0.530762f, -0.343262f,
+0.530762f, -0.256836f, 0.513672f, -0.190918f, 0.496582f, -0.125f, 0.464355f, -0.0803223f,
+0.432129f, -0.0356445f, 0.385986f, -0.0129395f, 0.339844f, 0.00976562f, 0.281738f,
+0.00976562f, 0.242188f, 0.00976562f, 0.210449f, 0.00170898f, 0.178711f, -0.00634766f,
+0.153809f, -0.0234375f, 0.128906f, -0.0405273f, 0.111328f, -0.0678711f, 0.09375f,
+-0.0952148f, 0.0830078f, -0.133789f, 0.166992f, -0.146973f, 0.180664f, -0.102539f,
+0.209717f, -0.0817871f, 0.23877f, -0.0610352f, 0.283203f, -0.0610352f, 0.319336f,
+-0.0610352f, 0.348633f, -0.0776367f, 0.37793f, -0.0942383f, 0.398682f, -0.126465f,
+0.419434f, -0.158691f, 0.431396f, -0.206543f, 0.443359f, -0.254395f, 0.443848f, -0.317383f,
+0.433594f, -0.294434f, 0.415771f, -0.276367f, 0.397949f, -0.258301f, 0.375244f, -0.24585f,
+0.352539f, -0.233398f, 0.326416f, -0.226807f, 0.300293f, -0.220215f, 0.272949f, -0.220215f,
+0.226074f, -0.220215f, 0.188232f, -0.236816f, 0.150391f, -0.253418f, 0.124023f, -0.283203f,
+0.0976562f, -0.312988f, 0.083252f, -0.354248f, 0.0688477f, -0.395508f, 0.0688477f,
+-0.444824f, 0.0688477f, -0.495605f, 0.0842285f, -0.536865f, 0.0996094f, -0.578125f,
+0.128906f, -0.607422f, 0.158203f, -0.636719f, 0.200928f, -0.652832f, 0.243652f, -0.668945f,
+0.297852f, -0.668945f, 0.413086f, -0.668945f, 0.471924f, -0.587891f, 0.530762f, -0.506836f,
+0.530762f, -0.343262f, 0.435059f, -0.420898f, 0.435059f, -0.456543f, 0.426025f, -0.488525f,
+0.416992f, -0.520508f, 0.39917f, -0.544678f, 0.381348f, -0.568848f, 0.355225f, -0.583252f,
+0.329102f, -0.597656f, 0.294922f, -0.597656f, 0.263184f, -0.597656f, 0.237793f, -0.58667f,
+0.212402f, -0.575684f, 0.194824f, -0.55542f, 0.177246f, -0.535156f, 0.167725f, -0.50708f,
+0.158203f, -0.479004f, 0.158203f, -0.444824f, 0.158203f, -0.412598f, 0.166748f, -0.384521f,
+0.175293f, -0.356445f, 0.192383f, -0.335205f, 0.209473f, -0.313965f, 0.234863f, -0.301758f,
+0.260254f, -0.289551f, 0.293945f, -0.289551f, 0.318359f, -0.289551f, 0.343506f, -0.297852f,
+0.368652f, -0.306152f, 0.388916f, -0.32251f, 0.40918f, -0.338867f, 0.422119f, -0.363525f,
+0.435059f, -0.388184f, 0.435059f, -0.420898f, 0.242188f, 0, 0.242188f, -0.145996f,
+0.356934f, -0.145996f, 0.356934f, 0, 0.242188f, -0.382324f, 0.242188f, -0.52832f,
+0.356934f, -0.52832f, 0.356934f, -0.382324f, 0.242188f, -0.382324f, 0.242188f, -0.52832f,
+0.356934f, -0.52832f, 0.356934f, -0.382324f, 0.171875f, 0.177246f, 0.254395f, -0.145996f,
+0.383789f, -0.145996f, 0.231934f, 0.177246f, 0.0566406f, -0.278809f, 0.0566406f,
+-0.378906f, 0.54248f, -0.583008f, 0.54248f, -0.507812f, 0.123535f, -0.329102f, 0.54248f,
+-0.149902f, 0.54248f, -0.0751953f, 0.0566406f, -0.417969f, 0.0566406f, -0.490234f,
+0.54248f, -0.490234f, 0.54248f, -0.417969f, 0.0566406f, -0.167969f, 0.0566406f, -0.240234f,
+0.54248f, -0.240234f, 0.54248f, -0.167969f, 0.0566406f, -0.0751953f, 0.0566406f,
+-0.149902f, 0.475586f, -0.329102f, 0.0566406f, -0.507812f, 0.0566406f, -0.583008f,
+0.54248f, -0.378906f, 0.54248f, -0.278809f, 0.523926f, -0.489258f, 0.523926f, -0.455566f,
+0.514893f, -0.430176f, 0.505859f, -0.404785f, 0.490723f, -0.384766f, 0.475586f, -0.364746f,
+0.456299f, -0.348633f, 0.437012f, -0.33252f, 0.416992f, -0.318115f, 0.396973f, -0.303711f,
+0.377686f, -0.289307f, 0.358398f, -0.274902f, 0.343018f, -0.258301f, 0.327637f, -0.241699f,
+0.318115f, -0.221436f, 0.308594f, -0.201172f, 0.308105f, -0.174316f, 0.222656f, -0.174316f,
+0.223633f, -0.207031f, 0.233154f, -0.231934f, 0.242676f, -0.256836f, 0.257812f, -0.276611f,
+0.272949f, -0.296387f, 0.291992f, -0.312256f, 0.311035f, -0.328125f, 0.330566f, -0.342529f,
+0.350098f, -0.356934f, 0.368896f, -0.371338f, 0.387695f, -0.385742f, 0.402344f, -0.402344f,
+0.416992f, -0.418945f, 0.426025f, -0.439209f, 0.435059f, -0.459473f, 0.435059f, -0.485352f,
+0.435059f, -0.512207f, 0.425049f, -0.532715f, 0.415039f, -0.553223f, 0.39624f, -0.567139f,
+0.377441f, -0.581055f, 0.35083f, -0.588379f, 0.324219f, -0.595703f, 0.291016f, -0.595703f,
+0.257812f, -0.595703f, 0.230713f, -0.586426f, 0.203613f, -0.577148f, 0.183594f, -0.559814f,
+0.163574f, -0.54248f, 0.151367f, -0.517822f, 0.13916f, -0.493164f, 0.135742f, -0.462891f,
+0.0458984f, -0.46875f, 0.0517578f, -0.512695f, 0.0698242f, -0.549561f, 0.0878906f,
+-0.586426f, 0.118652f, -0.612793f, 0.149414f, -0.63916f, 0.192383f, -0.654053f, 0.235352f,
+-0.668945f, 0.290039f, -0.668945f, 0.342773f, -0.668945f, 0.385986f, -0.657227f,
+0.429199f, -0.645508f, 0.459961f, -0.622803f, 0.490723f, -0.600098f, 0.507324f, -0.56665f,
+0.523926f, -0.533203f, 0.523926f, -0.489258f, 0.21875f, 0, 0.21875f, -0.0981445f,
+0.313965f, -0.0981445f, 0.313965f, 0, 0.580566f, -0.368652f, 0.580566f, -0.29834f,
+0.570557f, -0.23999f, 0.560547f, -0.181641f, 0.541504f, -0.139648f, 0.522461f, -0.0976562f,
+0.494629f, -0.0742188f, 0.466797f, -0.0507812f, 0.431641f, -0.0507812f, 0.416992f,
+-0.0507812f, 0.404297f, -0.0546875f, 0.391602f, -0.0585938f, 0.38208f, -0.067627f,
+0.372559f, -0.0766602f, 0.367188f, -0.0913086f, 0.361816f, -0.105957f, 0.361816f,
+-0.127441f, 0.361816f, -0.128418f, 0.361816f, -0.131104f, 0.361816f, -0.133789f,
+0.362061f, -0.136719f, 0.362305f, -0.139648f, 0.362549f, -0.14209f, 0.362793f, -0.144531f,
+0.362793f, -0.145996f, 0.359863f, -0.145996f, 0.352539f, -0.126953f, 0.341309f, -0.109619f,
+0.330078f, -0.0922852f, 0.315674f, -0.0791016f, 0.30127f, -0.065918f, 0.283447f,
+-0.0583496f, 0.265625f, -0.0507812f, 0.245117f, -0.0507812f, 0.214355f, -0.0507812f,
+0.193359f, -0.0666504f, 0.172363f, -0.0825195f, 0.159424f, -0.108643f, 0.146484f,
+-0.134766f, 0.140869f, -0.168701f, 0.135254f, -0.202637f, 0.135254f, -0.23877f, 0.135254f,
+-0.275879f, 0.140869f, -0.3125f, 0.146484f, -0.349121f, 0.157227f, -0.382324f, 0.167969f,
+-0.415527f, 0.183838f, -0.444092f, 0.199707f, -0.472656f, 0.219482f, -0.493408f,
+0.239258f, -0.51416f, 0.263184f, -0.525879f, 0.287109f, -0.537598f, 0.314453f, -0.537598f,
+0.334961f, -0.537598f, 0.350098f, -0.531006f, 0.365234f, -0.524414f, 0.375732f, -0.512939f,
+0.38623f, -0.501465f, 0.393066f, -0.486084f, 0.399902f, -0.470703f, 0.404297f, -0.453125f,
+0.406738f, -0.453125f, 0.422363f, -0.526855f, 0.479004f, -0.526855f, 0.430664f, -0.279297f,
+0.426758f, -0.258789f, 0.423096f, -0.239014f, 0.419434f, -0.219238f, 0.416748f, -0.201416f,
+0.414062f, -0.183594f, 0.412598f, -0.168701f, 0.411133f, -0.153809f, 0.411133f, -0.143555f,
+0.411133f, -0.118164f, 0.418213f, -0.109375f, 0.425293f, -0.100586f, 0.435059f, -0.100586f,
+0.45459f, -0.100586f, 0.470459f, -0.120117f, 0.486328f, -0.139648f, 0.497803f, -0.175049f,
+0.509277f, -0.210449f, 0.515381f, -0.259521f, 0.521484f, -0.308594f, 0.521484f, -0.367676f,
+0.521484f, -0.430664f, 0.508545f, -0.485352f, 0.495605f, -0.540039f, 0.470947f, -0.580566f,
+0.446289f, -0.621094f, 0.410156f, -0.644531f, 0.374023f, -0.667969f, 0.327148f, -0.667969f,
+0.268555f, -0.667969f, 0.2229f, -0.635254f, 0.177246f, -0.602539f, 0.14624f, -0.546143f,
+0.115234f, -0.489746f, 0.0991211f, -0.413574f, 0.0830078f, -0.337402f, 0.0830078f,
+-0.250977f, 0.0830078f, -0.176758f, 0.0974121f, -0.115723f, 0.111816f, -0.0546875f,
+0.138916f, -0.0109863f, 0.166016f, 0.0327148f, 0.205566f, 0.0566406f, 0.245117f,
+0.0805664f, 0.294922f, 0.0805664f, 0.32373f, 0.0805664f, 0.348633f, 0.0744629f, 0.373535f,
+0.0683594f, 0.395264f, 0.0581055f, 0.416992f, 0.0478516f, 0.436768f, 0.0336914f,
+0.456543f, 0.0195312f, 0.475098f, 0.00341797f, 0.509766f, 0.0458984f, 0.48877f, 0.0639648f,
+0.465088f, 0.0805664f, 0.441406f, 0.097168f, 0.414307f, 0.110107f, 0.387207f, 0.123047f,
+0.356445f, 0.130615f, 0.325684f, 0.138184f, 0.290039f, 0.138184f, 0.228027f, 0.138184f,
+0.178223f, 0.110596f, 0.128418f, 0.0830078f, 0.09375f, 0.0322266f, 0.059082f, -0.0185547f,
+0.0402832f, -0.090332f, 0.0214844f, -0.162109f, 0.0214844f, -0.250977f, 0.0214844f,
+-0.353027f, 0.0419922f, -0.439697f, 0.0625f, -0.526367f, 0.101807f, -0.589844f, 0.141113f,
+-0.65332f, 0.197998f, -0.688965f, 0.254883f, -0.724609f, 0.328125f, -0.724609f, 0.39209f,
+-0.724609f, 0.439697f, -0.695801f, 0.487305f, -0.666992f, 0.518555f, -0.618164f,
+0.549805f, -0.569336f, 0.565186f, -0.504883f, 0.580566f, -0.44043f, 0.580566f, -0.368652f,
+0.378418f, -0.382812f, 0.378418f, -0.43457f, 0.361328f, -0.461182f, 0.344238f, -0.487793f,
+0.31543f, -0.487793f, 0.297363f, -0.487793f, 0.281738f, -0.477051f, 0.266113f, -0.466309f,
+0.253418f, -0.447998f, 0.240723f, -0.429688f, 0.230957f, -0.405273f, 0.221191f, -0.380859f,
+0.2146f, -0.353271f, 0.208008f, -0.325684f, 0.20459f, -0.296631f, 0.201172f, -0.267578f,
+0.201172f, -0.239746f, 0.201172f, -0.210449f, 0.203857f, -0.185303f, 0.206543f, -0.160156f,
+0.213135f, -0.141846f, 0.219727f, -0.123535f, 0.230469f, -0.113037f, 0.241211f, -0.102539f,
+0.256836f, -0.102539f, 0.275879f, -0.102539f, 0.293213f, -0.115967f, 0.310547f, -0.129395f,
+0.324707f, -0.153809f, 0.338867f, -0.178223f, 0.350098f, -0.213135f, 0.361328f, -0.248047f,
+0.367676f, -0.290527f, 0.369141f, -0.299805f, 0.371094f, -0.3125f, 0.373047f, -0.325195f,
+0.374756f, -0.338379f, 0.376465f, -0.351562f, 0.377441f, -0.363525f, 0.378418f, -0.375488f,
+0.378418f, -0.382812f, 0.504883f, 0, 0.4375f, -0.186523f, 0.162598f, -0.186523f,
+0.0957031f, 0, 0, 0, 0.249023f, -0.658691f, 0.35498f, -0.658691f, 0.599609f, 0, 0.342285f,
+-0.46582f, 0.335938f, -0.484375f, 0.329102f, -0.503418f, 0.322266f, -0.522461f, 0.31665f,
+-0.539551f, 0.311035f, -0.556641f, 0.306885f, -0.56958f, 0.302734f, -0.58252f, 0.300781f,
+-0.588379f, 0.298828f, -0.58252f, 0.294922f, -0.569336f, 0.291016f, -0.556152f, 0.2854f,
+-0.539062f, 0.279785f, -0.521973f, 0.273682f, -0.50293f, 0.267578f, -0.483887f, 0.26123f,
+-0.46582f, 0.1875f, -0.259277f, 0.413574f, -0.259277f, 0.5625f, -0.185547f, 0.5625f,
+-0.135254f, 0.541992f, -0.100098f, 0.521484f, -0.0649414f, 0.486816f, -0.0427246f,
+0.452148f, -0.0205078f, 0.40625f, -0.0102539f, 0.360352f, 0, 0.30957f, 0, 0.0791016f,
+0, 0.0791016f, -0.658691f, 0.280273f, -0.658691f, 0.337402f, -0.658691f, 0.382324f,
+-0.649414f, 0.427246f, -0.640137f, 0.458496f, -0.62085f, 0.489746f, -0.601562f, 0.506104f,
+-0.571289f, 0.522461f, -0.541016f, 0.522461f, -0.499023f, 0.522461f, -0.47168f, 0.514404f,
+-0.447021f, 0.506348f, -0.422363f, 0.48999f, -0.402588f, 0.473633f, -0.382812f, 0.449219f,
+-0.368408f, 0.424805f, -0.354004f, 0.391602f, -0.347168f, 0.433105f, -0.342773f,
+0.465088f, -0.329102f, 0.49707f, -0.31543f, 0.518555f, -0.294189f, 0.540039f, -0.272949f,
+0.55127f, -0.245361f, 0.5625f, -0.217773f, 0.5625f, -0.185547f, 0.428711f, -0.487305f,
+0.428711f, -0.539551f, 0.391846f, -0.561768f, 0.35498f, -0.583984f, 0.28125f, -0.583984f,
+0.172363f, -0.583984f, 0.172363f, -0.380859f, 0.282227f, -0.380859f, 0.321777f, -0.380859f,
+0.349609f, -0.388428f, 0.377441f, -0.395996f, 0.39502f, -0.409912f, 0.412598f, -0.423828f,
+0.420654f, -0.443359f, 0.428711f, -0.462891f, 0.428711f, -0.487305f, 0.468262f, -0.193848f,
+0.468262f, -0.224609f, 0.455811f, -0.246094f, 0.443359f, -0.267578f, 0.420654f, -0.281494f,
+0.397949f, -0.29541f, 0.366211f, -0.301758f, 0.334473f, -0.308105f, 0.29541f, -0.308105f,
+0.172363f, -0.308105f, 0.172363f, -0.074707f, 0.302246f, -0.074707f, 0.337891f, -0.074707f,
+0.368408f, -0.0803223f, 0.398926f, -0.0859375f, 0.421143f, -0.0996094f, 0.443359f,
+-0.113281f, 0.455811f, -0.13623f, 0.468262f, -0.15918f, 0.468262f, -0.193848f, 0.15332f,
+-0.33252f, 0.15332f, -0.268555f, 0.163086f, -0.218994f, 0.172852f, -0.169434f, 0.193359f,
+-0.135254f, 0.213867f, -0.101074f, 0.24585f, -0.0834961f, 0.277832f, -0.065918f,
+0.322754f, -0.065918f, 0.353516f, -0.065918f, 0.378174f, -0.0776367f, 0.402832f,
+-0.0893555f, 0.422119f, -0.108398f, 0.441406f, -0.127441f, 0.455566f, -0.152344f,
+0.469727f, -0.177246f, 0.47998f, -0.203613f, 0.557617f, -0.171875f, 0.543945f, -0.137695f,
+0.523926f, -0.105225f, 0.503906f, -0.0727539f, 0.475586f, -0.0471191f, 0.447266f,
+-0.0214844f, 0.409424f, -0.00585938f, 0.371582f, 0.00976562f, 0.321777f, 0.00976562f,
+0.25293f, 0.00976562f, 0.202881f, -0.0148926f, 0.152832f, -0.0395508f, 0.119873f,
+-0.0844727f, 0.0869141f, -0.129395f, 0.0710449f, -0.192383f, 0.0551758f, -0.255371f,
+0.0551758f, -0.33252f, 0.0551758f, -0.413574f, 0.0708008f, -0.476318f, 0.0864258f,
+-0.539062f, 0.118652f, -0.581787f, 0.150879f, -0.624512f, 0.200195f, -0.646729f,
+0.249512f, -0.668945f, 0.316895f, -0.668945f, 0.366211f, -0.668945f, 0.40332f, -0.655518f,
+0.44043f, -0.64209f, 0.467529f, -0.619385f, 0.494629f, -0.59668f, 0.513428f, -0.567139f,
+0.532227f, -0.537598f, 0.544434f, -0.505371f, 0.462402f, -0.473633f, 0.455078f, -0.496094f,
+0.442383f, -0.517578f, 0.429688f, -0.539062f, 0.411865f, -0.555664f, 0.394043f, -0.572266f,
+0.370361f, -0.58252f, 0.34668f, -0.592773f, 0.317383f, -0.592773f, 0.273926f, -0.592773f,
+0.24292f, -0.576172f, 0.211914f, -0.55957f, 0.191895f, -0.526611f, 0.171875f, -0.493652f,
+0.162598f, -0.445068f, 0.15332f, -0.396484f, 0.15332f, -0.33252f, 0.549316f, -0.335938f,
+0.549316f, -0.253906f, 0.529785f, -0.191162f, 0.510254f, -0.128418f, 0.473145f, -0.0859375f,
+0.436035f, -0.043457f, 0.38208f, -0.0217285f, 0.328125f, 0, 0.259766f, 0, 0.0791016f,
+0, 0.0791016f, -0.658691f, 0.230957f, -0.658691f, 0.308105f, -0.658691f, 0.367432f,
+-0.639893f, 0.426758f, -0.621094f, 0.467285f, -0.581543f, 0.507812f, -0.541992f,
+0.528564f, -0.480957f, 0.549316f, -0.419922f, 0.549316f, -0.335938f, 0.455566f, -0.335938f,
+0.455566f, -0.401855f, 0.441895f, -0.44873f, 0.428223f, -0.495605f, 0.400391f, -0.525146f,
+0.372559f, -0.554688f, 0.330566f, -0.568604f, 0.288574f, -0.58252f, 0.231445f, -0.58252f,
+0.172363f, -0.58252f, 0.172363f, -0.0761719f, 0.251465f, -0.0761719f, 0.35498f, -0.0761719f,
+0.405273f, -0.141113f, 0.455566f, -0.206055f, 0.455566f, -0.335938f, 0.0791016f,
+0, 0.0791016f, -0.658691f, 0.527832f, -0.658691f, 0.527832f, -0.58252f, 0.172363f,
+-0.58252f, 0.172363f, -0.376465f, 0.498535f, -0.376465f, 0.498535f, -0.30127f, 0.172363f,
+-0.30127f, 0.172363f, -0.0761719f, 0.547852f, -0.0761719f, 0.547852f, 0, 0.187988f,
+-0.58252f, 0.187988f, -0.341309f, 0.518066f, -0.341309f, 0.518066f, -0.26416f, 0.187988f,
+-0.26416f, 0.187988f, 0, 0.0947266f, 0, 0.0947266f, -0.658691f, 0.529785f, -0.658691f,
+0.529785f, -0.58252f, 0.537598f, -0.0649414f, 0.52002f, -0.0532227f, 0.496826f, -0.0400391f,
+0.473633f, -0.0268555f, 0.445312f, -0.0158691f, 0.416992f, -0.00488281f, 0.383545f,
+0.00244141f, 0.350098f, 0.00976562f, 0.312012f, 0.00976562f, 0.246582f, 0.00976562f,
+0.198242f, -0.0158691f, 0.149902f, -0.0415039f, 0.118164f, -0.0869141f, 0.0864258f,
+-0.132324f, 0.0708008f, -0.195068f, 0.0551758f, -0.257812f, 0.0551758f, -0.33252f,
+0.0551758f, -0.414062f, 0.0703125f, -0.476807f, 0.0854492f, -0.539551f, 0.117188f,
+-0.582275f, 0.148926f, -0.625f, 0.197754f, -0.646973f, 0.246582f, -0.668945f, 0.313477f,
+-0.668945f, 0.362305f, -0.668945f, 0.39917f, -0.65625f, 0.436035f, -0.643555f, 0.463135f,
+-0.621826f, 0.490234f, -0.600098f, 0.508545f, -0.570557f, 0.526855f, -0.541016f,
+0.538574f, -0.507324f, 0.455078f, -0.47998f, 0.436523f, -0.533691f, 0.402588f, -0.563232f,
+0.368652f, -0.592773f, 0.314453f, -0.592773f, 0.270508f, -0.592773f, 0.239746f, -0.575928f,
+0.208984f, -0.559082f, 0.189697f, -0.526123f, 0.17041f, -0.493164f, 0.161865f, -0.44458f,
+0.15332f, -0.395996f, 0.15332f, -0.33252f, 0.15332f, -0.20166f, 0.19458f, -0.133789f,
+0.23584f, -0.065918f, 0.319824f, -0.065918f, 0.343262f, -0.065918f, 0.363525f, -0.0700684f,
+0.383789f, -0.0742188f, 0.400146f, -0.079834f, 0.416504f, -0.0854492f, 0.428467f,
+-0.0915527f, 0.44043f, -0.0976562f, 0.446777f, -0.102051f, 0.446777f, -0.266113f,
+0.303711f, -0.266113f, 0.303711f, -0.344238f, 0.537598f, -0.344238f, 0.427246f, 0,
+0.427246f, -0.304199f, 0.172363f, -0.304199f, 0.172363f, 0, 0.0791016f, 0, 0.0791016f,
+-0.658691f, 0.172363f, -0.658691f, 0.172363f, -0.382324f, 0.427246f, -0.382324f,
+0.427246f, -0.658691f, 0.520508f, -0.658691f, 0.520508f, 0, 0.0986328f, -0.658691f,
+0.500488f, -0.658691f, 0.500488f, -0.58252f, 0.346191f, -0.58252f, 0.346191f, -0.0761719f,
+0.500488f, -0.0761719f, 0.500488f, 0, 0.0986328f, 0, 0.0986328f, -0.0761719f, 0.25293f,
+-0.0761719f, 0.25293f, -0.58252f, 0.0986328f, -0.58252f, 0.481445f, -0.205078f, 0.481445f,
+-0.15625f, 0.468994f, -0.116455f, 0.456543f, -0.0766602f, 0.431885f, -0.048584f,
+0.407227f, -0.0205078f, 0.370605f, -0.00537109f, 0.333984f, 0.00976562f, 0.286133f,
+0.00976562f, 0.202637f, 0.00976562f, 0.152832f, -0.0336914f, 0.103027f, -0.0771484f,
+0.0859375f, -0.170898f, 0.177246f, -0.186035f, 0.182129f, -0.154785f, 0.192383f,
+-0.13208f, 0.202637f, -0.109375f, 0.216797f, -0.0947266f, 0.230957f, -0.0800781f,
+0.248779f, -0.072998f, 0.266602f, -0.065918f, 0.286621f, -0.065918f, 0.337402f, -0.065918f,
+0.363037f, -0.10083f, 0.388672f, -0.135742f, 0.388672f, -0.203125f, 0.388672f, -0.58252f,
+0.236816f, -0.58252f, 0.236816f, -0.658691f, 0.481445f, -0.658691f, 0.489746f, 0,
+0.251953f, -0.311523f, 0.172363f, -0.229004f, 0.172363f, 0, 0.0791016f, 0, 0.0791016f,
+-0.658691f, 0.172363f, -0.658691f, 0.172363f, -0.330078f, 0.45166f, -0.658691f, 0.561523f,
+-0.658691f, 0.31543f, -0.379395f, 0.599121f, 0, 0.115723f, 0, 0.115723f, -0.658691f,
+0.208984f, -0.658691f, 0.208984f, -0.0761719f, 0.537109f, -0.0761719f, 0.537109f,
+0, 0.45752f, 0, 0.45752f, -0.423828f, 0.45752f, -0.44873f, 0.457764f, -0.474609f,
+0.458008f, -0.500488f, 0.458984f, -0.521973f, 0.459961f, -0.546875f, 0.460449f, -0.570801f,
+0.452148f, -0.543945f, 0.443848f, -0.518066f, 0.437012f, -0.496094f, 0.428955f, -0.47168f,
+0.420898f, -0.447266f, 0.414062f, -0.428711f, 0.333984f, -0.214844f, 0.26709f, -0.214844f,
+0.186035f, -0.428711f, 0.183105f, -0.436035f, 0.179688f, -0.446045f, 0.17627f, -0.456055f,
+0.172607f, -0.467529f, 0.168945f, -0.479004f, 0.165039f, -0.490967f, 0.161133f, -0.50293f,
+0.157227f, -0.514648f, 0.148438f, -0.541504f, 0.13916f, -0.570801f, 0.139648f, -0.547363f,
+0.140137f, -0.521973f, 0.140625f, -0.5f, 0.140869f, -0.474365f, 0.141113f, -0.44873f,
+0.141113f, -0.423828f, 0.141113f, 0, 0.0629883f, 0, 0.0629883f, -0.658691f, 0.178711f,
+-0.658691f, 0.269043f, -0.419922f, 0.273438f, -0.408691f, 0.279053f, -0.389893f,
+0.284668f, -0.371094f, 0.290039f, -0.352539f, 0.295898f, -0.331055f, 0.302246f, -0.307129f,
+0.309082f, -0.330078f, 0.314941f, -0.351074f, 0.320312f, -0.369141f, 0.326172f, -0.388184f,
+0.332031f, -0.407227f, 0.336426f, -0.419434f, 0.426758f, -0.658691f, 0.536621f, -0.658691f,
+0.536621f, 0, 0.408203f, 0, 0.154297f, -0.551758f, 0.15625f, -0.530762f, 0.158203f,
+-0.508789f, 0.159668f, -0.490234f, 0.160889f, -0.468506f, 0.162109f, -0.446777f,
+0.162109f, -0.427734f, 0.162109f, 0, 0.0791016f, 0, 0.0791016f, -0.658691f, 0.1875f,
+-0.658691f, 0.445312f, -0.103027f, 0.442871f, -0.122559f, 0.440918f, -0.14502f, 0.438965f,
+-0.164062f, 0.437744f, -0.187988f, 0.436523f, -0.211914f, 0.436523f, -0.236816f,
+0.436523f, -0.658691f, 0.520508f, -0.658691f, 0.520508f, 0, 0.549805f, -0.33252f,
+0.549805f, -0.248047f, 0.532715f, -0.184082f, 0.515625f, -0.120117f, 0.483398f, -0.0769043f,
+0.451172f, -0.0336914f, 0.404541f, -0.0119629f, 0.35791f, 0.00976562f, 0.299316f,
+0.00976562f, 0.237305f, 0.00976562f, 0.19043f, -0.0131836f, 0.143555f, -0.0361328f,
+0.112305f, -0.079834f, 0.0810547f, -0.123535f, 0.0654297f, -0.187256f, 0.0498047f,
+-0.250977f, 0.0498047f, -0.33252f, 0.0498047f, -0.416992f, 0.0664062f, -0.47998f,
+0.0830078f, -0.542969f, 0.114746f, -0.584961f, 0.146484f, -0.626953f, 0.193115f,
+-0.647949f, 0.239746f, -0.668945f, 0.300293f, -0.668945f, 0.420898f, -0.668945f,
+0.485352f, -0.584229f, 0.549805f, -0.499512f, 0.549805f, -0.33252f, 0.45166f, -0.33252f,
+0.45166f, -0.464355f, 0.413086f, -0.528564f, 0.374512f, -0.592773f, 0.300293f, -0.592773f,
+0.224121f, -0.592773f, 0.186035f, -0.528564f, 0.147949f, -0.464355f, 0.147949f, -0.33252f,
+0.147949f, -0.200684f, 0.186523f, -0.133301f, 0.225098f, -0.065918f, 0.299805f, -0.065918f,
+0.379395f, -0.065918f, 0.415527f, -0.134277f, 0.45166f, -0.202637f, 0.45166f, -0.33252f,
+0.546387f, -0.461426f, 0.546387f, -0.42041f, 0.531982f, -0.382568f, 0.517578f, -0.344727f,
+0.488037f, -0.31543f, 0.458496f, -0.286133f, 0.414062f, -0.268555f, 0.369629f, -0.250977f,
+0.30957f, -0.250977f, 0.172363f, -0.250977f, 0.172363f, 0, 0.0791016f, 0, 0.0791016f,
+-0.658691f, 0.303711f, -0.658691f, 0.364746f, -0.658691f, 0.410156f, -0.644531f,
+0.455566f, -0.630371f, 0.48584f, -0.604492f, 0.516113f, -0.578613f, 0.53125f, -0.542236f,
+0.546387f, -0.505859f, 0.546387f, -0.461426f, 0.452637f, -0.459961f, 0.452637f, -0.520996f,
+0.412598f, -0.55249f, 0.372559f, -0.583984f, 0.29248f, -0.583984f, 0.172363f, -0.583984f,
+0.172363f, -0.324707f, 0.296387f, -0.324707f, 0.336426f, -0.324707f, 0.365967f, -0.335205f,
+0.395508f, -0.345703f, 0.414795f, -0.36377f, 0.434082f, -0.381836f, 0.443359f, -0.406738f,
+0.452637f, -0.431641f, 0.452637f, -0.459961f, 0.549805f, -0.33252f, 0.549805f, -0.260742f,
+0.537354f, -0.203369f, 0.524902f, -0.145996f, 0.500977f, -0.104004f, 0.477051f, -0.0620117f,
+0.442627f, -0.0354004f, 0.408203f, -0.00878906f, 0.364258f, 0.00195312f, 0.384277f,
+0.0634766f, 0.416992f, 0.0913086f, 0.449707f, 0.119141f, 0.499023f, 0.119141f, 0.512695f,
+0.119141f, 0.52832f, 0.117188f, 0.543945f, 0.115234f, 0.555176f, 0.112793f, 0.555176f,
+0.178223f, 0.536621f, 0.182617f, 0.514404f, 0.185791f, 0.492188f, 0.188965f, 0.468262f,
+0.188965f, 0.426758f, 0.188965f, 0.395264f, 0.176514f, 0.36377f, 0.164062f, 0.340088f,
+0.140869f, 0.316406f, 0.117676f, 0.299316f, 0.0839844f, 0.282227f, 0.050293f, 0.269043f,
+0.0078125f, 0.214355f, 0.00244141f, 0.17334f, -0.0227051f, 0.132324f, -0.0478516f,
+0.104736f, -0.0913086f, 0.0771484f, -0.134766f, 0.0634766f, -0.195557f, 0.0498047f,
+-0.256348f, 0.0498047f, -0.33252f, 0.0498047f, -0.416992f, 0.0664062f, -0.47998f,
+0.0830078f, -0.542969f, 0.114746f, -0.584961f, 0.146484f, -0.626953f, 0.193115f,
+-0.647949f, 0.239746f, -0.668945f, 0.300293f, -0.668945f, 0.420898f, -0.668945f,
+0.485352f, -0.584229f, 0.549805f, -0.499512f, 0.549805f, -0.33252f, 0.45166f, -0.33252f,
+0.45166f, -0.464355f, 0.413086f, -0.528564f, 0.374512f, -0.592773f, 0.300293f, -0.592773f,
+0.224121f, -0.592773f, 0.186035f, -0.528564f, 0.147949f, -0.464355f, 0.147949f, -0.33252f,
+0.147949f, -0.200684f, 0.186523f, -0.133301f, 0.225098f, -0.065918f, 0.299805f, -0.065918f,
+0.379395f, -0.065918f, 0.415527f, -0.134277f, 0.45166f, -0.202637f, 0.45166f, -0.33252f,
+0.467285f, 0, 0.288574f, -0.280762f, 0.172363f, -0.280762f, 0.172363f, 0, 0.0791016f,
+0, 0.0791016f, -0.658691f, 0.314453f, -0.658691f, 0.373047f, -0.658691f, 0.416748f,
+-0.64624f, 0.460449f, -0.633789f, 0.489502f, -0.610107f, 0.518555f, -0.586426f, 0.532959f,
+-0.552734f, 0.547363f, -0.519043f, 0.547363f, -0.476562f, 0.547363f, -0.446289f,
+0.537842f, -0.41626f, 0.52832f, -0.38623f, 0.507812f, -0.361084f, 0.487305f, -0.335938f,
+0.455566f, -0.317383f, 0.423828f, -0.298828f, 0.379395f, -0.291504f, 0.574707f, 0,
+0.453613f, -0.475098f, 0.453613f, -0.583984f, 0.305176f, -0.583984f, 0.172363f, -0.583984f,
+0.172363f, -0.354492f, 0.309082f, -0.354492f, 0.349609f, -0.354492f, 0.377197f, -0.364258f,
+0.404785f, -0.374023f, 0.421631f, -0.390381f, 0.438477f, -0.406738f, 0.446045f, -0.428711f,
+0.453613f, -0.450684f, 0.453613f, -0.475098f, 0.550781f, -0.180664f, 0.550781f, -0.13916f,
+0.535645f, -0.104248f, 0.520508f, -0.0693359f, 0.489502f, -0.0439453f, 0.458496f,
+-0.0185547f, 0.410889f, -0.00439453f, 0.363281f, 0.00976562f, 0.297852f, 0.00976562f,
+0.183594f, 0.00976562f, 0.119873f, -0.0351562f, 0.0561523f, -0.0800781f, 0.0385742f,
+-0.165039f, 0.128906f, -0.183105f, 0.134766f, -0.15625f, 0.146484f, -0.134277f, 0.158203f,
+-0.112305f, 0.178711f, -0.0964355f, 0.199219f, -0.0805664f, 0.229004f, -0.0717773f,
+0.258789f, -0.0629883f, 0.300293f, -0.0629883f, 0.335449f, -0.0629883f, 0.364502f,
+-0.0695801f, 0.393555f, -0.0761719f, 0.414307f, -0.090332f, 0.435059f, -0.104492f,
+0.446777f, -0.126465f, 0.458496f, -0.148438f, 0.458496f, -0.179199f, 0.458496f, -0.213379f,
+0.442627f, -0.234863f, 0.426758f, -0.256348f, 0.400879f, -0.27002f, 0.375f, -0.283691f,
+0.342529f, -0.292236f, 0.310059f, -0.300781f, 0.276855f, -0.309082f, 0.252441f, -0.31543f,
+0.227539f, -0.32251f, 0.202637f, -0.32959f, 0.179688f, -0.339111f, 0.156738f, -0.348633f,
+0.136963f, -0.361572f, 0.117188f, -0.374512f, 0.102295f, -0.392822f, 0.0874023f,
+-0.411133f, 0.0791016f, -0.435791f, 0.0708008f, -0.460449f, 0.0708008f, -0.493164f,
+0.0708008f, -0.540039f, 0.0883789f, -0.573486f, 0.105957f, -0.606934f, 0.136719f,
+-0.628174f, 0.16748f, -0.649414f, 0.209473f, -0.65918f, 0.251465f, -0.668945f, 0.300293f,
+-0.668945f, 0.356934f, -0.668945f, 0.396729f, -0.658936f, 0.436523f, -0.648926f,
+0.464111f, -0.628906f, 0.491699f, -0.608887f, 0.508301f, -0.579346f, 0.524902f, -0.549805f,
+0.534668f, -0.510742f, 0.442871f, -0.494629f, 0.4375f, -0.519531f, 0.427002f, -0.539062f,
+0.416504f, -0.558594f, 0.39917f, -0.571777f, 0.381836f, -0.584961f, 0.357422f, -0.591797f,
+0.333008f, -0.598633f, 0.299805f, -0.598633f, 0.260742f, -0.598633f, 0.234375f, -0.590576f,
+0.208008f, -0.58252f, 0.191895f, -0.568604f, 0.175781f, -0.554688f, 0.168701f, -0.535645f,
+0.161621f, -0.516602f, 0.161621f, -0.494629f, 0.161621f, -0.465332f, 0.174561f, -0.447021f,
+0.1875f, -0.428711f, 0.209717f, -0.416748f, 0.231934f, -0.404785f, 0.261475f, -0.396973f,
+0.291016f, -0.38916f, 0.324707f, -0.380371f, 0.351562f, -0.373535f, 0.378906f, -0.365967f,
+0.40625f, -0.358398f, 0.431396f, -0.348145f, 0.456543f, -0.337891f, 0.478271f, -0.323975f,
+0.5f, -0.310059f, 0.516113f, -0.290039f, 0.532227f, -0.27002f, 0.541504f, -0.243164f,
+0.550781f, -0.216309f, 0.550781f, -0.180664f, 0.346191f, -0.58252f, 0.346191f, 0,
+0.253418f, 0, 0.253418f, -0.58252f, 0.0371094f, -0.58252f, 0.0371094f, -0.658691f,
+0.5625f, -0.658691f, 0.5625f, -0.58252f, 0.529785f, -0.239258f, 0.529785f, -0.172363f,
+0.515625f, -0.125f, 0.501465f, -0.0776367f, 0.472412f, -0.0476074f, 0.443359f, -0.0175781f,
+0.39917f, -0.00390625f, 0.35498f, 0.00976562f, 0.29541f, 0.00976562f, 0.23877f, 0.00976562f,
+0.196289f, -0.00317383f, 0.153809f, -0.0161133f, 0.125732f, -0.0446777f, 0.0976562f,
+-0.0732422f, 0.0834961f, -0.118896f, 0.0693359f, -0.164551f, 0.0693359f, -0.230469f,
+0.0693359f, -0.658691f, 0.162598f, -0.658691f, 0.162598f, -0.243164f, 0.162598f,
+-0.195801f, 0.168701f, -0.162109f, 0.174805f, -0.128418f, 0.189697f, -0.106934f,
+0.20459f, -0.0854492f, 0.230225f, -0.0756836f, 0.255859f, -0.065918f, 0.294922f,
+-0.065918f, 0.335449f, -0.065918f, 0.362549f, -0.0756836f, 0.389648f, -0.0854492f,
+0.40625f, -0.107178f, 0.422852f, -0.128906f, 0.429932f, -0.164062f, 0.437012f, -0.199219f,
+0.437012f, -0.249512f, 0.437012f, -0.658691f, 0.529785f, -0.658691f, 0.348145f, 0,
+0.251465f, 0, 0.00488281f, -0.658691f, 0.103027f, -0.658691f, 0.259277f, -0.218262f,
+0.26709f, -0.196289f, 0.27417f, -0.172607f, 0.28125f, -0.148926f, 0.287109f, -0.128418f,
+0.293945f, -0.10498f, 0.300293f, -0.0820312f, 0.306152f, -0.104004f, 0.312988f, -0.127441f,
+0.318848f, -0.147461f, 0.326172f, -0.171387f, 0.333496f, -0.195312f, 0.341309f, -0.218262f,
+0.496582f, -0.658691f, 0.594727f, -0.658691f, 0.49707f, 0, 0.395508f, 0, 0.344727f,
+-0.188965f, 0.342285f, -0.198242f, 0.338867f, -0.210938f, 0.335449f, -0.223633f,
+0.331787f, -0.238037f, 0.328125f, -0.252441f, 0.324463f, -0.267822f, 0.320801f, -0.283203f,
+0.317383f, -0.297852f, 0.309082f, -0.332031f, 0.300781f, -0.369141f, 0.291992f, -0.331543f,
+0.283691f, -0.297363f, 0.280273f, -0.282715f, 0.276611f, -0.267334f, 0.272949f, -0.251953f,
+0.269287f, -0.237549f, 0.265625f, -0.223145f, 0.262207f, -0.210693f, 0.258789f, -0.198242f,
+0.256348f, -0.188965f, 0.20459f, 0, 0.103027f, 0, 0, -0.658691f, 0.0922852f, -0.658691f,
+0.145508f, -0.250977f, 0.149414f, -0.219238f, 0.1521f, -0.188965f, 0.154785f, -0.158691f,
+0.157227f, -0.134766f, 0.159668f, -0.106934f, 0.161621f, -0.0820312f, 0.169434f,
+-0.115723f, 0.177246f, -0.148438f, 0.180664f, -0.162598f, 0.184082f, -0.17749f, 0.1875f,
+-0.192383f, 0.191162f, -0.207031f, 0.194824f, -0.22168f, 0.198242f, -0.235107f, 0.20166f,
+-0.248535f, 0.20459f, -0.259766f, 0.257812f, -0.45459f, 0.343262f, -0.45459f, 0.396484f,
+-0.259766f, 0.399414f, -0.249023f, 0.402832f, -0.235352f, 0.40625f, -0.22168f, 0.409912f,
+-0.207275f, 0.413574f, -0.192871f, 0.416992f, -0.177979f, 0.42041f, -0.163086f, 0.423828f,
+-0.148926f, 0.431641f, -0.116211f, 0.439453f, -0.0820312f, 0.439941f, -0.0820312f,
+0.441406f, -0.0986328f, 0.442871f, -0.115234f, 0.445312f, -0.140137f, 0.447754f,
+-0.165039f, 0.450684f, -0.194824f, 0.453613f, -0.224609f, 0.456543f, -0.250977f,
+0.507324f, -0.658691f, 0.599609f, -0.658691f, 0.299805f, -0.408203f, 0.462402f, -0.658691f,
+0.5625f, -0.658691f, 0.350098f, -0.344238f, 0.58252f, 0, 0.482422f, 0, 0.299805f,
+-0.279785f, 0.117676f, 0, 0.0175781f, 0, 0.25f, -0.344238f, 0.0375977f, -0.658691f,
+0.137695f, -0.658691f, 0.345703f, -0.285156f, 0.345703f, 0, 0.253906f, 0, 0.253906f,
+-0.285156f, 0.0175781f, -0.658691f, 0.117676f, -0.658691f, 0.300293f, -0.360352f,
+0.481934f, -0.658691f, 0.582031f, -0.658691f, 0.563965f, 0, 0.0356445f, 0, 0.0356445f,
+-0.0698242f, 0.435059f, -0.58252f, 0.0712891f, -0.58252f, 0.0712891f, -0.658691f,
+0.541016f, -0.658691f, 0.541016f, -0.59082f, 0.141602f, -0.0761719f, 0.563965f, -0.0761719f,
+0.200195f, 0.20752f, 0.200195f, -0.724609f, 0.467285f, -0.724609f, 0.467285f, -0.656738f,
+0.288086f, -0.656738f, 0.288086f, 0.139648f, 0.467285f, 0.139648f, 0.467285f, 0.20752f,
+0.455078f, 0.00976562f, 0.0561523f, -0.724609f, 0.143066f, -0.724609f, 0.543945f,
+0.00976562f, 0.131836f, 0.20752f, 0.131836f, 0.139648f, 0.311035f, 0.139648f, 0.311035f,
+-0.656738f, 0.131836f, -0.656738f, 0.131836f, -0.724609f, 0.398926f, -0.724609f,
+0.398926f, 0.20752f, 0.458984f, -0.21582f, 0.29834f, -0.60791f, 0.13916f, -0.21582f,
+0.0649414f, -0.21582f, 0.249512f, -0.658691f, 0.348633f, -0.658691f, 0.53418f, -0.21582f,
+-0.00244141f, 0.107422f, -0.00244141f, 0.0605469f, 0.602051f, 0.0605469f, 0.602051f,
+0.107422f, 0.342773f, -0.586426f, 0.196289f, -0.69873f, 0.196289f, -0.712891f, 0.29248f,
+-0.712891f, 0.40332f, -0.596191f, 0.40332f, -0.586426f, 0.537598f, -0.0541992f, 0.544922f,
+-0.0541992f, 0.552246f, -0.0551758f, 0.55957f, -0.0561523f, 0.566406f, -0.0576172f,
+0.566406f, -0.00292969f, 0.549805f, 0.000976562f, 0.533447f, 0.00292969f, 0.51709f,
+0.00488281f, 0.498535f, 0.00488281f, 0.473633f, 0.00488281f, 0.455811f, -0.00170898f,
+0.437988f, -0.00830078f, 0.426758f, -0.0217285f, 0.415527f, -0.0351562f, 0.409668f,
+-0.0549316f, 0.403809f, -0.074707f, 0.402344f, -0.101074f, 0.399414f, -0.101074f,
+0.385742f, -0.0756836f, 0.369141f, -0.0551758f, 0.352539f, -0.034668f, 0.331055f,
+-0.0202637f, 0.30957f, -0.00585938f, 0.281738f, 0.00195312f, 0.253906f, 0.00976562f,
+0.217773f, 0.00976562f, 0.140625f, 0.00976562f, 0.101562f, -0.0322266f, 0.0625f,
+-0.0742188f, 0.0625f, -0.147461f, 0.0625f, -0.199707f, 0.0817871f, -0.233154f, 0.101074f,
+-0.266602f, 0.132324f, -0.285645f, 0.163574f, -0.304688f, 0.203369f, -0.312256f,
+0.243164f, -0.319824f, 0.28418f, -0.320312f, 0.399414f, -0.322266f, 0.399414f, -0.351074f,
+0.399414f, -0.383789f, 0.392822f, -0.406738f, 0.38623f, -0.429688f, 0.372803f, -0.443848f,
+0.359375f, -0.458008f, 0.338867f, -0.4646f, 0.318359f, -0.471191f, 0.291016f, -0.471191f,
+0.266602f, -0.471191f, 0.246826f, -0.467529f, 0.227051f, -0.463867f, 0.212891f, -0.454346f,
+0.19873f, -0.444824f, 0.189697f, -0.428467f, 0.180664f, -0.412109f, 0.177734f, -0.387207f,
+0.0859375f, -0.395508f, 0.0908203f, -0.426758f, 0.104248f, -0.452881f, 0.117676f,
+-0.479004f, 0.14209f, -0.498047f, 0.166504f, -0.51709f, 0.203369f, -0.527588f, 0.240234f,
+-0.538086f, 0.29248f, -0.538086f, 0.390137f, -0.538086f, 0.439209f, -0.492432f, 0.488281f,
+-0.446777f, 0.488281f, -0.360352f, 0.488281f, -0.132812f, 0.488281f, -0.09375f, 0.498535f,
+-0.0739746f, 0.508789f, -0.0541992f, 0.537598f, -0.0541992f, 0.240234f, -0.0571289f,
+0.280762f, -0.0571289f, 0.310547f, -0.0725098f, 0.340332f, -0.0878906f, 0.360107f,
+-0.111328f, 0.379883f, -0.134766f, 0.389648f, -0.163086f, 0.399414f, -0.191406f,
+0.399414f, -0.217285f, 0.399414f, -0.260742f, 0.306641f, -0.258789f, 0.279785f, -0.258301f,
+0.252686f, -0.254639f, 0.225586f, -0.250977f, 0.203857f, -0.239258f, 0.182129f, -0.227539f,
+0.168457f, -0.205322f, 0.154785f, -0.183105f, 0.154785f, -0.145996f, 0.154785f, -0.105957f,
+0.176514f, -0.081543f, 0.198242f, -0.0571289f, 0.240234f, -0.0571289f, 0.532227f,
+-0.266602f, 0.532227f, -0.12793f, 0.482666f, -0.059082f, 0.433105f, 0.00976562f,
+0.34082f, 0.00976562f, 0.28418f, 0.00976562f, 0.242676f, -0.0112305f, 0.201172f,
+-0.0322266f, 0.177734f, -0.0800781f, 0.176758f, -0.0800781f, 0.176758f, -0.0673828f,
+0.17627f, -0.0539551f, 0.175781f, -0.0405273f, 0.175049f, -0.0292969f, 0.174316f,
+-0.0180664f, 0.173584f, -0.0100098f, 0.172852f, -0.00195312f, 0.172363f, 0, 0.0874023f,
+0, 0.0878906f, -0.00439453f, 0.0883789f, -0.0148926f, 0.0888672f, -0.0253906f, 0.0893555f,
+-0.0400391f, 0.0898438f, -0.0546875f, 0.0900879f, -0.0722656f, 0.090332f, -0.0898438f,
+0.090332f, -0.108887f, 0.090332f, -0.724609f, 0.178223f, -0.724609f, 0.178223f, -0.518066f,
+0.178223f, -0.503906f, 0.177979f, -0.48999f, 0.177734f, -0.476074f, 0.177246f, -0.465332f,
+0.176758f, -0.452637f, 0.17627f, -0.441406f, 0.178223f, -0.441406f, 0.20166f, -0.492676f,
+0.24292f, -0.515869f, 0.28418f, -0.539062f, 0.341309f, -0.539062f, 0.436523f, -0.539062f,
+0.484375f, -0.471436f, 0.532227f, -0.403809f, 0.532227f, -0.266602f, 0.441406f, -0.263672f,
+0.441406f, -0.318359f, 0.434082f, -0.357666f, 0.426758f, -0.396973f, 0.411377f, -0.422119f,
+0.395996f, -0.447266f, 0.372803f, -0.459229f, 0.349609f, -0.471191f, 0.317383f, -0.471191f,
+0.285156f, -0.471191f, 0.259277f, -0.460205f, 0.233398f, -0.449219f, 0.215576f, -0.424072f,
+0.197754f, -0.398926f, 0.187988f, -0.357666f, 0.178223f, -0.316406f, 0.178223f, -0.255859f,
+0.178223f, -0.197754f, 0.187988f, -0.15918f, 0.197754f, -0.120605f, 0.215576f, -0.0974121f,
+0.233398f, -0.0742188f, 0.259033f, -0.0646973f, 0.284668f, -0.0551758f, 0.316406f,
+-0.0551758f, 0.347168f, -0.0551758f, 0.370605f, -0.0664062f, 0.394043f, -0.0776367f,
+0.409668f, -0.102539f, 0.425293f, -0.127441f, 0.43335f, -0.167236f, 0.441406f, -0.207031f,
+0.441406f, -0.263672f, 0.0634766f, -0.264648f, 0.0634766f, -0.344238f, 0.0844727f,
+-0.396973f, 0.105469f, -0.449707f, 0.139893f, -0.480957f, 0.174316f, -0.512207f,
+0.218262f, -0.525146f, 0.262207f, -0.538086f, 0.308594f, -0.538086f, 0.356445f, -0.538086f,
+0.394043f, -0.525879f, 0.431641f, -0.513672f, 0.45874f, -0.492432f, 0.48584f, -0.471191f,
+0.50293f, -0.442383f, 0.52002f, -0.413574f, 0.526367f, -0.380371f, 0.432617f, -0.373535f,
+0.424805f, -0.417969f, 0.393555f, -0.443604f, 0.362305f, -0.469238f, 0.304688f, -0.469238f,
+0.262695f, -0.469238f, 0.234131f, -0.455811f, 0.205566f, -0.442383f, 0.188232f, -0.416748f,
+0.170898f, -0.391113f, 0.16333f, -0.353271f, 0.155762f, -0.31543f, 0.155762f, -0.266602f,
+0.155762f, -0.217773f, 0.16333f, -0.178955f, 0.170898f, -0.140137f, 0.188232f, -0.113281f,
+0.205566f, -0.0864258f, 0.234131f, -0.0722656f, 0.262695f, -0.0581055f, 0.304199f,
+-0.0581055f, 0.356934f, -0.0581055f, 0.391602f, -0.0839844f, 0.42627f, -0.109863f,
+0.43457f, -0.163086f, 0.527344f, -0.157227f, 0.522949f, -0.124512f, 0.506348f, -0.0942383f,
+0.489746f, -0.0639648f, 0.461914f, -0.0410156f, 0.434082f, -0.0180664f, 0.395508f,
+-0.00415039f, 0.356934f, 0.00976562f, 0.308105f, 0.00976562f, 0.241211f, 0.00976562f,
+0.19458f, -0.0112305f, 0.147949f, -0.0322266f, 0.118896f, -0.0690918f, 0.0898438f,
+-0.105957f, 0.0766602f, -0.156006f, 0.0634766f, -0.206055f, 0.0634766f, -0.264648f,
+0.420898f, -0.0849609f, 0.396973f, -0.0336914f, 0.357422f, -0.010498f, 0.317871f,
+0.0126953f, 0.258789f, 0.0126953f, 0.160156f, 0.0126953f, 0.11377f, -0.0551758f,
+0.0673828f, -0.123047f, 0.0673828f, -0.259766f, 0.0673828f, -0.536133f, 0.258789f,
+-0.536133f, 0.317871f, -0.536133f, 0.357666f, -0.515137f, 0.397461f, -0.494141f,
+0.421387f, -0.446289f, 0.422363f, -0.446289f, 0.422363f, -0.44873f, 0.422119f, -0.458984f,
+0.421875f, -0.469238f, 0.421875f, -0.481445f, 0.421875f, -0.493652f, 0.421631f, -0.504639f,
+0.421387f, -0.515625f, 0.421387f, -0.52002f, 0.421387f, -0.724609f, 0.509277f, -0.724609f,
+0.509277f, -0.108887f, 0.509277f, -0.0898438f, 0.509521f, -0.0722656f, 0.509766f,
+-0.0546875f, 0.510254f, -0.0400391f, 0.510742f, -0.0253906f, 0.51123f, -0.0148926f,
+0.511719f, -0.00439453f, 0.512207f, 0, 0.428223f, 0, 0.427734f, -0.00195312f, 0.426758f,
+-0.0107422f, 0.425781f, -0.0195312f, 0.425049f, -0.0317383f, 0.424316f, -0.0439453f,
+0.423828f, -0.0581055f, 0.42334f, -0.0722656f, 0.42334f, -0.0849609f, 0.158203f,
+-0.262695f, 0.158203f, -0.208008f, 0.165283f, -0.168945f, 0.172363f, -0.129883f,
+0.187256f, -0.104492f, 0.202148f, -0.0791016f, 0.225586f, -0.0671387f, 0.249023f,
+-0.0551758f, 0.281738f, -0.0551758f, 0.31543f, -0.0551758f, 0.341553f, -0.0668945f,
+0.367676f, -0.0786133f, 0.385498f, -0.104248f, 0.40332f, -0.129883f, 0.412354f, -0.170898f,
+0.421387f, -0.211914f, 0.421387f, -0.270508f, 0.421387f, -0.327148f, 0.412354f, -0.365479f,
+0.40332f, -0.403809f, 0.385742f, -0.427246f, 0.368164f, -0.450684f, 0.342285f, -0.460938f,
+0.316406f, -0.471191f, 0.282715f, -0.471191f, 0.251465f, -0.471191f, 0.228027f, -0.459961f,
+0.20459f, -0.44873f, 0.189209f, -0.423828f, 0.173828f, -0.398926f, 0.166016f, -0.359131f,
+0.158203f, -0.319336f, 0.158203f, -0.262695f, 0.157227f, -0.245605f, 0.157227f, -0.204102f,
+0.166504f, -0.169189f, 0.175781f, -0.134277f, 0.194336f, -0.109131f, 0.212891f, -0.0839844f,
+0.240479f, -0.0700684f, 0.268066f, -0.0561523f, 0.304199f, -0.0561523f, 0.331055f,
+-0.0561523f, 0.35376f, -0.0622559f, 0.376465f, -0.0683594f, 0.394531f, -0.0791016f,
+0.412598f, -0.0898438f, 0.424805f, -0.104736f, 0.437012f, -0.119629f, 0.442871f,
+-0.137207f, 0.52002f, -0.115234f, 0.512207f, -0.0932617f, 0.496582f, -0.0710449f,
+0.480957f, -0.0488281f, 0.455078f, -0.0310059f, 0.429199f, -0.0131836f, 0.39209f,
+-0.00170898f, 0.35498f, 0.00976562f, 0.304199f, 0.00976562f, 0.248047f, 0.00976562f,
+0.203613f, -0.0078125f, 0.15918f, -0.0253906f, 0.128418f, -0.0600586f, 0.0976562f,
+-0.0947266f, 0.0812988f, -0.146729f, 0.0649414f, -0.19873f, 0.0649414f, -0.267578f,
+0.0649414f, -0.34375f, 0.0842285f, -0.395508f, 0.103516f, -0.447266f, 0.13623f, -0.479004f,
+0.168945f, -0.510742f, 0.21167f, -0.524414f, 0.254395f, -0.538086f, 0.30127f, -0.538086f,
+0.365234f, -0.538086f, 0.409424f, -0.517578f, 0.453613f, -0.49707f, 0.481445f, -0.460205f,
+0.509277f, -0.42334f, 0.521729f, -0.371582f, 0.53418f, -0.319824f, 0.53418f, -0.257324f,
+0.53418f, -0.245605f, 0.302246f, -0.473145f, 0.279785f, -0.473145f, 0.255127f, -0.466064f,
+0.230469f, -0.458984f, 0.209473f, -0.440918f, 0.188477f, -0.422852f, 0.174072f, -0.391846f,
+0.159668f, -0.36084f, 0.158203f, -0.312988f, 0.443359f, -0.312988f, 0.439453f, -0.358887f,
+0.426758f, -0.389648f, 0.414062f, -0.42041f, 0.395264f, -0.438965f, 0.376465f, -0.45752f,
+0.352539f, -0.465332f, 0.328613f, -0.473145f, 0.302246f, -0.473145f, 0.283203f, -0.458984f,
+0.283203f, 0, 0.195312f, 0, 0.195312f, -0.458984f, 0.0673828f, -0.458984f, 0.0673828f,
+-0.52832f, 0.195312f, -0.52832f, 0.195312f, -0.540527f, 0.195312f, -0.589844f, 0.206299f,
+-0.624756f, 0.217285f, -0.659668f, 0.241699f, -0.681885f, 0.266113f, -0.704102f,
+0.304932f, -0.714355f, 0.34375f, -0.724609f, 0.399414f, -0.724609f, 0.413574f, -0.724609f,
+0.433105f, -0.723877f, 0.452637f, -0.723145f, 0.472168f, -0.72168f, 0.491699f, -0.720215f,
+0.509033f, -0.718262f, 0.526367f, -0.716309f, 0.536621f, -0.714355f, 0.536621f, -0.643555f,
+0.527832f, -0.64502f, 0.510254f, -0.646484f, 0.492676f, -0.647949f, 0.473389f, -0.64917f,
+0.454102f, -0.650391f, 0.436523f, -0.651123f, 0.418945f, -0.651855f, 0.409668f, -0.651855f,
+0.377441f, -0.651855f, 0.353516f, -0.646973f, 0.32959f, -0.64209f, 0.313965f, -0.628906f,
+0.29834f, -0.615723f, 0.290771f, -0.592773f, 0.283203f, -0.569824f, 0.283203f, -0.533203f,
+0.283203f, -0.52832f, 0.522949f, -0.52832f, 0.522949f, -0.458984f, 0.300293f, 0.207031f,
+0.256348f, 0.207031f, 0.2229f, 0.197754f, 0.189453f, 0.188477f, 0.165283f, 0.171143f,
+0.141113f, 0.153809f, 0.126221f, 0.129883f, 0.111328f, 0.105957f, 0.10498f, 0.0766602f,
+0.194824f, 0.0644531f, 0.203125f, 0.101074f, 0.230713f, 0.12085f, 0.258301f, 0.140625f,
+0.303223f, 0.140625f, 0.331055f, 0.140625f, 0.353271f, 0.132324f, 0.375488f, 0.124023f,
+0.391357f, 0.105713f, 0.407227f, 0.0874023f, 0.415771f, 0.0581055f, 0.424316f, 0.0288086f,
+0.424316f, -0.0131836f, 0.424316f, -0.10791f, 0.42334f, -0.10791f, 0.414062f, -0.0883789f,
+0.399658f, -0.0698242f, 0.385254f, -0.0512695f, 0.36499f, -0.0371094f, 0.344727f,
+-0.0229492f, 0.317871f, -0.0144043f, 0.291016f, -0.00585938f, 0.255859f, -0.00585938f,
+0.206055f, -0.00585938f, 0.170898f, -0.0219727f, 0.135742f, -0.0380859f, 0.113281f,
+-0.0708008f, 0.0908203f, -0.103516f, 0.0803223f, -0.152832f, 0.0698242f, -0.202148f,
+0.0698242f, -0.268066f, 0.0698242f, -0.332031f, 0.0803223f, -0.381836f, 0.0908203f,
+-0.431641f, 0.114014f, -0.466064f, 0.137207f, -0.500488f, 0.174316f, -0.518555f,
+0.211426f, -0.536621f, 0.265137f, -0.536621f, 0.320312f, -0.536621f, 0.361084f, -0.510986f,
+0.401855f, -0.485352f, 0.423828f, -0.437988f, 0.425293f, -0.437988f, 0.425293f, -0.450195f,
+0.426025f, -0.465332f, 0.426758f, -0.480469f, 0.42749f, -0.493896f, 0.428223f, -0.507324f,
+0.429443f, -0.51709f, 0.430664f, -0.526855f, 0.431152f, -0.52832f, 0.514648f, -0.52832f,
+0.51416f, -0.523926f, 0.513672f, -0.513428f, 0.513184f, -0.50293f, 0.512695f, -0.488281f,
+0.512207f, -0.473633f, 0.511963f, -0.455811f, 0.511719f, -0.437988f, 0.511719f, -0.418945f,
+0.511719f, -0.015625f, 0.511719f, 0.0952148f, 0.459961f, 0.151123f, 0.408203f, 0.207031f,
+0.300293f, 0.207031f, 0.424316f, -0.269043f, 0.424316f, -0.324219f, 0.412598f, -0.362793f,
+0.400879f, -0.401367f, 0.381592f, -0.425537f, 0.362305f, -0.449707f, 0.337646f, -0.460449f,
+0.312988f, -0.471191f, 0.287109f, -0.471191f, 0.254395f, -0.471191f, 0.230469f, -0.460205f,
+0.206543f, -0.449219f, 0.190918f, -0.425049f, 0.175293f, -0.400879f, 0.167969f, -0.362549f,
+0.160645f, -0.324219f, 0.160645f, -0.269043f, 0.160645f, -0.211914f, 0.167969f, -0.173828f,
+0.175293f, -0.135742f, 0.190674f, -0.112793f, 0.206055f, -0.0898438f, 0.229736f,
+-0.0803223f, 0.253418f, -0.0708008f, 0.285645f, -0.0708008f, 0.311523f, -0.0708008f,
+0.336426f, -0.0812988f, 0.361328f, -0.0917969f, 0.380859f, -0.115234f, 0.400391f,
+-0.138672f, 0.412354f, -0.176514f, 0.424316f, -0.214355f, 0.424316f, -0.269043f,
+0.090332f, -0.724609f, 0.178711f, -0.724609f, 0.178711f, -0.53418f, 0.178711f, -0.509766f,
+0.177246f, -0.485107f, 0.175781f, -0.460449f, 0.174316f, -0.437988f, 0.175781f, -0.437988f,
+0.1875f, -0.460938f, 0.203125f, -0.479492f, 0.21875f, -0.498047f, 0.23877f, -0.510986f,
+0.258789f, -0.523926f, 0.284424f, -0.531006f, 0.310059f, -0.538086f, 0.341309f, -0.538086f,
+0.381836f, -0.538086f, 0.413574f, -0.527344f, 0.445312f, -0.516602f, 0.467285f, -0.494141f,
+0.489258f, -0.47168f, 0.500732f, -0.436523f, 0.512207f, -0.401367f, 0.512207f, -0.352051f,
+0.512207f, 0, 0.423828f, 0, 0.423828f, -0.339355f, 0.423828f, -0.378418f, 0.415771f,
+-0.403564f, 0.407715f, -0.428711f, 0.393311f, -0.443604f, 0.378906f, -0.458496f,
+0.359375f, -0.464355f, 0.339844f, -0.470215f, 0.316406f, -0.470215f, 0.287598f, -0.470215f,
+0.262451f, -0.459229f, 0.237305f, -0.448242f, 0.218506f, -0.42749f, 0.199707f, -0.406738f,
+0.188965f, -0.376221f, 0.178223f, -0.345703f, 0.178223f, -0.306152f, 0.178223f, 0,
+0.090332f, 0, 0.36377f, -0.0693359f, 0.549316f, -0.0693359f, 0.549316f, 0, 0.0698242f,
+0, 0.0698242f, -0.0693359f, 0.275879f, -0.0693359f, 0.275879f, -0.458984f, 0.120117f,
+-0.458984f, 0.120117f, -0.52832f, 0.36377f, -0.52832f, 0.266113f, -0.630859f, 0.266113f,
+-0.724609f, 0.36377f, -0.724609f, 0.36377f, -0.630859f, 0.408203f, 0.0136719f, 0.408203f,
+0.0668945f, 0.390869f, 0.10376f, 0.373535f, 0.140625f, 0.344727f, 0.163818f, 0.315918f,
+0.187012f, 0.277832f, 0.197266f, 0.239746f, 0.20752f, 0.197754f, 0.20752f, 0.177734f,
+0.20752f, 0.157715f, 0.205811f, 0.137695f, 0.204102f, 0.119141f, 0.201172f, 0.100586f,
+0.198242f, 0.0847168f, 0.19458f, 0.0688477f, 0.190918f, 0.0571289f, 0.186523f, 0.0571289f,
+0.118164f, 0.0678711f, 0.120605f, 0.0825195f, 0.123535f, 0.097168f, 0.126465f, 0.114746f,
+0.128906f, 0.132324f, 0.131348f, 0.151611f, 0.133057f, 0.170898f, 0.134766f, 0.19043f,
+0.134766f, 0.217773f, 0.134766f, 0.241455f, 0.12793f, 0.265137f, 0.121094f, 0.282715f,
+0.106201f, 0.300293f, 0.0913086f, 0.310303f, 0.0681152f, 0.320312f, 0.0449219f, 0.320312f,
+0.012207f, 0.320312f, -0.458984f, 0.121582f, -0.458984f, 0.121582f, -0.52832f, 0.408203f,
+-0.52832f, 0.310547f, -0.630859f, 0.310547f, -0.724609f, 0.408203f, -0.724609f, 0.408203f,
+-0.630859f, 0.446289f, 0, 0.267578f, -0.243652f, 0.203125f, -0.195801f, 0.203125f,
+0, 0.115234f, 0, 0.115234f, -0.724609f, 0.203125f, -0.724609f, 0.203125f, -0.271973f,
+0.435059f, -0.52832f, 0.538086f, -0.52832f, 0.32373f, -0.30127f, 0.549316f, 0, 0.359375f,
+-0.0693359f, 0.544922f, -0.0693359f, 0.544922f, 0, 0.0654297f, 0, 0.0654297f, -0.0693359f,
+0.271484f, -0.0693359f, 0.271484f, -0.655273f, 0.130371f, -0.655273f, 0.130371f,
+-0.724609f, 0.359375f, -0.724609f, 0.259277f, 0, 0.259277f, -0.334961f, 0.259277f,
+-0.373535f, 0.256348f, -0.399414f, 0.253418f, -0.425293f, 0.246826f, -0.441162f,
+0.240234f, -0.457031f, 0.229736f, -0.463623f, 0.219238f, -0.470215f, 0.203613f, -0.470215f,
+0.1875f, -0.470215f, 0.174805f, -0.457764f, 0.162109f, -0.445312f, 0.152832f, -0.422607f,
+0.143555f, -0.399902f, 0.138672f, -0.36792f, 0.133789f, -0.335938f, 0.133789f, -0.296387f,
+0.133789f, 0, 0.0512695f, 0, 0.0512695f, -0.415527f, 0.0512695f, -0.432129f, 0.0510254f,
+-0.450439f, 0.0507812f, -0.46875f, 0.050293f, -0.485107f, 0.0498047f, -0.501465f,
+0.0493164f, -0.513184f, 0.0488281f, -0.524902f, 0.0483398f, -0.52832f, 0.121094f,
+-0.52832f, 0.121582f, -0.525879f, 0.12207f, -0.515869f, 0.122559f, -0.505859f, 0.123047f,
+-0.49292f, 0.123535f, -0.47998f, 0.123779f, -0.466309f, 0.124023f, -0.452637f, 0.124023f,
+-0.442871f, 0.125f, -0.442871f, 0.131348f, -0.461914f, 0.140137f, -0.479248f, 0.148926f,
+-0.496582f, 0.161377f, -0.509766f, 0.173828f, -0.522949f, 0.190918f, -0.530518f,
+0.208008f, -0.538086f, 0.230469f, -0.538086f, 0.273438f, -0.538086f, 0.294678f, -0.514648f,
+0.315918f, -0.491211f, 0.325195f, -0.442383f, 0.326172f, -0.442383f, 0.334961f, -0.465332f,
+0.345459f, -0.483154f, 0.355957f, -0.500977f, 0.369629f, -0.513184f, 0.383301f, -0.525391f,
+0.400879f, -0.531738f, 0.418457f, -0.538086f, 0.441406f, -0.538086f, 0.471191f, -0.538086f,
+0.491699f, -0.527344f, 0.512207f, -0.516602f, 0.524902f, -0.494141f, 0.537598f, -0.47168f,
+0.543213f, -0.436523f, 0.548828f, -0.401367f, 0.548828f, -0.352051f, 0.548828f, 0,
+0.466797f, 0, 0.466797f, -0.334961f, 0.466797f, -0.373535f, 0.463867f, -0.399414f,
+0.460938f, -0.425293f, 0.454346f, -0.441162f, 0.447754f, -0.457031f, 0.437256f, -0.463623f,
+0.426758f, -0.470215f, 0.411133f, -0.470215f, 0.378906f, -0.470215f, 0.360107f, -0.429199f,
+0.341309f, -0.388184f, 0.341309f, -0.306152f, 0.341309f, 0, 0.423828f, 0, 0.423828f,
+-0.339355f, 0.423828f, -0.378418f, 0.415771f, -0.403564f, 0.407715f, -0.428711f,
+0.393311f, -0.443604f, 0.378906f, -0.458496f, 0.359375f, -0.464355f, 0.339844f, -0.470215f,
+0.316406f, -0.470215f, 0.287598f, -0.470215f, 0.262451f, -0.459229f, 0.237305f, -0.448242f,
+0.218506f, -0.42749f, 0.199707f, -0.406738f, 0.188965f, -0.376221f, 0.178223f, -0.345703f,
+0.178223f, -0.306152f, 0.178223f, 0, 0.090332f, 0, 0.090332f, -0.415527f, 0.090332f,
+-0.432129f, 0.0900879f, -0.450439f, 0.0898438f, -0.46875f, 0.0893555f, -0.485107f,
+0.0888672f, -0.501465f, 0.0883789f, -0.513184f, 0.0878906f, -0.524902f, 0.0874023f,
+-0.52832f, 0.17041f, -0.52832f, 0.170898f, -0.525879f, 0.171387f, -0.515137f, 0.171875f,
+-0.504395f, 0.172607f, -0.490479f, 0.17334f, -0.476562f, 0.173828f, -0.462158f, 0.174316f,
+-0.447754f, 0.174316f, -0.437988f, 0.175781f, -0.437988f, 0.1875f, -0.460938f, 0.203369f,
+-0.479492f, 0.219238f, -0.498047f, 0.23999f, -0.510986f, 0.260742f, -0.523926f, 0.286621f,
+-0.531006f, 0.3125f, -0.538086f, 0.344727f, -0.538086f, 0.385254f, -0.538086f, 0.416504f,
+-0.527344f, 0.447754f, -0.516602f, 0.468994f, -0.494141f, 0.490234f, -0.47168f, 0.501221f,
+-0.436523f, 0.512207f, -0.401367f, 0.512207f, -0.352051f, 0.512207f, 0, 0.535645f,
+-0.264648f, 0.535645f, -0.195312f, 0.519287f, -0.143799f, 0.50293f, -0.0922852f,
+0.472168f, -0.0581055f, 0.441406f, -0.0239258f, 0.397217f, -0.00708008f, 0.353027f,
+0.00976562f, 0.297363f, 0.00976562f, 0.244141f, 0.00976562f, 0.200928f, -0.00683594f,
+0.157715f, -0.0234375f, 0.127197f, -0.0576172f, 0.0966797f, -0.0917969f, 0.0800781f,
+-0.143311f, 0.0634766f, -0.194824f, 0.0634766f, -0.264648f, 0.0634766f, -0.400879f,
+0.125244f, -0.469482f, 0.187012f, -0.538086f, 0.300293f, -0.538086f, 0.419434f, -0.538086f,
+0.477539f, -0.470215f, 0.535645f, -0.402344f, 0.535645f, -0.264648f, 0.443359f, -0.264648f,
+0.443359f, -0.326172f, 0.432861f, -0.366211f, 0.422363f, -0.40625f, 0.403564f, -0.430176f,
+0.384766f, -0.454102f, 0.358887f, -0.463623f, 0.333008f, -0.473145f, 0.301758f, -0.473145f,
+0.27002f, -0.473145f, 0.243164f, -0.463135f, 0.216309f, -0.453125f, 0.197021f, -0.428955f,
+0.177734f, -0.404785f, 0.166748f, -0.364746f, 0.155762f, -0.324707f, 0.155762f, -0.264648f,
+0.155762f, -0.203125f, 0.167236f, -0.162842f, 0.178711f, -0.122559f, 0.197998f, -0.0986328f,
+0.217285f, -0.074707f, 0.24292f, -0.0649414f, 0.268555f, -0.0551758f, 0.296387f,
+-0.0551758f, 0.328125f, -0.0551758f, 0.355225f, -0.0646973f, 0.382324f, -0.0742188f,
+0.401855f, -0.0981445f, 0.421387f, -0.12207f, 0.432373f, -0.162598f, 0.443359f, -0.203125f,
+0.443359f, -0.264648f, 0.532227f, -0.266602f, 0.532227f, -0.206543f, 0.522461f, -0.155762f,
+0.512695f, -0.10498f, 0.490234f, -0.0683594f, 0.467773f, -0.0317383f, 0.431152f,
+-0.0109863f, 0.394531f, 0.00976562f, 0.34082f, 0.00976562f, 0.313965f, 0.00976562f,
+0.289551f, 0.00488281f, 0.265137f, 0, 0.244141f, -0.0107422f, 0.223145f, -0.0214844f,
+0.206787f, -0.0385742f, 0.19043f, -0.0556641f, 0.179199f, -0.0800781f, 0.176758f,
+-0.0800781f, 0.177246f, -0.0791016f, 0.17749f, -0.0715332f, 0.177734f, -0.0639648f,
+0.177979f, -0.0527344f, 0.178223f, -0.0415039f, 0.178467f, -0.0273438f, 0.178711f,
+-0.0131836f, 0.178711f, 0.000976562f, 0.178711f, 0.20752f, 0.090332f, 0.20752f, 0.090332f,
+-0.418945f, 0.090332f, -0.438477f, 0.0900879f, -0.456543f, 0.0898438f, -0.474609f,
+0.0893555f, -0.489014f, 0.0888672f, -0.503418f, 0.0883789f, -0.513672f, 0.0878906f,
+-0.523926f, 0.0874023f, -0.52832f, 0.172852f, -0.52832f, 0.17334f, -0.526855f, 0.174072f,
+-0.517822f, 0.174805f, -0.508789f, 0.175537f, -0.496094f, 0.17627f, -0.483398f, 0.177002f,
+-0.46875f, 0.177734f, -0.454102f, 0.177734f, -0.441406f, 0.179688f, -0.441406f, 0.191895f,
+-0.466797f, 0.207275f, -0.485352f, 0.222656f, -0.503906f, 0.242188f, -0.515869f,
+0.261719f, -0.527832f, 0.286133f, -0.533447f, 0.310547f, -0.539062f, 0.34082f, -0.539062f,
+0.394531f, -0.539062f, 0.431152f, -0.519531f, 0.467773f, -0.5f, 0.490234f, -0.464111f,
+0.512695f, -0.428223f, 0.522461f, -0.37793f, 0.532227f, -0.327637f, 0.532227f, -0.266602f,
+0.441406f, -0.266602f, 0.441406f, -0.31543f, 0.435547f, -0.353516f, 0.429688f, -0.391602f,
+0.415283f, -0.417725f, 0.400879f, -0.443848f, 0.377197f, -0.45752f, 0.353516f, -0.471191f,
+0.317871f, -0.471191f, 0.289062f, -0.471191f, 0.263672f, -0.462158f, 0.238281f, -0.453125f,
+0.219482f, -0.429443f, 0.200684f, -0.405762f, 0.189697f, -0.36377f, 0.178711f, -0.321777f,
+0.178711f, -0.255859f, 0.178711f, -0.199707f, 0.187744f, -0.161377f, 0.196777f, -0.123047f,
+0.214355f, -0.0993652f, 0.231934f, -0.0756836f, 0.257812f, -0.0654297f, 0.283691f,
+-0.0551758f, 0.316895f, -0.0551758f, 0.352539f, -0.0551758f, 0.376465f, -0.0690918f,
+0.400391f, -0.0830078f, 0.414795f, -0.109863f, 0.429199f, -0.136719f, 0.435303f,
+-0.17627f, 0.441406f, -0.21582f, 0.441406f, -0.266602f, 0.258301f, -0.536133f, 0.290527f,
+-0.536133f, 0.31543f, -0.530762f, 0.340332f, -0.525391f, 0.359619f, -0.51416f, 0.378906f,
+-0.50293f, 0.393799f, -0.486084f, 0.408691f, -0.469238f, 0.42041f, -0.446289f, 0.421387f,
+-0.446289f, 0.421387f, -0.458496f, 0.422119f, -0.472412f, 0.422852f, -0.486328f,
+0.423584f, -0.498291f, 0.424316f, -0.510254f, 0.425537f, -0.518799f, 0.426758f, -0.527344f,
+0.427246f, -0.528809f, 0.512695f, -0.528809f, 0.512207f, -0.524414f, 0.511719f, -0.514648f,
+0.51123f, -0.504883f, 0.510742f, -0.488281f, 0.510254f, -0.47168f, 0.51001f, -0.447754f,
+0.509766f, -0.423828f, 0.509766f, -0.391113f, 0.509766f, 0.20752f, 0.421387f, 0.20752f,
+0.421387f, -0.00683594f, 0.421387f, -0.0195312f, 0.421631f, -0.0336914f, 0.421875f,
+-0.0478516f, 0.422363f, -0.0605469f, 0.422852f, -0.0751953f, 0.42334f, -0.0888672f,
+0.422363f, -0.0888672f, 0.410156f, -0.0639648f, 0.394775f, -0.0449219f, 0.379395f,
+-0.0258789f, 0.359619f, -0.0129395f, 0.339844f, 0, 0.315186f, 0.00634766f, 0.290527f,
+0.0126953f, 0.258789f, 0.0126953f, 0.160156f, 0.0126953f, 0.11377f, -0.0559082f,
+0.0673828f, -0.124512f, 0.0673828f, -0.259766f, 0.0673828f, -0.396973f, 0.11499f,
+-0.466553f, 0.162598f, -0.536133f, 0.258301f, -0.536133f, 0.421387f, -0.270508f,
+0.421387f, -0.328613f, 0.411621f, -0.367188f, 0.401855f, -0.405762f, 0.383789f, -0.428711f,
+0.365723f, -0.45166f, 0.340088f, -0.461426f, 0.314453f, -0.471191f, 0.282715f, -0.471191f,
+0.249512f, -0.471191f, 0.22583f, -0.45874f, 0.202148f, -0.446289f, 0.187256f, -0.420654f,
+0.172363f, -0.39502f, 0.165283f, -0.355713f, 0.158203f, -0.316406f, 0.158203f, -0.262695f,
+0.158203f, -0.210938f, 0.165039f, -0.172119f, 0.171875f, -0.133301f, 0.186523f, -0.107422f,
+0.201172f, -0.081543f, 0.224609f, -0.0683594f, 0.248047f, -0.0551758f, 0.281738f,
+-0.0551758f, 0.310547f, -0.0551758f, 0.335938f, -0.0646973f, 0.361328f, -0.0742188f,
+0.380371f, -0.0983887f, 0.399414f, -0.122559f, 0.4104f, -0.164307f, 0.421387f, -0.206055f,
+0.421387f, -0.270508f, 0.510254f, -0.448242f, 0.487305f, -0.452148f, 0.462158f, -0.454834f,
+0.437012f, -0.45752f, 0.406738f, -0.45752f, 0.365723f, -0.45752f, 0.333008f, -0.440918f,
+0.300293f, -0.424316f, 0.277832f, -0.395752f, 0.255371f, -0.367188f, 0.243408f, -0.329102f,
+0.231445f, -0.291016f, 0.231445f, -0.248047f, 0.231445f, 0, 0.143555f, 0, 0.143555f,
+-0.342285f, 0.143555f, -0.369629f, 0.140625f, -0.397949f, 0.137695f, -0.42627f, 0.133789f,
+-0.451416f, 0.129883f, -0.476562f, 0.125488f, -0.496582f, 0.121094f, -0.516602f,
+0.118164f, -0.52832f, 0.20166f, -0.52832f, 0.205078f, -0.516602f, 0.20874f, -0.501465f,
+0.212402f, -0.486328f, 0.21582f, -0.469971f, 0.219238f, -0.453613f, 0.22168f, -0.437012f,
+0.224121f, -0.42041f, 0.225098f, -0.40625f, 0.227539f, -0.40625f, 0.241211f, -0.436523f,
+0.256348f, -0.460938f, 0.271484f, -0.485352f, 0.292236f, -0.502441f, 0.312988f, -0.519531f,
+0.341309f, -0.528809f, 0.369629f, -0.538086f, 0.409668f, -0.538086f, 0.437012f, -0.538086f,
+0.463379f, -0.535645f, 0.489746f, -0.533203f, 0.510254f, -0.529785f, 0.517578f, -0.150879f,
+0.517578f, -0.11377f, 0.503174f, -0.0839844f, 0.48877f, -0.0541992f, 0.461426f, -0.0334473f,
+0.434082f, -0.0126953f, 0.394287f, -0.00146484f, 0.354492f, 0.00976562f, 0.303223f,
+0.00976562f, 0.257324f, 0.00976562f, 0.220459f, 0.00317383f, 0.183594f, -0.00341797f,
+0.155762f, -0.0185547f, 0.12793f, -0.0336914f, 0.109131f, -0.0588379f, 0.090332f,
+-0.0839844f, 0.081543f, -0.121094f, 0.15918f, -0.13623f, 0.165039f, -0.109375f, 0.177979f,
+-0.0935059f, 0.190918f, -0.0776367f, 0.209229f, -0.0693359f, 0.227539f, -0.0610352f,
+0.251465f, -0.0583496f, 0.275391f, -0.0556641f, 0.303223f, -0.0556641f, 0.331543f,
+-0.0556641f, 0.355713f, -0.0598145f, 0.379883f, -0.0639648f, 0.397461f, -0.0739746f,
+0.415039f, -0.0839844f, 0.425049f, -0.0998535f, 0.435059f, -0.115723f, 0.435059f,
+-0.13916f, 0.435059f, -0.163574f, 0.422607f, -0.178467f, 0.410156f, -0.193359f, 0.388672f,
+-0.203613f, 0.367188f, -0.213867f, 0.337646f, -0.221191f, 0.308105f, -0.228516f,
+0.273438f, -0.237793f, 0.242188f, -0.246094f, 0.211426f, -0.255859f, 0.180664f, -0.265625f,
+0.156494f, -0.281494f, 0.132324f, -0.297363f, 0.117432f, -0.321777f, 0.102539f, -0.346191f,
+0.102539f, -0.383789f, 0.102539f, -0.455566f, 0.154297f, -0.496094f, 0.206055f, -0.536621f,
+0.304199f, -0.536621f, 0.342773f, -0.536621f, 0.376465f, -0.529541f, 0.410156f, -0.522461f,
+0.436523f, -0.50708f, 0.462891f, -0.491699f, 0.480713f, -0.467529f, 0.498535f, -0.443359f,
+0.505371f, -0.409668f, 0.42627f, -0.399902f, 0.422852f, -0.421875f, 0.411621f, -0.435547f,
+0.400391f, -0.449219f, 0.384033f, -0.457275f, 0.367676f, -0.465332f, 0.347168f, -0.468262f,
+0.32666f, -0.471191f, 0.304199f, -0.471191f, 0.18457f, -0.471191f, 0.18457f, -0.397461f,
+0.18457f, -0.375f, 0.195068f, -0.361084f, 0.205566f, -0.347168f, 0.224609f, -0.337891f,
+0.243652f, -0.328613f, 0.27002f, -0.322021f, 0.296387f, -0.31543f, 0.328125f, -0.307129f,
+0.359863f, -0.299316f, 0.393311f, -0.289062f, 0.426758f, -0.278809f, 0.454346f, -0.261719f,
+0.481934f, -0.244629f, 0.499756f, -0.218018f, 0.517578f, -0.191406f, 0.517578f, -0.150879f,
+0.0927734f, -0.458984f, 0.0927734f, -0.52832f, 0.175781f, -0.52832f, 0.204102f, -0.666016f,
+0.262695f, -0.666016f, 0.262695f, -0.52832f, 0.473633f, -0.52832f, 0.473633f, -0.458984f,
+0.262695f, -0.458984f, 0.262695f, -0.140625f, 0.262695f, -0.102051f, 0.283447f, -0.0834961f,
+0.304199f, -0.0649414f, 0.351562f, -0.0649414f, 0.371094f, -0.0649414f, 0.391846f,
+-0.0666504f, 0.412598f, -0.0683594f, 0.431885f, -0.0708008f, 0.451172f, -0.0732422f,
+0.468018f, -0.0761719f, 0.484863f, -0.0791016f, 0.496582f, -0.081543f, 0.496582f,
+-0.0146484f, 0.48584f, -0.0117188f, 0.46875f, -0.0078125f, 0.45166f, -0.00390625f,
+0.43042f, -0.000488281f, 0.40918f, 0.00292969f, 0.384277f, 0.00537109f, 0.359375f,
+0.0078125f, 0.333008f, 0.0078125f, 0.253906f, 0.0078125f, 0.214355f, -0.0256348f,
+0.174805f, -0.059082f, 0.174805f, -0.131348f, 0.174805f, -0.458984f, 0.178223f, -0.52832f,
+0.178223f, -0.193359f, 0.178223f, -0.154785f, 0.183838f, -0.128906f, 0.189453f, -0.103027f,
+0.202393f, -0.0871582f, 0.215332f, -0.0712891f, 0.236084f, -0.0646973f, 0.256836f,
+-0.0581055f, 0.287598f, -0.0581055f, 0.318848f, -0.0581055f, 0.343994f, -0.0690918f,
+0.369141f, -0.0800781f, 0.386963f, -0.10083f, 0.404785f, -0.121582f, 0.414307f, -0.1521f,
+0.423828f, -0.182617f, 0.423828f, -0.222168f, 0.423828f, -0.52832f, 0.512207f, -0.52832f,
+0.512207f, -0.112793f, 0.512207f, -0.0961914f, 0.512451f, -0.0778809f, 0.512695f,
+-0.0595703f, 0.513184f, -0.0432129f, 0.513672f, -0.0268555f, 0.51416f, -0.0151367f,
+0.514648f, -0.00341797f, 0.515137f, 0, 0.432129f, 0, 0.431641f, -0.00244141f, 0.431152f,
+-0.0131836f, 0.430664f, -0.0239258f, 0.429932f, -0.0378418f, 0.429199f, -0.0517578f,
+0.428711f, -0.0661621f, 0.428223f, -0.0805664f, 0.428223f, -0.090332f, 0.426758f,
+-0.090332f, 0.414062f, -0.0673828f, 0.398926f, -0.0488281f, 0.383789f, -0.0302734f,
+0.36377f, -0.017334f, 0.34375f, -0.00439453f, 0.317871f, 0.00268555f, 0.291992f,
+0.00976562f, 0.257812f, 0.00976562f, 0.213867f, 0.00976562f, 0.182129f, -0.000976562f,
+0.150391f, -0.0117188f, 0.129883f, -0.0341797f, 0.109375f, -0.0566406f, 0.0998535f,
+-0.092041f, 0.090332f, -0.127441f, 0.090332f, -0.17627f, 0.090332f, -0.52832f, 0.349121f,
+0, 0.245117f, 0, 0.0336914f, -0.52832f, 0.132324f, -0.52832f, 0.263184f, -0.18457f,
+0.26709f, -0.173828f, 0.271484f, -0.158447f, 0.275879f, -0.143066f, 0.280762f, -0.126465f,
+0.285645f, -0.109863f, 0.289795f, -0.0944824f, 0.293945f, -0.0791016f, 0.296875f,
+-0.0688477f, 0.299805f, -0.0791016f, 0.304443f, -0.0944824f, 0.309082f, -0.109863f,
+0.313965f, -0.125977f, 0.318848f, -0.14209f, 0.323975f, -0.157471f, 0.329102f, -0.172852f,
+0.333008f, -0.183594f, 0.467773f, -0.52832f, 0.565918f, -0.52832f, 0.49707f, 0, 0.397461f,
+0, 0.327637f, -0.22998f, 0.32373f, -0.243164f, 0.318848f, -0.26001f, 0.313965f, -0.276855f,
+0.30957f, -0.29248f, 0.304199f, -0.310547f, 0.299805f, -0.328613f, 0.29541f, -0.310547f,
+0.290039f, -0.292969f, 0.285645f, -0.277832f, 0.280762f, -0.260498f, 0.275879f, -0.243164f,
+0.270996f, -0.228027f, 0.19873f, 0, 0.0996094f, 0, 0.0102539f, -0.52832f, 0.097168f,
+-0.52832f, 0.142578f, -0.231934f, 0.144043f, -0.220215f, 0.146729f, -0.199463f, 0.149414f,
+-0.178711f, 0.1521f, -0.155273f, 0.154785f, -0.131836f, 0.156738f, -0.109375f, 0.158691f,
+-0.0869141f, 0.158691f, -0.0727539f, 0.164062f, -0.0947266f, 0.169434f, -0.114746f,
+0.173828f, -0.131836f, 0.178711f, -0.149658f, 0.183594f, -0.16748f, 0.187012f, -0.177246f,
+0.25293f, -0.384277f, 0.347168f, -0.384277f, 0.410645f, -0.176758f, 0.413574f, -0.166992f,
+0.418213f, -0.149658f, 0.422852f, -0.132324f, 0.427246f, -0.115234f, 0.432617f, -0.0952148f,
+0.4375f, -0.0727539f, 0.4375f, -0.0874023f, 0.439453f, -0.109375f, 0.441406f, -0.131348f,
+0.444336f, -0.154541f, 0.447266f, -0.177734f, 0.450195f, -0.19873f, 0.453125f, -0.219727f,
+0.45459f, -0.231934f, 0.503906f, -0.52832f, 0.589844f, -0.52832f, 0.455078f, 0, 0.29834f,
+-0.216797f, 0.140625f, 0, 0.0458984f, 0, 0.248535f, -0.271484f, 0.0546875f, -0.52832f,
+0.151855f, -0.52832f, 0.29834f, -0.322754f, 0.443848f, -0.52832f, 0.541992f, -0.52832f,
+0.348145f, -0.272461f, 0.553223f, 0, 0.344238f, 0, 0.326172f, 0.0478516f, 0.306641f,
+0.0861816f, 0.287109f, 0.124512f, 0.263184f, 0.151611f, 0.239258f, 0.178711f, 0.209961f,
+0.193115f, 0.180664f, 0.20752f, 0.142578f, 0.20752f, 0.125977f, 0.20752f, 0.111816f,
+0.206543f, 0.0976562f, 0.205566f, 0.0820312f, 0.202148f, 0.0820312f, 0.13623f, 0.0913086f,
+0.137695f, 0.103027f, 0.138428f, 0.114746f, 0.13916f, 0.123047f, 0.13916f, 0.161621f,
+0.13916f, 0.195557f, 0.110352f, 0.229492f, 0.081543f, 0.25293f, 0.0185547f, 0.261719f,
+-0.00537109f, 0.0322266f, -0.52832f, 0.125977f, -0.52832f, 0.254883f, -0.214844f,
+0.260254f, -0.20166f, 0.268066f, -0.182373f, 0.275879f, -0.163086f, 0.283203f, -0.144287f,
+0.290527f, -0.125488f, 0.296143f, -0.110352f, 0.301758f, -0.0952148f, 0.302734f,
+-0.0908203f, 0.304199f, -0.0961914f, 0.309814f, -0.111084f, 0.31543f, -0.125977f,
+0.322754f, -0.144287f, 0.330078f, -0.162598f, 0.337646f, -0.181885f, 0.345215f, -0.201172f,
+0.351074f, -0.215332f, 0.474121f, -0.52832f, 0.566895f, -0.52832f, 0.0717773f, 0,
+0.0717773f, -0.0668945f, 0.404297f, -0.460449f, 0.0913086f, -0.460449f, 0.0913086f,
+-0.52832f, 0.503418f, -0.52832f, 0.503418f, -0.461426f, 0.17041f, -0.0678711f, 0.521484f,
+-0.0678711f, 0.521484f, 0, 0.388672f, 0.20752f, 0.356934f, 0.20752f, 0.330566f, 0.196777f,
+0.304199f, 0.186035f, 0.285156f, 0.166504f, 0.266113f, 0.146973f, 0.255615f, 0.119873f,
+0.245117f, 0.0927734f, 0.245117f, 0.0595703f, 0.245117f, -0.111816f, 0.245117f, -0.142578f,
+0.233643f, -0.163818f, 0.222168f, -0.185059f, 0.203125f, -0.198242f, 0.184082f, -0.211426f,
+0.159912f, -0.217773f, 0.135742f, -0.224121f, 0.11084f, -0.225098f, 0.11084f, -0.291992f,
+0.135742f, -0.292969f, 0.159912f, -0.299316f, 0.184082f, -0.305664f, 0.203125f, -0.319092f,
+0.222168f, -0.33252f, 0.233643f, -0.353516f, 0.245117f, -0.374512f, 0.245117f, -0.404785f,
+0.245117f, -0.57666f, 0.245117f, -0.61084f, 0.255615f, -0.638184f, 0.266113f, -0.665527f,
+0.285156f, -0.684814f, 0.304199f, -0.704102f, 0.330566f, -0.714355f, 0.356934f, -0.724609f,
+0.388672f, -0.724609f, 0.518066f, -0.724609f, 0.518066f, -0.656738f, 0.414062f, -0.656738f,
+0.39209f, -0.656738f, 0.376221f, -0.651611f, 0.360352f, -0.646484f, 0.350098f, -0.635254f,
+0.339844f, -0.624023f, 0.335205f, -0.605957f, 0.330566f, -0.587891f, 0.330566f, -0.561523f,
+0.330566f, -0.392578f, 0.330566f, -0.364746f, 0.320557f, -0.342285f, 0.310547f, -0.319824f,
+0.294434f, -0.302979f, 0.27832f, -0.286133f, 0.258057f, -0.275391f, 0.237793f, -0.264648f,
+0.217773f, -0.259766f, 0.217773f, -0.258789f, 0.23877f, -0.253906f, 0.259033f, -0.24292f,
+0.279297f, -0.231934f, 0.295166f, -0.215332f, 0.311035f, -0.19873f, 0.320801f, -0.176025f,
+0.330566f, -0.15332f, 0.330566f, -0.125f, 0.330566f, 0.0444336f, 0.330566f, 0.0961914f,
+0.350098f, 0.11792f, 0.369629f, 0.139648f, 0.414062f, 0.139648f, 0.518066f, 0.139648f,
+0.518066f, 0.20752f, 0.259277f, 0.20752f, 0.259277f, -0.724609f, 0.340332f, -0.724609f,
+0.340332f, 0.20752f, 0.081543f, 0.20752f, 0.081543f, 0.139648f, 0.185547f, 0.139648f,
+0.22998f, 0.139648f, 0.249756f, 0.11792f, 0.269531f, 0.0961914f, 0.269531f, 0.0444336f,
+0.269531f, -0.125f, 0.269531f, -0.15332f, 0.279297f, -0.176025f, 0.289062f, -0.19873f,
+0.304932f, -0.215332f, 0.320801f, -0.231934f, 0.34082f, -0.24292f, 0.36084f, -0.253906f,
+0.381836f, -0.258789f, 0.381836f, -0.259766f, 0.361816f, -0.264648f, 0.341797f, -0.275391f,
+0.321777f, -0.286133f, 0.305664f, -0.302979f, 0.289551f, -0.319824f, 0.279541f, -0.342285f,
+0.269531f, -0.364746f, 0.269531f, -0.392578f, 0.269531f, -0.561523f, 0.269531f, -0.587891f,
+0.264648f, -0.605957f, 0.259766f, -0.624023f, 0.249512f, -0.635254f, 0.239258f, -0.646484f,
+0.223389f, -0.651611f, 0.20752f, -0.656738f, 0.185547f, -0.656738f, 0.081543f, -0.656738f,
+0.081543f, -0.724609f, 0.210938f, -0.724609f, 0.242676f, -0.724609f, 0.269043f, -0.714355f,
+0.29541f, -0.704102f, 0.314453f, -0.684814f, 0.333496f, -0.665527f, 0.343994f, -0.638184f,
+0.354492f, -0.61084f, 0.354492f, -0.57666f, 0.354492f, -0.404785f, 0.354492f, -0.374512f,
+0.365967f, -0.353516f, 0.377441f, -0.33252f, 0.396484f, -0.319092f, 0.415527f, -0.305664f,
+0.439697f, -0.299316f, 0.463867f, -0.292969f, 0.48877f, -0.291992f, 0.48877f, -0.225098f,
+0.463867f, -0.224121f, 0.439697f, -0.217773f, 0.415527f, -0.211426f, 0.396484f, -0.198242f,
+0.377441f, -0.185059f, 0.365967f, -0.163818f, 0.354492f, -0.142578f, 0.354492f, -0.111816f,
+0.354492f, 0.0595703f, 0.354492f, 0.0927734f, 0.343994f, 0.119873f, 0.333496f, 0.146973f,
+0.314453f, 0.166504f, 0.29541f, 0.186035f, 0.269043f, 0.196777f, 0.242676f, 0.20752f,
+0.210938f, 0.20752f, 0.181152f, -0.394043f, 0.201172f, -0.394043f, 0.220459f, -0.390869f,
+0.239746f, -0.387695f, 0.258545f, -0.382812f, 0.277344f, -0.37793f, 0.295654f, -0.371582f,
+0.313965f, -0.365234f, 0.332031f, -0.358887f, 0.342285f, -0.355469f, 0.354492f, -0.351562f,
+0.366699f, -0.347656f, 0.37915f, -0.344238f, 0.391602f, -0.34082f, 0.404053f, -0.338867f,
+0.416504f, -0.336914f, 0.427734f, -0.336914f, 0.461426f, -0.336914f, 0.491455f, -0.349121f,
+0.521484f, -0.361328f, 0.546875f, -0.381836f, 0.546875f, -0.309082f, 0.531738f, -0.29834f,
+0.51709f, -0.290771f, 0.502441f, -0.283203f, 0.487549f, -0.278564f, 0.472656f, -0.273926f,
+0.456055f, -0.271973f, 0.439453f, -0.27002f, 0.419922f, -0.27002f, 0.38623f, -0.27002f,
+0.35083f, -0.280762f, 0.31543f, -0.291504f, 0.279785f, -0.304199f, 0.216797f, -0.326172f,
+0.173828f, -0.326172f, 0.155273f, -0.326172f, 0.139404f, -0.323242f, 0.123535f, -0.320312f,
+0.108887f, -0.314697f, 0.0942383f, -0.309082f, 0.0805664f, -0.30127f, 0.0668945f,
+-0.293457f, 0.0527344f, -0.283203f, 0.0527344f, -0.353027f, 0.0771484f, -0.371582f,
+0.109375f, -0.382812f, 0.141602f, -0.394043f, 0.181152f, -0.394043f
+};
+
+const unsigned char LiberationMonoNormalVerbs[] = {
+0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6,
+0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 5, 0, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1,
+1, 1, 1, 1, 5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 1,
+1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 5, 6
+};
+
+const unsigned LiberationMonoNormalCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+123, 124, 125, 126
+};
+
+const SkFixed LiberationMonoNormalWidths[] = {
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0
+};
+
+const int LiberationMonoNormalCharCodesCount = (int) SK_ARRAY_COUNT(LiberationMonoNormalCharCodes);
+
+const SkPaint::FontMetrics LiberationMonoNormalMetrics = {
+0x30307833, -0.83252f, -0.83252f, 0.300293f, 0.300293f, 0, 0.633301f, 0.00989532f,
+-0.0244141f, 0.608887f, 0.538086f, 0.0104446f, 0.0410156f, 0.23291f
+};
+
+const SkScalar LiberationMonoBoldPoints[] = {
+0.0620117f, 0, 0.0620117f, -0.366211f, 0.437988f, -0.366211f, 0.437988f, 0, 0.375f,
+-0.304199f, 0.125f, -0.304199f, 0.125f, -0.0629883f, 0.375f, -0.0629883f, 0.356445f,
+-0.208008f, 0.244141f, -0.208008f, 0.228516f, -0.658691f, 0.37207f, -0.658691f, 0.228516f,
+0, 0.228516f, -0.131836f, 0.369141f, -0.131836f, 0.369141f, 0, 0.459961f, -0.412109f,
+0.362793f, -0.412109f, 0.344727f, -0.725098f, 0.479004f, -0.725098f, 0.237305f, -0.412109f,
+0.140137f, -0.412109f, 0.12207f, -0.725098f, 0.255371f, -0.725098f, 0.464355f, -0.407715f,
+0.430664f, -0.249512f, 0.546387f, -0.249512f, 0.546387f, -0.176758f, 0.414551f, -0.176758f,
+0.376465f, 0, 0.300781f, 0, 0.339355f, -0.176758f, 0.188477f, -0.176758f, 0.150391f,
+0, 0.0756836f, 0, 0.11377f, -0.176758f, 0.0288086f, -0.176758f, 0.0288086f, -0.249512f,
+0.129395f, -0.249512f, 0.163574f, -0.407715f, 0.0527344f, -0.407715f, 0.0527344f,
+-0.47998f, 0.179199f, -0.47998f, 0.217773f, -0.658691f, 0.29248f, -0.658691f, 0.254395f,
+-0.47998f, 0.404785f, -0.47998f, 0.443359f, -0.658691f, 0.518066f, -0.658691f, 0.47998f,
+-0.47998f, 0.570312f, -0.47998f, 0.570312f, -0.407715f, 0.238281f, -0.407715f, 0.204102f,
+-0.249512f, 0.35498f, -0.249512f, 0.38916f, -0.407715f, 0.5625f, -0.191895f, 0.5625f,
+-0.150391f, 0.548828f, -0.116455f, 0.535156f, -0.0825195f, 0.506592f, -0.0578613f,
+0.478027f, -0.0332031f, 0.433594f, -0.0187988f, 0.38916f, -0.00439453f, 0.327637f,
+-0.00195312f, 0.327637f, 0.0834961f, 0.274414f, 0.0834961f, 0.274414f, -0.000488281f,
+0.21875f, -0.00244141f, 0.17749f, -0.015625f, 0.13623f, -0.0288086f, 0.107178f, -0.0527344f,
+0.078125f, -0.0766602f, 0.0603027f, -0.111084f, 0.0424805f, -0.145508f, 0.0336914f,
+-0.189941f, 0.158691f, -0.212891f, 0.162598f, -0.189453f, 0.170166f, -0.170166f,
+0.177734f, -0.150879f, 0.190918f, -0.136719f, 0.204102f, -0.122559f, 0.224365f, -0.113525f,
+0.244629f, -0.104492f, 0.274414f, -0.101562f, 0.274414f, -0.29248f, 0.272949f, -0.293457f,
+0.26709f, -0.294678f, 0.26123f, -0.295898f, 0.259277f, -0.295898f, 0.221191f, -0.304688f,
+0.184814f, -0.317627f, 0.148438f, -0.330566f, 0.120117f, -0.352783f, 0.0917969f,
+-0.375f, 0.0744629f, -0.408936f, 0.0571289f, -0.442871f, 0.0571289f, -0.493652f,
+0.0571289f, -0.538086f, 0.072998f, -0.570068f, 0.0888672f, -0.602051f, 0.117676f,
+-0.623047f, 0.146484f, -0.644043f, 0.186523f, -0.654785f, 0.226562f, -0.665527f,
+0.274414f, -0.66748f, 0.274414f, -0.73291f, 0.327637f, -0.73291f, 0.327637f, -0.66748f,
+0.379883f, -0.665527f, 0.416992f, -0.653809f, 0.454102f, -0.64209f, 0.479736f, -0.62085f,
+0.505371f, -0.599609f, 0.521484f, -0.568604f, 0.537598f, -0.537598f, 0.547852f, -0.496582f,
+0.418945f, -0.477539f, 0.404297f, -0.561523f, 0.327637f, -0.571777f, 0.327637f, -0.399902f,
+0.330078f, -0.398926f, 0.332764f, -0.398926f, 0.335449f, -0.398926f, 0.338379f, -0.397949f,
+0.380371f, -0.388184f, 0.420654f, -0.375f, 0.460938f, -0.361816f, 0.492432f, -0.339355f,
+0.523926f, -0.316895f, 0.543213f, -0.281494f, 0.5625f, -0.246094f, 0.5625f, -0.191895f,
+0.274414f, -0.57373f, 0.248535f, -0.571777f, 0.231445f, -0.564941f, 0.214355f, -0.558105f,
+0.204102f, -0.547607f, 0.193848f, -0.537109f, 0.189453f, -0.523682f, 0.185059f, -0.510254f,
+0.185059f, -0.495605f, 0.185059f, -0.474609f, 0.19165f, -0.461182f, 0.198242f, -0.447754f,
+0.210205f, -0.438965f, 0.222168f, -0.430176f, 0.238525f, -0.424072f, 0.254883f, -0.417969f,
+0.274414f, -0.411621f, 0.435547f, -0.189941f, 0.435547f, -0.213867f, 0.427246f, -0.22876f,
+0.418945f, -0.243652f, 0.404297f, -0.25293f, 0.389648f, -0.262207f, 0.369873f, -0.268311f,
+0.350098f, -0.274414f, 0.327637f, -0.280762f, 0.327637f, -0.101562f, 0.379395f, -0.10498f,
+0.407471f, -0.125977f, 0.435547f, -0.146973f, 0.435547f, -0.189941f, 0.115234f, 0,
+0.0297852f, 0, 0.484863f, -0.660645f, 0.571289f, -0.660645f, 0.14209f, -0.664551f,
+0.17041f, -0.664551f, 0.195557f, -0.656982f, 0.220703f, -0.649414f, 0.239502f, -0.630615f,
+0.258301f, -0.611816f, 0.269287f, -0.580322f, 0.280273f, -0.548828f, 0.280273f, -0.500488f,
+0.280273f, -0.453613f, 0.269287f, -0.421875f, 0.258301f, -0.390137f, 0.239258f, -0.370605f,
+0.220215f, -0.351074f, 0.194824f, -0.342529f, 0.169434f, -0.333984f, 0.140137f, -0.333984f,
+0.11084f, -0.333984f, 0.0852051f, -0.342529f, 0.0595703f, -0.351074f, 0.0405273f,
+-0.370361f, 0.0214844f, -0.389648f, 0.0107422f, -0.421631f, 0, -0.453613f, 0, -0.500488f,
+0, -0.548828f, 0.0109863f, -0.580322f, 0.0219727f, -0.611816f, 0.0410156f, -0.630615f,
+0.0600586f, -0.649414f, 0.0859375f, -0.656982f, 0.111816f, -0.664551f, 0.14209f,
+-0.664551f, 0.194336f, -0.500488f, 0.194336f, -0.527832f, 0.190918f, -0.546631f,
+0.1875f, -0.56543f, 0.180664f, -0.576904f, 0.173828f, -0.588379f, 0.164062f, -0.593506f,
+0.154297f, -0.598633f, 0.141113f, -0.598633f, 0.11377f, -0.598633f, 0.0998535f, -0.576416f,
+0.0859375f, -0.554199f, 0.0859375f, -0.500488f, 0.0859375f, -0.447754f, 0.100098f,
+-0.425049f, 0.114258f, -0.402344f, 0.141113f, -0.402344f, 0.165527f, -0.402344f,
+0.179932f, -0.425049f, 0.194336f, -0.447754f, 0.194336f, -0.500488f, 0.462402f, -0.324707f,
+0.490723f, -0.324707f, 0.515869f, -0.317139f, 0.541016f, -0.30957f, 0.559814f, -0.290771f,
+0.578613f, -0.271973f, 0.5896f, -0.240479f, 0.600586f, -0.208984f, 0.600586f, -0.160645f,
+0.600586f, -0.11377f, 0.5896f, -0.0820312f, 0.578613f, -0.050293f, 0.55957f, -0.0307617f,
+0.540527f, -0.0112305f, 0.515137f, -0.00268555f, 0.489746f, 0.00585938f, 0.460449f,
+0.00585938f, 0.431152f, 0.00585938f, 0.405518f, -0.00268555f, 0.379883f, -0.0112305f,
+0.36084f, -0.0305176f, 0.341797f, -0.0498047f, 0.331055f, -0.0817871f, 0.320312f,
+-0.11377f, 0.320312f, -0.160645f, 0.320312f, -0.208984f, 0.331299f, -0.240479f, 0.342285f,
+-0.271973f, 0.361328f, -0.290771f, 0.380371f, -0.30957f, 0.40625f, -0.317139f, 0.432129f,
+-0.324707f, 0.462402f, -0.324707f, 0.514648f, -0.160645f, 0.514648f, -0.187988f,
+0.51123f, -0.206787f, 0.507812f, -0.225586f, 0.500977f, -0.237061f, 0.494141f, -0.248535f,
+0.484375f, -0.253662f, 0.474609f, -0.258789f, 0.461426f, -0.258789f, 0.434082f, -0.258789f,
+0.420166f, -0.236572f, 0.40625f, -0.214355f, 0.40625f, -0.160645f, 0.40625f, -0.10791f,
+0.42041f, -0.0852051f, 0.43457f, -0.0625f, 0.461426f, -0.0625f, 0.48584f, -0.0625f,
+0.500244f, -0.0852051f, 0.514648f, -0.10791f, 0.514648f, -0.160645f, 0.0117188f,
+-0.180176f, 0.0117188f, -0.214355f, 0.0231934f, -0.244385f, 0.034668f, -0.274414f,
+0.0546875f, -0.299805f, 0.074707f, -0.325195f, 0.101562f, -0.345459f, 0.128418f,
+-0.365723f, 0.15918f, -0.380371f, 0.144043f, -0.410645f, 0.134277f, -0.445312f, 0.124512f,
+-0.47998f, 0.124512f, -0.510742f, 0.124512f, -0.541504f, 0.134033f, -0.569092f, 0.143555f,
+-0.59668f, 0.164307f, -0.617432f, 0.185059f, -0.638184f, 0.21875f, -0.650391f, 0.252441f,
+-0.662598f, 0.300781f, -0.662598f, 0.336914f, -0.662598f, 0.366943f, -0.65332f, 0.396973f,
+-0.644043f, 0.418945f, -0.626221f, 0.440918f, -0.608398f, 0.453125f, -0.582764f,
+0.465332f, -0.557129f, 0.465332f, -0.523926f, 0.465332f, -0.490234f, 0.449951f, -0.463623f,
+0.43457f, -0.437012f, 0.409668f, -0.415527f, 0.384766f, -0.394043f, 0.352783f, -0.376221f,
+0.320801f, -0.358398f, 0.287109f, -0.342773f, 0.310059f, -0.302734f, 0.335449f, -0.266602f,
+0.36084f, -0.230469f, 0.391602f, -0.195312f, 0.410645f, -0.23291f, 0.423584f, -0.272217f,
+0.436523f, -0.311523f, 0.444336f, -0.353516f, 0.543945f, -0.340332f, 0.53418f, -0.285645f,
+0.515137f, -0.231201f, 0.496094f, -0.176758f, 0.468262f, -0.12793f, 0.489258f, -0.109863f,
+0.510498f, -0.101074f, 0.531738f, -0.0922852f, 0.550781f, -0.0922852f, 0.562012f,
+-0.0922852f, 0.574951f, -0.0944824f, 0.587891f, -0.0966797f, 0.596191f, -0.100586f,
+0.596191f, -0.00488281f, 0.586426f, 0.000488281f, 0.573486f, 0.00292969f, 0.560547f,
+0.00537109f, 0.549805f, 0.00537109f, 0.525879f, 0.00537109f, 0.505127f, 0.000732422f,
+0.484375f, -0.00390625f, 0.466309f, -0.0114746f, 0.448242f, -0.019043f, 0.432617f,
+-0.0292969f, 0.416992f, -0.0395508f, 0.40332f, -0.0507812f, 0.387695f, -0.0390625f,
+0.369141f, -0.0280762f, 0.350586f, -0.0170898f, 0.328613f, -0.00878906f, 0.306641f,
+-0.000488281f, 0.281494f, 0.00439453f, 0.256348f, 0.00927734f, 0.228027f, 0.00927734f,
+0.170898f, 0.00927734f, 0.129883f, -0.00512695f, 0.0888672f, -0.0195312f, 0.0625f,
+-0.0449219f, 0.0361328f, -0.0703125f, 0.0239258f, -0.10498f, 0.0117188f, -0.139648f,
+0.0117188f, -0.180176f, 0.327637f, -0.116699f, 0.291504f, -0.156738f, 0.259033f,
+-0.200684f, 0.226562f, -0.244629f, 0.199707f, -0.29248f, 0.185547f, -0.28418f, 0.172852f,
+-0.272949f, 0.160156f, -0.261719f, 0.150635f, -0.247803f, 0.141113f, -0.233887f,
+0.135742f, -0.217285f, 0.130371f, -0.200684f, 0.130371f, -0.182129f, 0.130371f, -0.160645f,
+0.136475f, -0.141846f, 0.142578f, -0.123047f, 0.155273f, -0.109131f, 0.167969f, -0.0952148f,
+0.187256f, -0.0874023f, 0.206543f, -0.0795898f, 0.23291f, -0.0795898f, 0.263672f,
+-0.0795898f, 0.287842f, -0.0915527f, 0.312012f, -0.103516f, 0.327637f, -0.116699f,
+0.36084f, -0.522949f, 0.36084f, -0.549805f, 0.345703f, -0.56665f, 0.330566f, -0.583496f,
+0.299805f, -0.583496f, 0.263672f, -0.583496f, 0.244873f, -0.563232f, 0.226074f, -0.542969f,
+0.226074f, -0.509766f, 0.226074f, -0.487305f, 0.233154f, -0.463867f, 0.240234f, -0.44043f,
+0.251465f, -0.419434f, 0.273438f, -0.429688f, 0.293457f, -0.440186f, 0.313477f, -0.450684f,
+0.328369f, -0.462891f, 0.343262f, -0.475098f, 0.352051f, -0.48999f, 0.36084f, -0.504883f,
+0.36084f, -0.522949f, 0.348633f, -0.412109f, 0.251465f, -0.412109f, 0.233398f, -0.725098f,
+0.366699f, -0.725098f, 0.312988f, 0.20752f, 0.275391f, 0.15332f, 0.248047f, 0.0996094f,
+0.220703f, 0.0458984f, 0.202881f, -0.0107422f, 0.185059f, -0.0673828f, 0.176514f,
+-0.128662f, 0.167969f, -0.189941f, 0.167969f, -0.259277f, 0.167969f, -0.329102f,
+0.176514f, -0.389893f, 0.185059f, -0.450684f, 0.202881f, -0.50708f, 0.220703f, -0.563477f,
+0.248047f, -0.616943f, 0.275391f, -0.67041f, 0.312988f, -0.724609f, 0.450195f, -0.724609f,
+0.411133f, -0.667969f, 0.383301f, -0.612793f, 0.355469f, -0.557617f, 0.337646f, -0.500977f,
+0.319824f, -0.444336f, 0.311523f, -0.384521f, 0.303223f, -0.324707f, 0.303223f, -0.258789f,
+0.303223f, -0.192383f, 0.311523f, -0.132568f, 0.319824f, -0.0727539f, 0.337646f,
+-0.0161133f, 0.355469f, 0.0405273f, 0.383301f, 0.095459f, 0.411133f, 0.150391f, 0.450195f,
+0.20752f, 0.149902f, 0.20752f, 0.188965f, 0.150391f, 0.216797f, 0.095459f, 0.244629f,
+0.0405273f, 0.262451f, -0.0161133f, 0.280273f, -0.0727539f, 0.288574f, -0.132568f,
+0.296875f, -0.192383f, 0.296875f, -0.258789f, 0.296875f, -0.324707f, 0.288574f, -0.384521f,
+0.280273f, -0.444336f, 0.262451f, -0.500977f, 0.244629f, -0.557617f, 0.216797f, -0.612793f,
+0.188965f, -0.667969f, 0.149902f, -0.724609f, 0.287109f, -0.724609f, 0.324707f, -0.67041f,
+0.352051f, -0.616943f, 0.379395f, -0.563477f, 0.397217f, -0.50708f, 0.415039f, -0.450684f,
+0.423584f, -0.389893f, 0.432129f, -0.329102f, 0.432129f, -0.259277f, 0.432129f, -0.189941f,
+0.423584f, -0.128662f, 0.415039f, -0.0673828f, 0.397217f, -0.0107422f, 0.379395f,
+0.0458984f, 0.352051f, 0.0996094f, 0.324707f, 0.15332f, 0.287109f, 0.20752f, 0.344727f,
+-0.590332f, 0.459473f, -0.641113f, 0.492676f, -0.544922f, 0.370605f, -0.515137f,
+0.461426f, -0.411133f, 0.371582f, -0.352051f, 0.300293f, -0.475098f, 0.227539f, -0.352051f,
+0.136719f, -0.412109f, 0.229492f, -0.515137f, 0.107422f, -0.544922f, 0.140625f, -0.641113f,
+0.257324f, -0.590332f, 0.248535f, -0.724121f, 0.353516f, -0.724121f, 0.354492f, -0.277832f,
+0.354492f, -0.0786133f, 0.244141f, -0.0786133f, 0.244141f, -0.277832f, 0.0493164f,
+-0.277832f, 0.0493164f, -0.387207f, 0.244141f, -0.387207f, 0.244141f, -0.586426f,
+0.354492f, -0.586426f, 0.354492f, -0.387207f, 0.550781f, -0.387207f, 0.550781f, -0.277832f,
+0.125977f, 0.177246f, 0.208496f, -0.145996f, 0.362305f, -0.145996f, 0.210449f, 0.177246f,
+0.158203f, -0.199707f, 0.158203f, -0.318848f, 0.441406f, -0.318848f, 0.441406f, -0.199707f,
+0.229492f, 0, 0.229492f, -0.148926f, 0.370605f, -0.148926f, 0.370605f, 0, 0.043457f,
+0.00976562f, 0.444336f, -0.724609f, 0.555664f, -0.724609f, 0.156738f, 0.00976562f,
+0.537598f, -0.32959f, 0.537598f, -0.236328f, 0.519531f, -0.171631f, 0.501465f, -0.106934f,
+0.469482f, -0.0666504f, 0.4375f, -0.0263672f, 0.393799f, -0.00830078f, 0.350098f,
+0.00976562f, 0.29834f, 0.00976562f, 0.246582f, 0.00976562f, 0.203125f, -0.00805664f,
+0.159668f, -0.0258789f, 0.128418f, -0.0661621f, 0.097168f, -0.106445f, 0.0795898f,
+-0.171143f, 0.0620117f, -0.23584f, 0.0620117f, -0.32959f, 0.0620117f, -0.427734f,
+0.0793457f, -0.493164f, 0.0966797f, -0.558594f, 0.128418f, -0.597656f, 0.160156f,
+-0.636719f, 0.204346f, -0.652832f, 0.248535f, -0.668945f, 0.302246f, -0.668945f,
+0.352539f, -0.668945f, 0.395752f, -0.652832f, 0.438965f, -0.636719f, 0.470459f, -0.597656f,
+0.501953f, -0.558594f, 0.519775f, -0.493164f, 0.537598f, -0.427734f, 0.537598f, -0.32959f,
+0.399902f, -0.32959f, 0.399902f, -0.396973f, 0.394531f, -0.441406f, 0.38916f, -0.48584f,
+0.377441f, -0.512695f, 0.365723f, -0.539551f, 0.346924f, -0.550537f, 0.328125f, -0.561523f,
+0.30127f, -0.561523f, 0.272461f, -0.561523f, 0.25293f, -0.550293f, 0.233398f, -0.539062f,
+0.221436f, -0.512207f, 0.209473f, -0.485352f, 0.204346f, -0.440674f, 0.199219f, -0.395996f,
+0.199219f, -0.32959f, 0.199219f, -0.26416f, 0.20459f, -0.219727f, 0.209961f, -0.175293f,
+0.22168f, -0.148193f, 0.233398f, -0.121094f, 0.252441f, -0.109619f, 0.271484f, -0.0981445f,
+0.299316f, -0.0981445f, 0.326172f, -0.0981445f, 0.345215f, -0.109619f, 0.364258f,
+-0.121094f, 0.376465f, -0.148193f, 0.388672f, -0.175293f, 0.394287f, -0.219727f,
+0.399902f, -0.26416f, 0.399902f, -0.32959f, 0.0727539f, 0, 0.0727539f, -0.102051f,
+0.262695f, -0.102051f, 0.262695f, -0.537109f, 0.253418f, -0.517578f, 0.233643f, -0.500244f,
+0.213867f, -0.48291f, 0.187744f, -0.470215f, 0.161621f, -0.45752f, 0.130615f, -0.449951f,
+0.0996094f, -0.442383f, 0.0673828f, -0.442383f, 0.0673828f, -0.546875f, 0.103516f,
+-0.546875f, 0.134766f, -0.555176f, 0.166016f, -0.563477f, 0.191895f, -0.578369f,
+0.217773f, -0.593262f, 0.237549f, -0.61377f, 0.257324f, -0.634277f, 0.27002f, -0.658691f,
+0.399902f, -0.658691f, 0.399902f, -0.102051f, 0.557617f, -0.102051f, 0.557617f, 0,
+0.0600586f, 0, 0.0600586f, -0.0952148f, 0.0776367f, -0.133789f, 0.101318f, -0.166504f,
+0.125f, -0.199219f, 0.151611f, -0.227783f, 0.178223f, -0.256348f, 0.206299f, -0.280762f,
+0.234375f, -0.305176f, 0.260986f, -0.326904f, 0.287598f, -0.348633f, 0.311523f, -0.368652f,
+0.335449f, -0.388672f, 0.353027f, -0.407715f, 0.370605f, -0.426758f, 0.381104f, -0.445557f,
+0.391602f, -0.464355f, 0.391602f, -0.484375f, 0.391602f, -0.519531f, 0.368652f, -0.539551f,
+0.345703f, -0.55957f, 0.30127f, -0.55957f, 0.257324f, -0.55957f, 0.234131f, -0.535889f,
+0.210938f, -0.512207f, 0.204102f, -0.464844f, 0.065918f, -0.472656f, 0.0708008f,
+-0.513184f, 0.0859375f, -0.548828f, 0.101074f, -0.584473f, 0.12915f, -0.611328f,
+0.157227f, -0.638184f, 0.199463f, -0.653564f, 0.241699f, -0.668945f, 0.300293f, -0.668945f,
+0.355957f, -0.668945f, 0.398926f, -0.655518f, 0.441895f, -0.64209f, 0.471191f, -0.618164f,
+0.500488f, -0.594238f, 0.515625f, -0.561523f, 0.530762f, -0.528809f, 0.530762f, -0.490234f,
+0.530762f, -0.446777f, 0.511719f, -0.410889f, 0.492676f, -0.375f, 0.462891f, -0.343506f,
+0.433105f, -0.312012f, 0.396729f, -0.283691f, 0.360352f, -0.255371f, 0.326172f, -0.228027f,
+0.291992f, -0.200684f, 0.263916f, -0.172607f, 0.23584f, -0.144531f, 0.222168f, -0.112793f,
+0.541504f, -0.112793f, 0.541504f, 0, 0.549316f, -0.183594f, 0.549316f, -0.139648f,
+0.533203f, -0.103516f, 0.51709f, -0.0673828f, 0.485596f, -0.0419922f, 0.454102f,
+-0.0166016f, 0.407471f, -0.00268555f, 0.36084f, 0.0112305f, 0.300293f, 0.0112305f,
+0.23291f, 0.0112305f, 0.186523f, -0.00488281f, 0.140137f, -0.0209961f, 0.110352f,
+-0.0476074f, 0.0805664f, -0.0742188f, 0.0651855f, -0.108643f, 0.0498047f, -0.143066f,
+0.0454102f, -0.179688f, 0.185059f, -0.191895f, 0.190918f, -0.147461f, 0.218506f,
+-0.123779f, 0.246094f, -0.100098f, 0.299805f, -0.100098f, 0.324219f, -0.100098f,
+0.344482f, -0.106201f, 0.364746f, -0.112305f, 0.378906f, -0.124023f, 0.393066f, -0.135742f,
+0.400879f, -0.152832f, 0.408691f, -0.169922f, 0.408691f, -0.191895f, 0.408691f, -0.210449f,
+0.402344f, -0.224121f, 0.395996f, -0.237793f, 0.385254f, -0.247559f, 0.374512f, -0.257324f,
+0.360596f, -0.263428f, 0.34668f, -0.269531f, 0.331543f, -0.273193f, 0.316406f, -0.276855f,
+0.301025f, -0.278076f, 0.285645f, -0.279297f, 0.271973f, -0.279297f, 0.224121f, -0.279297f,
+0.224121f, -0.390137f, 0.269043f, -0.390137f, 0.289551f, -0.390137f, 0.311523f, -0.393799f,
+0.333496f, -0.397461f, 0.351562f, -0.407227f, 0.369629f, -0.416992f, 0.381104f, -0.433594f,
+0.392578f, -0.450195f, 0.392578f, -0.476074f, 0.392578f, -0.494629f, 0.385742f, -0.509766f,
+0.378906f, -0.524902f, 0.366211f, -0.536133f, 0.353516f, -0.547363f, 0.335449f, -0.553467f,
+0.317383f, -0.55957f, 0.294922f, -0.55957f, 0.25293f, -0.55957f, 0.225586f, -0.539795f,
+0.198242f, -0.52002f, 0.194336f, -0.477051f, 0.0571289f, -0.486816f, 0.0629883f,
+-0.535156f, 0.0839844f, -0.56958f, 0.10498f, -0.604004f, 0.136963f, -0.625977f, 0.168945f,
+-0.647949f, 0.210205f, -0.658447f, 0.251465f, -0.668945f, 0.297363f, -0.668945f,
+0.35791f, -0.668945f, 0.4021f, -0.654541f, 0.446289f, -0.640137f, 0.475098f, -0.615967f,
+0.503906f, -0.591797f, 0.517822f, -0.559814f, 0.531738f, -0.527832f, 0.531738f, -0.493164f,
+0.531738f, -0.465332f, 0.522949f, -0.440674f, 0.51416f, -0.416016f, 0.496338f, -0.395996f,
+0.478516f, -0.375977f, 0.450684f, -0.361328f, 0.422852f, -0.34668f, 0.384766f, -0.339355f,
+0.384766f, -0.337402f, 0.427246f, -0.33252f, 0.458496f, -0.318115f, 0.489746f, -0.303711f,
+0.509766f, -0.283203f, 0.529785f, -0.262695f, 0.539551f, -0.237061f, 0.549316f, -0.211426f,
+0.549316f, -0.183594f, 0.478516f, -0.140137f, 0.478516f, 0, 0.347656f, 0, 0.347656f,
+-0.140137f, 0.034668f, -0.140137f, 0.034668f, -0.243164f, 0.325195f, -0.658691f,
+0.478516f, -0.658691f, 0.478516f, -0.242188f, 0.570312f, -0.242188f, 0.570312f, -0.140137f,
+0.347656f, -0.442871f, 0.347656f, -0.451172f, 0.3479f, -0.4646f, 0.348145f, -0.478027f,
+0.348877f, -0.492188f, 0.349609f, -0.506348f, 0.350342f, -0.519287f, 0.351074f, -0.532227f,
+0.352051f, -0.539551f, 0.349609f, -0.53418f, 0.344238f, -0.52417f, 0.338867f, -0.51416f,
+0.332275f, -0.502686f, 0.325684f, -0.491211f, 0.318604f, -0.47998f, 0.311523f, -0.46875f,
+0.306152f, -0.460449f, 0.149902f, -0.242188f, 0.347656f, -0.242188f, 0.54834f, -0.22168f,
+0.54834f, -0.172852f, 0.531982f, -0.130371f, 0.515625f, -0.0878906f, 0.483398f, -0.0568848f,
+0.451172f, -0.0258789f, 0.403564f, -0.00805664f, 0.355957f, 0.00976562f, 0.293457f,
+0.00976562f, 0.23584f, 0.00976562f, 0.192871f, -0.00415039f, 0.149902f, -0.0180664f,
+0.120361f, -0.0427246f, 0.0908203f, -0.0673828f, 0.0739746f, -0.100586f, 0.0571289f,
+-0.133789f, 0.0507812f, -0.171875f, 0.187988f, -0.183105f, 0.191895f, -0.166992f,
+0.198975f, -0.151855f, 0.206055f, -0.136719f, 0.21875f, -0.125f, 0.231445f, -0.113281f,
+0.25f, -0.106201f, 0.268555f, -0.0991211f, 0.294922f, -0.0991211f, 0.320801f, -0.0991211f,
+0.341553f, -0.106934f, 0.362305f, -0.114746f, 0.376953f, -0.129883f, 0.391602f, -0.14502f,
+0.399414f, -0.16748f, 0.407227f, -0.189941f, 0.407227f, -0.21875f, 0.407227f, -0.244141f,
+0.399658f, -0.264893f, 0.39209f, -0.285645f, 0.378174f, -0.300293f, 0.364258f, -0.314941f,
+0.343994f, -0.322754f, 0.32373f, -0.330566f, 0.297852f, -0.330566f, 0.263672f, -0.330566f,
+0.241699f, -0.317627f, 0.219727f, -0.304688f, 0.20459f, -0.286133f, 0.0708008f, -0.286133f,
+0.0947266f, -0.658691f, 0.508301f, -0.658691f, 0.508301f, -0.556641f, 0.219238f,
+-0.556641f, 0.208008f, -0.397461f, 0.228516f, -0.415527f, 0.259766f, -0.428467f,
+0.291016f, -0.441406f, 0.33252f, -0.441406f, 0.383301f, -0.441406f, 0.42334f, -0.425049f,
+0.463379f, -0.408691f, 0.491211f, -0.379395f, 0.519043f, -0.350098f, 0.533691f, -0.309814f,
+0.54834f, -0.269531f, 0.54834f, -0.22168f, 0.544434f, -0.217773f, 0.544434f, -0.168457f,
+0.529785f, -0.126709f, 0.515137f, -0.0849609f, 0.486084f, -0.0546875f, 0.457031f,
+-0.0244141f, 0.413574f, -0.00732422f, 0.370117f, 0.00976562f, 0.312988f, 0.00976562f,
+0.252441f, 0.00976562f, 0.205322f, -0.0136719f, 0.158203f, -0.0371094f, 0.126221f,
+-0.0810547f, 0.0942383f, -0.125f, 0.0776367f, -0.1875f, 0.0610352f, -0.25f, 0.0610352f,
+-0.328125f, 0.0610352f, -0.500977f, 0.127197f, -0.584961f, 0.193359f, -0.668945f,
+0.316406f, -0.668945f, 0.357422f, -0.668945f, 0.391113f, -0.6604f, 0.424805f, -0.651855f,
+0.451172f, -0.632812f, 0.477539f, -0.61377f, 0.496094f, -0.58374f, 0.514648f, -0.553711f,
+0.525879f, -0.510742f, 0.396484f, -0.492676f, 0.386719f, -0.528809f, 0.364746f, -0.544678f,
+0.342773f, -0.560547f, 0.313477f, -0.560547f, 0.257812f, -0.560547f, 0.226562f, -0.507568f,
+0.195312f, -0.45459f, 0.195312f, -0.352539f, 0.217285f, -0.38916f, 0.256348f, -0.408691f,
+0.29541f, -0.428223f, 0.344727f, -0.428223f, 0.390137f, -0.428223f, 0.427002f, -0.41333f,
+0.463867f, -0.398438f, 0.48999f, -0.371094f, 0.516113f, -0.34375f, 0.530273f, -0.304932f,
+0.544434f, -0.266113f, 0.544434f, -0.217773f, 0.406738f, -0.213867f, 0.406738f, -0.23877f,
+0.400391f, -0.259521f, 0.394043f, -0.280273f, 0.381104f, -0.29541f, 0.368164f, -0.310547f,
+0.349121f, -0.318848f, 0.330078f, -0.327148f, 0.305176f, -0.327148f, 0.287109f, -0.327148f,
+0.269043f, -0.321289f, 0.250977f, -0.31543f, 0.236816f, -0.303223f, 0.222656f, -0.291016f,
+0.213867f, -0.272461f, 0.205078f, -0.253906f, 0.205078f, -0.228516f, 0.205078f, -0.20166f,
+0.212402f, -0.177979f, 0.219727f, -0.154297f, 0.233154f, -0.13623f, 0.246582f, -0.118164f,
+0.265625f, -0.107666f, 0.284668f, -0.097168f, 0.308594f, -0.097168f, 0.331543f, -0.097168f,
+0.349854f, -0.105469f, 0.368164f, -0.11377f, 0.380859f, -0.12915f, 0.393555f, -0.144531f,
+0.400146f, -0.166016f, 0.406738f, -0.1875f, 0.406738f, -0.213867f, 0.533203f, -0.549805f,
+0.483398f, -0.481934f, 0.441895f, -0.415771f, 0.400391f, -0.349609f, 0.370361f, -0.282227f,
+0.340332f, -0.214844f, 0.32373f, -0.144775f, 0.307129f, -0.074707f, 0.307129f, 0,
+0.164062f, 0, 0.164062f, -0.0742188f, 0.182373f, -0.14502f, 0.200684f, -0.21582f,
+0.23291f, -0.283691f, 0.265137f, -0.351562f, 0.309326f, -0.416992f, 0.353516f, -0.482422f,
+0.405762f, -0.545898f, 0.0639648f, -0.545898f, 0.0639648f, -0.658691f, 0.533203f,
+-0.658691f, 0.546875f, -0.186523f, 0.546875f, -0.14502f, 0.532227f, -0.109131f, 0.517578f,
+-0.0732422f, 0.487305f, -0.046875f, 0.457031f, -0.0205078f, 0.410645f, -0.00537109f,
+0.364258f, 0.00976562f, 0.300293f, 0.00976562f, 0.236816f, 0.00976562f, 0.190186f,
+-0.00537109f, 0.143555f, -0.0205078f, 0.113037f, -0.046875f, 0.0825195f, -0.0732422f,
+0.0678711f, -0.108887f, 0.0532227f, -0.144531f, 0.0532227f, -0.185547f, 0.0532227f,
+-0.220215f, 0.0649414f, -0.248047f, 0.0766602f, -0.275879f, 0.0961914f, -0.295898f,
+0.115723f, -0.315918f, 0.141113f, -0.328369f, 0.166504f, -0.34082f, 0.193359f, -0.345215f,
+0.193359f, -0.347168f, 0.164551f, -0.353516f, 0.141602f, -0.367676f, 0.118652f, -0.381836f,
+0.102539f, -0.401367f, 0.0864258f, -0.420898f, 0.0778809f, -0.444824f, 0.0693359f,
+-0.46875f, 0.0693359f, -0.494141f, 0.0693359f, -0.532715f, 0.0842285f, -0.564697f,
+0.0991211f, -0.59668f, 0.12793f, -0.619873f, 0.156738f, -0.643066f, 0.199463f, -0.656006f,
+0.242188f, -0.668945f, 0.29834f, -0.668945f, 0.358398f, -0.668945f, 0.4021f, -0.655762f,
+0.445801f, -0.642578f, 0.474121f, -0.619141f, 0.502441f, -0.595703f, 0.516113f, -0.563477f,
+0.529785f, -0.53125f, 0.529785f, -0.493164f, 0.529785f, -0.46875f, 0.52124f, -0.445312f,
+0.512695f, -0.421875f, 0.496582f, -0.4021f, 0.480469f, -0.382324f, 0.457275f, -0.368164f,
+0.434082f, -0.354004f, 0.404785f, -0.348145f, 0.404785f, -0.346191f, 0.435059f, -0.341309f,
+0.461182f, -0.328613f, 0.487305f, -0.315918f, 0.506348f, -0.295654f, 0.525391f, -0.275391f,
+0.536133f, -0.248047f, 0.546875f, -0.220703f, 0.546875f, -0.186523f, 0.388672f, -0.48584f,
+0.388672f, -0.503906f, 0.384277f, -0.519775f, 0.379883f, -0.535645f, 0.369629f, -0.547363f,
+0.359375f, -0.559082f, 0.342041f, -0.565918f, 0.324707f, -0.572754f, 0.29834f, -0.572754f,
+0.272949f, -0.572754f, 0.255859f, -0.565918f, 0.23877f, -0.559082f, 0.228516f, -0.547363f,
+0.218262f, -0.535645f, 0.213867f, -0.519775f, 0.209473f, -0.503906f, 0.209473f, -0.48584f,
+0.209473f, -0.470703f, 0.213135f, -0.45459f, 0.216797f, -0.438477f, 0.226562f, -0.425049f,
+0.236328f, -0.411621f, 0.253906f, -0.403076f, 0.271484f, -0.394531f, 0.299316f, -0.394531f,
+0.328613f, -0.394531f, 0.346436f, -0.40332f, 0.364258f, -0.412109f, 0.373535f, -0.425537f,
+0.382812f, -0.438965f, 0.385742f, -0.455078f, 0.388672f, -0.471191f, 0.388672f, -0.48584f,
+0.404785f, -0.197754f, 0.404785f, -0.216309f, 0.400146f, -0.234131f, 0.395508f, -0.251953f,
+0.383545f, -0.266357f, 0.371582f, -0.280762f, 0.350586f, -0.289551f, 0.32959f, -0.29834f,
+0.297363f, -0.29834f, 0.268066f, -0.29834f, 0.248291f, -0.289551f, 0.228516f, -0.280762f,
+0.216553f, -0.266113f, 0.20459f, -0.251465f, 0.199463f, -0.233154f, 0.194336f, -0.214844f,
+0.194336f, -0.195801f, 0.194336f, -0.172363f, 0.199463f, -0.152588f, 0.20459f, -0.132812f,
+0.217041f, -0.118164f, 0.229492f, -0.103516f, 0.25f, -0.0952148f, 0.270508f, -0.0869141f,
+0.30127f, -0.0869141f, 0.332031f, -0.0869141f, 0.352051f, -0.095459f, 0.37207f, -0.104004f,
+0.383789f, -0.118896f, 0.395508f, -0.133789f, 0.400146f, -0.154053f, 0.404785f, -0.174316f,
+0.404785f, -0.197754f, 0.540039f, -0.340332f, 0.540039f, -0.254395f, 0.522949f, -0.188965f,
+0.505859f, -0.123535f, 0.473145f, -0.0793457f, 0.44043f, -0.0351562f, 0.392578f,
+-0.0126953f, 0.344727f, 0.00976562f, 0.283203f, 0.00976562f, 0.23877f, 0.00976562f,
+0.203369f, 0.000488281f, 0.167969f, -0.00878906f, 0.141602f, -0.0283203f, 0.115234f,
+-0.0478516f, 0.0969238f, -0.0786133f, 0.0786133f, -0.109375f, 0.0678711f, -0.151855f,
+0.196777f, -0.169922f, 0.206543f, -0.133301f, 0.22876f, -0.115723f, 0.250977f, -0.0981445f,
+0.284668f, -0.0981445f, 0.340332f, -0.0981445f, 0.372314f, -0.14917f, 0.404297f,
+-0.200195f, 0.405273f, -0.302246f, 0.395508f, -0.283203f, 0.379395f, -0.268555f,
+0.363281f, -0.253906f, 0.343018f, -0.244141f, 0.322754f, -0.234375f, 0.299805f, -0.229248f,
+0.276855f, -0.224121f, 0.253418f, -0.224121f, 0.208496f, -0.224121f, 0.171875f, -0.23999f,
+0.135254f, -0.255859f, 0.109375f, -0.284668f, 0.0834961f, -0.313477f, 0.0695801f,
+-0.354492f, 0.0556641f, -0.395508f, 0.0556641f, -0.445801f, 0.0556641f, -0.498047f,
+0.0720215f, -0.539307f, 0.0883789f, -0.580566f, 0.119141f, -0.609375f, 0.149902f,
+-0.638184f, 0.19458f, -0.653564f, 0.239258f, -0.668945f, 0.295898f, -0.668945f, 0.415039f,
+-0.668945f, 0.477539f, -0.587891f, 0.540039f, -0.506836f, 0.540039f, -0.340332f,
+0.39502f, -0.429199f, 0.39502f, -0.456055f, 0.388428f, -0.47998f, 0.381836f, -0.503906f,
+0.368652f, -0.521973f, 0.355469f, -0.540039f, 0.336426f, -0.550781f, 0.317383f, -0.561523f,
+0.29248f, -0.561523f, 0.269531f, -0.561523f, 0.251465f, -0.552979f, 0.233398f, -0.544434f,
+0.220703f, -0.529053f, 0.208008f, -0.513672f, 0.201416f, -0.492188f, 0.194824f, -0.470703f,
+0.194824f, -0.444824f, 0.194824f, -0.420898f, 0.201172f, -0.39917f, 0.20752f, -0.377441f,
+0.219727f, -0.361328f, 0.231934f, -0.345215f, 0.250488f, -0.335693f, 0.269043f, -0.326172f,
+0.292969f, -0.326172f, 0.312012f, -0.326172f, 0.330322f, -0.33252f, 0.348633f, -0.338867f,
+0.363037f, -0.351807f, 0.377441f, -0.364746f, 0.38623f, -0.384033f, 0.39502f, -0.40332f,
+0.39502f, -0.429199f, 0.229492f, 0, 0.229492f, -0.148926f, 0.370605f, -0.148926f,
+0.370605f, 0, 0.229492f, -0.380859f, 0.229492f, -0.529785f, 0.370605f, -0.529785f,
+0.370605f, -0.380859f, 0.233887f, -0.380859f, 0.233887f, -0.529785f, 0.375f, -0.529785f,
+0.375f, -0.380859f, 0.15918f, 0.177246f, 0.241699f, -0.145996f, 0.395508f, -0.145996f,
+0.243652f, 0.177246f, 0.0493164f, -0.251953f, 0.0493164f, -0.40918f, 0.550781f, -0.600098f,
+0.550781f, -0.48877f, 0.144043f, -0.330078f, 0.550781f, -0.171875f, 0.550781f, -0.0610352f,
+0.0493164f, -0.411133f, 0.0493164f, -0.52002f, 0.550781f, -0.52002f, 0.550781f, -0.411133f,
+0.0493164f, -0.14209f, 0.0493164f, -0.25f, 0.550781f, -0.25f, 0.550781f, -0.14209f,
+0.0493164f, -0.0610352f, 0.0493164f, -0.171875f, 0.455566f, -0.330078f, 0.0493164f,
+-0.48877f, 0.0493164f, -0.600098f, 0.550781f, -0.40918f, 0.550781f, -0.251953f, 0.543457f,
+-0.481445f, 0.543457f, -0.452148f, 0.534912f, -0.429199f, 0.526367f, -0.40625f, 0.512207f,
+-0.387451f, 0.498047f, -0.368652f, 0.47998f, -0.353271f, 0.461914f, -0.337891f, 0.442871f,
+-0.323975f, 0.423828f, -0.310059f, 0.405518f, -0.296875f, 0.387207f, -0.283691f,
+0.372559f, -0.268799f, 0.35791f, -0.253906f, 0.348633f, -0.236816f, 0.339355f, -0.219727f,
+0.338379f, -0.198242f, 0.208008f, -0.198242f, 0.210449f, -0.240234f, 0.22583f, -0.269775f,
+0.241211f, -0.299316f, 0.263184f, -0.321533f, 0.285156f, -0.34375f, 0.310059f, -0.36084f,
+0.334961f, -0.37793f, 0.356201f, -0.394775f, 0.377441f, -0.411621f, 0.391357f, -0.430664f,
+0.405273f, -0.449707f, 0.405273f, -0.475586f, 0.405273f, -0.493164f, 0.398193f, -0.508301f,
+0.391113f, -0.523438f, 0.377197f, -0.534668f, 0.363281f, -0.545898f, 0.343262f, -0.552246f,
+0.323242f, -0.558594f, 0.297363f, -0.558594f, 0.272461f, -0.558594f, 0.251465f, -0.551025f,
+0.230469f, -0.543457f, 0.2146f, -0.529785f, 0.19873f, -0.516113f, 0.188477f, -0.496582f,
+0.178223f, -0.477051f, 0.175293f, -0.453613f, 0.0361328f, -0.459473f, 0.0419922f,
+-0.50293f, 0.0603027f, -0.541016f, 0.0786133f, -0.579102f, 0.110352f, -0.607422f,
+0.14209f, -0.635742f, 0.188232f, -0.652344f, 0.234375f, -0.668945f, 0.29541f, -0.668945f,
+0.354004f, -0.668945f, 0.399902f, -0.655273f, 0.445801f, -0.641602f, 0.477783f, -0.616943f,
+0.509766f, -0.592285f, 0.526611f, -0.557861f, 0.543457f, -0.523438f, 0.543457f, -0.481445f,
+0.204102f, 0, 0.204102f, -0.131836f, 0.345215f, -0.131836f, 0.345215f, 0, 0.580566f,
+-0.368652f, 0.580566f, -0.29834f, 0.570557f, -0.23999f, 0.560547f, -0.181641f, 0.541504f,
+-0.139648f, 0.522461f, -0.0976562f, 0.494629f, -0.0742188f, 0.466797f, -0.0507812f,
+0.431641f, -0.0507812f, 0.416992f, -0.0507812f, 0.404297f, -0.0546875f, 0.391602f,
+-0.0585938f, 0.38208f, -0.067627f, 0.372559f, -0.0766602f, 0.367188f, -0.0913086f,
+0.361816f, -0.105957f, 0.361816f, -0.127441f, 0.361816f, -0.128418f, 0.361816f, -0.131836f,
+0.361816f, -0.135254f, 0.362061f, -0.138916f, 0.362305f, -0.142578f, 0.362549f, -0.145996f,
+0.362793f, -0.149414f, 0.362793f, -0.150879f, 0.359863f, -0.150879f, 0.352539f, -0.131836f,
+0.341309f, -0.11377f, 0.330078f, -0.0957031f, 0.315674f, -0.0817871f, 0.30127f, -0.0678711f,
+0.283447f, -0.0593262f, 0.265625f, -0.0507812f, 0.245117f, -0.0507812f, 0.214355f,
+-0.0507812f, 0.193359f, -0.0666504f, 0.172363f, -0.0825195f, 0.159424f, -0.108643f,
+0.146484f, -0.134766f, 0.140869f, -0.168701f, 0.135254f, -0.202637f, 0.135254f, -0.23877f,
+0.135254f, -0.275879f, 0.140869f, -0.3125f, 0.146484f, -0.349121f, 0.157227f, -0.382324f,
+0.167969f, -0.415527f, 0.183838f, -0.444092f, 0.199707f, -0.472656f, 0.219482f, -0.493408f,
+0.239258f, -0.51416f, 0.263184f, -0.525879f, 0.287109f, -0.537598f, 0.314453f, -0.537598f,
+0.33252f, -0.537598f, 0.346191f, -0.53125f, 0.359863f, -0.524902f, 0.369629f, -0.513672f,
+0.379395f, -0.502441f, 0.385498f, -0.487061f, 0.391602f, -0.47168f, 0.394531f, -0.453125f,
+0.396973f, -0.453125f, 0.413086f, -0.526855f, 0.479004f, -0.526855f, 0.430664f, -0.279297f,
+0.426758f, -0.258789f, 0.423096f, -0.239014f, 0.419434f, -0.219238f, 0.416748f, -0.201416f,
+0.414062f, -0.183594f, 0.412598f, -0.168701f, 0.411133f, -0.153809f, 0.411133f, -0.143555f,
+0.411133f, -0.132324f, 0.413086f, -0.125732f, 0.415039f, -0.119141f, 0.418213f, -0.115723f,
+0.421387f, -0.112305f, 0.425781f, -0.111328f, 0.430176f, -0.110352f, 0.435059f, -0.110352f,
+0.453613f, -0.110352f, 0.468506f, -0.128906f, 0.483398f, -0.147461f, 0.494141f, -0.181152f,
+0.504883f, -0.214844f, 0.510742f, -0.262451f, 0.516602f, -0.310059f, 0.516602f, -0.367676f,
+0.516602f, -0.429199f, 0.50415f, -0.483154f, 0.491699f, -0.537109f, 0.467529f, -0.577148f,
+0.443359f, -0.617188f, 0.407959f, -0.640137f, 0.372559f, -0.663086f, 0.327148f, -0.663086f,
+0.288574f, -0.663086f, 0.255859f, -0.648438f, 0.223145f, -0.633789f, 0.196777f, -0.606934f,
+0.17041f, -0.580078f, 0.149902f, -0.54248f, 0.129395f, -0.504883f, 0.115723f, -0.459229f,
+0.102051f, -0.413574f, 0.0949707f, -0.36084f, 0.0878906f, -0.308105f, 0.0878906f,
+-0.250977f, 0.0878906f, -0.177734f, 0.101807f, -0.117676f, 0.115723f, -0.0576172f,
+0.142334f, -0.0146484f, 0.168945f, 0.0283203f, 0.20752f, 0.052002f, 0.246094f, 0.0756836f,
+0.294922f, 0.0756836f, 0.32373f, 0.0756836f, 0.348633f, 0.0695801f, 0.373535f, 0.0634766f,
+0.395264f, 0.0532227f, 0.416992f, 0.0429688f, 0.436768f, 0.0288086f, 0.456543f, 0.0146484f,
+0.475098f, -0.00146484f, 0.509766f, 0.0458984f, 0.48877f, 0.0639648f, 0.465088f,
+0.0805664f, 0.441406f, 0.097168f, 0.414307f, 0.110107f, 0.387207f, 0.123047f, 0.356445f,
+0.130615f, 0.325684f, 0.138184f, 0.290039f, 0.138184f, 0.228027f, 0.138184f, 0.178223f,
+0.110596f, 0.128418f, 0.0830078f, 0.09375f, 0.0322266f, 0.059082f, -0.0185547f, 0.0402832f,
+-0.090332f, 0.0214844f, -0.162109f, 0.0214844f, -0.250977f, 0.0214844f, -0.353027f,
+0.0419922f, -0.439697f, 0.0625f, -0.526367f, 0.101807f, -0.589844f, 0.141113f, -0.65332f,
+0.197998f, -0.688965f, 0.254883f, -0.724609f, 0.328125f, -0.724609f, 0.39209f, -0.724609f,
+0.439697f, -0.695801f, 0.487305f, -0.666992f, 0.518555f, -0.618164f, 0.549805f, -0.569336f,
+0.565186f, -0.504883f, 0.580566f, -0.44043f, 0.580566f, -0.368652f, 0.368652f, -0.382812f,
+0.368652f, -0.432129f, 0.355225f, -0.455078f, 0.341797f, -0.478027f, 0.31543f, -0.478027f,
+0.290527f, -0.478027f, 0.27124f, -0.456055f, 0.251953f, -0.434082f, 0.238525f, -0.399658f,
+0.225098f, -0.365234f, 0.218018f, -0.322998f, 0.210938f, -0.280762f, 0.210938f, -0.239746f,
+0.210938f, -0.21582f, 0.212646f, -0.192871f, 0.214355f, -0.169922f, 0.219482f, -0.1521f,
+0.224609f, -0.134277f, 0.233643f, -0.123291f, 0.242676f, -0.112305f, 0.256836f, -0.112305f,
+0.274902f, -0.112305f, 0.290771f, -0.124512f, 0.306641f, -0.136719f, 0.319336f, -0.159912f,
+0.332031f, -0.183105f, 0.341797f, -0.216064f, 0.351562f, -0.249023f, 0.35791f, -0.290527f,
+0.359375f, -0.299805f, 0.361328f, -0.3125f, 0.363281f, -0.325195f, 0.36499f, -0.338379f,
+0.366699f, -0.351562f, 0.367676f, -0.363525f, 0.368652f, -0.375488f, 0.368652f, -0.382812f,
+0.600098f, 0, 0.456543f, 0, 0.411621f, -0.161133f, 0.188965f, -0.161133f, 0.144043f,
+0, 0, 0, 0.216309f, -0.658691f, 0.384277f, -0.658691f, 0.300293f, -0.569824f, 0.299316f,
+-0.564941f, 0.296631f, -0.552734f, 0.293945f, -0.540527f, 0.290039f, -0.524902f,
+0.286133f, -0.509277f, 0.281494f, -0.490967f, 0.276855f, -0.472656f, 0.271973f, -0.455078f,
+0.219238f, -0.269531f, 0.381348f, -0.269531f, 0.328613f, -0.455078f, 0.32373f, -0.472656f,
+0.319092f, -0.490967f, 0.314453f, -0.509277f, 0.310547f, -0.524902f, 0.306641f, -0.540527f,
+0.303955f, -0.552734f, 0.30127f, -0.564941f, 0.300293f, -0.569824f, 0.579102f, -0.187988f,
+0.579102f, -0.137695f, 0.560547f, -0.102051f, 0.541992f, -0.0664062f, 0.510742f,
+-0.0437012f, 0.479492f, -0.0209961f, 0.438232f, -0.010498f, 0.396973f, 0, 0.351074f,
+0, 0.0668945f, 0, 0.0668945f, -0.658691f, 0.323242f, -0.658691f, 0.374023f, -0.658691f,
+0.414062f, -0.648682f, 0.454102f, -0.638672f, 0.481934f, -0.618164f, 0.509766f, -0.597656f,
+0.524658f, -0.566406f, 0.539551f, -0.535156f, 0.539551f, -0.493164f, 0.539551f, -0.437012f,
+0.507324f, -0.398682f, 0.475098f, -0.360352f, 0.408203f, -0.346191f, 0.491699f, -0.337402f,
+0.5354f, -0.296387f, 0.579102f, -0.255371f, 0.579102f, -0.187988f, 0.394531f, -0.473633f,
+0.394531f, -0.516113f, 0.372559f, -0.533936f, 0.350586f, -0.551758f, 0.312988f, -0.551758f,
+0.210938f, -0.551758f, 0.210938f, -0.395996f, 0.313965f, -0.395996f, 0.353516f, -0.395996f,
+0.374023f, -0.415527f, 0.394531f, -0.435059f, 0.394531f, -0.473633f, 0.434082f, -0.200195f,
+0.434082f, -0.225586f, 0.425781f, -0.242676f, 0.41748f, -0.259766f, 0.403564f, -0.270264f,
+0.389648f, -0.280762f, 0.371338f, -0.285156f, 0.353027f, -0.289551f, 0.333008f, -0.289551f,
+0.210938f, -0.289551f, 0.210938f, -0.106934f, 0.336426f, -0.106934f, 0.355957f, -0.106934f,
+0.373779f, -0.111328f, 0.391602f, -0.115723f, 0.405029f, -0.126221f, 0.418457f, -0.136719f,
+0.42627f, -0.154785f, 0.434082f, -0.172852f, 0.434082f, -0.200195f, 0.185547f, -0.33252f,
+0.185547f, -0.222656f, 0.219727f, -0.163086f, 0.253906f, -0.103516f, 0.321777f, -0.103516f,
+0.34375f, -0.103516f, 0.361816f, -0.112305f, 0.379883f, -0.121094f, 0.394287f, -0.136963f,
+0.408691f, -0.152832f, 0.419678f, -0.174805f, 0.430664f, -0.196777f, 0.438965f, -0.222656f,
+0.572266f, -0.197266f, 0.557129f, -0.148926f, 0.534424f, -0.110596f, 0.511719f, -0.0722656f,
+0.480713f, -0.0456543f, 0.449707f, -0.019043f, 0.409912f, -0.00463867f, 0.370117f,
+0.00976562f, 0.320312f, 0.00976562f, 0.246094f, 0.00976562f, 0.192871f, -0.0148926f,
+0.139648f, -0.0395508f, 0.105469f, -0.0844727f, 0.0712891f, -0.129395f, 0.0551758f,
+-0.192383f, 0.0390625f, -0.255371f, 0.0390625f, -0.33252f, 0.0390625f, -0.414062f,
+0.0556641f, -0.476562f, 0.0722656f, -0.539062f, 0.106689f, -0.582031f, 0.141113f,
+-0.625f, 0.193359f, -0.646973f, 0.245605f, -0.668945f, 0.316406f, -0.668945f, 0.367188f,
+-0.668945f, 0.406494f, -0.654785f, 0.445801f, -0.640625f, 0.475342f, -0.615479f,
+0.504883f, -0.590332f, 0.525391f, -0.55542f, 0.545898f, -0.520508f, 0.558594f, -0.479004f,
+0.425781f, -0.446777f, 0.419434f, -0.470215f, 0.409424f, -0.490234f, 0.399414f, -0.510254f,
+0.385742f, -0.524902f, 0.37207f, -0.539551f, 0.355225f, -0.547607f, 0.338379f, -0.555664f,
+0.318359f, -0.555664f, 0.251953f, -0.555664f, 0.21875f, -0.499268f, 0.185547f, -0.442871f,
+0.185547f, -0.33252f, 0.561035f, -0.334473f, 0.561035f, -0.252441f, 0.541504f, -0.189941f,
+0.521973f, -0.127441f, 0.484863f, -0.0852051f, 0.447754f, -0.0429688f, 0.393799f,
+-0.0214844f, 0.339844f, 0, 0.271484f, 0, 0.065918f, 0, 0.065918f, -0.658691f, 0.242188f,
+-0.658691f, 0.319336f, -0.658691f, 0.378906f, -0.639648f, 0.438477f, -0.620605f,
+0.479004f, -0.581055f, 0.519531f, -0.541504f, 0.540283f, -0.480225f, 0.561035f, -0.418945f,
+0.561035f, -0.334473f, 0.416016f, -0.334473f, 0.416016f, -0.391602f, 0.405273f, -0.431885f,
+0.394531f, -0.472168f, 0.372803f, -0.497803f, 0.351074f, -0.523438f, 0.317871f, -0.5354f,
+0.284668f, -0.547363f, 0.239746f, -0.547363f, 0.209961f, -0.547363f, 0.209961f, -0.111328f,
+0.259766f, -0.111328f, 0.338867f, -0.111328f, 0.377441f, -0.167236f, 0.416016f, -0.223145f,
+0.416016f, -0.334473f, 0.0668945f, 0, 0.0668945f, -0.658691f, 0.539551f, -0.658691f,
+0.539551f, -0.547363f, 0.210938f, -0.547363f, 0.210938f, -0.38916f, 0.509766f, -0.38916f,
+0.509766f, -0.277832f, 0.210938f, -0.277832f, 0.210938f, -0.111328f, 0.55957f, -0.111328f,
+0.55957f, 0, 0.225586f, -0.547363f, 0.225586f, -0.359863f, 0.528809f, -0.359863f,
+0.528809f, -0.248535f, 0.225586f, -0.248535f, 0.225586f, 0, 0.081543f, 0, 0.081543f,
+-0.658691f, 0.540039f, -0.658691f, 0.540039f, -0.547363f, 0.550781f, -0.090332f,
+0.532227f, -0.074707f, 0.507568f, -0.0571289f, 0.48291f, -0.0395508f, 0.452393f,
+-0.0246582f, 0.421875f, -0.00976562f, 0.38623f, 0, 0.350586f, 0.00976562f, 0.310059f,
+0.00976562f, 0.241211f, 0.00976562f, 0.190186f, -0.0158691f, 0.13916f, -0.0415039f,
+0.105469f, -0.0869141f, 0.0717773f, -0.132324f, 0.0554199f, -0.195068f, 0.0390625f,
+-0.257812f, 0.0390625f, -0.33252f, 0.0390625f, -0.414062f, 0.0551758f, -0.476807f,
+0.0712891f, -0.539551f, 0.104736f, -0.582275f, 0.138184f, -0.625f, 0.189453f, -0.646973f,
+0.240723f, -0.668945f, 0.311523f, -0.668945f, 0.360352f, -0.668945f, 0.397217f, -0.655762f,
+0.434082f, -0.642578f, 0.461182f, -0.618408f, 0.488281f, -0.594238f, 0.506836f, -0.560547f,
+0.525391f, -0.526855f, 0.537109f, -0.48584f, 0.40332f, -0.459473f, 0.390137f, -0.508301f,
+0.367188f, -0.531982f, 0.344238f, -0.555664f, 0.312988f, -0.555664f, 0.277832f, -0.555664f,
+0.253418f, -0.54126f, 0.229004f, -0.526855f, 0.213867f, -0.498779f, 0.19873f, -0.470703f,
+0.191895f, -0.428955f, 0.185059f, -0.387207f, 0.185059f, -0.33252f, 0.185059f, -0.223633f,
+0.217773f, -0.164551f, 0.250488f, -0.105469f, 0.317383f, -0.105469f, 0.335938f, -0.105469f,
+0.352295f, -0.109619f, 0.368652f, -0.11377f, 0.381592f, -0.119385f, 0.394531f, -0.125f,
+0.404053f, -0.131104f, 0.413574f, -0.137207f, 0.418945f, -0.141602f, 0.418945f, -0.256348f,
+0.285156f, -0.256348f, 0.285156f, -0.362793f, 0.550781f, -0.362793f, 0.388672f, 0,
+0.388672f, -0.280273f, 0.211426f, -0.280273f, 0.211426f, 0, 0.0673828f, 0, 0.0673828f,
+-0.658691f, 0.211426f, -0.658691f, 0.211426f, -0.399414f, 0.388672f, -0.399414f,
+0.388672f, -0.658691f, 0.532715f, -0.658691f, 0.532715f, 0, 0.0766602f, -0.658691f,
+0.523926f, -0.658691f, 0.523926f, -0.547363f, 0.369629f, -0.547363f, 0.369629f, -0.111328f,
+0.523926f, -0.111328f, 0.523926f, 0, 0.0766602f, 0, 0.0766602f, -0.111328f, 0.230957f,
+-0.111328f, 0.230957f, -0.547363f, 0.0766602f, -0.547363f, 0.275391f, 0.00976562f,
+0.227051f, 0.00976562f, 0.188477f, -0.00390625f, 0.149902f, -0.0175781f, 0.121582f,
+-0.0439453f, 0.0932617f, -0.0703125f, 0.0751953f, -0.108643f, 0.0571289f, -0.146973f,
+0.0498047f, -0.196289f, 0.191895f, -0.217285f, 0.20166f, -0.159668f, 0.223633f, -0.131348f,
+0.245605f, -0.103027f, 0.276367f, -0.103027f, 0.312012f, -0.103027f, 0.333008f, -0.131836f,
+0.354004f, -0.160645f, 0.354004f, -0.214355f, 0.354004f, -0.545898f, 0.207031f, -0.545898f,
+0.207031f, -0.658691f, 0.497559f, -0.658691f, 0.497559f, -0.217773f, 0.497559f, -0.165527f,
+0.482666f, -0.123291f, 0.467773f, -0.0810547f, 0.439209f, -0.0515137f, 0.410645f,
+-0.0219727f, 0.369385f, -0.00610352f, 0.328125f, 0.00976562f, 0.275391f, 0.00976562f,
+0.430176f, 0, 0.272461f, -0.271973f, 0.210449f, -0.202637f, 0.210449f, 0, 0.0664062f,
+0, 0.0664062f, -0.658691f, 0.210449f, -0.658691f, 0.210449f, -0.366211f, 0.42334f,
+-0.658691f, 0.59082f, -0.658691f, 0.366211f, -0.375977f, 0.600098f, 0, 0.103027f,
+0, 0.103027f, -0.658691f, 0.24707f, -0.658691f, 0.24707f, -0.111328f, 0.547852f,
+-0.111328f, 0.547852f, 0, 0.443359f, 0, 0.443359f, -0.423828f, 0.443359f, -0.44873f,
+0.44458f, -0.474609f, 0.445801f, -0.500488f, 0.447266f, -0.521973f, 0.449219f, -0.546875f,
+0.451172f, -0.570801f, 0.444336f, -0.537109f, 0.437988f, -0.505859f, 0.435059f, -0.492676f,
+0.432129f, -0.478516f, 0.429199f, -0.464355f, 0.42627f, -0.450928f, 0.42334f, -0.4375f,
+0.42041f, -0.425537f, 0.41748f, -0.413574f, 0.414551f, -0.404297f, 0.354004f, -0.175781f,
+0.247559f, -0.175781f, 0.186035f, -0.404297f, 0.184082f, -0.411621f, 0.181152f, -0.422852f,
+0.178223f, -0.434082f, 0.175293f, -0.447266f, 0.172363f, -0.460449f, 0.169189f, -0.474609f,
+0.166016f, -0.48877f, 0.163086f, -0.502441f, 0.15625f, -0.534668f, 0.148926f, -0.570801f,
+0.150391f, -0.547363f, 0.152344f, -0.521973f, 0.153809f, -0.5f, 0.154785f, -0.474365f,
+0.155762f, -0.44873f, 0.155762f, -0.423828f, 0.155762f, 0, 0.0483398f, 0, 0.0483398f,
+-0.658691f, 0.217773f, -0.658691f, 0.283691f, -0.415039f, 0.287598f, -0.402344f,
+0.290771f, -0.383301f, 0.293945f, -0.364258f, 0.296387f, -0.346191f, 0.299316f, -0.325195f,
+0.302246f, -0.302246f, 0.305176f, -0.325195f, 0.308594f, -0.346191f, 0.311523f, -0.364258f,
+0.314941f, -0.383057f, 0.318359f, -0.401855f, 0.321777f, -0.414551f, 0.388184f, -0.658691f,
+0.551758f, -0.658691f, 0.551758f, 0, 0.365234f, 0, 0.177734f, -0.493164f, 0.181641f,
+-0.458008f, 0.18457f, -0.425781f, 0.186035f, -0.412109f, 0.187256f, -0.397461f, 0.188477f,
+-0.382812f, 0.189453f, -0.368896f, 0.19043f, -0.35498f, 0.190918f, -0.342529f, 0.191406f,
+-0.330078f, 0.191406f, -0.320312f, 0.191406f, 0, 0.065918f, 0, 0.065918f, -0.658691f,
+0.230469f, -0.658691f, 0.422363f, -0.152344f, 0.418457f, -0.185059f, 0.415527f, -0.217285f,
+0.413086f, -0.245117f, 0.410889f, -0.275635f, 0.408691f, -0.306152f, 0.408691f, -0.330566f,
+0.408691f, -0.658691f, 0.53418f, -0.658691f, 0.53418f, 0, 0.564941f, -0.331543f,
+0.564941f, -0.163086f, 0.496582f, -0.0766602f, 0.428223f, 0.00976562f, 0.300293f,
+0.00976562f, 0.172363f, 0.00976562f, 0.10376f, -0.0766602f, 0.0351562f, -0.163086f,
+0.0351562f, -0.331543f, 0.0351562f, -0.5f, 0.10376f, -0.584473f, 0.172363f, -0.668945f,
+0.300293f, -0.668945f, 0.428223f, -0.668945f, 0.496582f, -0.584473f, 0.564941f, -0.5f,
+0.564941f, -0.331543f, 0.418945f, -0.331543f, 0.418945f, -0.445312f, 0.38916f, -0.500488f,
+0.359375f, -0.555664f, 0.300293f, -0.555664f, 0.241211f, -0.555664f, 0.211182f, -0.499756f,
+0.181152f, -0.443848f, 0.181152f, -0.331543f, 0.181152f, -0.219238f, 0.211182f, -0.161377f,
+0.241211f, -0.103516f, 0.300293f, -0.103516f, 0.359375f, -0.103516f, 0.38916f, -0.161377f,
+0.418945f, -0.219238f, 0.418945f, -0.331543f, 0.557617f, -0.450684f, 0.557617f, -0.40625f,
+0.542725f, -0.366455f, 0.527832f, -0.32666f, 0.49707f, -0.296875f, 0.466309f, -0.26709f,
+0.418945f, -0.249756f, 0.371582f, -0.232422f, 0.306641f, -0.232422f, 0.210449f, -0.232422f,
+0.210449f, 0, 0.0664062f, 0, 0.0664062f, -0.658691f, 0.300781f, -0.658691f, 0.366699f,
+-0.658691f, 0.415039f, -0.644287f, 0.463379f, -0.629883f, 0.495117f, -0.603027f,
+0.526855f, -0.576172f, 0.542236f, -0.537598f, 0.557617f, -0.499023f, 0.557617f, -0.450684f,
+0.412598f, -0.448242f, 0.412598f, -0.501465f, 0.380615f, -0.52417f, 0.348633f, -0.546875f,
+0.284668f, -0.546875f, 0.210449f, -0.546875f, 0.210449f, -0.343262f, 0.288574f, -0.343262f,
+0.353027f, -0.343262f, 0.382812f, -0.369873f, 0.412598f, -0.396484f, 0.412598f, -0.448242f,
+0.564941f, -0.331543f, 0.564941f, -0.190918f, 0.517822f, -0.10791f, 0.470703f, -0.0249023f,
+0.380371f, 0, 0.390137f, 0.0268555f, 0.40332f, 0.0444336f, 0.416504f, 0.0620117f,
+0.432861f, 0.0722656f, 0.449219f, 0.0825195f, 0.46875f, 0.0866699f, 0.488281f, 0.0908203f,
+0.510254f, 0.0908203f, 0.524414f, 0.0908203f, 0.540039f, 0.0888672f, 0.555664f, 0.0869141f,
+0.570312f, 0.0844727f, 0.570312f, 0.183105f, 0.543945f, 0.188965f, 0.515137f, 0.192871f,
+0.486328f, 0.196777f, 0.452148f, 0.196777f, 0.405762f, 0.196777f, 0.37085f, 0.182617f,
+0.335938f, 0.168457f, 0.310303f, 0.142822f, 0.284668f, 0.117188f, 0.266602f, 0.081543f,
+0.248535f, 0.0458984f, 0.235352f, 0.00341797f, 0.137695f, -0.0170898f, 0.0864258f,
+-0.101074f, 0.0351562f, -0.185059f, 0.0351562f, -0.331543f, 0.0351562f, -0.5f, 0.10376f,
+-0.584473f, 0.172363f, -0.668945f, 0.300293f, -0.668945f, 0.428223f, -0.668945f,
+0.496582f, -0.584473f, 0.564941f, -0.5f, 0.564941f, -0.331543f, 0.418945f, -0.331543f,
+0.418945f, -0.445312f, 0.38916f, -0.500488f, 0.359375f, -0.555664f, 0.300293f, -0.555664f,
+0.241211f, -0.555664f, 0.211182f, -0.499756f, 0.181152f, -0.443848f, 0.181152f, -0.331543f,
+0.181152f, -0.219238f, 0.211182f, -0.161377f, 0.241211f, -0.103516f, 0.300293f, -0.103516f,
+0.359375f, -0.103516f, 0.38916f, -0.161377f, 0.418945f, -0.219238f, 0.418945f, -0.331543f,
+0.437012f, 0, 0.29541f, -0.251465f, 0.210938f, -0.251465f, 0.210938f, 0, 0.0668945f,
+0, 0.0668945f, -0.658691f, 0.308105f, -0.658691f, 0.437012f, -0.658691f, 0.500977f,
+-0.608398f, 0.564941f, -0.558105f, 0.564941f, -0.463379f, 0.564941f, -0.427246f,
+0.554688f, -0.397949f, 0.544434f, -0.368652f, 0.526367f, -0.346436f, 0.508301f, -0.324219f,
+0.483398f, -0.30835f, 0.458496f, -0.29248f, 0.428711f, -0.283691f, 0.599121f, 0,
+0.419922f, -0.45752f, 0.419922f, -0.482422f, 0.411377f, -0.499512f, 0.402832f, -0.516602f,
+0.386719f, -0.5271f, 0.370605f, -0.537598f, 0.346924f, -0.542236f, 0.323242f, -0.546875f,
+0.292969f, -0.546875f, 0.210938f, -0.546875f, 0.210938f, -0.363281f, 0.296875f, -0.363281f,
+0.361328f, -0.363281f, 0.390625f, -0.387451f, 0.419922f, -0.411621f, 0.419922f, -0.45752f,
+0.568848f, -0.190918f, 0.568848f, -0.147949f, 0.552246f, -0.111084f, 0.535645f, -0.0742188f,
+0.501953f, -0.0473633f, 0.468262f, -0.0205078f, 0.41748f, -0.00537109f, 0.366699f,
+0.00976562f, 0.29834f, 0.00976562f, 0.183594f, 0.00976562f, 0.111328f, -0.0385742f,
+0.0390625f, -0.0869141f, 0.0185547f, -0.179199f, 0.157715f, -0.197266f, 0.168945f,
+-0.151367f, 0.20459f, -0.124756f, 0.240234f, -0.0981445f, 0.302246f, -0.0981445f,
+0.331543f, -0.0981445f, 0.354736f, -0.102539f, 0.37793f, -0.106934f, 0.394531f, -0.116699f,
+0.411133f, -0.126465f, 0.419922f, -0.142822f, 0.428711f, -0.15918f, 0.428711f, -0.182617f,
+0.428711f, -0.208984f, 0.41333f, -0.22583f, 0.397949f, -0.242676f, 0.374268f, -0.253662f,
+0.350586f, -0.264648f, 0.321777f, -0.271729f, 0.292969f, -0.278809f, 0.266113f, -0.286133f,
+0.243164f, -0.29248f, 0.218018f, -0.300049f, 0.192871f, -0.307617f, 0.168945f, -0.318359f,
+0.14502f, -0.329102f, 0.123535f, -0.343506f, 0.102051f, -0.35791f, 0.0859375f, -0.37793f,
+0.0698242f, -0.397949f, 0.0603027f, -0.424072f, 0.0507812f, -0.450195f, 0.0507812f,
+-0.483887f, 0.0507812f, -0.531738f, 0.0715332f, -0.56665f, 0.0922852f, -0.601562f,
+0.126953f, -0.624268f, 0.161621f, -0.646973f, 0.206543f, -0.657959f, 0.251465f, -0.668945f,
+0.300293f, -0.668945f, 0.409668f, -0.668945f, 0.471191f, -0.625732f, 0.532715f, -0.58252f,
+0.550781f, -0.491699f, 0.411133f, -0.477539f, 0.400391f, -0.521973f, 0.372559f, -0.544434f,
+0.344727f, -0.566895f, 0.297363f, -0.566895f, 0.266602f, -0.566895f, 0.246338f, -0.560791f,
+0.226074f, -0.554688f, 0.213623f, -0.544189f, 0.201172f, -0.533691f, 0.196045f, -0.520264f,
+0.190918f, -0.506836f, 0.190918f, -0.492188f, 0.190918f, -0.46875f, 0.203125f, -0.453369f,
+0.215332f, -0.437988f, 0.235107f, -0.427734f, 0.254883f, -0.41748f, 0.280518f, -0.4104f,
+0.306152f, -0.40332f, 0.33252f, -0.396484f, 0.358398f, -0.390137f, 0.385742f, -0.38208f,
+0.413086f, -0.374023f, 0.439453f, -0.363037f, 0.46582f, -0.352051f, 0.489258f, -0.337158f,
+0.512695f, -0.322266f, 0.530273f, -0.301758f, 0.547852f, -0.28125f, 0.55835f, -0.253906f,
+0.568848f, -0.226562f, 0.568848f, -0.190918f, 0.37207f, -0.547363f, 0.37207f, 0,
+0.228027f, 0, 0.228027f, -0.547363f, 0.0297852f, -0.547363f, 0.0297852f, -0.658691f,
+0.570312f, -0.658691f, 0.570312f, -0.547363f, 0.29248f, 0.00976562f, 0.239258f, 0.00976562f,
+0.196533f, -0.00366211f, 0.153809f, -0.0170898f, 0.124268f, -0.0480957f, 0.0947266f,
+-0.0791016f, 0.0788574f, -0.130371f, 0.0629883f, -0.181641f, 0.0629883f, -0.257812f,
+0.0629883f, -0.658691f, 0.207031f, -0.658691f, 0.207031f, -0.259277f, 0.207031f,
+-0.21582f, 0.211914f, -0.185791f, 0.216797f, -0.155762f, 0.227295f, -0.137451f, 0.237793f,
+-0.119141f, 0.254883f, -0.111084f, 0.271973f, -0.103027f, 0.296387f, -0.103027f,
+0.320801f, -0.103027f, 0.338867f, -0.111572f, 0.356934f, -0.120117f, 0.369141f, -0.13916f,
+0.381348f, -0.158203f, 0.387207f, -0.188965f, 0.393066f, -0.219727f, 0.393066f, -0.26416f,
+0.393066f, -0.658691f, 0.537109f, -0.658691f, 0.537109f, -0.265137f, 0.537109f, -0.188965f,
+0.52002f, -0.136475f, 0.50293f, -0.0839844f, 0.470947f, -0.0515137f, 0.438965f, -0.019043f,
+0.393799f, -0.00463867f, 0.348633f, 0.00976562f, 0.29248f, 0.00976562f, 0.374023f,
+0, 0.228027f, 0, 0.00146484f, -0.658691f, 0.151855f, -0.658691f, 0.265625f, -0.280273f,
+0.272461f, -0.258301f, 0.278809f, -0.235352f, 0.285156f, -0.212402f, 0.290527f, -0.193359f,
+0.296387f, -0.170898f, 0.301758f, -0.150391f, 0.306641f, -0.17041f, 0.312012f, -0.192383f,
+0.316895f, -0.210938f, 0.323486f, -0.234131f, 0.330078f, -0.257324f, 0.336914f, -0.280273f,
+0.450195f, -0.658691f, 0.599121f, -0.658691f, 0.49707f, 0, 0.375977f, 0, 0.344727f,
+-0.130371f, 0.342285f, -0.139648f, 0.338867f, -0.152344f, 0.335449f, -0.165039f,
+0.331787f, -0.179443f, 0.328125f, -0.193848f, 0.324463f, -0.209229f, 0.320801f, -0.224609f,
+0.317383f, -0.239258f, 0.309082f, -0.273438f, 0.300781f, -0.310547f, 0.291992f, -0.272949f,
+0.283691f, -0.23877f, 0.280273f, -0.224121f, 0.276611f, -0.20874f, 0.272949f, -0.193359f,
+0.269287f, -0.178955f, 0.265625f, -0.164551f, 0.262207f, -0.1521f, 0.258789f, -0.139648f,
+0.256348f, -0.130371f, 0.224121f, 0, 0.103027f, 0, 0, -0.658691f, 0.126465f, -0.658691f,
+0.169922f, -0.319336f, 0.172363f, -0.300293f, 0.173828f, -0.277832f, 0.175293f, -0.255371f,
+0.17627f, -0.235352f, 0.177246f, -0.211914f, 0.177734f, -0.189453f, 0.180664f, -0.207031f,
+0.185059f, -0.226562f, 0.188965f, -0.243652f, 0.193848f, -0.264893f, 0.19873f, -0.286133f,
+0.20459f, -0.308594f, 0.25293f, -0.474121f, 0.348145f, -0.474121f, 0.396484f, -0.308594f,
+0.402832f, -0.286621f, 0.407471f, -0.265381f, 0.412109f, -0.244141f, 0.416016f, -0.227051f,
+0.42041f, -0.20752f, 0.42334f, -0.189453f, 0.423828f, -0.189453f, 0.424316f, -0.202637f,
+0.424805f, -0.21582f, 0.425781f, -0.235352f, 0.426758f, -0.254883f, 0.428223f, -0.277588f,
+0.429688f, -0.300293f, 0.432129f, -0.319336f, 0.473145f, -0.658691f, 0.599609f, -0.658691f,
+0.44873f, 0, 0.300781f, -0.240723f, 0.152344f, 0, 0, 0, 0.224121f, -0.347168f, 0.0200195f,
+-0.658691f, 0.172363f, -0.658691f, 0.300781f, -0.44873f, 0.428711f, -0.658691f, 0.580078f,
+-0.658691f, 0.371094f, -0.347168f, 0.600098f, 0, 0.371582f, -0.271484f, 0.371582f,
+0, 0.228027f, 0, 0.228027f, -0.271484f, 0.00146484f, -0.658691f, 0.152344f, -0.658691f,
+0.298828f, -0.382324f, 0.447266f, -0.658691f, 0.598145f, -0.658691f, 0.555664f, 0,
+0.0424805f, 0, 0.0424805f, -0.102051f, 0.370117f, -0.545898f, 0.0795898f, -0.545898f,
+0.0795898f, -0.658691f, 0.535645f, -0.658691f, 0.535645f, -0.558594f, 0.208008f,
+-0.112793f, 0.555664f, -0.112793f, 0.182129f, 0.20752f, 0.182129f, -0.724609f, 0.476074f,
+-0.724609f, 0.476074f, -0.631836f, 0.312012f, -0.631836f, 0.312012f, 0.114258f, 0.476074f,
+0.114258f, 0.476074f, 0.20752f, 0.443359f, 0.00976562f, 0.0444336f, -0.724609f, 0.155762f,
+-0.724609f, 0.556641f, 0.00976562f, 0.124023f, 0.20752f, 0.124023f, 0.114258f, 0.288086f,
+0.114258f, 0.288086f, -0.631836f, 0.124023f, -0.631836f, 0.124023f, -0.724609f, 0.417969f,
+-0.724609f, 0.417969f, 0.20752f, 0.450195f, -0.250977f, 0.291016f, -0.618164f, 0.132812f,
+-0.250977f, 0.0219727f, -0.250977f, 0.212891f, -0.687988f, 0.370117f, -0.687988f,
+0.562012f, -0.250977f, -0.00244141f, 0.107422f, -0.00244141f, 0.0605469f, 0.602051f,
+0.0605469f, 0.602051f, 0.107422f, 0.335449f, -0.578125f, 0.169434f, -0.690918f, 0.169434f,
+-0.711914f, 0.29541f, -0.711914f, 0.418457f, -0.593262f, 0.418457f, -0.578125f, 0.214355f,
+0.00976562f, 0.17627f, 0.00976562f, 0.14624f, -0.000732422f, 0.116211f, -0.0112305f,
+0.0952148f, -0.0314941f, 0.0742188f, -0.0517578f, 0.0629883f, -0.081543f, 0.0517578f,
+-0.111328f, 0.0517578f, -0.149414f, 0.0517578f, -0.196289f, 0.0673828f, -0.228271f,
+0.0830078f, -0.260254f, 0.110352f, -0.280029f, 0.137695f, -0.299805f, 0.175049f,
+-0.308838f, 0.212402f, -0.317871f, 0.255371f, -0.318359f, 0.364258f, -0.320312f,
+0.364258f, -0.347168f, 0.364258f, -0.375977f, 0.359131f, -0.395264f, 0.354004f, -0.414551f,
+0.344727f, -0.426758f, 0.335449f, -0.438965f, 0.322021f, -0.444092f, 0.308594f, -0.449219f,
+0.291992f, -0.449219f, 0.276855f, -0.449219f, 0.26416f, -0.445801f, 0.251465f, -0.442383f,
+0.242188f, -0.433838f, 0.23291f, -0.425293f, 0.227051f, -0.410889f, 0.221191f, -0.396484f,
+0.21875f, -0.374512f, 0.0756836f, -0.381348f, 0.081543f, -0.416016f, 0.0964355f,
+-0.44458f, 0.111328f, -0.473145f, 0.137939f, -0.494141f, 0.164551f, -0.515137f, 0.204102f,
+-0.526611f, 0.243652f, -0.538086f, 0.297852f, -0.538086f, 0.396484f, -0.538086f,
+0.448975f, -0.489746f, 0.501465f, -0.441406f, 0.501465f, -0.347656f, 0.501465f, -0.15625f,
+0.501465f, -0.137695f, 0.503174f, -0.123047f, 0.504883f, -0.108398f, 0.509521f, -0.0983887f,
+0.51416f, -0.0883789f, 0.522705f, -0.083252f, 0.53125f, -0.078125f, 0.544922f, -0.078125f,
+0.560547f, -0.078125f, 0.575195f, -0.0810547f, 0.575195f, -0.00683594f, 0.562988f,
+-0.00390625f, 0.553223f, -0.00146484f, 0.543457f, 0.000976562f, 0.533691f, 0.00244141f,
+0.523926f, 0.00390625f, 0.512939f, 0.00488281f, 0.501953f, 0.00585938f, 0.487305f,
+0.00585938f, 0.435547f, 0.00585938f, 0.410889f, -0.0195312f, 0.38623f, -0.0449219f,
+0.381348f, -0.0942383f, 0.378418f, -0.0942383f, 0.364746f, -0.0698242f, 0.348877f,
+-0.0505371f, 0.333008f, -0.03125f, 0.313232f, -0.0178223f, 0.293457f, -0.00439453f,
+0.269043f, 0.00268555f, 0.244629f, 0.00976562f, 0.214355f, 0.00976562f, 0.364258f,
+-0.244629f, 0.298828f, -0.243652f, 0.276855f, -0.243164f, 0.257812f, -0.240479f,
+0.23877f, -0.237793f, 0.224854f, -0.229248f, 0.210938f, -0.220703f, 0.202881f, -0.204346f,
+0.194824f, -0.187988f, 0.194824f, -0.160156f, 0.194824f, -0.122559f, 0.209717f, -0.104248f,
+0.224609f, -0.0859375f, 0.253418f, -0.0859375f, 0.279785f, -0.0859375f, 0.300293f,
+-0.097168f, 0.320801f, -0.108398f, 0.335205f, -0.126709f, 0.349609f, -0.14502f, 0.356934f,
+-0.168945f, 0.364258f, -0.192871f, 0.364258f, -0.217773f, 0.0683594f, 0, 0.0693359f,
+-0.0166016f, 0.0708008f, -0.0466309f, 0.0722656f, -0.0766602f, 0.0722656f, -0.115234f,
+0.0722656f, -0.724609f, 0.209473f, -0.724609f, 0.209473f, -0.532227f, 0.209473f,
+-0.52002f, 0.209229f, -0.506836f, 0.208984f, -0.493652f, 0.208984f, -0.481445f, 0.208984f,
+-0.469238f, 0.20874f, -0.459717f, 0.208496f, -0.450195f, 0.208496f, -0.445312f, 0.209473f,
+-0.445312f, 0.221191f, -0.471191f, 0.238525f, -0.489014f, 0.255859f, -0.506836f,
+0.276367f, -0.517822f, 0.296875f, -0.528809f, 0.31958f, -0.533691f, 0.342285f, -0.538574f,
+0.364258f, -0.538574f, 0.413574f, -0.538574f, 0.449219f, -0.518066f, 0.484863f, -0.497559f,
+0.507812f, -0.460938f, 0.530762f, -0.424316f, 0.541748f, -0.374023f, 0.552734f, -0.32373f,
+0.552734f, -0.263672f, 0.552734f, -0.20459f, 0.540039f, -0.154541f, 0.527344f, -0.104492f,
+0.50293f, -0.0678711f, 0.478516f, -0.03125f, 0.442383f, -0.0107422f, 0.40625f, 0.00976562f,
+0.359863f, 0.00976562f, 0.337402f, 0.00976562f, 0.315918f, 0.00463867f, 0.294434f,
+-0.000488281f, 0.274902f, -0.0119629f, 0.255371f, -0.0234375f, 0.239014f, -0.0415039f,
+0.222656f, -0.0595703f, 0.210449f, -0.0859375f, 0.208496f, -0.0859375f, 0.208496f,
+-0.0756836f, 0.207764f, -0.0625f, 0.207031f, -0.0493164f, 0.206055f, -0.0366211f,
+0.205078f, -0.0239258f, 0.203613f, -0.013916f, 0.202148f, -0.00390625f, 0.201172f,
+0, 0.20752f, -0.26709f, 0.20752f, -0.214355f, 0.217285f, -0.178955f, 0.227051f, -0.143555f,
+0.242432f, -0.122559f, 0.257812f, -0.101562f, 0.276123f, -0.0927734f, 0.294434f,
+-0.0839844f, 0.311523f, -0.0839844f, 0.358398f, -0.0839844f, 0.384033f, -0.128906f,
+0.409668f, -0.173828f, 0.409668f, -0.263672f, 0.409668f, -0.312012f, 0.402588f, -0.346436f,
+0.395508f, -0.380859f, 0.382568f, -0.402832f, 0.369629f, -0.424805f, 0.351318f, -0.435059f,
+0.333008f, -0.445312f, 0.310547f, -0.445312f, 0.292969f, -0.445312f, 0.274902f, -0.437012f,
+0.256836f, -0.428711f, 0.241699f, -0.408447f, 0.226562f, -0.388184f, 0.217041f, -0.35376f,
+0.20752f, -0.319336f, 0.20752f, -0.26709f, 0.304688f, 0.00976562f, 0.241699f, 0.00976562f,
+0.19458f, -0.00976562f, 0.147461f, -0.0292969f, 0.116211f, -0.0649414f, 0.0849609f,
+-0.100586f, 0.0693359f, -0.150635f, 0.0537109f, -0.200684f, 0.0537109f, -0.26123f,
+0.0537109f, -0.327148f, 0.0708008f, -0.378662f, 0.0878906f, -0.430176f, 0.120117f,
+-0.465576f, 0.152344f, -0.500977f, 0.199463f, -0.519531f, 0.246582f, -0.538086f,
+0.306641f, -0.538086f, 0.35791f, -0.538086f, 0.397705f, -0.524414f, 0.4375f, -0.510742f,
+0.466309f, -0.487061f, 0.495117f, -0.463379f, 0.512939f, -0.431152f, 0.530762f, -0.398926f,
+0.537598f, -0.361816f, 0.399414f, -0.35498f, 0.393555f, -0.395508f, 0.370117f, -0.419678f,
+0.34668f, -0.443848f, 0.303711f, -0.443848f, 0.248535f, -0.443848f, 0.223145f, -0.398438f,
+0.197754f, -0.353027f, 0.197754f, -0.266602f, 0.197754f, -0.0839844f, 0.305664f,
+-0.0839844f, 0.344727f, -0.0839844f, 0.371094f, -0.108643f, 0.397461f, -0.133301f,
+0.403809f, -0.182129f, 0.541504f, -0.175781f, 0.536621f, -0.13916f, 0.519287f, -0.105713f,
+0.501953f, -0.0722656f, 0.472412f, -0.0466309f, 0.442871f, -0.0209961f, 0.400879f,
+-0.00561523f, 0.358887f, 0.00976562f, 0.304688f, 0.00976562f, 0.398926f, 0, 0.397949f,
+-0.00390625f, 0.396729f, -0.013916f, 0.395508f, -0.0239258f, 0.394287f, -0.0366211f,
+0.393066f, -0.0493164f, 0.392334f, -0.0625f, 0.391602f, -0.0756836f, 0.391602f, -0.0859375f,
+0.389648f, -0.0859375f, 0.36377f, -0.0336914f, 0.325684f, -0.0119629f, 0.287598f,
+0.00976562f, 0.235352f, 0.00976562f, 0.188965f, 0.00976562f, 0.153809f, -0.0107422f,
+0.118652f, -0.03125f, 0.0949707f, -0.067627f, 0.0712891f, -0.104004f, 0.0593262f,
+-0.154053f, 0.0473633f, -0.204102f, 0.0473633f, -0.263184f, 0.0473633f, -0.323242f,
+0.059082f, -0.373535f, 0.0708008f, -0.423828f, 0.0947266f, -0.460205f, 0.118652f,
+-0.496582f, 0.155029f, -0.516846f, 0.191406f, -0.537109f, 0.240723f, -0.537109f,
+0.262695f, -0.537109f, 0.284668f, -0.532227f, 0.306641f, -0.527344f, 0.326416f, -0.516357f,
+0.346191f, -0.505371f, 0.362549f, -0.487549f, 0.378906f, -0.469727f, 0.390625f, -0.443848f,
+0.391602f, -0.443848f, 0.391602f, -0.44873f, 0.391357f, -0.458252f, 0.391113f, -0.467773f,
+0.391113f, -0.47998f, 0.391113f, -0.492188f, 0.390869f, -0.505371f, 0.390625f, -0.518555f,
+0.390625f, -0.530762f, 0.390625f, -0.724609f, 0.527832f, -0.724609f, 0.527832f, -0.115234f,
+0.527832f, -0.0766602f, 0.529297f, -0.0466309f, 0.530762f, -0.0166016f, 0.531738f,
+0, 0.392578f, -0.266602f, 0.392578f, -0.318848f, 0.383057f, -0.353271f, 0.373535f,
+-0.387695f, 0.358398f, -0.407715f, 0.343262f, -0.427734f, 0.325195f, -0.435791f,
+0.307129f, -0.443848f, 0.289551f, -0.443848f, 0.26709f, -0.443848f, 0.248779f, -0.433594f,
+0.230469f, -0.42334f, 0.217529f, -0.401611f, 0.20459f, -0.379883f, 0.19751f, -0.345703f,
+0.19043f, -0.311523f, 0.19043f, -0.263184f, 0.19043f, -0.17334f, 0.216064f, -0.128662f,
+0.241699f, -0.0839844f, 0.288574f, -0.0839844f, 0.305664f, -0.0839844f, 0.323975f,
+-0.0927734f, 0.342285f, -0.101562f, 0.357666f, -0.122559f, 0.373047f, -0.143555f,
+0.382812f, -0.178711f, 0.392578f, -0.213867f, 0.392578f, -0.266602f, 0.305664f, 0.00976562f,
+0.248535f, 0.00976562f, 0.201172f, -0.00708008f, 0.153809f, -0.0239258f, 0.120117f,
+-0.0583496f, 0.0864258f, -0.0927734f, 0.067627f, -0.144775f, 0.0488281f, -0.196777f,
+0.0488281f, -0.266602f, 0.0488281f, -0.342285f, 0.0705566f, -0.394043f, 0.0922852f,
+-0.445801f, 0.128418f, -0.477783f, 0.164551f, -0.509766f, 0.211182f, -0.523926f,
+0.257812f, -0.538086f, 0.307617f, -0.538086f, 0.370117f, -0.538086f, 0.415771f, -0.516357f,
+0.461426f, -0.494629f, 0.491699f, -0.455566f, 0.521973f, -0.416504f, 0.536621f, -0.362061f,
+0.55127f, -0.307617f, 0.55127f, -0.241699f, 0.55127f, -0.237793f, 0.192871f, -0.237793f,
+0.192871f, -0.20459f, 0.200439f, -0.176025f, 0.208008f, -0.147461f, 0.2229f, -0.126709f,
+0.237793f, -0.105957f, 0.260254f, -0.0939941f, 0.282715f, -0.0820312f, 0.3125f, -0.0820312f,
+0.348633f, -0.0820312f, 0.376465f, -0.0974121f, 0.404297f, -0.112793f, 0.414062f,
+-0.14502f, 0.543457f, -0.133789f, 0.534668f, -0.111328f, 0.517334f, -0.0859375f,
+0.5f, -0.0605469f, 0.47168f, -0.0393066f, 0.443359f, -0.0180664f, 0.402588f, -0.00415039f,
+0.361816f, 0.00976562f, 0.305664f, 0.00976562f, 0.305664f, -0.45166f, 0.284668f,
+-0.45166f, 0.264893f, -0.44458f, 0.245117f, -0.4375f, 0.229736f, -0.422119f, 0.214355f,
+-0.406738f, 0.20459f, -0.382324f, 0.194824f, -0.35791f, 0.193848f, -0.32373f, 0.418457f,
+-0.32373f, 0.416504f, -0.355469f, 0.406982f, -0.379395f, 0.397461f, -0.40332f, 0.382568f,
+-0.419434f, 0.367676f, -0.435547f, 0.3479f, -0.443604f, 0.328125f, -0.45166f, 0.305664f,
+-0.45166f, 0.318848f, -0.435547f, 0.318848f, 0, 0.182129f, 0, 0.182129f, -0.435547f,
+0.0571289f, -0.435547f, 0.0571289f, -0.52832f, 0.182129f, -0.52832f, 0.182129f, -0.568848f,
+0.182129f, -0.599121f, 0.190674f, -0.629395f, 0.199219f, -0.659668f, 0.222168f, -0.684082f,
+0.245117f, -0.708496f, 0.285156f, -0.723877f, 0.325195f, -0.739258f, 0.388184f, -0.739258f,
+0.437988f, -0.739258f, 0.478271f, -0.734863f, 0.518555f, -0.730469f, 0.547852f, -0.725586f,
+0.547852f, -0.635742f, 0.51709f, -0.639648f, 0.482178f, -0.642334f, 0.447266f, -0.64502f,
+0.412109f, -0.64502f, 0.383789f, -0.64502f, 0.365723f, -0.638672f, 0.347656f, -0.632324f,
+0.337158f, -0.62085f, 0.32666f, -0.609375f, 0.322754f, -0.593018f, 0.318848f, -0.57666f,
+0.318848f, -0.556152f, 0.318848f, -0.52832f, 0.535156f, -0.52832f, 0.535156f, -0.435547f,
+0.300781f, 0.211914f, 0.252441f, 0.211914f, 0.2146f, 0.201416f, 0.176758f, 0.190918f,
+0.149658f, 0.172119f, 0.122559f, 0.15332f, 0.105713f, 0.127197f, 0.0888672f, 0.101074f,
+0.0825195f, 0.0698242f, 0.219727f, 0.0537109f, 0.227051f, 0.0854492f, 0.25f, 0.104004f,
+0.272949f, 0.122559f, 0.304688f, 0.122559f, 0.325195f, 0.122559f, 0.343506f, 0.115479f,
+0.361816f, 0.108398f, 0.375488f, 0.092041f, 0.38916f, 0.0756836f, 0.396973f, 0.048584f,
+0.404785f, 0.0214844f, 0.404785f, -0.0180664f, 0.404785f, -0.0317383f, 0.404785f,
+-0.0466309f, 0.404785f, -0.0615234f, 0.405273f, -0.0742188f, 0.405762f, -0.0888672f,
+0.405762f, -0.103027f, 0.404785f, -0.103027f, 0.380859f, -0.0517578f, 0.338867f,
+-0.0288086f, 0.296875f, -0.00585938f, 0.244629f, -0.00585938f, 0.198242f, -0.00585938f,
+0.163574f, -0.0249023f, 0.128906f, -0.0439453f, 0.105957f, -0.0783691f, 0.0830078f,
+-0.112793f, 0.0717773f, -0.161133f, 0.0605469f, -0.209473f, 0.0605469f, -0.268555f,
+0.0605469f, -0.32959f, 0.0725098f, -0.378906f, 0.0844727f, -0.428223f, 0.108643f,
+-0.463379f, 0.132812f, -0.498535f, 0.169434f, -0.517578f, 0.206055f, -0.536621f,
+0.254883f, -0.536621f, 0.277344f, -0.536621f, 0.299316f, -0.531494f, 0.321289f, -0.526367f,
+0.34082f, -0.515137f, 0.360352f, -0.503906f, 0.376709f, -0.486084f, 0.393066f, -0.468262f,
+0.404785f, -0.443359f, 0.407227f, -0.443359f, 0.407227f, -0.453613f, 0.407959f, -0.467041f,
+0.408691f, -0.480469f, 0.409668f, -0.49292f, 0.410645f, -0.505371f, 0.411865f, -0.515137f,
+0.413086f, -0.524902f, 0.414062f, -0.52832f, 0.543945f, -0.52832f, 0.542969f, -0.510742f,
+0.541992f, -0.479004f, 0.541016f, -0.447266f, 0.541016f, -0.40625f, 0.541016f, -0.0161133f,
+0.541016f, 0.0415039f, 0.524414f, 0.0842285f, 0.507812f, 0.126953f, 0.476807f, 0.155273f,
+0.445801f, 0.183594f, 0.401367f, 0.197754f, 0.356934f, 0.211914f, 0.300781f, 0.211914f,
+0.405762f, -0.271484f, 0.405762f, -0.321289f, 0.39624f, -0.354248f, 0.386719f, -0.387207f,
+0.371826f, -0.406738f, 0.356934f, -0.42627f, 0.338867f, -0.434326f, 0.320801f, -0.442383f,
+0.303711f, -0.442383f, 0.28125f, -0.442383f, 0.262695f, -0.432373f, 0.244141f, -0.422363f,
+0.230957f, -0.401123f, 0.217773f, -0.379883f, 0.210693f, -0.347168f, 0.203613f, -0.314453f,
+0.203613f, -0.268555f, 0.203613f, -0.183594f, 0.22998f, -0.142334f, 0.256348f, -0.101074f,
+0.302734f, -0.101074f, 0.319824f, -0.101074f, 0.338135f, -0.108398f, 0.356445f, -0.115723f,
+0.371338f, -0.13501f, 0.38623f, -0.154297f, 0.395996f, -0.187256f, 0.405762f, -0.220215f,
+0.405762f, -0.271484f, 0.205078f, -0.422852f, 0.23291f, -0.483398f, 0.274902f, -0.510742f,
+0.316895f, -0.538086f, 0.375f, -0.538086f, 0.422852f, -0.538086f, 0.454346f, -0.522461f,
+0.48584f, -0.506836f, 0.504639f, -0.479492f, 0.523438f, -0.452148f, 0.53125f, -0.415039f,
+0.539062f, -0.37793f, 0.539062f, -0.334961f, 0.539062f, 0, 0.402344f, 0, 0.402344f,
+-0.303223f, 0.402344f, -0.333984f, 0.398926f, -0.358398f, 0.395508f, -0.382812f,
+0.38623f, -0.399902f, 0.376953f, -0.416992f, 0.360352f, -0.426025f, 0.34375f, -0.435059f,
+0.317871f, -0.435059f, 0.292969f, -0.435059f, 0.272705f, -0.424072f, 0.252441f, -0.413086f,
+0.237793f, -0.392822f, 0.223145f, -0.372559f, 0.215088f, -0.344482f, 0.207031f, -0.316406f,
+0.207031f, -0.282715f, 0.207031f, 0, 0.0698242f, 0, 0.0698242f, -0.724609f, 0.207031f,
+-0.724609f, 0.207031f, -0.526855f, 0.207031f, -0.51123f, 0.206543f, -0.495361f, 0.206055f,
+-0.479492f, 0.205322f, -0.465576f, 0.20459f, -0.45166f, 0.204102f, -0.44043f, 0.203613f,
+-0.429199f, 0.203125f, -0.422852f, 0.387695f, -0.0927734f, 0.560059f, -0.0927734f,
+0.560059f, 0, 0.0576172f, 0, 0.0576172f, -0.0927734f, 0.250488f, -0.0927734f, 0.250488f,
+-0.435547f, 0.108887f, -0.435547f, 0.108887f, -0.52832f, 0.387695f, -0.52832f, 0.250488f,
+-0.623535f, 0.250488f, -0.724609f, 0.387695f, -0.724609f, 0.387695f, -0.623535f,
+0.421875f, 0.00634766f, 0.421875f, 0.0595703f, 0.40332f, 0.0976562f, 0.384766f, 0.135742f,
+0.353516f, 0.160156f, 0.322266f, 0.18457f, 0.281738f, 0.196045f, 0.241211f, 0.20752f,
+0.197754f, 0.20752f, 0.177734f, 0.20752f, 0.157715f, 0.205811f, 0.137695f, 0.204102f,
+0.119141f, 0.201172f, 0.100586f, 0.198242f, 0.0847168f, 0.19458f, 0.0688477f, 0.190918f,
+0.0571289f, 0.186523f, 0.0571289f, 0.0839844f, 0.0786133f, 0.0893555f, 0.112305f,
+0.0949707f, 0.145996f, 0.100586f, 0.185547f, 0.100586f, 0.206543f, 0.100586f, 0.224609f,
+0.0964355f, 0.242676f, 0.0922852f, 0.255859f, 0.0805664f, 0.269043f, 0.0688477f,
+0.276611f, 0.0483398f, 0.28418f, 0.027832f, 0.28418f, -0.00488281f, 0.28418f, -0.435547f,
+0.111328f, -0.435547f, 0.111328f, -0.52832f, 0.421875f, -0.52832f, 0.284668f, -0.623535f,
+0.284668f, -0.724609f, 0.421875f, -0.724609f, 0.421875f, -0.623535f, 0.421875f, 0,
+0.280762f, -0.239258f, 0.22168f, -0.198242f, 0.22168f, 0, 0.0844727f, 0, 0.0844727f,
+-0.724609f, 0.22168f, -0.724609f, 0.22168f, -0.30957f, 0.410156f, -0.52832f, 0.557617f,
+-0.52832f, 0.37207f, -0.322266f, 0.571777f, 0, 0.387695f, -0.0927734f, 0.560059f,
+-0.0927734f, 0.560059f, 0, 0.0576172f, 0, 0.0576172f, -0.0927734f, 0.250488f, -0.0927734f,
+0.250488f, -0.631836f, 0.108887f, -0.631836f, 0.108887f, -0.724609f, 0.387695f, -0.724609f,
+0.244629f, 0, 0.244629f, -0.321289f, 0.244629f, -0.358398f, 0.242432f, -0.383301f,
+0.240234f, -0.408203f, 0.235352f, -0.423096f, 0.230469f, -0.437988f, 0.222168f, -0.444336f,
+0.213867f, -0.450684f, 0.202148f, -0.450684f, 0.189941f, -0.450684f, 0.179932f, -0.438721f,
+0.169922f, -0.426758f, 0.163086f, -0.405029f, 0.15625f, -0.383301f, 0.152344f, -0.352539f,
+0.148438f, -0.321777f, 0.148438f, -0.28418f, 0.148438f, 0, 0.0366211f, 0, 0.0366211f,
+-0.415527f, 0.0366211f, -0.432129f, 0.036377f, -0.450439f, 0.0361328f, -0.46875f,
+0.0356445f, -0.485107f, 0.0351562f, -0.501465f, 0.034668f, -0.513184f, 0.0341797f,
+-0.524902f, 0.0336914f, -0.52832f, 0.135742f, -0.52832f, 0.13623f, -0.525879f, 0.136719f,
+-0.515869f, 0.137207f, -0.505859f, 0.137695f, -0.49292f, 0.138184f, -0.47998f, 0.138428f,
+-0.466309f, 0.138672f, -0.452637f, 0.138672f, -0.442871f, 0.139648f, -0.442871f,
+0.145996f, -0.461914f, 0.154785f, -0.479248f, 0.163574f, -0.496582f, 0.176025f, -0.509766f,
+0.188477f, -0.522949f, 0.205566f, -0.530518f, 0.222656f, -0.538086f, 0.245117f, -0.538086f,
+0.288086f, -0.538086f, 0.309326f, -0.514648f, 0.330566f, -0.491211f, 0.339844f, -0.442383f,
+0.34082f, -0.442383f, 0.349609f, -0.465332f, 0.360107f, -0.483154f, 0.370605f, -0.500977f,
+0.384277f, -0.513184f, 0.397949f, -0.525391f, 0.415527f, -0.531738f, 0.433105f, -0.538086f,
+0.456055f, -0.538086f, 0.48584f, -0.538086f, 0.506348f, -0.527344f, 0.526855f, -0.516602f,
+0.539551f, -0.494141f, 0.552246f, -0.47168f, 0.557861f, -0.436523f, 0.563477f, -0.401367f,
+0.563477f, -0.352051f, 0.563477f, 0, 0.452148f, 0, 0.452148f, -0.321289f, 0.452148f,
+-0.358398f, 0.449951f, -0.383301f, 0.447754f, -0.408203f, 0.442871f, -0.423096f,
+0.437988f, -0.437988f, 0.429688f, -0.444336f, 0.421387f, -0.450684f, 0.409668f, -0.450684f,
+0.384766f, -0.450684f, 0.370361f, -0.411377f, 0.355957f, -0.37207f, 0.355957f, -0.293457f,
+0.355957f, 0, 0.402344f, 0, 0.402344f, -0.302246f, 0.402344f, -0.371094f, 0.383545f,
+-0.40332f, 0.364746f, -0.435547f, 0.318848f, -0.435547f, 0.293945f, -0.435547f, 0.273438f,
+-0.424561f, 0.25293f, -0.413574f, 0.238281f, -0.393311f, 0.223633f, -0.373047f, 0.215332f,
+-0.344971f, 0.207031f, -0.316895f, 0.207031f, -0.283203f, 0.207031f, 0, 0.0698242f,
+0, 0.0698242f, -0.410156f, 0.0698242f, -0.427246f, 0.0695801f, -0.445312f, 0.0693359f,
+-0.463379f, 0.0686035f, -0.479736f, 0.0678711f, -0.496094f, 0.0673828f, -0.509033f,
+0.0668945f, -0.521973f, 0.065918f, -0.52832f, 0.196777f, -0.52832f, 0.197754f, -0.522461f,
+0.19873f, -0.509521f, 0.199707f, -0.496582f, 0.200684f, -0.480957f, 0.20166f, -0.465332f,
+0.202393f, -0.449707f, 0.203125f, -0.434082f, 0.203125f, -0.42334f, 0.205078f, -0.42334f,
+0.23291f, -0.483887f, 0.274902f, -0.51123f, 0.316895f, -0.538574f, 0.375f, -0.538574f,
+0.417969f, -0.538574f, 0.448975f, -0.524658f, 0.47998f, -0.510742f, 0.5f, -0.484619f,
+0.52002f, -0.458496f, 0.529541f, -0.420898f, 0.539062f, -0.383301f, 0.539062f, -0.335449f,
+0.539062f, 0, 0.555176f, -0.264648f, 0.555176f, -0.204102f, 0.540039f, -0.153809f,
+0.524902f, -0.103516f, 0.493408f, -0.0671387f, 0.461914f, -0.0307617f, 0.41333f,
+-0.010498f, 0.364746f, 0.00976562f, 0.297852f, 0.00976562f, 0.233398f, 0.00976562f,
+0.186035f, -0.0102539f, 0.138672f, -0.0302734f, 0.107178f, -0.0664062f, 0.0756836f,
+-0.102539f, 0.0603027f, -0.153076f, 0.0449219f, -0.203613f, 0.0449219f, -0.264648f,
+0.0449219f, -0.32373f, 0.0595703f, -0.373779f, 0.0742188f, -0.423828f, 0.105225f,
+-0.460449f, 0.13623f, -0.49707f, 0.184814f, -0.517578f, 0.233398f, -0.538086f, 0.300781f,
+-0.538086f, 0.37207f, -0.538086f, 0.420654f, -0.517578f, 0.469238f, -0.49707f, 0.499268f,
+-0.460693f, 0.529297f, -0.424316f, 0.542236f, -0.374268f, 0.555176f, -0.324219f,
+0.555176f, -0.264648f, 0.411621f, -0.264648f, 0.411621f, -0.311523f, 0.405518f, -0.345459f,
+0.399414f, -0.379395f, 0.386475f, -0.401367f, 0.373535f, -0.42334f, 0.352783f, -0.433594f,
+0.332031f, -0.443848f, 0.302734f, -0.443848f, 0.242188f, -0.443848f, 0.215576f, -0.400879f,
+0.188965f, -0.35791f, 0.188965f, -0.264648f, 0.188965f, -0.17041f, 0.216064f, -0.127197f,
+0.243164f, -0.0839844f, 0.296387f, -0.0839844f, 0.32666f, -0.0839844f, 0.348633f,
+-0.0944824f, 0.370605f, -0.10498f, 0.384521f, -0.126953f, 0.398438f, -0.148926f,
+0.405029f, -0.183105f, 0.411621f, -0.217285f, 0.411621f, -0.264648f, 0.201172f, -0.52832f,
+0.202148f, -0.524902f, 0.203613f, -0.514648f, 0.205078f, -0.504395f, 0.206055f, -0.491699f,
+0.207031f, -0.479004f, 0.207764f, -0.46582f, 0.208496f, -0.452637f, 0.208496f, -0.442383f,
+0.210449f, -0.442383f, 0.223633f, -0.46875f, 0.240967f, -0.487061f, 0.258301f, -0.505371f,
+0.27832f, -0.516846f, 0.29834f, -0.52832f, 0.320312f, -0.533447f, 0.342285f, -0.538574f,
+0.364746f, -0.538574f, 0.411133f, -0.538574f, 0.446289f, -0.518066f, 0.481445f, -0.497559f,
+0.505127f, -0.460938f, 0.528809f, -0.424316f, 0.540771f, -0.374268f, 0.552734f, -0.324219f,
+0.552734f, -0.265137f, 0.552734f, -0.205078f, 0.541016f, -0.154785f, 0.529297f, -0.104492f,
+0.505371f, -0.0678711f, 0.481445f, -0.03125f, 0.445068f, -0.0107422f, 0.408691f,
+0.00976562f, 0.359375f, 0.00976562f, 0.337402f, 0.00976562f, 0.31543f, 0.00488281f,
+0.293457f, 0, 0.273682f, -0.0109863f, 0.253906f, -0.0219727f, 0.237549f, -0.0397949f,
+0.221191f, -0.0576172f, 0.209473f, -0.0834961f, 0.208496f, -0.0834961f, 0.208496f,
+-0.0786133f, 0.20874f, -0.0690918f, 0.208984f, -0.0595703f, 0.208984f, -0.0473633f,
+0.208984f, -0.0351562f, 0.209229f, -0.0219727f, 0.209473f, -0.00878906f, 0.209473f,
+0.00341797f, 0.209473f, 0.20752f, 0.0722656f, 0.20752f, 0.0722656f, -0.413086f, 0.0722656f,
+-0.45166f, 0.0708008f, -0.481689f, 0.0693359f, -0.511719f, 0.0683594f, -0.52832f,
+0.20752f, -0.261719f, 0.20752f, -0.209473f, 0.217041f, -0.175049f, 0.226562f, -0.140625f,
+0.241699f, -0.120361f, 0.256836f, -0.100098f, 0.274902f, -0.0917969f, 0.292969f,
+-0.0834961f, 0.310547f, -0.0834961f, 0.333008f, -0.0834961f, 0.351318f, -0.09375f,
+0.369629f, -0.104004f, 0.382568f, -0.125977f, 0.395508f, -0.147949f, 0.402588f, -0.182373f,
+0.409668f, -0.216797f, 0.409668f, -0.265137f, 0.409668f, -0.35498f, 0.384033f, -0.399902f,
+0.358398f, -0.444824f, 0.311523f, -0.444824f, 0.294434f, -0.444824f, 0.276123f, -0.436035f,
+0.257812f, -0.427246f, 0.242432f, -0.40625f, 0.227051f, -0.385254f, 0.217285f, -0.349854f,
+0.20752f, -0.314453f, 0.20752f, -0.261719f, 0.531738f, -0.52832f, 0.530762f, -0.511719f,
+0.529297f, -0.481689f, 0.527832f, -0.45166f, 0.527832f, -0.413086f, 0.527832f, 0.20752f,
+0.390625f, 0.20752f, 0.390625f, 0.00341797f, 0.390625f, -0.00878906f, 0.390869f,
+-0.0219727f, 0.391113f, -0.0351562f, 0.391113f, -0.0473633f, 0.391113f, -0.0595703f,
+0.391357f, -0.0690918f, 0.391602f, -0.0786133f, 0.391602f, -0.0834961f, 0.390625f,
+-0.0834961f, 0.378906f, -0.0576172f, 0.361572f, -0.0397949f, 0.344238f, -0.0219727f,
+0.32373f, -0.0109863f, 0.303223f, 0, 0.280518f, 0.00488281f, 0.257812f, 0.00976562f,
+0.23584f, 0.00976562f, 0.186523f, 0.00976562f, 0.150879f, -0.0107422f, 0.115234f,
+-0.03125f, 0.0922852f, -0.0678711f, 0.0693359f, -0.104492f, 0.0583496f, -0.154785f,
+0.0473633f, -0.205078f, 0.0473633f, -0.265137f, 0.0473633f, -0.324219f, 0.0600586f,
+-0.374268f, 0.0727539f, -0.424316f, 0.0974121f, -0.460938f, 0.12207f, -0.497559f,
+0.157959f, -0.518066f, 0.193848f, -0.538574f, 0.240234f, -0.538574f, 0.262695f, -0.538574f,
+0.283936f, -0.533447f, 0.305176f, -0.52832f, 0.324219f, -0.516846f, 0.343262f, -0.505371f,
+0.359863f, -0.487061f, 0.376465f, -0.46875f, 0.389648f, -0.442383f, 0.391602f, -0.442383f,
+0.391602f, -0.452637f, 0.392334f, -0.46582f, 0.393066f, -0.479004f, 0.394287f, -0.491699f,
+0.395508f, -0.504395f, 0.396729f, -0.514648f, 0.397949f, -0.524902f, 0.398926f, -0.52832f,
+0.392578f, -0.261719f, 0.392578f, -0.314453f, 0.382812f, -0.349854f, 0.373047f, -0.385254f,
+0.357666f, -0.40625f, 0.342285f, -0.427246f, 0.323975f, -0.436035f, 0.305664f, -0.444824f,
+0.288574f, -0.444824f, 0.241699f, -0.444824f, 0.216064f, -0.399902f, 0.19043f, -0.35498f,
+0.19043f, -0.265137f, 0.19043f, -0.216797f, 0.19751f, -0.182373f, 0.20459f, -0.147949f,
+0.217529f, -0.125977f, 0.230469f, -0.104004f, 0.248779f, -0.09375f, 0.26709f, -0.0834961f,
+0.289551f, -0.0834961f, 0.307129f, -0.0834961f, 0.325195f, -0.0917969f, 0.343262f,
+-0.100098f, 0.358398f, -0.120361f, 0.373535f, -0.140625f, 0.383057f, -0.175049f,
+0.392578f, -0.209473f, 0.392578f, -0.261719f, 0.527832f, -0.414062f, 0.504883f, -0.417969f,
+0.479736f, -0.420654f, 0.45459f, -0.42334f, 0.424316f, -0.42334f, 0.383301f, -0.42334f,
+0.352295f, -0.406738f, 0.321289f, -0.390137f, 0.300537f, -0.361572f, 0.279785f, -0.333008f,
+0.269287f, -0.294922f, 0.258789f, -0.256836f, 0.258789f, -0.213867f, 0.258789f, 0,
+0.12207f, 0, 0.12207f, -0.342285f, 0.12207f, -0.369629f, 0.119141f, -0.397949f, 0.116211f,
+-0.42627f, 0.112305f, -0.451416f, 0.108398f, -0.476562f, 0.104004f, -0.496582f, 0.0996094f,
+-0.516602f, 0.0966797f, -0.52832f, 0.229004f, -0.52832f, 0.231934f, -0.517578f, 0.235352f,
+-0.50415f, 0.23877f, -0.490723f, 0.241699f, -0.47583f, 0.244629f, -0.460938f, 0.247314f,
+-0.445801f, 0.25f, -0.430664f, 0.251465f, -0.416992f, 0.253418f, -0.416992f, 0.263672f,
+-0.444824f, 0.277588f, -0.467285f, 0.291504f, -0.489746f, 0.312012f, -0.505371f,
+0.33252f, -0.520996f, 0.36084f, -0.529541f, 0.38916f, -0.538086f, 0.427246f, -0.538086f,
+0.45459f, -0.538086f, 0.480957f, -0.535645f, 0.507324f, -0.533203f, 0.527832f, -0.529785f,
+0.539062f, -0.154297f, 0.539062f, -0.116211f, 0.523193f, -0.0859375f, 0.507324f,
+-0.0556641f, 0.477051f, -0.0344238f, 0.446777f, -0.0131836f, 0.402832f, -0.00170898f,
+0.358887f, 0.00976562f, 0.302734f, 0.00976562f, 0.252441f, 0.00976562f, 0.211914f,
+0.00244141f, 0.171387f, -0.00488281f, 0.140869f, -0.0217285f, 0.110352f, -0.0385742f,
+0.0898438f, -0.0654297f, 0.0693359f, -0.0922852f, 0.059082f, -0.131836f, 0.179688f,
+-0.149902f, 0.185547f, -0.12793f, 0.195801f, -0.114258f, 0.206055f, -0.100586f, 0.221191f,
+-0.0932617f, 0.236328f, -0.0859375f, 0.256592f, -0.0834961f, 0.276855f, -0.0810547f,
+0.302734f, -0.0810547f, 0.326172f, -0.0810547f, 0.346436f, -0.0837402f, 0.366699f,
+-0.0864258f, 0.381592f, -0.0930176f, 0.396484f, -0.0996094f, 0.404785f, -0.111572f,
+0.413086f, -0.123535f, 0.413086f, -0.141602f, 0.413086f, -0.162109f, 0.401123f, -0.174072f,
+0.38916f, -0.186035f, 0.368408f, -0.193604f, 0.347656f, -0.201172f, 0.31958f, -0.206787f,
+0.291504f, -0.212402f, 0.259766f, -0.219727f, 0.226562f, -0.227051f, 0.194336f, -0.237305f,
+0.162109f, -0.247559f, 0.136719f, -0.265137f, 0.111328f, -0.282715f, 0.0957031f,
+-0.309814f, 0.0800781f, -0.336914f, 0.0800781f, -0.378418f, 0.0800781f, -0.416016f,
+0.0947266f, -0.445557f, 0.109375f, -0.475098f, 0.137695f, -0.49585f, 0.166016f, -0.516602f,
+0.207764f, -0.527588f, 0.249512f, -0.538574f, 0.303711f, -0.538574f, 0.34668f, -0.538574f,
+0.383789f, -0.530518f, 0.420898f, -0.522461f, 0.450195f, -0.505127f, 0.479492f, -0.487793f,
+0.499268f, -0.460938f, 0.519043f, -0.434082f, 0.526855f, -0.395996f, 0.405273f, -0.383301f,
+0.401855f, -0.402344f, 0.393066f, -0.414795f, 0.384277f, -0.427246f, 0.371338f, -0.43457f,
+0.358398f, -0.441895f, 0.341309f, -0.44458f, 0.324219f, -0.447266f, 0.303711f, -0.447266f,
+0.254883f, -0.447266f, 0.230469f, -0.434814f, 0.206055f, -0.422363f, 0.206055f, -0.393066f,
+0.206055f, -0.375f, 0.216064f, -0.364258f, 0.226074f, -0.353516f, 0.244385f, -0.346436f,
+0.262695f, -0.339355f, 0.287842f, -0.334229f, 0.312988f, -0.329102f, 0.342773f, -0.321777f,
+0.379395f, -0.313965f, 0.414795f, -0.303467f, 0.450195f, -0.292969f, 0.477783f, -0.274658f,
+0.505371f, -0.256348f, 0.522217f, -0.227539f, 0.539062f, -0.19873f, 0.539062f, -0.154297f,
+0.160156f, -0.435547f, 0.0786133f, -0.435547f, 0.0786133f, -0.52832f, 0.166992f,
+-0.52832f, 0.209961f, -0.666016f, 0.295898f, -0.666016f, 0.295898f, -0.52832f, 0.483887f,
+-0.52832f, 0.483887f, -0.435547f, 0.295898f, -0.435547f, 0.295898f, -0.176758f, 0.295898f,
+-0.15918f, 0.297119f, -0.143066f, 0.29834f, -0.126953f, 0.306396f, -0.114502f, 0.314453f,
+-0.102051f, 0.331787f, -0.0944824f, 0.349121f, -0.0869141f, 0.380859f, -0.0869141f,
+0.412109f, -0.0869141f, 0.443359f, -0.090332f, 0.474609f, -0.09375f, 0.505371f, -0.100098f,
+0.505371f, -0.00927734f, 0.487305f, -0.00634766f, 0.469482f, -0.00341797f, 0.45166f,
+-0.000488281f, 0.432861f, 0.00170898f, 0.414062f, 0.00390625f, 0.393066f, 0.00512695f,
+0.37207f, 0.00634766f, 0.347168f, 0.00634766f, 0.305176f, 0.00634766f, 0.274902f,
+-0.000732422f, 0.244629f, -0.0078125f, 0.223877f, -0.0200195f, 0.203125f, -0.0322266f,
+0.190186f, -0.0488281f, 0.177246f, -0.0654297f, 0.17041f, -0.0842285f, 0.163574f,
+-0.103027f, 0.161377f, -0.123535f, 0.15918f, -0.144043f, 0.15918f, -0.164062f, 0.203125f,
+-0.52832f, 0.203125f, -0.231934f, 0.203125f, -0.201172f, 0.208008f, -0.175537f, 0.212891f,
+-0.149902f, 0.223145f, -0.131592f, 0.233398f, -0.113281f, 0.249268f, -0.103027f,
+0.265137f, -0.0927734f, 0.287109f, -0.0927734f, 0.308105f, -0.0927734f, 0.32666f,
+-0.10376f, 0.345215f, -0.114746f, 0.358887f, -0.13501f, 0.372559f, -0.155273f, 0.380371f,
+-0.18335f, 0.388184f, -0.211426f, 0.388184f, -0.245117f, 0.388184f, -0.52832f, 0.525391f,
+-0.52832f, 0.525391f, -0.118164f, 0.525391f, -0.101562f, 0.525635f, -0.083252f, 0.525879f,
+-0.0649414f, 0.526611f, -0.048584f, 0.527344f, -0.0322266f, 0.528076f, -0.0192871f,
+0.528809f, -0.00634766f, 0.529297f, 0, 0.398438f, 0, 0.397949f, -0.00585938f, 0.396729f,
+-0.0187988f, 0.395508f, -0.0317383f, 0.394775f, -0.0473633f, 0.394043f, -0.0629883f,
+0.393311f, -0.0786133f, 0.392578f, -0.0942383f, 0.392578f, -0.10498f, 0.390137f,
+-0.10498f, 0.362793f, -0.0449219f, 0.321777f, -0.0175781f, 0.280762f, 0.00976562f,
+0.22998f, 0.00976562f, 0.184082f, 0.00976562f, 0.152832f, -0.00585938f, 0.121582f,
+-0.0214844f, 0.102295f, -0.048584f, 0.0830078f, -0.0756836f, 0.0744629f, -0.112793f,
+0.065918f, -0.149902f, 0.065918f, -0.192871f, 0.065918f, -0.52832f, 0.37793f, 0,
+0.213867f, 0, 0.0151367f, -0.52832f, 0.160156f, -0.52832f, 0.262207f, -0.224609f,
+0.266602f, -0.209961f, 0.271484f, -0.193604f, 0.276367f, -0.177246f, 0.280762f, -0.161133f,
+0.285156f, -0.14502f, 0.289307f, -0.129883f, 0.293457f, -0.114746f, 0.296875f, -0.102539f,
+0.299805f, -0.114258f, 0.304199f, -0.12915f, 0.308594f, -0.144043f, 0.313232f, -0.160156f,
+0.317871f, -0.17627f, 0.322998f, -0.192383f, 0.328125f, -0.208496f, 0.333008f, -0.223145f,
+0.438965f, -0.52832f, 0.58252f, -0.52832f, 0.501953f, 0, 0.382812f, 0, 0.312988f,
+-0.22998f, 0.305176f, -0.255371f, 0.302246f, -0.268066f, 0.300293f, -0.275391f, 0.299805f,
+-0.279785f, 0.299316f, -0.275391f, 0.297363f, -0.268555f, 0.295898f, -0.262695f,
+0.293213f, -0.25293f, 0.290527f, -0.243164f, 0.285645f, -0.228027f, 0.213379f, 0,
+0.0947266f, 0, 0.00537109f, -0.52832f, 0.116699f, -0.52832f, 0.157227f, -0.231934f,
+0.160156f, -0.208496f, 0.16333f, -0.179443f, 0.166504f, -0.150391f, 0.166504f, -0.121582f,
+0.168457f, -0.129883f, 0.170898f, -0.13916f, 0.17334f, -0.147461f, 0.176025f, -0.157471f,
+0.178711f, -0.16748f, 0.182129f, -0.177246f, 0.25293f, -0.398926f, 0.347168f, -0.398926f,
+0.415527f, -0.176758f, 0.418457f, -0.166992f, 0.421143f, -0.157471f, 0.423828f, -0.147949f,
+0.425781f, -0.139648f, 0.427734f, -0.130371f, 0.429688f, -0.121582f, 0.429688f, -0.150879f,
+0.433105f, -0.178955f, 0.436523f, -0.207031f, 0.439941f, -0.231934f, 0.484375f, -0.52832f,
+0.594727f, -0.52832f, 0.426758f, 0, 0.298828f, -0.191406f, 0.169922f, 0, 0.0239258f,
+0, 0.222168f, -0.272949f, 0.0332031f, -0.52832f, 0.181152f, -0.52832f, 0.298828f,
+-0.355469f, 0.416016f, -0.52832f, 0.564941f, -0.52832f, 0.375977f, -0.274414f, 0.575684f,
+0, 0.362305f, 0.027832f, 0.344238f, 0.0742188f, 0.324707f, 0.108154f, 0.305176f,
+0.14209f, 0.28125f, 0.164062f, 0.257324f, 0.186035f, 0.227539f, 0.196777f, 0.197754f,
+0.20752f, 0.158691f, 0.20752f, 0.137207f, 0.20752f, 0.113525f, 0.206055f, 0.0898438f,
+0.20459f, 0.0698242f, 0.201172f, 0.0698242f, 0.103516f, 0.074707f, 0.104492f, 0.0812988f,
+0.10498f, 0.0878906f, 0.105469f, 0.0947266f, 0.106201f, 0.101562f, 0.106934f, 0.108154f,
+0.107178f, 0.114746f, 0.107422f, 0.119629f, 0.107422f, 0.139648f, 0.107422f, 0.155273f,
+0.103027f, 0.170898f, 0.0986328f, 0.183594f, 0.0883789f, 0.196289f, 0.078125f, 0.207275f,
+0.0610352f, 0.218262f, 0.0439453f, 0.228516f, 0.0180664f, 0.237305f, -0.00537109f,
+0.0185547f, -0.52832f, 0.163574f, -0.52832f, 0.256348f, -0.270996f, 0.258301f, -0.265625f,
+0.262451f, -0.25293f, 0.266602f, -0.240234f, 0.271729f, -0.223877f, 0.276855f, -0.20752f,
+0.282227f, -0.189453f, 0.287598f, -0.171387f, 0.29248f, -0.155029f, 0.297363f, -0.138672f,
+0.300781f, -0.125977f, 0.304199f, -0.113281f, 0.305664f, -0.10791f, 0.306641f, -0.113281f,
+0.310059f, -0.125732f, 0.313477f, -0.138184f, 0.317627f, -0.154053f, 0.321777f, -0.169922f,
+0.32666f, -0.1875f, 0.331543f, -0.205078f, 0.335938f, -0.221191f, 0.340332f, -0.237305f,
+0.343994f, -0.250244f, 0.347656f, -0.263184f, 0.349609f, -0.269043f, 0.4375f, -0.52832f,
+0.581055f, -0.52832f, 0.0673828f, 0, 0.0673828f, -0.097168f, 0.345703f, -0.429199f,
+0.0874023f, -0.429199f, 0.0874023f, -0.52832f, 0.501953f, -0.52832f, 0.501953f, -0.430176f,
+0.225098f, -0.100098f, 0.525879f, -0.100098f, 0.525879f, 0, 0.350586f, 0.20752f,
+0.316895f, 0.20752f, 0.290283f, 0.197266f, 0.263672f, 0.187012f, 0.244873f, 0.168213f,
+0.226074f, 0.149414f, 0.216309f, 0.122314f, 0.206543f, 0.0952148f, 0.206543f, 0.0615234f,
+0.206543f, -0.0986328f, 0.206543f, -0.129395f, 0.19873f, -0.150635f, 0.190918f, -0.171875f,
+0.17627f, -0.185059f, 0.161621f, -0.198242f, 0.140869f, -0.204102f, 0.120117f, -0.209961f,
+0.0947266f, -0.210449f, 0.0947266f, -0.305664f, 0.120605f, -0.306641f, 0.141357f,
+-0.312744f, 0.162109f, -0.318848f, 0.176514f, -0.332031f, 0.190918f, -0.345215f,
+0.19873f, -0.366455f, 0.206543f, -0.387695f, 0.206543f, -0.418457f, 0.206543f, -0.578613f,
+0.206543f, -0.649902f, 0.244873f, -0.687256f, 0.283203f, -0.724609f, 0.350586f, -0.724609f,
+0.510254f, -0.724609f, 0.510254f, -0.631836f, 0.418457f, -0.631836f, 0.374023f, -0.631836f,
+0.354248f, -0.606445f, 0.334473f, -0.581055f, 0.334473f, -0.529785f, 0.334473f, -0.382812f,
+0.334473f, -0.35791f, 0.326416f, -0.337158f, 0.318359f, -0.316406f, 0.304688f, -0.300781f,
+0.291016f, -0.285156f, 0.272461f, -0.274658f, 0.253906f, -0.26416f, 0.233398f, -0.259766f,
+0.233398f, -0.257812f, 0.254395f, -0.25293f, 0.272949f, -0.242432f, 0.291504f, -0.231934f,
+0.305176f, -0.216064f, 0.318848f, -0.200195f, 0.32666f, -0.179932f, 0.334473f, -0.159668f,
+0.334473f, -0.134766f, 0.334473f, 0.012207f, 0.334473f, 0.0639648f, 0.354248f, 0.0891113f,
+0.374023f, 0.114258f, 0.418457f, 0.114258f, 0.510254f, 0.114258f, 0.510254f, 0.20752f,
+0.23584f, 0.222168f, 0.23584f, -0.724609f, 0.36377f, -0.724609f, 0.36377f, 0.222168f,
+0.0898438f, 0.20752f, 0.0898438f, 0.114258f, 0.181641f, 0.114258f, 0.226074f, 0.114258f,
+0.24585f, 0.0891113f, 0.265625f, 0.0639648f, 0.265625f, 0.012207f, 0.265625f, -0.134766f,
+0.265625f, -0.159668f, 0.273438f, -0.179932f, 0.28125f, -0.200195f, 0.294922f, -0.216064f,
+0.308594f, -0.231934f, 0.327148f, -0.242432f, 0.345703f, -0.25293f, 0.366699f, -0.257812f,
+0.366699f, -0.259766f, 0.346191f, -0.26416f, 0.327637f, -0.274658f, 0.309082f, -0.285156f,
+0.29541f, -0.300781f, 0.281738f, -0.316406f, 0.273682f, -0.337158f, 0.265625f, -0.35791f,
+0.265625f, -0.382812f, 0.265625f, -0.529785f, 0.265625f, -0.581055f, 0.24585f, -0.606445f,
+0.226074f, -0.631836f, 0.181641f, -0.631836f, 0.0898438f, -0.631836f, 0.0898438f,
+-0.724609f, 0.249512f, -0.724609f, 0.316895f, -0.724609f, 0.355225f, -0.687256f,
+0.393555f, -0.649902f, 0.393555f, -0.578613f, 0.393555f, -0.418457f, 0.393555f, -0.387695f,
+0.401367f, -0.366455f, 0.40918f, -0.345215f, 0.423584f, -0.332031f, 0.437988f, -0.318848f,
+0.45874f, -0.312744f, 0.479492f, -0.306641f, 0.505371f, -0.305664f, 0.505371f, -0.210449f,
+0.47998f, -0.209961f, 0.459229f, -0.204102f, 0.438477f, -0.198242f, 0.423828f, -0.185059f,
+0.40918f, -0.171875f, 0.401367f, -0.150635f, 0.393555f, -0.129395f, 0.393555f, -0.0986328f,
+0.393555f, 0.0615234f, 0.393555f, 0.0952148f, 0.383789f, 0.122314f, 0.374023f, 0.149414f,
+0.355225f, 0.168213f, 0.336426f, 0.187012f, 0.309814f, 0.197266f, 0.283203f, 0.20752f,
+0.249512f, 0.20752f, 0.422852f, -0.251953f, 0.38623f, -0.251953f, 0.35083f, -0.262207f,
+0.31543f, -0.272461f, 0.278809f, -0.285156f, 0.246582f, -0.296387f, 0.219971f, -0.302246f,
+0.193359f, -0.308105f, 0.170898f, -0.308105f, 0.151855f, -0.308105f, 0.135498f, -0.305176f,
+0.119141f, -0.302246f, 0.104248f, -0.296631f, 0.0893555f, -0.291016f, 0.0751953f,
+-0.283203f, 0.0610352f, -0.275391f, 0.0463867f, -0.265137f, 0.0463867f, -0.369141f,
+0.0712891f, -0.387695f, 0.104492f, -0.398926f, 0.137695f, -0.410156f, 0.178711f,
+-0.410156f, 0.19873f, -0.410156f, 0.21875f, -0.406982f, 0.23877f, -0.403809f, 0.258301f,
+-0.398682f, 0.277832f, -0.393555f, 0.296875f, -0.386963f, 0.315918f, -0.380371f,
+0.334473f, -0.374023f, 0.356445f, -0.366211f, 0.382568f, -0.359619f, 0.408691f, -0.353027f,
+0.432129f, -0.353027f, 0.465332f, -0.353027f, 0.496582f, -0.365234f, 0.527832f, -0.377441f,
+0.553223f, -0.397949f, 0.553223f, -0.291016f, 0.537598f, -0.280273f, 0.522705f, -0.272705f,
+0.507812f, -0.265137f, 0.492432f, -0.260498f, 0.477051f, -0.255859f, 0.459961f, -0.253906f,
+0.442871f, -0.251953f, 0.422852f, -0.251953f
+};
+
+const unsigned char LiberationMonoBoldVerbs[] = {
+0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5, 6, 0,
+1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+0, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 1, 1, 1, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1,
+5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1,
+1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationMonoBoldCharCodes[] = {
+0, 32, 33, 34, 35, 36,
+37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationMonoBoldWidths[] = {
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0
+};
+
+const int LiberationMonoBoldCharCodesCount = (int) SK_ARRAY_COUNT(LiberationMonoBoldCharCodes);
+
+const SkPaint::FontMetrics LiberationMonoBoldMetrics = {
+0x30307833, -0.83252f, -0.83252f, 0.300293f, 0.300293f, 0, 0.641602f, 0.010025f, -0.0268555f,
+0.614746f, 0.538086f, 0.0104446f, 0.100098f, 0.23291f
+};
+
+const SkScalar LiberationMonoItalicPoints[] = {
+0.0717773f, 0, 0.0717773f, -0.658691f, 0.52832f, -0.658691f, 0.52832f, 0, 0.470215f,
+-0.600586f, 0.129883f, -0.600586f, 0.129883f, -0.0581055f, 0.470215f, -0.0581055f,
+0.322754f, -0.193848f, 0.250488f, -0.193848f, 0.329102f, -0.658203f, 0.424805f, -0.658203f,
+0.200195f, 0, 0.219238f, -0.0981445f, 0.313965f, -0.0981445f, 0.294922f, 0, 0.472168f,
+-0.412598f, 0.402832f, -0.412598f, 0.443848f, -0.724609f, 0.553223f, -0.724609f,
+0.25293f, -0.412598f, 0.184082f, -0.412598f, 0.224609f, -0.724609f, 0.333984f, -0.724609f,
+0.481934f, -0.406738f, 0.418945f, -0.251953f, 0.545898f, -0.251953f, 0.535645f, -0.199219f,
+0.397461f, -0.199219f, 0.315918f, 0, 0.262207f, 0, 0.342773f, -0.199219f, 0.165527f,
+-0.199219f, 0.0859375f, 0, 0.0322266f, 0, 0.111816f, -0.199219f, 0.0136719f, -0.199219f,
+0.0239258f, -0.251953f, 0.133789f, -0.251953f, 0.196777f, -0.406738f, 0.0791016f,
+-0.406738f, 0.0893555f, -0.459473f, 0.217773f, -0.459473f, 0.299805f, -0.658691f,
+0.353516f, -0.658691f, 0.271973f, -0.459473f, 0.449219f, -0.459473f, 0.530762f, -0.658691f,
+0.584473f, -0.658691f, 0.50293f, -0.459473f, 0.605957f, -0.459473f, 0.595703f, -0.406738f,
+0.251953f, -0.406738f, 0.187988f, -0.251953f, 0.364746f, -0.251953f, 0.427734f, -0.406738f,
+0.546387f, -0.185547f, 0.539062f, -0.148926f, 0.519531f, -0.117676f, 0.5f, -0.0864258f,
+0.467529f, -0.0632324f, 0.435059f, -0.0400391f, 0.389648f, -0.026123f, 0.344238f,
+-0.012207f, 0.285645f, -0.00976562f, 0.270508f, 0.0688477f, 0.208008f, 0.0688477f,
+0.223145f, -0.00976562f, 0.118652f, -0.0131836f, 0.0681152f, -0.0583496f, 0.0175781f,
+-0.103516f, 0.0170898f, -0.185059f, 0.103516f, -0.203125f, 0.103516f, -0.176758f,
+0.110352f, -0.154541f, 0.117188f, -0.132324f, 0.132812f, -0.115723f, 0.148438f, -0.0991211f,
+0.173828f, -0.0891113f, 0.199219f, -0.0791016f, 0.236328f, -0.0771484f, 0.282715f,
+-0.315918f, 0.27832f, -0.316895f, 0.275391f, -0.317871f, 0.268555f, -0.319824f, 0.237793f,
+-0.327637f, 0.208496f, -0.337646f, 0.179199f, -0.347656f, 0.15625f, -0.36377f, 0.133301f,
+-0.379883f, 0.119385f, -0.403564f, 0.105469f, -0.427246f, 0.105469f, -0.461914f,
+0.105469f, -0.470215f, 0.106445f, -0.479736f, 0.107422f, -0.489258f, 0.109375f, -0.499512f,
+0.117188f, -0.539551f, 0.138428f, -0.568604f, 0.159668f, -0.597656f, 0.191162f, -0.616943f,
+0.222656f, -0.63623f, 0.262939f, -0.645996f, 0.303223f, -0.655762f, 0.349121f, -0.657227f,
+0.361328f, -0.720703f, 0.423828f, -0.720703f, 0.411621f, -0.657227f, 0.460938f, -0.655273f,
+0.494385f, -0.644531f, 0.527832f, -0.633789f, 0.548828f, -0.614258f, 0.569824f, -0.594727f,
+0.579834f, -0.566162f, 0.589844f, -0.537598f, 0.592285f, -0.500488f, 0.504395f, -0.484375f,
+0.503906f, -0.507812f, 0.498047f, -0.5271f, 0.492188f, -0.546387f, 0.479736f, -0.560303f,
+0.467285f, -0.574219f, 0.44751f, -0.582275f, 0.427734f, -0.590332f, 0.398926f, -0.592285f,
+0.358398f, -0.384277f, 0.394531f, -0.375f, 0.429199f, -0.364258f, 0.463867f, -0.353516f,
+0.490967f, -0.336182f, 0.518066f, -0.318848f, 0.534424f, -0.292725f, 0.550781f, -0.266602f,
+0.550781f, -0.227051f, 0.550781f, -0.208496f, 0.546387f, -0.185547f, 0.192871f, -0.49707f,
+0.191895f, -0.491211f, 0.191162f, -0.48584f, 0.19043f, -0.480469f, 0.19043f, -0.475586f,
+0.19043f, -0.456055f, 0.19873f, -0.442627f, 0.207031f, -0.429199f, 0.221436f, -0.419922f,
+0.23584f, -0.410645f, 0.255371f, -0.404053f, 0.274902f, -0.397461f, 0.297363f, -0.391602f,
+0.336426f, -0.593262f, 0.30127f, -0.591797f, 0.275879f, -0.58374f, 0.250488f, -0.575684f,
+0.233398f, -0.562744f, 0.216309f, -0.549805f, 0.206543f, -0.532959f, 0.196777f, -0.516113f,
+0.192871f, -0.49707f, 0.462402f, -0.187012f, 0.463867f, -0.193848f, 0.464355f, -0.199707f,
+0.464844f, -0.205566f, 0.464844f, -0.210938f, 0.464844f, -0.233887f, 0.454834f, -0.249268f,
+0.444824f, -0.264648f, 0.427979f, -0.275146f, 0.411133f, -0.285645f, 0.38916f, -0.292725f,
+0.367188f, -0.299805f, 0.343262f, -0.306152f, 0.29834f, -0.0761719f, 0.330566f, -0.078125f,
+0.358154f, -0.0854492f, 0.385742f, -0.0927734f, 0.407227f, -0.106445f, 0.428711f,
+-0.120117f, 0.443115f, -0.140137f, 0.45752f, -0.160156f, 0.462402f, -0.187012f, 0.0566406f,
+0, -0.0141602f, 0, 0.569336f, -0.660645f, 0.641113f, -0.660645f, 0.220215f, -0.664551f,
+0.243652f, -0.664551f, 0.26416f, -0.659424f, 0.284668f, -0.654297f, 0.299805f, -0.641846f,
+0.314941f, -0.629395f, 0.323486f, -0.608887f, 0.332031f, -0.588379f, 0.332031f, -0.557129f,
+0.332031f, -0.532715f, 0.326172f, -0.500488f, 0.317383f, -0.453613f, 0.300049f, -0.421875f,
+0.282715f, -0.390137f, 0.26001f, -0.370605f, 0.237305f, -0.351074f, 0.210205f, -0.342529f,
+0.183105f, -0.333984f, 0.153809f, -0.333984f, 0.129395f, -0.333984f, 0.108398f, -0.339844f,
+0.0874023f, -0.345703f, 0.0722656f, -0.358887f, 0.0571289f, -0.37207f, 0.048584f,
+-0.393311f, 0.0400391f, -0.414551f, 0.0400391f, -0.445312f, 0.0400391f, -0.469727f,
+0.0458984f, -0.500488f, 0.0551758f, -0.548828f, 0.0722656f, -0.580322f, 0.0893555f,
+-0.611816f, 0.112061f, -0.630615f, 0.134766f, -0.649414f, 0.162354f, -0.656982f,
+0.189941f, -0.664551f, 0.220215f, -0.664551f, 0.254395f, -0.500488f, 0.260742f, -0.531738f,
+0.260742f, -0.553711f, 0.260742f, -0.570312f, 0.257324f, -0.581299f, 0.253906f, -0.592285f,
+0.247314f, -0.599121f, 0.240723f, -0.605957f, 0.231201f, -0.608887f, 0.22168f, -0.611816f,
+0.209473f, -0.611816f, 0.192383f, -0.611816f, 0.178223f, -0.606445f, 0.164062f, -0.601074f,
+0.152588f, -0.588135f, 0.141113f, -0.575195f, 0.132568f, -0.553955f, 0.124023f, -0.532715f,
+0.117676f, -0.500488f, 0.111816f, -0.471191f, 0.111816f, -0.450195f, 0.111816f, -0.416504f,
+0.125732f, -0.402832f, 0.139648f, -0.38916f, 0.165527f, -0.38916f, 0.181152f, -0.38916f,
+0.19458f, -0.394775f, 0.208008f, -0.400391f, 0.219238f, -0.413574f, 0.230469f, -0.426758f,
+0.239502f, -0.447998f, 0.248535f, -0.469238f, 0.254395f, -0.500488f, 0.474121f, -0.324707f,
+0.497559f, -0.324707f, 0.518066f, -0.31958f, 0.538574f, -0.314453f, 0.553711f, -0.302002f,
+0.568848f, -0.289551f, 0.577637f, -0.268799f, 0.586426f, -0.248047f, 0.586426f, -0.216797f,
+0.586426f, -0.192383f, 0.580566f, -0.160645f, 0.571289f, -0.11377f, 0.554199f, -0.0820312f,
+0.537109f, -0.050293f, 0.514404f, -0.0307617f, 0.491699f, -0.0112305f, 0.4646f, -0.00268555f,
+0.4375f, 0.00585938f, 0.408203f, 0.00585938f, 0.383789f, 0.00585938f, 0.362793f,
+0, 0.341797f, -0.00585938f, 0.32666f, -0.019043f, 0.311523f, -0.0322266f, 0.302979f,
+-0.0534668f, 0.294434f, -0.074707f, 0.294434f, -0.105469f, 0.294434f, -0.129883f,
+0.300293f, -0.160645f, 0.30957f, -0.208984f, 0.32666f, -0.240479f, 0.34375f, -0.271973f,
+0.366455f, -0.290771f, 0.38916f, -0.30957f, 0.416504f, -0.317139f, 0.443848f, -0.324707f,
+0.474121f, -0.324707f, 0.508789f, -0.160645f, 0.514648f, -0.192383f, 0.514648f, -0.213379f,
+0.514648f, -0.246582f, 0.501221f, -0.259277f, 0.487793f, -0.271973f, 0.463379f, -0.271973f,
+0.446289f, -0.271973f, 0.432129f, -0.266602f, 0.417969f, -0.26123f, 0.406738f, -0.248291f,
+0.395508f, -0.235352f, 0.386963f, -0.214111f, 0.378418f, -0.192871f, 0.37207f, -0.160645f,
+0.366211f, -0.131348f, 0.366211f, -0.110352f, 0.366211f, -0.0766602f, 0.380127f,
+-0.0629883f, 0.394043f, -0.0493164f, 0.419922f, -0.0493164f, 0.435547f, -0.0493164f,
+0.448975f, -0.0549316f, 0.462402f, -0.0605469f, 0.473633f, -0.0737305f, 0.484863f,
+-0.0869141f, 0.493896f, -0.108154f, 0.50293f, -0.129395f, 0.508789f, -0.160645f,
+0.471191f, 0.00585938f, 0.451172f, 0.00585938f, 0.433594f, 0.000732422f, 0.416016f,
+-0.00439453f, 0.401123f, -0.0129395f, 0.38623f, -0.0214844f, 0.374512f, -0.032959f,
+0.362793f, -0.0444336f, 0.354492f, -0.0571289f, 0.338379f, -0.0449219f, 0.318848f,
+-0.0327148f, 0.299316f, -0.0205078f, 0.276123f, -0.0112305f, 0.25293f, -0.00195312f,
+0.226807f, 0.00390625f, 0.200684f, 0.00976562f, 0.171875f, 0.00976562f, 0.126465f,
+0.00976562f, 0.0939941f, -0.000488281f, 0.0615234f, -0.0107422f, 0.0405273f, -0.029541f,
+0.0195312f, -0.0483398f, 0.00952148f, -0.0739746f, -0.000488281f, -0.0996094f, -0.000488281f,
+-0.130371f, -0.000488281f, -0.151367f, 0.00390625f, -0.174805f, 0.0112305f, -0.212402f,
+0.0280762f, -0.243164f, 0.0449219f, -0.273926f, 0.0690918f, -0.299072f, 0.0932617f,
+-0.324219f, 0.123047f, -0.343994f, 0.152832f, -0.36377f, 0.186035f, -0.379395f, 0.179688f,
+-0.397949f, 0.175781f, -0.421387f, 0.171875f, -0.444824f, 0.171875f, -0.469727f,
+0.171875f, -0.493652f, 0.17627f, -0.51709f, 0.182129f, -0.547363f, 0.197754f, -0.573975f,
+0.213379f, -0.600586f, 0.238525f, -0.620361f, 0.263672f, -0.640137f, 0.298096f, -0.651367f,
+0.33252f, -0.662598f, 0.375977f, -0.662598f, 0.40625f, -0.662598f, 0.430908f, -0.655762f,
+0.455566f, -0.648926f, 0.473145f, -0.635742f, 0.490723f, -0.622559f, 0.500488f, -0.603271f,
+0.510254f, -0.583984f, 0.510254f, -0.559082f, 0.510254f, -0.546387f, 0.507324f, -0.532227f,
+0.500488f, -0.497559f, 0.47876f, -0.471191f, 0.457031f, -0.444824f, 0.425049f, -0.423828f,
+0.393066f, -0.402832f, 0.354004f, -0.385742f, 0.314941f, -0.368652f, 0.273438f, -0.352539f,
+0.293457f, -0.300293f, 0.316406f, -0.253906f, 0.339355f, -0.20752f, 0.37207f, -0.162598f,
+0.400879f, -0.205078f, 0.425537f, -0.253418f, 0.450195f, -0.301758f, 0.47168f, -0.36084f,
+0.538086f, -0.339844f, 0.512695f, -0.271973f, 0.480469f, -0.216064f, 0.448242f, -0.160156f,
+0.415039f, -0.114258f, 0.431152f, -0.0878906f, 0.452393f, -0.0754395f, 0.473633f,
+-0.0629883f, 0.493164f, -0.0629883f, 0.505859f, -0.0629883f, 0.517822f, -0.0646973f,
+0.529785f, -0.0664062f, 0.541016f, -0.0708008f, 0.52832f, -0.00488281f, 0.515625f,
+0.000488281f, 0.501465f, 0.00317383f, 0.487305f, 0.00585938f, 0.471191f, 0.00585938f,
+0.432617f, -0.529785f, 0.434082f, -0.538086f, 0.434082f, -0.54541f, 0.434082f, -0.572266f,
+0.415283f, -0.587891f, 0.396484f, -0.603516f, 0.362793f, -0.603516f, 0.341309f, -0.603516f,
+0.322266f, -0.597412f, 0.303223f, -0.591309f, 0.288086f, -0.580078f, 0.272949f, -0.568848f,
+0.262451f, -0.55249f, 0.251953f, -0.536133f, 0.248047f, -0.515625f, 0.246094f, -0.506348f,
+0.245361f, -0.49707f, 0.244629f, -0.487793f, 0.244629f, -0.479004f, 0.244629f, -0.458008f,
+0.248291f, -0.439453f, 0.251953f, -0.420898f, 0.256836f, -0.40625f, 0.290527f, -0.419434f,
+0.320557f, -0.431641f, 0.350586f, -0.443848f, 0.374023f, -0.458008f, 0.397461f, -0.472168f,
+0.412842f, -0.489502f, 0.428223f, -0.506836f, 0.432617f, -0.529785f, 0.313965f, -0.105957f,
+0.280273f, -0.154785f, 0.251709f, -0.209717f, 0.223145f, -0.264648f, 0.20166f, -0.321289f,
+0.155762f, -0.298828f, 0.125732f, -0.262451f, 0.0957031f, -0.226074f, 0.0859375f,
+-0.176758f, 0.0830078f, -0.161621f, 0.0830078f, -0.147461f, 0.0830078f, -0.126953f,
+0.0893555f, -0.109863f, 0.0957031f, -0.0927734f, 0.108643f, -0.0803223f, 0.121582f,
+-0.0678711f, 0.141602f, -0.0610352f, 0.161621f, -0.0541992f, 0.188477f, -0.0541992f,
+0.20752f, -0.0541992f, 0.225586f, -0.0588379f, 0.243652f, -0.0634766f, 0.259766f,
+-0.0708008f, 0.275879f, -0.078125f, 0.289795f, -0.0874023f, 0.303711f, -0.0966797f,
+0.313965f, -0.105957f, 0.362793f, -0.412598f, 0.293945f, -0.412598f, 0.334473f, -0.724609f,
+0.443848f, -0.724609f, 0.257324f, -0.258789f, 0.242676f, -0.183594f, 0.242676f, -0.117188f,
+0.242676f, -0.074707f, 0.248779f, -0.0341797f, 0.254883f, 0.00634766f, 0.267334f,
+0.0461426f, 0.279785f, 0.0859375f, 0.298828f, 0.125977f, 0.317871f, 0.166016f, 0.343262f,
+0.20752f, 0.250488f, 0.20752f, 0.225586f, 0.167969f, 0.207031f, 0.12915f, 0.188477f,
+0.090332f, 0.176025f, 0.0507812f, 0.163574f, 0.0112305f, 0.157227f, -0.029541f, 0.150879f,
+-0.0703125f, 0.150879f, -0.114258f, 0.150879f, -0.182617f, 0.166016f, -0.259766f,
+0.179688f, -0.330078f, 0.202148f, -0.390869f, 0.224609f, -0.45166f, 0.25708f, -0.507568f,
+0.289551f, -0.563477f, 0.332764f, -0.616455f, 0.375977f, -0.669434f, 0.431641f, -0.724609f,
+0.524414f, -0.724609f, 0.466309f, -0.666992f, 0.422119f, -0.612061f, 0.37793f, -0.557129f,
+0.345703f, -0.500977f, 0.313477f, -0.444824f, 0.291992f, -0.385254f, 0.270508f, -0.325684f,
+0.257324f, -0.258789f, 0.431152f, -0.259766f, 0.41748f, -0.189453f, 0.395264f, -0.128174f,
+0.373047f, -0.0668945f, 0.34082f, -0.0107422f, 0.308594f, 0.0454102f, 0.265137f,
+0.098877f, 0.22168f, 0.152344f, 0.166016f, 0.20752f, 0.0722656f, 0.20752f, 0.130371f,
+0.149902f, 0.174805f, 0.0949707f, 0.219238f, 0.0400391f, 0.251709f, -0.0161133f,
+0.28418f, -0.0722656f, 0.305908f, -0.131836f, 0.327637f, -0.191406f, 0.34082f, -0.258789f,
+0.355469f, -0.333496f, 0.355469f, -0.398438f, 0.355469f, -0.441406f, 0.349121f, -0.482178f,
+0.342773f, -0.522949f, 0.330078f, -0.562744f, 0.317383f, -0.602539f, 0.29834f, -0.642822f,
+0.279297f, -0.683105f, 0.253418f, -0.724609f, 0.347168f, -0.724609f, 0.37207f, -0.685059f,
+0.390625f, -0.646729f, 0.40918f, -0.608398f, 0.421631f, -0.569336f, 0.434082f, -0.530273f,
+0.44043f, -0.48999f, 0.446777f, -0.449707f, 0.446777f, -0.40625f, 0.446777f, -0.37207f,
+0.442871f, -0.335693f, 0.438965f, -0.299316f, 0.431152f, -0.259766f, 0.38916f, -0.580078f,
+0.527832f, -0.630371f, 0.537109f, -0.565918f, 0.392578f, -0.530273f, 0.459473f, -0.408203f,
+0.394531f, -0.373047f, 0.345703f, -0.499023f, 0.245117f, -0.374023f, 0.193848f, -0.40918f,
+0.30957f, -0.530273f, 0.179688f, -0.565918f, 0.214355f, -0.631348f, 0.334961f, -0.579102f,
+0.356934f, -0.724121f, 0.42334f, -0.724121f, 0.335449f, -0.296875f, 0.335449f, -0.0878906f,
+0.263672f, -0.0878906f, 0.263672f, -0.296875f, 0.0566406f, -0.296875f, 0.0566406f,
+-0.368164f, 0.263672f, -0.368164f, 0.263672f, -0.577148f, 0.335449f, -0.577148f,
+0.335449f, -0.368164f, 0.54248f, -0.368164f, 0.54248f, -0.296875f, 0.0405273f, 0.177246f,
+0.186035f, -0.145996f, 0.31543f, -0.145996f, 0.100586f, 0.177246f, 0.155762f, -0.226562f,
+0.170898f, -0.304688f, 0.444336f, -0.304688f, 0.429199f, -0.226562f, 0.190918f, 0,
+0.219238f, -0.145996f, 0.333984f, -0.145996f, 0.305664f, 0, 0.00244141f, 0.00976562f,
+0.545898f, -0.724609f, 0.632812f, -0.724609f, 0.0913086f, 0.00976562f, 0.55127f,
+-0.32959f, 0.532715f, -0.234375f, 0.501465f, -0.169678f, 0.470215f, -0.10498f, 0.429932f,
+-0.0649414f, 0.389648f, -0.0249023f, 0.342285f, -0.00756836f, 0.294922f, 0.00976562f,
+0.245117f, 0.00976562f, 0.20459f, 0.00976562f, 0.17041f, -0.0012207f, 0.13623f, -0.012207f,
+0.111572f, -0.0371094f, 0.0869141f, -0.0620117f, 0.072998f, -0.102295f, 0.059082f,
+-0.142578f, 0.059082f, -0.200684f, 0.059082f, -0.228516f, 0.0627441f, -0.260742f,
+0.0664062f, -0.292969f, 0.0732422f, -0.32959f, 0.0927734f, -0.429199f, 0.123779f,
+-0.494629f, 0.154785f, -0.560059f, 0.194336f, -0.598877f, 0.233887f, -0.637695f,
+0.281006f, -0.65332f, 0.328125f, -0.668945f, 0.379883f, -0.668945f, 0.419434f, -0.668945f,
+0.453613f, -0.658936f, 0.487793f, -0.648926f, 0.512695f, -0.625244f, 0.537598f, -0.601562f,
+0.551758f, -0.562012f, 0.565918f, -0.522461f, 0.565918f, -0.463379f, 0.565918f, -0.43457f,
+0.5625f, -0.401367f, 0.559082f, -0.368164f, 0.55127f, -0.32959f, 0.461914f, -0.32959f,
+0.469727f, -0.370117f, 0.473633f, -0.402832f, 0.477539f, -0.435547f, 0.477539f, -0.462402f,
+0.477539f, -0.500488f, 0.469971f, -0.526611f, 0.462402f, -0.552734f, 0.447998f, -0.568359f,
+0.433594f, -0.583984f, 0.413086f, -0.59082f, 0.392578f, -0.597656f, 0.366211f, -0.597656f,
+0.329102f, -0.597656f, 0.29834f, -0.584717f, 0.267578f, -0.571777f, 0.242188f, -0.541016f,
+0.216797f, -0.510254f, 0.197021f, -0.45874f, 0.177246f, -0.407227f, 0.162109f, -0.32959f,
+0.147461f, -0.254395f, 0.147461f, -0.202637f, 0.147461f, -0.164062f, 0.155029f, -0.137207f,
+0.162598f, -0.110352f, 0.177246f, -0.09375f, 0.191895f, -0.0771484f, 0.212891f, -0.0695801f,
+0.233887f, -0.0620117f, 0.260254f, -0.0620117f, 0.294922f, -0.0620117f, 0.325195f,
+-0.0756836f, 0.355469f, -0.0893555f, 0.381104f, -0.120605f, 0.406738f, -0.151855f,
+0.427002f, -0.203125f, 0.447266f, -0.254395f, 0.461914f, -0.32959f, 0.0253906f, 0,
+0.0390625f, -0.0708008f, 0.253418f, -0.0708008f, 0.350586f, -0.569336f, 0.337402f,
+-0.549805f, 0.310791f, -0.532471f, 0.28418f, -0.515137f, 0.250977f, -0.502441f, 0.217773f,
+-0.489746f, 0.181641f, -0.482178f, 0.145508f, -0.474609f, 0.113281f, -0.474609f,
+0.127441f, -0.546875f, 0.163574f, -0.546875f, 0.200195f, -0.555176f, 0.236816f, -0.563477f,
+0.269775f, -0.578369f, 0.302734f, -0.593262f, 0.330078f, -0.61377f, 0.357422f, -0.634277f,
+0.375f, -0.658691f, 0.456055f, -0.658691f, 0.341797f, -0.0708008f, 0.51416f, -0.0708008f,
+0.500488f, 0, 0.019043f, 0, 0.0302734f, -0.0571289f, 0.0532227f, -0.0927734f, 0.0834961f,
+-0.124023f, 0.11377f, -0.155273f, 0.147461f, -0.183594f, 0.181152f, -0.211914f, 0.216797f,
+-0.237549f, 0.252441f, -0.263184f, 0.286621f, -0.287598f, 0.320801f, -0.312012f,
+0.351807f, -0.335693f, 0.382812f, -0.359375f, 0.407715f, -0.383301f, 0.432617f, -0.407227f,
+0.449219f, -0.432129f, 0.46582f, -0.457031f, 0.471191f, -0.483887f, 0.474121f, -0.498535f,
+0.474121f, -0.51123f, 0.474121f, -0.533203f, 0.466064f, -0.549316f, 0.458008f, -0.56543f,
+0.443604f, -0.575928f, 0.429199f, -0.586426f, 0.408691f, -0.591553f, 0.388184f, -0.59668f,
+0.363281f, -0.59668f, 0.310059f, -0.59668f, 0.268799f, -0.567627f, 0.227539f, -0.538574f,
+0.209473f, -0.480469f, 0.121582f, -0.48877f, 0.133301f, -0.525879f, 0.155029f, -0.558594f,
+0.176758f, -0.591309f, 0.20874f, -0.615967f, 0.240723f, -0.640625f, 0.282959f, -0.654785f,
+0.325195f, -0.668945f, 0.376953f, -0.668945f, 0.466797f, -0.668945f, 0.516602f, -0.633301f,
+0.566406f, -0.597656f, 0.566406f, -0.529297f, 0.566406f, -0.519531f, 0.565674f, -0.509766f,
+0.564941f, -0.5f, 0.5625f, -0.489258f, 0.555664f, -0.45459f, 0.537598f, -0.424072f,
+0.519531f, -0.393555f, 0.493652f, -0.365723f, 0.467773f, -0.337891f, 0.436035f, -0.312256f,
+0.404297f, -0.286621f, 0.370361f, -0.262695f, 0.336426f, -0.23877f, 0.302246f, -0.215332f,
+0.268066f, -0.191895f, 0.237305f, -0.168457f, 0.206543f, -0.14502f, 0.180908f, -0.121094f,
+0.155273f, -0.097168f, 0.138672f, -0.0712891f, 0.491699f, -0.0712891f, 0.478027f,
+0, 0.520508f, -0.180664f, 0.511719f, -0.13623f, 0.489502f, -0.10083f, 0.467285f,
+-0.0654297f, 0.432861f, -0.0410156f, 0.398438f, -0.0166016f, 0.352539f, -0.00341797f,
+0.306641f, 0.00976562f, 0.25f, 0.00976562f, 0.19043f, 0.00976562f, 0.150879f, -0.00415039f,
+0.111328f, -0.0180664f, 0.0878906f, -0.0415039f, 0.0644531f, -0.0649414f, 0.0546875f,
+-0.095459f, 0.0449219f, -0.125977f, 0.0449219f, -0.158691f, 0.0449219f, -0.163086f,
+0.0449219f, -0.167725f, 0.0449219f, -0.172363f, 0.0454102f, -0.176758f, 0.138184f,
+-0.185059f, 0.136719f, -0.157715f, 0.142822f, -0.135254f, 0.148926f, -0.112793f,
+0.163818f, -0.0966797f, 0.178711f, -0.0805664f, 0.203613f, -0.0717773f, 0.228516f,
+-0.0629883f, 0.26416f, -0.0629883f, 0.297363f, -0.0629883f, 0.325195f, -0.0708008f,
+0.353027f, -0.0786133f, 0.374268f, -0.09375f, 0.395508f, -0.108887f, 0.409668f, -0.131592f,
+0.423828f, -0.154297f, 0.429688f, -0.183594f, 0.431641f, -0.192871f, 0.431641f, -0.203613f,
+0.431641f, -0.230957f, 0.417236f, -0.249023f, 0.402832f, -0.26709f, 0.380859f, -0.277832f,
+0.358887f, -0.288574f, 0.332764f, -0.292969f, 0.306641f, -0.297363f, 0.283691f, -0.297363f,
+0.233887f, -0.297363f, 0.249023f, -0.373535f, 0.296875f, -0.373535f, 0.321777f, -0.373535f,
+0.349854f, -0.379639f, 0.37793f, -0.385742f, 0.402832f, -0.39917f, 0.427734f, -0.412598f,
+0.446289f, -0.434326f, 0.464844f, -0.456055f, 0.470703f, -0.486816f, 0.472168f, -0.493652f,
+0.472656f, -0.500244f, 0.473145f, -0.506836f, 0.473145f, -0.513184f, 0.473145f, -0.552734f,
+0.446045f, -0.574707f, 0.418945f, -0.59668f, 0.363281f, -0.59668f, 0.305176f, -0.59668f,
+0.263428f, -0.566895f, 0.22168f, -0.537109f, 0.205078f, -0.48291f, 0.118164f, -0.489746f,
+0.132324f, -0.535156f, 0.158447f, -0.568848f, 0.18457f, -0.602539f, 0.21875f, -0.624756f,
+0.25293f, -0.646973f, 0.293701f, -0.657959f, 0.334473f, -0.668945f, 0.37793f, -0.668945f,
+0.428223f, -0.668945f, 0.463867f, -0.658691f, 0.499512f, -0.648438f, 0.522217f, -0.630127f,
+0.544922f, -0.611816f, 0.555664f, -0.586914f, 0.566406f, -0.562012f, 0.566406f, -0.532715f,
+0.566406f, -0.523926f, 0.56543f, -0.514893f, 0.564453f, -0.505859f, 0.5625f, -0.496094f,
+0.557617f, -0.469238f, 0.543701f, -0.444092f, 0.529785f, -0.418945f, 0.507812f, -0.397949f,
+0.48584f, -0.376953f, 0.455811f, -0.361328f, 0.425781f, -0.345703f, 0.388184f, -0.338379f,
+0.387695f, -0.336426f, 0.421875f, -0.33252f, 0.447266f, -0.320801f, 0.472656f, -0.309082f,
+0.489502f, -0.291748f, 0.506348f, -0.274414f, 0.514648f, -0.25293f, 0.522949f, -0.231445f,
+0.522949f, -0.208008f, 0.522949f, -0.201172f, 0.522461f, -0.194336f, 0.521973f, -0.1875f,
+0.520508f, -0.180664f, 0.436523f, -0.155762f, 0.40625f, 0, 0.318359f, 0, 0.348633f,
+-0.155762f, 0.0292969f, -0.155762f, 0.0424805f, -0.224121f, 0.437012f, -0.658691f,
+0.53418f, -0.658691f, 0.450195f, -0.225098f, 0.541992f, -0.225098f, 0.52832f, -0.155762f,
+0.427734f, -0.563477f, 0.118164f, -0.225098f, 0.362305f, -0.225098f, 0.527344f, -0.216797f,
+0.518066f, -0.167969f, 0.494385f, -0.126221f, 0.470703f, -0.0844727f, 0.434082f,
+-0.0544434f, 0.397461f, -0.0244141f, 0.348389f, -0.00732422f, 0.299316f, 0.00976562f,
+0.239258f, 0.00976562f, 0.185059f, 0.00976562f, 0.147217f, -0.00292969f, 0.109375f,
+-0.015625f, 0.0859375f, -0.0378418f, 0.0625f, -0.0600586f, 0.0517578f, -0.0898438f,
+0.0410156f, -0.119629f, 0.0410156f, -0.153809f, 0.131836f, -0.164062f, 0.133301f,
+-0.144531f, 0.139648f, -0.126221f, 0.145996f, -0.10791f, 0.159912f, -0.0935059f,
+0.173828f, -0.0791016f, 0.197021f, -0.0705566f, 0.220215f, -0.0620117f, 0.255371f,
+-0.0620117f, 0.289551f, -0.0620117f, 0.319336f, -0.0725098f, 0.349121f, -0.0830078f,
+0.372559f, -0.102539f, 0.395996f, -0.12207f, 0.412354f, -0.150635f, 0.428711f, -0.179199f,
+0.436035f, -0.214844f, 0.438965f, -0.229492f, 0.438965f, -0.243164f, 0.438965f, -0.26709f,
+0.430908f, -0.287109f, 0.422852f, -0.307129f, 0.406982f, -0.321777f, 0.391113f, -0.336426f,
+0.367676f, -0.344482f, 0.344238f, -0.352539f, 0.313477f, -0.352539f, 0.291504f, -0.352539f,
+0.271973f, -0.348633f, 0.252441f, -0.344727f, 0.235596f, -0.337891f, 0.21875f, -0.331055f,
+0.204102f, -0.322021f, 0.189453f, -0.312988f, 0.17627f, -0.303223f, 0.090332f, -0.303223f,
+0.182129f, -0.658691f, 0.573242f, -0.658691f, 0.55957f, -0.587891f, 0.249512f, -0.587891f,
+0.194824f, -0.380371f, 0.222168f, -0.398438f, 0.259766f, -0.411377f, 0.297363f, -0.424316f,
+0.345703f, -0.424316f, 0.390137f, -0.424316f, 0.424805f, -0.412354f, 0.459473f, -0.400391f,
+0.483154f, -0.378906f, 0.506836f, -0.357422f, 0.519287f, -0.327393f, 0.531738f, -0.297363f,
+0.531738f, -0.26123f, 0.531738f, -0.240234f, 0.527344f, -0.216797f, 0.526367f, -0.217773f,
+0.51709f, -0.168945f, 0.494629f, -0.127197f, 0.472168f, -0.0854492f, 0.437988f, -0.0549316f,
+0.403809f, -0.0244141f, 0.358887f, -0.00732422f, 0.313965f, 0.00976562f, 0.259766f,
+0.00976562f, 0.211914f, 0.00976562f, 0.176514f, -0.00463867f, 0.141113f, -0.019043f,
+0.11792f, -0.0463867f, 0.0947266f, -0.0737305f, 0.083252f, -0.112793f, 0.0717773f,
+-0.151855f, 0.0717773f, -0.20166f, 0.0717773f, -0.25293f, 0.0834961f, -0.313477f,
+0.100586f, -0.399902f, 0.130127f, -0.466309f, 0.159668f, -0.532715f, 0.200195f, -0.577637f,
+0.240723f, -0.622559f, 0.290771f, -0.645752f, 0.34082f, -0.668945f, 0.398438f, -0.668945f,
+0.433594f, -0.668945f, 0.462891f, -0.661621f, 0.492188f, -0.654297f, 0.51416f, -0.637939f,
+0.536133f, -0.621582f, 0.550049f, -0.594727f, 0.563965f, -0.567871f, 0.567871f, -0.528809f,
+0.480469f, -0.513672f, 0.475586f, -0.558105f, 0.449463f, -0.577881f, 0.42334f, -0.597656f,
+0.383789f, -0.597656f, 0.347656f, -0.597656f, 0.315186f, -0.580811f, 0.282715f, -0.563965f,
+0.255859f, -0.53125f, 0.229004f, -0.498535f, 0.208496f, -0.450439f, 0.187988f, -0.402344f,
+0.175781f, -0.339355f, 0.208496f, -0.383789f, 0.256348f, -0.406982f, 0.304199f, -0.430176f,
+0.360352f, -0.430176f, 0.400879f, -0.430176f, 0.432617f, -0.418945f, 0.464355f, -0.407715f,
+0.486328f, -0.386719f, 0.508301f, -0.365723f, 0.52002f, -0.335938f, 0.531738f, -0.306152f,
+0.531738f, -0.269043f, 0.531738f, -0.246094f, 0.526367f, -0.217773f, 0.436035f, -0.213867f,
+0.438477f, -0.224609f, 0.439209f, -0.234375f, 0.439941f, -0.244141f, 0.439941f, -0.253906f,
+0.439941f, -0.27832f, 0.432861f, -0.29834f, 0.425781f, -0.318359f, 0.411621f, -0.33252f,
+0.397461f, -0.34668f, 0.376221f, -0.354492f, 0.35498f, -0.362305f, 0.326172f, -0.362305f,
+0.302246f, -0.362305f, 0.276123f, -0.354248f, 0.25f, -0.346191f, 0.227295f, -0.330322f,
+0.20459f, -0.314453f, 0.1875f, -0.290527f, 0.17041f, -0.266602f, 0.164062f, -0.234863f,
+0.159668f, -0.212402f, 0.159668f, -0.190918f, 0.159668f, -0.163574f, 0.166748f, -0.139893f,
+0.173828f, -0.116211f, 0.187988f, -0.0986328f, 0.202148f, -0.0810547f, 0.2229f, -0.0710449f,
+0.243652f, -0.0610352f, 0.270508f, -0.0610352f, 0.302246f, -0.0610352f, 0.32959f,
+-0.0720215f, 0.356934f, -0.0830078f, 0.378418f, -0.103027f, 0.399902f, -0.123047f,
+0.414795f, -0.151367f, 0.429688f, -0.179688f, 0.436035f, -0.213867f, 0.585449f, -0.59082f,
+0.525879f, -0.523438f, 0.469971f, -0.45166f, 0.414062f, -0.379883f, 0.36792f, -0.30542f,
+0.321777f, -0.230957f, 0.28833f, -0.154297f, 0.254883f, -0.0776367f, 0.239746f, 0,
+0.147949f, 0, 0.163086f, -0.0771484f, 0.19751f, -0.154053f, 0.231934f, -0.230957f,
+0.279053f, -0.305664f, 0.326172f, -0.380371f, 0.383057f, -0.45166f, 0.439941f, -0.522949f,
+0.5f, -0.587891f, 0.140137f, -0.587891f, 0.153809f, -0.658691f, 0.598633f, -0.658691f,
+0.518555f, -0.18457f, 0.510742f, -0.143555f, 0.48999f, -0.108154f, 0.469238f, -0.0727539f,
+0.435547f, -0.0463867f, 0.401855f, -0.0200195f, 0.354736f, -0.00512695f, 0.307617f,
+0.00976562f, 0.246582f, 0.00976562f, 0.193848f, 0.00976562f, 0.155762f, -0.00170898f,
+0.117676f, -0.0131836f, 0.0930176f, -0.0332031f, 0.0683594f, -0.0532227f, 0.0566406f,
+-0.0812988f, 0.0449219f, -0.109375f, 0.0449219f, -0.14209f, 0.0449219f, -0.162598f,
+0.0493164f, -0.183594f, 0.0561523f, -0.218262f, 0.0732422f, -0.246338f, 0.090332f,
+-0.274414f, 0.113281f, -0.294922f, 0.13623f, -0.31543f, 0.163574f, -0.328125f, 0.190918f,
+-0.34082f, 0.217773f, -0.345215f, 0.218262f, -0.347168f, 0.194824f, -0.353027f, 0.177246f,
+-0.364746f, 0.159668f, -0.376465f, 0.147705f, -0.392578f, 0.135742f, -0.408691f,
+0.129883f, -0.428223f, 0.124023f, -0.447754f, 0.124023f, -0.469238f, 0.124023f, -0.484863f,
+0.126953f, -0.5f, 0.133301f, -0.533203f, 0.153076f, -0.563721f, 0.172852f, -0.594238f,
+0.204834f, -0.617676f, 0.236816f, -0.641113f, 0.280029f, -0.655029f, 0.323242f, -0.668945f,
+0.376465f, -0.668945f, 0.42627f, -0.668945f, 0.461914f, -0.657959f, 0.497559f, -0.646973f,
+0.520752f, -0.62793f, 0.543945f, -0.608887f, 0.554932f, -0.58374f, 0.565918f, -0.558594f,
+0.565918f, -0.530273f, 0.565918f, -0.515137f, 0.562988f, -0.499023f, 0.558105f, -0.473633f,
+0.54541f, -0.449219f, 0.532715f, -0.424805f, 0.513184f, -0.404297f, 0.493652f, -0.383789f,
+0.468018f, -0.368896f, 0.442383f, -0.354004f, 0.411621f, -0.348145f, 0.411133f, -0.346191f,
+0.436035f, -0.342285f, 0.456543f, -0.332031f, 0.477051f, -0.321777f, 0.491699f, -0.305908f,
+0.506348f, -0.290039f, 0.514404f, -0.268799f, 0.522461f, -0.247559f, 0.522461f, -0.221191f,
+0.522461f, -0.212402f, 0.521484f, -0.203369f, 0.520508f, -0.194336f, 0.518555f, -0.18457f,
+0.470703f, -0.494141f, 0.473633f, -0.508301f, 0.473633f, -0.521484f, 0.473633f, -0.539551f,
+0.467773f, -0.554443f, 0.461914f, -0.569336f, 0.448975f, -0.580322f, 0.436035f, -0.591309f,
+0.415039f, -0.597412f, 0.394043f, -0.603516f, 0.36377f, -0.603516f, 0.32959f, -0.603516f,
+0.303711f, -0.594971f, 0.277832f, -0.586426f, 0.259766f, -0.571777f, 0.241699f, -0.557129f,
+0.230957f, -0.537109f, 0.220215f, -0.51709f, 0.21582f, -0.494141f, 0.213379f, -0.480469f,
+0.213379f, -0.467773f, 0.213379f, -0.45166f, 0.218262f, -0.436035f, 0.223145f, -0.42041f,
+0.235107f, -0.407959f, 0.24707f, -0.395508f, 0.268066f, -0.387939f, 0.289062f, -0.380371f,
+0.321289f, -0.380371f, 0.363281f, -0.380371f, 0.390381f, -0.391602f, 0.41748f, -0.402832f,
+0.434326f, -0.419678f, 0.451172f, -0.436523f, 0.459229f, -0.456543f, 0.467285f, -0.476562f,
+0.470703f, -0.494141f, 0.429199f, -0.192871f, 0.432129f, -0.207031f, 0.432129f, -0.220215f,
+0.432129f, -0.23877f, 0.426025f, -0.255859f, 0.419922f, -0.272949f, 0.405518f, -0.285889f,
+0.391113f, -0.298828f, 0.367188f, -0.306641f, 0.343262f, -0.314453f, 0.307617f, -0.314453f,
+0.269043f, -0.314453f, 0.23999f, -0.303711f, 0.210938f, -0.292969f, 0.19043f, -0.275391f,
+0.169922f, -0.257812f, 0.157959f, -0.23584f, 0.145996f, -0.213867f, 0.141602f, -0.190918f,
+0.139648f, -0.181152f, 0.138672f, -0.172119f, 0.137695f, -0.163086f, 0.137695f, -0.154297f,
+0.137695f, -0.132324f, 0.144531f, -0.114258f, 0.151367f, -0.0961914f, 0.166016f,
+-0.083252f, 0.180664f, -0.0703125f, 0.203857f, -0.0632324f, 0.227051f, -0.0561523f,
+0.260254f, -0.0561523f, 0.300781f, -0.0561523f, 0.329834f, -0.0661621f, 0.358887f,
+-0.0761719f, 0.37915f, -0.0944824f, 0.399414f, -0.112793f, 0.411377f, -0.137939f,
+0.42334f, -0.163086f, 0.429199f, -0.192871f, 0.546387f, -0.343262f, 0.529785f, -0.256836f,
+0.499512f, -0.190918f, 0.469238f, -0.125f, 0.428467f, -0.0803223f, 0.387695f, -0.0356445f,
+0.337158f, -0.0129395f, 0.286621f, 0.00976562f, 0.228516f, 0.00976562f, 0.188965f,
+0.00976562f, 0.158691f, 0.00170898f, 0.128418f, -0.00634766f, 0.106934f, -0.0234375f,
+0.0854492f, -0.0405273f, 0.0732422f, -0.0678711f, 0.0610352f, -0.0952148f, 0.0576172f,
+-0.133789f, 0.144531f, -0.146973f, 0.149414f, -0.102539f, 0.174316f, -0.0817871f,
+0.199219f, -0.0610352f, 0.243652f, -0.0610352f, 0.279785f, -0.0610352f, 0.312256f,
+-0.0776367f, 0.344727f, -0.0942383f, 0.37207f, -0.126465f, 0.399414f, -0.158691f,
+0.42041f, -0.206543f, 0.441406f, -0.254395f, 0.454102f, -0.317383f, 0.439453f, -0.294434f,
+0.417969f, -0.276367f, 0.396484f, -0.258301f, 0.371582f, -0.24585f, 0.34668f, -0.233398f,
+0.319336f, -0.226807f, 0.291992f, -0.220215f, 0.264648f, -0.220215f, 0.224609f, -0.220215f,
+0.193604f, -0.232422f, 0.162598f, -0.244629f, 0.141357f, -0.266602f, 0.120117f, -0.288574f,
+0.109131f, -0.31958f, 0.0981445f, -0.350586f, 0.0981445f, -0.388672f, 0.0981445f,
+-0.415527f, 0.104004f, -0.444824f, 0.11377f, -0.495605f, 0.137207f, -0.536865f, 0.160645f,
+-0.578125f, 0.195801f, -0.607422f, 0.230957f, -0.636719f, 0.276611f, -0.652832f,
+0.322266f, -0.668945f, 0.376465f, -0.668945f, 0.467773f, -0.668945f, 0.513672f, -0.618896f,
+0.55957f, -0.568848f, 0.55957f, -0.466309f, 0.55957f, -0.412109f, 0.546387f, -0.343262f,
+0.46582f, -0.420898f, 0.468262f, -0.433594f, 0.469482f, -0.445557f, 0.470703f, -0.45752f,
+0.470703f, -0.46875f, 0.470703f, -0.496094f, 0.463867f, -0.519531f, 0.457031f, -0.542969f,
+0.443359f, -0.560303f, 0.429688f, -0.577637f, 0.408936f, -0.587646f, 0.388184f, -0.597656f,
+0.359863f, -0.597656f, 0.328125f, -0.597656f, 0.300537f, -0.58667f, 0.272949f, -0.575684f,
+0.251465f, -0.55542f, 0.22998f, -0.535156f, 0.215088f, -0.50708f, 0.200195f, -0.479004f,
+0.193359f, -0.444824f, 0.188965f, -0.423828f, 0.188965f, -0.40332f, 0.188965f, -0.378906f,
+0.195557f, -0.35791f, 0.202148f, -0.336914f, 0.21582f, -0.321777f, 0.229492f, -0.306641f,
+0.250244f, -0.298096f, 0.270996f, -0.289551f, 0.298828f, -0.289551f, 0.323242f, -0.289551f,
+0.349854f, -0.297852f, 0.376465f, -0.306152f, 0.400146f, -0.32251f, 0.423828f, -0.338867f,
+0.44165f, -0.363525f, 0.459473f, -0.388184f, 0.46582f, -0.420898f, 0.190918f, 0,
+0.219238f, -0.145996f, 0.333984f, -0.145996f, 0.305664f, 0, 0.265137f, -0.382324f,
+0.293457f, -0.52832f, 0.408203f, -0.52832f, 0.379883f, -0.382324f, 0.265137f, -0.382324f,
+0.293457f, -0.52832f, 0.408203f, -0.52832f, 0.379883f, -0.382324f, 0.0859375f, 0.177246f,
+0.231445f, -0.145996f, 0.36084f, -0.145996f, 0.145996f, 0.177246f, 0.0566406f, -0.278809f,
+0.0566406f, -0.378906f, 0.54248f, -0.583008f, 0.54248f, -0.507812f, 0.123535f, -0.329102f,
+0.54248f, -0.149902f, 0.54248f, -0.0751953f, 0.0566406f, -0.417969f, 0.0566406f,
+-0.490234f, 0.54248f, -0.490234f, 0.54248f, -0.417969f, 0.0566406f, -0.167969f, 0.0566406f,
+-0.240234f, 0.54248f, -0.240234f, 0.54248f, -0.167969f, 0.0566406f, -0.0751953f,
+0.0566406f, -0.149902f, 0.475586f, -0.329102f, 0.0566406f, -0.507812f, 0.0566406f,
+-0.583008f, 0.54248f, -0.378906f, 0.54248f, -0.278809f, 0.567871f, -0.489258f, 0.559082f,
+-0.444336f, 0.537354f, -0.413574f, 0.515625f, -0.382812f, 0.487305f, -0.359619f,
+0.458984f, -0.336426f, 0.427734f, -0.317871f, 0.396484f, -0.299316f, 0.368408f, -0.279297f,
+0.340332f, -0.259277f, 0.319336f, -0.234619f, 0.29834f, -0.209961f, 0.290527f, -0.174316f,
+0.205078f, -0.174316f, 0.214844f, -0.217773f, 0.236816f, -0.248047f, 0.258789f, -0.27832f,
+0.286865f, -0.30127f, 0.314941f, -0.324219f, 0.345703f, -0.342773f, 0.376465f, -0.361328f,
+0.403809f, -0.381348f, 0.431152f, -0.401367f, 0.451172f, -0.426025f, 0.471191f, -0.450684f,
+0.478027f, -0.485352f, 0.480469f, -0.499023f, 0.480469f, -0.508789f, 0.480469f, -0.55127f,
+0.44751f, -0.573486f, 0.414551f, -0.595703f, 0.355469f, -0.595703f, 0.322266f, -0.595703f,
+0.293457f, -0.586426f, 0.264648f, -0.577148f, 0.241211f, -0.559814f, 0.217773f, -0.54248f,
+0.200684f, -0.517822f, 0.183594f, -0.493164f, 0.174316f, -0.462891f, 0.0859375f,
+-0.46875f, 0.100098f, -0.512695f, 0.125488f, -0.549561f, 0.150879f, -0.586426f, 0.186523f,
+-0.612793f, 0.222168f, -0.63916f, 0.268066f, -0.654053f, 0.313965f, -0.668945f, 0.368652f,
+-0.668945f, 0.415527f, -0.668945f, 0.453125f, -0.659668f, 0.490723f, -0.650391f,
+0.51709f, -0.632324f, 0.543457f, -0.614258f, 0.557617f, -0.587646f, 0.571777f, -0.561035f,
+0.571777f, -0.526367f, 0.571777f, -0.517578f, 0.570801f, -0.508301f, 0.569824f, -0.499023f,
+0.567871f, -0.489258f, 0.16748f, 0, 0.186523f, -0.0981445f, 0.281738f, -0.0981445f,
+0.262695f, 0, 0.601074f, -0.368652f, 0.587402f, -0.29834f, 0.565918f, -0.23999f,
+0.544434f, -0.181641f, 0.51709f, -0.139648f, 0.489746f, -0.0976562f, 0.45752f, -0.0742188f,
+0.425293f, -0.0507812f, 0.390137f, -0.0507812f, 0.37793f, -0.0507812f, 0.367432f,
+-0.0534668f, 0.356934f, -0.0561523f, 0.349365f, -0.0625f, 0.341797f, -0.0688477f,
+0.337402f, -0.0788574f, 0.333008f, -0.0888672f, 0.333008f, -0.103516f, 0.333008f,
+-0.108887f, 0.333496f, -0.114746f, 0.333984f, -0.120605f, 0.335449f, -0.127441f,
+0.335449f, -0.128418f, 0.336182f, -0.131104f, 0.336914f, -0.133789f, 0.337646f, -0.136719f,
+0.338379f, -0.139648f, 0.338867f, -0.14209f, 0.339355f, -0.144531f, 0.339844f, -0.145996f,
+0.336914f, -0.145996f, 0.326172f, -0.126953f, 0.311523f, -0.109619f, 0.296875f, -0.0922852f,
+0.279785f, -0.0791016f, 0.262695f, -0.065918f, 0.243408f, -0.0583496f, 0.224121f,
+-0.0507812f, 0.203613f, -0.0507812f, 0.181152f, -0.0507812f, 0.165771f, -0.0595703f,
+0.150391f, -0.0683594f, 0.140869f, -0.0834961f, 0.131348f, -0.0986328f, 0.126953f,
+-0.119385f, 0.122559f, -0.140137f, 0.122559f, -0.164062f, 0.122559f, -0.181641f,
+0.124512f, -0.200439f, 0.126465f, -0.219238f, 0.130371f, -0.23877f, 0.137695f, -0.275879f,
+0.150391f, -0.3125f, 0.163086f, -0.349121f, 0.18042f, -0.382324f, 0.197754f, -0.415527f,
+0.21875f, -0.444092f, 0.239746f, -0.472656f, 0.263916f, -0.493408f, 0.288086f, -0.51416f,
+0.314209f, -0.525879f, 0.340332f, -0.537598f, 0.367676f, -0.537598f, 0.388184f, -0.537598f,
+0.401855f, -0.531006f, 0.415527f, -0.524414f, 0.424072f, -0.512939f, 0.432617f, -0.501465f,
+0.436523f, -0.486084f, 0.44043f, -0.470703f, 0.440918f, -0.453125f, 0.443359f, -0.453125f,
+0.473633f, -0.526855f, 0.530273f, -0.526855f, 0.433594f, -0.279297f, 0.425781f, -0.258789f,
+0.418457f, -0.239014f, 0.411133f, -0.219238f, 0.404785f, -0.201416f, 0.398438f, -0.183594f,
+0.394043f, -0.168701f, 0.389648f, -0.153809f, 0.387695f, -0.143555f, 0.386719f, -0.137695f,
+0.38623f, -0.132812f, 0.385742f, -0.12793f, 0.385742f, -0.124023f, 0.385742f, -0.110352f,
+0.390625f, -0.105469f, 0.395508f, -0.100586f, 0.40332f, -0.100586f, 0.422852f, -0.100586f,
+0.442627f, -0.120117f, 0.462402f, -0.139648f, 0.480469f, -0.175049f, 0.498535f, -0.210449f,
+0.514404f, -0.259521f, 0.530273f, -0.308594f, 0.541504f, -0.367676f, 0.551758f, -0.421387f,
+0.551758f, -0.46875f, 0.551758f, -0.512695f, 0.542725f, -0.549316f, 0.533691f, -0.585938f,
+0.515625f, -0.612305f, 0.497559f, -0.638672f, 0.469971f, -0.65332f, 0.442383f, -0.667969f,
+0.405762f, -0.667969f, 0.366699f, -0.667969f, 0.330322f, -0.653076f, 0.293945f, -0.638184f,
+0.261719f, -0.611084f, 0.229492f, -0.583984f, 0.201172f, -0.546143f, 0.172852f, -0.508301f,
+0.149902f, -0.461914f, 0.126953f, -0.415527f, 0.109375f, -0.362061f, 0.0917969f,
+-0.308594f, 0.0805664f, -0.250977f, 0.0742188f, -0.21875f, 0.0712891f, -0.189453f,
+0.0683594f, -0.160156f, 0.0683594f, -0.133301f, 0.0683594f, -0.0839844f, 0.0786133f,
+-0.0444336f, 0.0888672f, -0.00488281f, 0.108887f, 0.0229492f, 0.128906f, 0.0507812f,
+0.158691f, 0.0656738f, 0.188477f, 0.0805664f, 0.228027f, 0.0805664f, 0.256836f, 0.0805664f,
+0.282959f, 0.0744629f, 0.309082f, 0.0683594f, 0.333008f, 0.0581055f, 0.356934f, 0.0478516f,
+0.37915f, 0.0336914f, 0.401367f, 0.0195312f, 0.42334f, 0.00341797f, 0.449707f, 0.0458984f,
+0.424805f, 0.0639648f, 0.397949f, 0.0805664f, 0.371094f, 0.097168f, 0.341553f, 0.110107f,
+0.312012f, 0.123047f, 0.279785f, 0.130615f, 0.247559f, 0.138184f, 0.211914f, 0.138184f,
+0.162109f, 0.138184f, 0.123535f, 0.120361f, 0.0849609f, 0.102539f, 0.0588379f, 0.0688477f,
+0.0327148f, 0.0351562f, 0.019043f, -0.0129395f, 0.00537109f, -0.0610352f, 0.00537109f,
+-0.121582f, 0.00537109f, -0.151367f, 0.00878906f, -0.183594f, 0.012207f, -0.21582f,
+0.019043f, -0.250977f, 0.0390625f, -0.353027f, 0.0761719f, -0.439697f, 0.113281f,
+-0.526367f, 0.164795f, -0.589844f, 0.216309f, -0.65332f, 0.280273f, -0.688965f, 0.344238f,
+-0.724609f, 0.41748f, -0.724609f, 0.468262f, -0.724609f, 0.505127f, -0.706299f, 0.541992f,
+-0.687988f, 0.565918f, -0.655273f, 0.589844f, -0.622559f, 0.601318f, -0.578369f,
+0.612793f, -0.53418f, 0.612793f, -0.481934f, 0.612793f, -0.427246f, 0.601074f, -0.368652f,
+0.401367f, -0.382812f, 0.405762f, -0.40625f, 0.405762f, -0.424316f, 0.405762f, -0.456055f,
+0.393311f, -0.471924f, 0.380859f, -0.487793f, 0.358887f, -0.487793f, 0.34082f, -0.487793f,
+0.323242f, -0.477051f, 0.305664f, -0.466309f, 0.289307f, -0.447998f, 0.272949f, -0.429688f,
+0.258545f, -0.405273f, 0.244141f, -0.380859f, 0.232178f, -0.353271f, 0.220215f, -0.325684f,
+0.210938f, -0.296631f, 0.20166f, -0.267578f, 0.196289f, -0.239746f, 0.187988f, -0.196777f,
+0.187988f, -0.165527f, 0.187988f, -0.13623f, 0.196533f, -0.119385f, 0.205078f, -0.102539f,
+0.225586f, -0.102539f, 0.244629f, -0.102539f, 0.264404f, -0.115967f, 0.28418f, -0.129395f,
+0.303223f, -0.153809f, 0.322266f, -0.178223f, 0.340088f, -0.213135f, 0.35791f, -0.248047f,
+0.373047f, -0.290527f, 0.376465f, -0.299805f, 0.380859f, -0.3125f, 0.385254f, -0.325195f,
+0.38916f, -0.338379f, 0.393066f, -0.351562f, 0.396484f, -0.363525f, 0.399902f, -0.375488f,
+0.401367f, -0.382812f, 0.453613f, 0, 0.422363f, -0.186523f, 0.147461f, -0.186523f,
+0.0444336f, 0, -0.0512695f, 0, 0.325684f, -0.658691f, 0.431641f, -0.658691f, 0.54834f,
+0, 0.381348f, -0.46582f, 0.378418f, -0.484375f, 0.375488f, -0.503418f, 0.372559f,
+-0.522461f, 0.370361f, -0.539551f, 0.368164f, -0.556641f, 0.366455f, -0.56958f, 0.364746f,
+-0.58252f, 0.36377f, -0.588379f, 0.36084f, -0.58252f, 0.354248f, -0.569336f, 0.347656f,
+-0.556152f, 0.338867f, -0.539062f, 0.330078f, -0.521973f, 0.320068f, -0.50293f, 0.310059f,
+-0.483887f, 0.300293f, -0.46582f, 0.186523f, -0.259277f, 0.412598f, -0.259277f, 0.547363f,
+-0.185547f, 0.537598f, -0.135254f, 0.510254f, -0.100098f, 0.48291f, -0.0649414f,
+0.443848f, -0.0427246f, 0.404785f, -0.0205078f, 0.356934f, -0.0102539f, 0.309082f,
+0, 0.258301f, 0, 0.027832f, 0, 0.155762f, -0.658691f, 0.356934f, -0.658691f, 0.408203f,
+-0.658691f, 0.447998f, -0.651367f, 0.487793f, -0.644043f, 0.515381f, -0.628662f,
+0.542969f, -0.613281f, 0.557373f, -0.5896f, 0.571777f, -0.565918f, 0.571777f, -0.532715f,
+0.571777f, -0.515625f, 0.568359f, -0.499023f, 0.562988f, -0.47168f, 0.550049f, -0.447021f,
+0.537109f, -0.422363f, 0.51709f, -0.402588f, 0.49707f, -0.382812f, 0.469727f, -0.368408f,
+0.442383f, -0.354004f, 0.407715f, -0.347168f, 0.479004f, -0.338867f, 0.514893f, -0.304443f,
+0.550781f, -0.27002f, 0.550781f, -0.217773f, 0.550781f, -0.209961f, 0.549805f, -0.201904f,
+0.548828f, -0.193848f, 0.547363f, -0.185547f, 0.472168f, -0.487305f, 0.473145f, -0.493652f,
+0.473877f, -0.499023f, 0.474609f, -0.504395f, 0.474609f, -0.509766f, 0.474609f, -0.549316f,
+0.44165f, -0.56665f, 0.408691f, -0.583984f, 0.343262f, -0.583984f, 0.234375f, -0.583984f,
+0.195312f, -0.380859f, 0.305176f, -0.380859f, 0.344727f, -0.380859f, 0.374023f, -0.388428f,
+0.40332f, -0.395996f, 0.423584f, -0.409912f, 0.443848f, -0.423828f, 0.455566f, -0.443359f,
+0.467285f, -0.462891f, 0.472168f, -0.487305f, 0.45459f, -0.193848f, 0.455566f, -0.200684f,
+0.456299f, -0.206543f, 0.457031f, -0.212402f, 0.457031f, -0.217773f, 0.457031f, -0.241699f,
+0.446289f, -0.258789f, 0.435547f, -0.275879f, 0.415527f, -0.286865f, 0.395508f, -0.297852f,
+0.367432f, -0.302979f, 0.339355f, -0.308105f, 0.304199f, -0.308105f, 0.181152f, -0.308105f,
+0.135742f, -0.074707f, 0.265625f, -0.074707f, 0.30127f, -0.074707f, 0.332764f, -0.0803223f,
+0.364258f, -0.0859375f, 0.38916f, -0.0996094f, 0.414062f, -0.113281f, 0.430908f,
+-0.13623f, 0.447754f, -0.15918f, 0.45459f, -0.193848f, 0.166504f, -0.33252f, 0.160645f,
+-0.300781f, 0.157471f, -0.273193f, 0.154297f, -0.245605f, 0.154297f, -0.220703f,
+0.154297f, -0.145508f, 0.185303f, -0.105713f, 0.216309f, -0.065918f, 0.28418f, -0.065918f,
+0.314941f, -0.065918f, 0.341797f, -0.0776367f, 0.368652f, -0.0893555f, 0.391602f,
+-0.108398f, 0.414551f, -0.127441f, 0.433838f, -0.152344f, 0.453125f, -0.177246f,
+0.468262f, -0.203613f, 0.539551f, -0.171875f, 0.519043f, -0.137695f, 0.492676f, -0.105225f,
+0.466309f, -0.0727539f, 0.433105f, -0.0471191f, 0.399902f, -0.0214844f, 0.359131f,
+-0.00585938f, 0.318359f, 0.00976562f, 0.268555f, 0.00976562f, 0.213867f, 0.00976562f,
+0.173828f, -0.00610352f, 0.133789f, -0.0219727f, 0.107666f, -0.0515137f, 0.081543f,
+-0.0810547f, 0.0690918f, -0.123291f, 0.0566406f, -0.165527f, 0.0566406f, -0.218262f,
+0.0566406f, -0.270996f, 0.0683594f, -0.33252f, 0.0839844f, -0.413574f, 0.111816f,
+-0.476318f, 0.139648f, -0.539062f, 0.18042f, -0.581787f, 0.221191f, -0.624512f, 0.274658f,
+-0.646729f, 0.328125f, -0.668945f, 0.395508f, -0.668945f, 0.444824f, -0.668945f,
+0.479248f, -0.655518f, 0.513672f, -0.64209f, 0.536377f, -0.619385f, 0.559082f, -0.59668f,
+0.572021f, -0.567139f, 0.584961f, -0.537598f, 0.591309f, -0.505371f, 0.503418f, -0.473633f,
+0.5f, -0.496094f, 0.491699f, -0.517578f, 0.483398f, -0.539062f, 0.46875f, -0.555664f,
+0.454102f, -0.572266f, 0.432373f, -0.58252f, 0.410645f, -0.592773f, 0.381348f, -0.592773f,
+0.337891f, -0.592773f, 0.303711f, -0.576172f, 0.269531f, -0.55957f, 0.243164f, -0.526611f,
+0.216797f, -0.493652f, 0.197998f, -0.445068f, 0.179199f, -0.396484f, 0.166504f, -0.33252f,
+0.563477f, -0.335938f, 0.547363f, -0.253906f, 0.515625f, -0.191162f, 0.483887f, -0.128418f,
+0.438477f, -0.0859375f, 0.393066f, -0.043457f, 0.334961f, -0.0217285f, 0.276855f,
+0, 0.208496f, 0, 0.027832f, 0, 0.155762f, -0.658691f, 0.307617f, -0.658691f, 0.37207f,
+-0.658691f, 0.421875f, -0.645508f, 0.47168f, -0.632324f, 0.505371f, -0.604736f, 0.539062f,
+-0.577148f, 0.556396f, -0.534912f, 0.57373f, -0.492676f, 0.57373f, -0.43457f, 0.57373f,
+-0.390137f, 0.563477f, -0.335938f, 0.469727f, -0.335938f, 0.474609f, -0.360352f,
+0.476807f, -0.381836f, 0.479004f, -0.40332f, 0.479004f, -0.422363f, 0.479004f, -0.506836f,
+0.432861f, -0.544678f, 0.386719f, -0.58252f, 0.293457f, -0.58252f, 0.234375f, -0.58252f,
+0.135742f, -0.0761719f, 0.214844f, -0.0761719f, 0.318359f, -0.0761719f, 0.381348f,
+-0.141113f, 0.444336f, -0.206055f, 0.469727f, -0.335938f, 0.027832f, 0, 0.155762f,
+-0.658691f, 0.604492f, -0.658691f, 0.589844f, -0.58252f, 0.234375f, -0.58252f, 0.194336f,
+-0.376465f, 0.520508f, -0.376465f, 0.505859f, -0.30127f, 0.179688f, -0.30127f, 0.135742f,
+-0.0761719f, 0.51123f, -0.0761719f, 0.496582f, 0, 0.25f, -0.58252f, 0.203125f, -0.341309f,
+0.533203f, -0.341309f, 0.518066f, -0.26416f, 0.187988f, -0.26416f, 0.136719f, 0,
+0.043457f, 0, 0.171387f, -0.658691f, 0.606445f, -0.658691f, 0.591797f, -0.58252f,
+0.499023f, -0.0649414f, 0.479492f, -0.0532227f, 0.453613f, -0.0400391f, 0.427734f,
+-0.0268555f, 0.396973f, -0.0158691f, 0.366211f, -0.00488281f, 0.331543f, 0.00244141f,
+0.296875f, 0.00976562f, 0.258789f, 0.00976562f, 0.206543f, 0.00976562f, 0.168457f,
+-0.00683594f, 0.130371f, -0.0234375f, 0.105469f, -0.0534668f, 0.0805664f, -0.0834961f,
+0.0686035f, -0.125977f, 0.0566406f, -0.168457f, 0.0566406f, -0.220215f, 0.0566406f,
+-0.272461f, 0.0683594f, -0.33252f, 0.0844727f, -0.414062f, 0.111816f, -0.476807f,
+0.13916f, -0.539551f, 0.179199f, -0.582275f, 0.219238f, -0.625f, 0.272217f, -0.646973f,
+0.325195f, -0.668945f, 0.39209f, -0.668945f, 0.440918f, -0.668945f, 0.475342f, -0.65625f,
+0.509766f, -0.643555f, 0.532471f, -0.621826f, 0.555176f, -0.600098f, 0.567871f, -0.570557f,
+0.580566f, -0.541016f, 0.585938f, -0.507324f, 0.49707f, -0.47998f, 0.48877f, -0.533691f,
+0.460693f, -0.563232f, 0.432617f, -0.592773f, 0.378418f, -0.592773f, 0.334473f, -0.592773f,
+0.300537f, -0.575928f, 0.266602f, -0.559082f, 0.240967f, -0.526123f, 0.215332f, -0.493164f,
+0.197266f, -0.44458f, 0.179199f, -0.395996f, 0.166504f, -0.33252f, 0.160645f, -0.30127f,
+0.157471f, -0.273926f, 0.154297f, -0.246582f, 0.154297f, -0.222168f, 0.154297f, -0.144531f,
+0.185547f, -0.105225f, 0.216797f, -0.065918f, 0.28125f, -0.065918f, 0.304688f, -0.065918f,
+0.325684f, -0.0700684f, 0.34668f, -0.0742188f, 0.364258f, -0.079834f, 0.381836f,
+-0.0854492f, 0.39502f, -0.0915527f, 0.408203f, -0.0976562f, 0.415527f, -0.102051f,
+0.447266f, -0.266113f, 0.304199f, -0.266113f, 0.319336f, -0.344238f, 0.553223f, -0.344238f,
+0.375977f, 0, 0.435059f, -0.304199f, 0.180176f, -0.304199f, 0.121094f, 0, 0.027832f,
+0, 0.155762f, -0.658691f, 0.249023f, -0.658691f, 0.195312f, -0.382324f, 0.450195f,
+-0.382324f, 0.503906f, -0.658691f, 0.597168f, -0.658691f, 0.469238f, 0, 0.175293f,
+-0.658691f, 0.577148f, -0.658691f, 0.5625f, -0.58252f, 0.408203f, -0.58252f, 0.30957f,
+-0.0761719f, 0.463867f, -0.0761719f, 0.449219f, 0, 0.0473633f, 0, 0.0620117f, -0.0761719f,
+0.216309f, -0.0761719f, 0.314941f, -0.58252f, 0.160645f, -0.58252f, 0.470215f, -0.205078f,
+0.460938f, -0.15625f, 0.44043f, -0.116455f, 0.419922f, -0.0766602f, 0.389893f, -0.048584f,
+0.359863f, -0.0205078f, 0.320312f, -0.00537109f, 0.280762f, 0.00976562f, 0.23291f,
+0.00976562f, 0.150391f, 0.00976562f, 0.109131f, -0.0327148f, 0.0678711f, -0.0751953f,
+0.0678711f, -0.166504f, 0.0678711f, -0.170898f, 0.162109f, -0.186035f, 0.161133f,
+-0.154785f, 0.166748f, -0.13208f, 0.172363f, -0.109375f, 0.183838f, -0.0947266f,
+0.195312f, -0.0800781f, 0.21167f, -0.072998f, 0.228027f, -0.065918f, 0.248047f, -0.065918f,
+0.298828f, -0.065918f, 0.331299f, -0.10083f, 0.36377f, -0.135742f, 0.376953f, -0.203125f,
+0.450684f, -0.58252f, 0.298828f, -0.58252f, 0.313477f, -0.658691f, 0.558105f, -0.658691f,
+0.438477f, 0, 0.26123f, -0.311523f, 0.165527f, -0.229004f, 0.121094f, 0, 0.027832f,
+0, 0.155762f, -0.658691f, 0.249023f, -0.658691f, 0.185059f, -0.330078f, 0.52832f,
+-0.658691f, 0.638184f, -0.658691f, 0.337891f, -0.379395f, 0.547852f, 0, 0.0644531f,
+0, 0.192383f, -0.658691f, 0.285645f, -0.658691f, 0.172363f, -0.0761719f, 0.500488f,
+-0.0761719f, 0.48584f, 0, 0.40625f, 0, 0.48877f, -0.423828f, 0.493652f, -0.44873f,
+0.499023f, -0.474609f, 0.504395f, -0.500488f, 0.509277f, -0.521973f, 0.514648f, -0.546875f,
+0.52002f, -0.570801f, 0.506348f, -0.543945f, 0.493164f, -0.518066f, 0.481934f, -0.496094f,
+0.469238f, -0.47168f, 0.456543f, -0.447266f, 0.446289f, -0.428711f, 0.324707f, -0.214844f,
+0.257812f, -0.214844f, 0.218262f, -0.428711f, 0.216797f, -0.436035f, 0.215332f, -0.446045f,
+0.213867f, -0.456055f, 0.212158f, -0.467529f, 0.210449f, -0.479004f, 0.20874f, -0.490967f,
+0.207031f, -0.50293f, 0.205566f, -0.514648f, 0.202148f, -0.541504f, 0.19873f, -0.570801f,
+0.194824f, -0.547363f, 0.19043f, -0.521973f, 0.186523f, -0.5f, 0.181885f, -0.474365f,
+0.177246f, -0.44873f, 0.172363f, -0.423828f, 0.0898438f, 0, 0.0117188f, 0, 0.139648f,
+-0.658691f, 0.255371f, -0.658691f, 0.299316f, -0.419922f, 0.301758f, -0.408691f,
+0.303711f, -0.389893f, 0.305664f, -0.371094f, 0.307129f, -0.352539f, 0.309082f, -0.331055f,
+0.310547f, -0.307129f, 0.321289f, -0.330078f, 0.331543f, -0.351074f, 0.340332f, -0.369141f,
+0.350098f, -0.388184f, 0.359863f, -0.407227f, 0.366699f, -0.419434f, 0.503418f, -0.658691f,
+0.613281f, -0.658691f, 0.485352f, 0, 0.356934f, 0, 0.210449f, -0.551758f, 0.208496f,
+-0.530762f, 0.206055f, -0.508789f, 0.203613f, -0.490234f, 0.200684f, -0.468506f,
+0.197754f, -0.446777f, 0.193848f, -0.427734f, 0.11084f, 0, 0.027832f, 0, 0.155762f,
+-0.658691f, 0.26416f, -0.658691f, 0.414062f, -0.103027f, 0.415527f, -0.122559f, 0.417969f,
+-0.14502f, 0.42041f, -0.164062f, 0.42334f, -0.187988f, 0.42627f, -0.211914f, 0.431152f,
+-0.236816f, 0.513184f, -0.658691f, 0.597168f, -0.658691f, 0.469238f, 0, 0.562988f,
+-0.33252f, 0.546875f, -0.248047f, 0.517334f, -0.184082f, 0.487793f, -0.120117f, 0.447021f,
+-0.0769043f, 0.40625f, -0.0336914f, 0.355469f, -0.0119629f, 0.304688f, 0.00976562f,
+0.246094f, 0.00976562f, 0.147461f, 0.00976562f, 0.0986328f, -0.0471191f, 0.0498047f,
+-0.104004f, 0.0498047f, -0.209961f, 0.0498047f, -0.265137f, 0.0629883f, -0.33252f,
+0.0795898f, -0.416992f, 0.108398f, -0.47998f, 0.137207f, -0.542969f, 0.177002f, -0.584961f,
+0.216797f, -0.626953f, 0.267578f, -0.647949f, 0.318359f, -0.668945f, 0.378906f, -0.668945f,
+0.475586f, -0.668945f, 0.525879f, -0.61499f, 0.576172f, -0.561035f, 0.576172f, -0.453125f,
+0.576172f, -0.399414f, 0.562988f, -0.33252f, 0.464844f, -0.33252f, 0.471191f, -0.365234f,
+0.474365f, -0.393311f, 0.477539f, -0.421387f, 0.477539f, -0.445801f, 0.477539f, -0.52002f,
+0.448975f, -0.556396f, 0.42041f, -0.592773f, 0.364258f, -0.592773f, 0.288086f, -0.592773f,
+0.237549f, -0.528564f, 0.187012f, -0.464355f, 0.161133f, -0.33252f, 0.154785f, -0.299805f,
+0.151611f, -0.27124f, 0.148438f, -0.242676f, 0.148438f, -0.217773f, 0.148438f, -0.14209f,
+0.176758f, -0.104004f, 0.205078f, -0.065918f, 0.26123f, -0.065918f, 0.34082f, -0.065918f,
+0.390137f, -0.134277f, 0.439453f, -0.202637f, 0.464844f, -0.33252f, 0.584961f, -0.461426f,
+0.577148f, -0.42041f, 0.555176f, -0.382568f, 0.533203f, -0.344727f, 0.498047f, -0.31543f,
+0.462891f, -0.286133f, 0.415039f, -0.268555f, 0.367188f, -0.250977f, 0.307129f, -0.250977f,
+0.169922f, -0.250977f, 0.121094f, 0, 0.027832f, 0, 0.155762f, -0.658691f, 0.380371f,
+-0.658691f, 0.433594f, -0.658691f, 0.4729f, -0.647949f, 0.512207f, -0.637207f, 0.538086f,
+-0.617188f, 0.563965f, -0.597168f, 0.57666f, -0.568848f, 0.589355f, -0.540527f, 0.589355f,
+-0.505371f, 0.589355f, -0.484375f, 0.584961f, -0.461426f, 0.490723f, -0.459961f,
+0.493652f, -0.475586f, 0.493652f, -0.489258f, 0.493652f, -0.536133f, 0.458984f, -0.560059f,
+0.424316f, -0.583984f, 0.354492f, -0.583984f, 0.234375f, -0.583984f, 0.184082f, -0.324707f,
+0.308105f, -0.324707f, 0.348145f, -0.324707f, 0.379639f, -0.335205f, 0.411133f, -0.345703f,
+0.434082f, -0.36377f, 0.457031f, -0.381836f, 0.471191f, -0.406738f, 0.485352f, -0.431641f,
+0.490723f, -0.459961f, 0.562988f, -0.33252f, 0.549316f, -0.260742f, 0.525635f, -0.203369f,
+0.501953f, -0.145996f, 0.469971f, -0.104004f, 0.437988f, -0.0620117f, 0.398438f,
+-0.0354004f, 0.358887f, -0.00878906f, 0.3125f, 0.00195312f, 0.320801f, 0.0634766f,
+0.348145f, 0.0913086f, 0.375488f, 0.119141f, 0.424805f, 0.119141f, 0.438477f, 0.119141f,
+0.454346f, 0.117188f, 0.470215f, 0.115234f, 0.481934f, 0.112793f, 0.469238f, 0.178223f,
+0.449707f, 0.182617f, 0.427002f, 0.185791f, 0.404297f, 0.188965f, 0.380371f, 0.188965f,
+0.338867f, 0.188965f, 0.309814f, 0.176514f, 0.280762f, 0.164062f, 0.261719f, 0.140869f,
+0.242676f, 0.117676f, 0.231934f, 0.0839844f, 0.221191f, 0.050293f, 0.216309f, 0.0078125f,
+0.132812f, -0.000488281f, 0.0913086f, -0.0566406f, 0.0498047f, -0.112793f, 0.0498047f,
+-0.209961f, 0.0498047f, -0.265137f, 0.0629883f, -0.33252f, 0.0795898f, -0.416992f,
+0.108398f, -0.47998f, 0.137207f, -0.542969f, 0.177002f, -0.584961f, 0.216797f, -0.626953f,
+0.267578f, -0.647949f, 0.318359f, -0.668945f, 0.378906f, -0.668945f, 0.475586f, -0.668945f,
+0.525879f, -0.61499f, 0.576172f, -0.561035f, 0.576172f, -0.453125f, 0.576172f, -0.399414f,
+0.562988f, -0.33252f, 0.464844f, -0.33252f, 0.471191f, -0.365234f, 0.474365f, -0.393311f,
+0.477539f, -0.421387f, 0.477539f, -0.445801f, 0.477539f, -0.52002f, 0.448975f, -0.556396f,
+0.42041f, -0.592773f, 0.364258f, -0.592773f, 0.288086f, -0.592773f, 0.237549f, -0.528564f,
+0.187012f, -0.464355f, 0.161133f, -0.33252f, 0.154785f, -0.299805f, 0.151611f, -0.27124f,
+0.148438f, -0.242676f, 0.148438f, -0.217773f, 0.148438f, -0.14209f, 0.176758f, -0.104004f,
+0.205078f, -0.065918f, 0.26123f, -0.065918f, 0.34082f, -0.065918f, 0.390137f, -0.134277f,
+0.439453f, -0.202637f, 0.464844f, -0.33252f, 0.416016f, 0, 0.291992f, -0.280762f,
+0.175781f, -0.280762f, 0.121094f, 0, 0.027832f, 0, 0.155762f, -0.658691f, 0.391113f,
+-0.658691f, 0.493164f, -0.658691f, 0.543213f, -0.621582f, 0.593262f, -0.584473f,
+0.593262f, -0.517578f, 0.593262f, -0.498535f, 0.588867f, -0.476562f, 0.583008f, -0.446289f,
+0.567627f, -0.41626f, 0.552246f, -0.38623f, 0.526855f, -0.361084f, 0.501465f, -0.335938f,
+0.466064f, -0.317383f, 0.430664f, -0.298828f, 0.384766f, -0.291504f, 0.523438f, 0,
+0.494629f, -0.475098f, 0.496094f, -0.481934f, 0.496582f, -0.488525f, 0.49707f, -0.495117f,
+0.49707f, -0.500977f, 0.49707f, -0.583984f, 0.367188f, -0.583984f, 0.234375f, -0.583984f,
+0.189941f, -0.354492f, 0.32666f, -0.354492f, 0.367188f, -0.354492f, 0.396484f, -0.364258f,
+0.425781f, -0.374023f, 0.446045f, -0.390381f, 0.466309f, -0.406738f, 0.478027f, -0.428711f,
+0.489746f, -0.450684f, 0.494629f, -0.475098f, 0.534668f, -0.180664f, 0.526855f, -0.13916f,
+0.504883f, -0.104248f, 0.48291f, -0.0693359f, 0.446777f, -0.0439453f, 0.410645f,
+-0.0185547f, 0.360352f, -0.00439453f, 0.310059f, 0.00976562f, 0.244629f, 0.00976562f,
+0.130371f, 0.00976562f, 0.0754395f, -0.0351562f, 0.0205078f, -0.0800781f, 0.0195312f,
+-0.165039f, 0.113281f, -0.183105f, 0.11377f, -0.15625f, 0.121338f, -0.134277f, 0.128906f,
+-0.112305f, 0.14624f, -0.0964355f, 0.163574f, -0.0805664f, 0.19165f, -0.0717773f,
+0.219727f, -0.0629883f, 0.26123f, -0.0629883f, 0.296387f, -0.0629883f, 0.32666f,
+-0.0695801f, 0.356934f, -0.0761719f, 0.380615f, -0.090332f, 0.404297f, -0.104492f,
+0.420166f, -0.126465f, 0.436035f, -0.148438f, 0.441895f, -0.179199f, 0.442871f, -0.185059f,
+0.443604f, -0.19043f, 0.444336f, -0.195801f, 0.444336f, -0.201172f, 0.444336f, -0.228027f,
+0.43042f, -0.245361f, 0.416504f, -0.262695f, 0.393799f, -0.274414f, 0.371094f, -0.286133f,
+0.342773f, -0.293945f, 0.314453f, -0.301758f, 0.285645f, -0.309082f, 0.264648f, -0.314941f,
+0.243652f, -0.321045f, 0.222656f, -0.327148f, 0.203125f, -0.335205f, 0.183594f, -0.343262f,
+0.166992f, -0.35376f, 0.150391f, -0.364258f, 0.137939f, -0.378418f, 0.125488f, -0.392578f,
+0.118408f, -0.411621f, 0.111328f, -0.430664f, 0.111328f, -0.455078f, 0.111328f, -0.463867f,
+0.112305f, -0.473389f, 0.113281f, -0.48291f, 0.115234f, -0.493164f, 0.124512f, -0.540039f,
+0.148438f, -0.573486f, 0.172363f, -0.606934f, 0.207275f, -0.628174f, 0.242188f, -0.649414f,
+0.286133f, -0.65918f, 0.330078f, -0.668945f, 0.378906f, -0.668945f, 0.435547f, -0.668945f,
+0.473633f, -0.658936f, 0.511719f, -0.648926f, 0.535156f, -0.628906f, 0.558594f, -0.608887f,
+0.56958f, -0.579346f, 0.580566f, -0.549805f, 0.58252f, -0.510742f, 0.487793f, -0.494629f,
+0.487305f, -0.519531f, 0.480469f, -0.539062f, 0.473633f, -0.558594f, 0.458984f, -0.571777f,
+0.444336f, -0.584961f, 0.421143f, -0.591797f, 0.397949f, -0.598633f, 0.364746f, -0.598633f,
+0.325684f, -0.598633f, 0.297607f, -0.590576f, 0.269531f, -0.58252f, 0.250732f, -0.568604f,
+0.231934f, -0.554688f, 0.221436f, -0.535645f, 0.210938f, -0.516602f, 0.206543f, -0.494629f,
+0.205566f, -0.489258f, 0.205078f, -0.484131f, 0.20459f, -0.479004f, 0.20459f, -0.474609f,
+0.20459f, -0.45166f, 0.216064f, -0.437012f, 0.227539f, -0.422363f, 0.24707f, -0.412354f,
+0.266602f, -0.402344f, 0.29248f, -0.395264f, 0.318359f, -0.388184f, 0.347168f, -0.380371f,
+0.381836f, -0.371094f, 0.416016f, -0.360352f, 0.450195f, -0.349609f, 0.477539f, -0.33252f,
+0.504883f, -0.31543f, 0.521973f, -0.289062f, 0.539062f, -0.262695f, 0.539062f, -0.222168f,
+0.539062f, -0.203613f, 0.534668f, -0.180664f, 0.408203f, -0.58252f, 0.294922f, 0,
+0.202148f, 0, 0.31543f, -0.58252f, 0.0991211f, -0.58252f, 0.11377f, -0.658691f, 0.63916f,
+-0.658691f, 0.624512f, -0.58252f, 0.524902f, -0.239258f, 0.511719f, -0.172363f, 0.488281f,
+-0.125f, 0.464844f, -0.0776367f, 0.430176f, -0.0476074f, 0.395508f, -0.0175781f,
+0.348633f, -0.00390625f, 0.301758f, 0.00976562f, 0.242188f, 0.00976562f, 0.195312f,
+0.00976562f, 0.160156f, 0.0012207f, 0.125f, -0.00732422f, 0.101318f, -0.026123f,
+0.0776367f, -0.0449219f, 0.0656738f, -0.074707f, 0.0537109f, -0.104492f, 0.0537109f,
+-0.146973f, 0.0537109f, -0.18457f, 0.0629883f, -0.230469f, 0.145996f, -0.658691f,
+0.239258f, -0.658691f, 0.158691f, -0.243164f, 0.153809f, -0.218262f, 0.151367f, -0.197754f,
+0.148926f, -0.177246f, 0.148926f, -0.160156f, 0.148926f, -0.110352f, 0.173584f, -0.0881348f,
+0.198242f, -0.065918f, 0.256348f, -0.065918f, 0.296875f, -0.065918f, 0.325928f, -0.0756836f,
+0.35498f, -0.0854492f, 0.375732f, -0.107178f, 0.396484f, -0.128906f, 0.4104f, -0.164062f,
+0.424316f, -0.199219f, 0.434082f, -0.249512f, 0.513672f, -0.658691f, 0.606445f, -0.658691f,
+0.296875f, 0, 0.200195f, 0, 0.081543f, -0.658691f, 0.179688f, -0.658691f, 0.250488f,
+-0.218262f, 0.253906f, -0.196289f, 0.256592f, -0.172607f, 0.259277f, -0.148926f,
+0.26123f, -0.128418f, 0.263184f, -0.10498f, 0.265137f, -0.0820312f, 0.275391f, -0.104004f,
+0.286621f, -0.127441f, 0.296387f, -0.147461f, 0.30835f, -0.171387f, 0.320312f, -0.195312f,
+0.33252f, -0.218262f, 0.573242f, -0.658691f, 0.671387f, -0.658691f, 0.445801f, 0,
+0.344238f, 0, 0.330078f, -0.188965f, 0.32959f, -0.198242f, 0.328613f, -0.210938f,
+0.327637f, -0.223633f, 0.326904f, -0.238037f, 0.326172f, -0.252441f, 0.325439f, -0.267822f,
+0.324707f, -0.283203f, 0.324219f, -0.297852f, 0.322754f, -0.332031f, 0.321289f, -0.369141f,
+0.305664f, -0.331543f, 0.290527f, -0.297363f, 0.28418f, -0.282715f, 0.277344f, -0.267334f,
+0.270508f, -0.251953f, 0.26416f, -0.237549f, 0.257812f, -0.223145f, 0.251953f, -0.210693f,
+0.246094f, -0.198242f, 0.241699f, -0.188965f, 0.15332f, 0, 0.0517578f, 0, 0.0766602f,
+-0.658691f, 0.168945f, -0.658691f, 0.143066f, -0.250977f, 0.140625f, -0.219238f,
+0.137695f, -0.188965f, 0.134766f, -0.158691f, 0.132324f, -0.134766f, 0.129395f, -0.106934f,
+0.126465f, -0.0820312f, 0.140625f, -0.115723f, 0.154785f, -0.148438f, 0.160645f,
+-0.162598f, 0.167236f, -0.17749f, 0.173828f, -0.192383f, 0.180176f, -0.207031f, 0.186523f,
+-0.22168f, 0.192627f, -0.235107f, 0.19873f, -0.248535f, 0.203613f, -0.259766f, 0.294922f,
+-0.45459f, 0.380371f, -0.45459f, 0.395508f, -0.259766f, 0.396484f, -0.249023f, 0.397461f,
+-0.235352f, 0.398438f, -0.22168f, 0.39917f, -0.207275f, 0.399902f, -0.192871f, 0.400635f,
+-0.177979f, 0.401367f, -0.163086f, 0.401855f, -0.148926f, 0.40332f, -0.116211f, 0.404297f,
+-0.0820312f, 0.404785f, -0.0820312f, 0.409424f, -0.0986328f, 0.414062f, -0.115234f,
+0.421387f, -0.140137f, 0.428711f, -0.165039f, 0.437256f, -0.194824f, 0.445801f, -0.224609f,
+0.454102f, -0.250977f, 0.583984f, -0.658691f, 0.67627f, -0.658691f, 0.328125f, -0.408203f,
+0.539062f, -0.658691f, 0.63916f, -0.658691f, 0.365723f, -0.344238f, 0.53125f, 0,
+0.431152f, 0, 0.302734f, -0.279785f, 0.0664062f, 0, -0.0336914f, 0, 0.265625f, -0.344238f,
+0.114258f, -0.658691f, 0.214355f, -0.658691f, 0.350098f, -0.285156f, 0.294434f, 0,
+0.202637f, 0, 0.258301f, -0.285156f, 0.0942383f, -0.658691f, 0.194336f, -0.658691f,
+0.318848f, -0.360352f, 0.558594f, -0.658691f, 0.658691f, -0.658691f, 0.512695f, 0,
+-0.015625f, 0, -0.00195312f, -0.0698242f, 0.49707f, -0.58252f, 0.133301f, -0.58252f,
+0.147949f, -0.658691f, 0.617676f, -0.658691f, 0.604492f, -0.59082f, 0.10498f, -0.0761719f,
+0.527344f, -0.0761719f, 0.108398f, 0.20752f, 0.289551f, -0.724609f, 0.556641f, -0.724609f,
+0.543457f, -0.656738f, 0.364258f, -0.656738f, 0.209473f, 0.139648f, 0.388672f, 0.139648f,
+0.375488f, 0.20752f, 0.401855f, 0.00976562f, 0.145508f, -0.724609f, 0.232422f, -0.724609f,
+0.490723f, 0.00976562f, 0.0400391f, 0.20752f, 0.0532227f, 0.139648f, 0.232422f, 0.139648f,
+0.387207f, -0.656738f, 0.208008f, -0.656738f, 0.221191f, -0.724609f, 0.488281f, -0.724609f,
+0.307129f, 0.20752f, 0.449707f, -0.21582f, 0.365234f, -0.60791f, 0.129883f, -0.21582f,
+0.0556641f, -0.21582f, 0.326172f, -0.658691f, 0.425293f, -0.658691f, 0.524902f, -0.21582f,
+-0.074707f, 0.107422f, -0.0654297f, 0.0605469f, 0.539062f, 0.0605469f, 0.529785f,
+0.107422f, 0.405273f, -0.586426f, 0.280762f, -0.69873f, 0.283691f, -0.712891f, 0.379883f,
+-0.712891f, 0.467773f, -0.596191f, 0.46582f, -0.586426f, 0.49707f, -0.0541992f, 0.504395f,
+-0.0541992f, 0.511963f, -0.0551758f, 0.519531f, -0.0561523f, 0.526367f, -0.0576172f,
+0.515625f, -0.00292969f, 0.498535f, 0.000976562f, 0.481689f, 0.00292969f, 0.464844f,
+0.00488281f, 0.446289f, 0.00488281f, 0.403809f, 0.00488281f, 0.385986f, -0.0136719f,
+0.368164f, -0.0322266f, 0.368164f, -0.0693359f, 0.368164f, -0.0766602f, 0.368896f,
+-0.0847168f, 0.369629f, -0.0927734f, 0.370605f, -0.101074f, 0.367676f, -0.101074f,
+0.349121f, -0.0756836f, 0.328613f, -0.0551758f, 0.308105f, -0.034668f, 0.283691f,
+-0.0202637f, 0.259277f, -0.00585938f, 0.22998f, 0.00195312f, 0.200684f, 0.00976562f,
+0.164551f, 0.00976562f, 0.0996094f, 0.00976562f, 0.067627f, -0.0205078f, 0.0356445f,
+-0.0507812f, 0.0356445f, -0.104004f, 0.0356445f, -0.124023f, 0.0400391f, -0.147461f,
+0.050293f, -0.199707f, 0.0759277f, -0.233154f, 0.101562f, -0.266602f, 0.136475f,
+-0.285645f, 0.171387f, -0.304688f, 0.212646f, -0.312256f, 0.253906f, -0.319824f,
+0.29541f, -0.320312f, 0.410645f, -0.322266f, 0.416504f, -0.351074f, 0.418945f, -0.363281f,
+0.420166f, -0.374023f, 0.421387f, -0.384766f, 0.421387f, -0.394531f, 0.421387f, -0.436035f,
+0.398926f, -0.453613f, 0.376465f, -0.471191f, 0.331543f, -0.471191f, 0.307129f, -0.471191f,
+0.286621f, -0.467529f, 0.266113f, -0.463867f, 0.25f, -0.454346f, 0.233887f, -0.444824f,
+0.221924f, -0.428467f, 0.209961f, -0.412109f, 0.20166f, -0.387207f, 0.111328f, -0.395508f,
+0.122559f, -0.426758f, 0.140869f, -0.452881f, 0.15918f, -0.479004f, 0.187256f, -0.498047f,
+0.215332f, -0.51709f, 0.254395f, -0.527588f, 0.293457f, -0.538086f, 0.345703f, -0.538086f,
+0.429199f, -0.538086f, 0.470459f, -0.504883f, 0.511719f, -0.47168f, 0.511719f, -0.407715f,
+0.511719f, -0.396484f, 0.510498f, -0.384766f, 0.509277f, -0.373047f, 0.506836f, -0.360352f,
+0.462891f, -0.132812f, 0.458496f, -0.111816f, 0.458496f, -0.0957031f, 0.458496f,
+-0.0751953f, 0.467285f, -0.0646973f, 0.476074f, -0.0541992f, 0.49707f, -0.0541992f,
+0.200195f, -0.0571289f, 0.240723f, -0.0571289f, 0.273682f, -0.0725098f, 0.306641f,
+-0.0878906f, 0.330811f, -0.111328f, 0.35498f, -0.134766f, 0.370117f, -0.163086f,
+0.385254f, -0.191406f, 0.390137f, -0.217285f, 0.398926f, -0.260742f, 0.305664f, -0.258789f,
+0.278809f, -0.258301f, 0.250977f, -0.254639f, 0.223145f, -0.250977f, 0.198975f, -0.239258f,
+0.174805f, -0.227539f, 0.156982f, -0.205322f, 0.13916f, -0.183105f, 0.131836f, -0.145996f,
+0.129395f, -0.132324f, 0.129395f, -0.122559f, 0.129395f, -0.0922852f, 0.147217f,
+-0.074707f, 0.165039f, -0.0571289f, 0.200195f, -0.0571289f, 0.532715f, -0.266602f,
+0.505859f, -0.12793f, 0.442871f, -0.059082f, 0.379883f, 0.00976562f, 0.287598f, 0.00976562f,
+0.230957f, 0.00976562f, 0.193604f, -0.0112305f, 0.15625f, -0.0322266f, 0.14209f,
+-0.0800781f, 0.141113f, -0.0800781f, 0.138672f, -0.0673828f, 0.135498f, -0.0539551f,
+0.132324f, -0.0405273f, 0.129395f, -0.0292969f, 0.126465f, -0.0180664f, 0.124268f,
+-0.0100098f, 0.12207f, -0.00195312f, 0.121094f, 0, 0.0361328f, 0, 0.0375977f, -0.00439453f,
+0.0400391f, -0.0148926f, 0.0424805f, -0.0253906f, 0.0456543f, -0.0400391f, 0.0488281f,
+-0.0546875f, 0.0527344f, -0.0722656f, 0.0566406f, -0.0898438f, 0.0600586f, -0.108887f,
+0.179688f, -0.724609f, 0.267578f, -0.724609f, 0.227539f, -0.518066f, 0.225098f, -0.503906f,
+0.221924f, -0.48999f, 0.21875f, -0.476074f, 0.216309f, -0.465332f, 0.213379f, -0.452637f,
+0.210938f, -0.441406f, 0.212891f, -0.441406f, 0.246094f, -0.492676f, 0.291992f, -0.515869f,
+0.337891f, -0.539062f, 0.39502f, -0.539062f, 0.469238f, -0.539062f, 0.506836f, -0.497559f,
+0.544434f, -0.456055f, 0.544434f, -0.371582f, 0.544434f, -0.326172f, 0.532715f, -0.266602f,
+0.441406f, -0.263672f, 0.446777f, -0.291504f, 0.449463f, -0.315186f, 0.452148f, -0.338867f,
+0.452148f, -0.359375f, 0.452148f, -0.417969f, 0.428955f, -0.44458f, 0.405762f, -0.471191f,
+0.35791f, -0.471191f, 0.325684f, -0.471191f, 0.297852f, -0.460205f, 0.27002f, -0.449219f,
+0.246826f, -0.424072f, 0.223633f, -0.398926f, 0.206055f, -0.357666f, 0.188477f, -0.316406f,
+0.176758f, -0.255859f, 0.171875f, -0.230957f, 0.169678f, -0.209961f, 0.16748f, -0.188965f,
+0.16748f, -0.171387f, 0.16748f, -0.138672f, 0.175049f, -0.116211f, 0.182617f, -0.09375f,
+0.196777f, -0.0803223f, 0.210938f, -0.0668945f, 0.230957f, -0.0610352f, 0.250977f,
+-0.0551758f, 0.275879f, -0.0551758f, 0.306641f, -0.0551758f, 0.332275f, -0.0664062f,
+0.35791f, -0.0776367f, 0.378418f, -0.102539f, 0.398926f, -0.127441f, 0.414795f, -0.167236f,
+0.430664f, -0.207031f, 0.441406f, -0.263672f, 0.0634766f, -0.264648f, 0.0791016f,
+-0.344238f, 0.110352f, -0.396973f, 0.141602f, -0.449707f, 0.181885f, -0.480957f,
+0.222168f, -0.512207f, 0.268799f, -0.525146f, 0.31543f, -0.538086f, 0.361816f, -0.538086f,
+0.409668f, -0.538086f, 0.445068f, -0.525879f, 0.480469f, -0.513672f, 0.503418f, -0.492432f,
+0.526367f, -0.471191f, 0.537598f, -0.442383f, 0.548828f, -0.413574f, 0.548828f, -0.380371f,
+0.454102f, -0.373535f, 0.455078f, -0.41748f, 0.428711f, -0.443359f, 0.402344f, -0.469238f,
+0.344727f, -0.469238f, 0.302734f, -0.469238f, 0.271729f, -0.455811f, 0.240723f, -0.442383f,
+0.218262f, -0.416748f, 0.195801f, -0.391113f, 0.180908f, -0.353271f, 0.166016f, -0.31543f,
+0.15625f, -0.266602f, 0.146973f, -0.220215f, 0.146973f, -0.181641f, 0.146973f, -0.152344f,
+0.15332f, -0.12915f, 0.159668f, -0.105957f, 0.173828f, -0.090332f, 0.187988f, -0.074707f,
+0.210205f, -0.0664062f, 0.232422f, -0.0581055f, 0.26416f, -0.0581055f, 0.316895f,
+-0.0581055f, 0.356689f, -0.0839844f, 0.396484f, -0.109863f, 0.415039f, -0.163086f,
+0.506836f, -0.157227f, 0.496094f, -0.124512f, 0.473633f, -0.0942383f, 0.451172f,
+-0.0639648f, 0.418945f, -0.0410156f, 0.386719f, -0.0180664f, 0.345215f, -0.00415039f,
+0.303711f, 0.00976562f, 0.254883f, 0.00976562f, 0.200684f, 0.00976562f, 0.162598f,
+-0.00415039f, 0.124512f, -0.0180664f, 0.100586f, -0.0432129f, 0.0766602f, -0.0683594f,
+0.0656738f, -0.103271f, 0.0546875f, -0.138184f, 0.0546875f, -0.180176f, 0.0546875f,
+-0.220215f, 0.0634766f, -0.264648f, 0.38623f, -0.0849609f, 0.352539f, -0.0336914f,
+0.30835f, -0.010498f, 0.26416f, 0.0126953f, 0.205078f, 0.0126953f, 0.12793f, 0.0126953f,
+0.0913086f, -0.0280762f, 0.0546875f, -0.0688477f, 0.0546875f, -0.151855f, 0.0546875f,
+-0.199219f, 0.0664062f, -0.259766f, 0.120605f, -0.536133f, 0.311523f, -0.536133f,
+0.370605f, -0.536133f, 0.406494f, -0.515137f, 0.442383f, -0.494141f, 0.457031f, -0.446289f,
+0.458008f, -0.446289f, 0.458496f, -0.44873f, 0.460205f, -0.458984f, 0.461914f, -0.469238f,
+0.464111f, -0.481445f, 0.466309f, -0.493652f, 0.468262f, -0.504639f, 0.470215f, -0.515625f,
+0.471191f, -0.52002f, 0.510742f, -0.724609f, 0.598633f, -0.724609f, 0.479004f, -0.108887f,
+0.475586f, -0.0898438f, 0.472412f, -0.0722656f, 0.469238f, -0.0546875f, 0.466797f,
+-0.0400391f, 0.464355f, -0.0253906f, 0.462891f, -0.0148926f, 0.461426f, -0.00439453f,
+0.460938f, 0, 0.376953f, 0, 0.376465f, -0.00195312f, 0.377441f, -0.0107422f, 0.378418f,
+-0.0195312f, 0.379883f, -0.0317383f, 0.381348f, -0.0439453f, 0.383789f, -0.0581055f,
+0.38623f, -0.0722656f, 0.388672f, -0.0849609f, 0.158203f, -0.262695f, 0.152832f,
+-0.233398f, 0.149902f, -0.209229f, 0.146973f, -0.185059f, 0.146973f, -0.164551f,
+0.146973f, -0.107422f, 0.169678f, -0.0812988f, 0.192383f, -0.0551758f, 0.241211f,
+-0.0551758f, 0.274902f, -0.0551758f, 0.303223f, -0.0668945f, 0.331543f, -0.0786133f,
+0.354248f, -0.104248f, 0.376953f, -0.129883f, 0.394043f, -0.170898f, 0.411133f, -0.211914f,
+0.422852f, -0.270508f, 0.427734f, -0.29541f, 0.430176f, -0.316406f, 0.432617f, -0.337402f,
+0.432617f, -0.355469f, 0.432617f, -0.387207f, 0.425293f, -0.409424f, 0.417969f, -0.431641f,
+0.404053f, -0.445312f, 0.390137f, -0.458984f, 0.369873f, -0.465088f, 0.349609f, -0.471191f,
+0.323242f, -0.471191f, 0.291992f, -0.471191f, 0.266357f, -0.459961f, 0.240723f, -0.44873f,
+0.220459f, -0.423828f, 0.200195f, -0.398926f, 0.184814f, -0.359131f, 0.169434f, -0.319336f,
+0.158203f, -0.262695f, 0.153809f, -0.245605f, 0.150879f, -0.22998f, 0.14917f, -0.215332f,
+0.147461f, -0.200684f, 0.147461f, -0.186523f, 0.147461f, -0.157227f, 0.154541f, -0.133057f,
+0.161621f, -0.108887f, 0.17627f, -0.0917969f, 0.190918f, -0.074707f, 0.212646f, -0.0654297f,
+0.234375f, -0.0561523f, 0.263672f, -0.0561523f, 0.290527f, -0.0561523f, 0.314453f,
+-0.0622559f, 0.338379f, -0.0683594f, 0.358643f, -0.0791016f, 0.378906f, -0.0898438f,
+0.394043f, -0.104736f, 0.40918f, -0.119629f, 0.418457f, -0.137207f, 0.491211f, -0.115234f,
+0.479004f, -0.0932617f, 0.458984f, -0.0710449f, 0.438965f, -0.0488281f, 0.409668f,
+-0.0310059f, 0.380371f, -0.0131836f, 0.341064f, -0.00170898f, 0.301758f, 0.00976562f,
+0.250977f, 0.00976562f, 0.20459f, 0.00976562f, 0.168457f, -0.00219727f, 0.132324f,
+-0.0141602f, 0.107422f, -0.0380859f, 0.0825195f, -0.0620117f, 0.0695801f, -0.0976562f,
+0.0566406f, -0.133301f, 0.0566406f, -0.180664f, 0.0566406f, -0.221191f, 0.065918f,
+-0.267578f, 0.0805664f, -0.34375f, 0.109863f, -0.395508f, 0.13916f, -0.447266f, 0.177979f,
+-0.479004f, 0.216797f, -0.510742f, 0.262207f, -0.524414f, 0.307617f, -0.538086f,
+0.354492f, -0.538086f, 0.405273f, -0.538086f, 0.440918f, -0.525146f, 0.476562f, -0.512207f,
+0.499268f, -0.488037f, 0.521973f, -0.463867f, 0.532471f, -0.429688f, 0.542969f, -0.395508f,
+0.542969f, -0.353027f, 0.542969f, -0.308594f, 0.532715f, -0.257324f, 0.530762f, -0.245605f,
+0.342773f, -0.473145f, 0.320312f, -0.473145f, 0.294434f, -0.466064f, 0.268555f, -0.458984f,
+0.244141f, -0.440918f, 0.219727f, -0.422852f, 0.199463f, -0.391846f, 0.179199f, -0.36084f,
+0.167969f, -0.312988f, 0.453125f, -0.312988f, 0.454102f, -0.322754f, 0.45459f, -0.331299f,
+0.455078f, -0.339844f, 0.455078f, -0.348145f, 0.455078f, -0.383789f, 0.446289f, -0.407715f,
+0.4375f, -0.431641f, 0.422363f, -0.446289f, 0.407227f, -0.460938f, 0.386719f, -0.467041f,
+0.366211f, -0.473145f, 0.342773f, -0.473145f, 0.321289f, -0.458984f, 0.231934f, 0,
+0.144043f, 0, 0.233398f, -0.458984f, 0.105469f, -0.458984f, 0.118652f, -0.52832f,
+0.246582f, -0.52832f, 0.249023f, -0.540527f, 0.258789f, -0.589844f, 0.276611f, -0.624756f,
+0.294434f, -0.659668f, 0.322998f, -0.681885f, 0.351562f, -0.704102f, 0.392334f, -0.714355f,
+0.433105f, -0.724609f, 0.48877f, -0.724609f, 0.50293f, -0.724609f, 0.522217f, -0.723877f,
+0.541504f, -0.723145f, 0.561035f, -0.72168f, 0.580566f, -0.720215f, 0.597412f, -0.718262f,
+0.614258f, -0.716309f, 0.624023f, -0.714355f, 0.610352f, -0.643555f, 0.602051f, -0.64502f,
+0.584717f, -0.646484f, 0.567383f, -0.647949f, 0.54834f, -0.64917f, 0.529297f, -0.650391f,
+0.511719f, -0.651123f, 0.494141f, -0.651855f, 0.484863f, -0.651855f, 0.452637f, -0.651855f,
+0.427734f, -0.646973f, 0.402832f, -0.64209f, 0.384766f, -0.628906f, 0.366699f, -0.615723f,
+0.354736f, -0.592773f, 0.342773f, -0.569824f, 0.335449f, -0.533203f, 0.334473f, -0.52832f,
+0.574219f, -0.52832f, 0.561035f, -0.458984f, 0.208984f, 0.207031f, 0.165039f, 0.207031f,
+0.133301f, 0.197754f, 0.101562f, 0.188477f, 0.0808105f, 0.171143f, 0.0600586f, 0.153809f,
+0.0498047f, 0.129883f, 0.0395508f, 0.105957f, 0.0385742f, 0.0766602f, 0.130859f,
+0.0644531f, 0.131836f, 0.101074f, 0.155762f, 0.12085f, 0.179688f, 0.140625f, 0.224609f,
+0.140625f, 0.252441f, 0.140625f, 0.276367f, 0.132324f, 0.300293f, 0.124023f, 0.31958f,
+0.105713f, 0.338867f, 0.0874023f, 0.353271f, 0.0581055f, 0.367676f, 0.0288086f, 0.375488f,
+-0.0131836f, 0.37793f, -0.0258789f, 0.381104f, -0.0419922f, 0.384277f, -0.0581055f,
+0.387207f, -0.0727539f, 0.390625f, -0.0898438f, 0.394043f, -0.10791f, 0.393066f,
+-0.10791f, 0.379883f, -0.0883789f, 0.362061f, -0.0698242f, 0.344238f, -0.0512695f,
+0.321045f, -0.0371094f, 0.297852f, -0.0229492f, 0.269287f, -0.0144043f, 0.240723f,
+-0.00585938f, 0.205566f, -0.00585938f, 0.129395f, -0.00585938f, 0.0939941f, -0.0441895f,
+0.0585938f, -0.0825195f, 0.0585938f, -0.160156f, 0.0585938f, -0.183594f, 0.0617676f,
+-0.210449f, 0.0649414f, -0.237305f, 0.0708008f, -0.268066f, 0.0830078f, -0.332031f,
+0.103027f, -0.381836f, 0.123047f, -0.431641f, 0.153076f, -0.466064f, 0.183105f, -0.500488f,
+0.223877f, -0.518555f, 0.264648f, -0.536621f, 0.318359f, -0.536621f, 0.373535f, -0.536621f,
+0.40918f, -0.510986f, 0.444824f, -0.485352f, 0.45752f, -0.437988f, 0.458984f, -0.437988f,
+0.461426f, -0.450195f, 0.465088f, -0.465332f, 0.46875f, -0.480469f, 0.472168f, -0.493896f,
+0.475586f, -0.507324f, 0.478516f, -0.51709f, 0.481445f, -0.526855f, 0.482422f, -0.52832f,
+0.565918f, -0.52832f, 0.564941f, -0.523926f, 0.5625f, -0.513428f, 0.560059f, -0.50293f,
+0.556641f, -0.488281f, 0.553223f, -0.473633f, 0.549561f, -0.455811f, 0.545898f, -0.437988f,
+0.541992f, -0.418945f, 0.463379f, -0.015625f, 0.441895f, 0.0952148f, 0.379395f, 0.151123f,
+0.316895f, 0.207031f, 0.208984f, 0.207031f, 0.425293f, -0.269043f, 0.433105f, -0.308105f,
+0.433105f, -0.340332f, 0.433105f, -0.375488f, 0.424561f, -0.400391f, 0.416016f, -0.425293f,
+0.401611f, -0.441162f, 0.387207f, -0.457031f, 0.368164f, -0.464111f, 0.349121f, -0.471191f,
+0.327637f, -0.471191f, 0.294922f, -0.471191f, 0.268799f, -0.460205f, 0.242676f, -0.449219f,
+0.222412f, -0.425049f, 0.202148f, -0.400879f, 0.187256f, -0.362549f, 0.172363f, -0.324219f,
+0.161621f, -0.269043f, 0.15625f, -0.240234f, 0.15332f, -0.216553f, 0.150391f, -0.192871f,
+0.150391f, -0.17334f, 0.150391f, -0.144531f, 0.156494f, -0.125f, 0.162598f, -0.105469f,
+0.175049f, -0.0932617f, 0.1875f, -0.0810547f, 0.205811f, -0.0759277f, 0.224121f,
+-0.0708008f, 0.248047f, -0.0708008f, 0.273926f, -0.0708008f, 0.300781f, -0.0812988f,
+0.327637f, -0.0917969f, 0.351807f, -0.115234f, 0.375977f, -0.138672f, 0.395264f,
+-0.176514f, 0.414551f, -0.214355f, 0.425293f, -0.269043f, 0.179688f, -0.724609f,
+0.268066f, -0.724609f, 0.231445f, -0.53418f, 0.226562f, -0.509766f, 0.220215f, -0.485107f,
+0.213867f, -0.460449f, 0.208008f, -0.437988f, 0.209473f, -0.437988f, 0.242188f, -0.484375f,
+0.286865f, -0.51123f, 0.331543f, -0.538086f, 0.394531f, -0.538086f, 0.462402f, -0.538086f,
+0.499023f, -0.507812f, 0.535645f, -0.477539f, 0.535645f, -0.411621f, 0.535645f, -0.383789f,
+0.529297f, -0.352051f, 0.460938f, 0, 0.372559f, 0, 0.438477f, -0.339355f, 0.443848f,
+-0.367676f, 0.443848f, -0.387207f, 0.443848f, -0.411621f, 0.4375f, -0.42749f, 0.431152f,
+-0.443359f, 0.419434f, -0.452881f, 0.407715f, -0.462402f, 0.391602f, -0.466309f,
+0.375488f, -0.470215f, 0.356445f, -0.470215f, 0.327637f, -0.470215f, 0.300293f, -0.459229f,
+0.272949f, -0.448242f, 0.250244f, -0.42749f, 0.227539f, -0.406738f, 0.210938f, -0.376221f,
+0.194336f, -0.345703f, 0.186523f, -0.306152f, 0.126953f, 0, 0.0390625f, 0, 0.326172f,
+-0.0693359f, 0.511719f, -0.0693359f, 0.498047f, 0, 0.0185547f, 0, 0.0322266f, -0.0693359f,
+0.238281f, -0.0693359f, 0.313965f, -0.458984f, 0.158203f, -0.458984f, 0.171387f,
+-0.52832f, 0.415039f, -0.52832f, 0.337402f, -0.630859f, 0.355469f, -0.724609f, 0.453125f,
+-0.724609f, 0.435059f, -0.630859f, 0.354492f, 0.0136719f, 0.344238f, 0.0668945f,
+0.31958f, 0.10376f, 0.294922f, 0.140625f, 0.261475f, 0.163818f, 0.228027f, 0.187012f,
+0.187988f, 0.197266f, 0.147949f, 0.20752f, 0.105957f, 0.20752f, 0.0859375f, 0.20752f,
+0.0661621f, 0.205811f, 0.0463867f, 0.204102f, 0.0285645f, 0.201172f, 0.0107422f,
+0.198242f, -0.00439453f, 0.19458f, -0.0195312f, 0.190918f, -0.0302734f, 0.186523f,
+-0.0170898f, 0.118164f, -0.00683594f, 0.120605f, 0.00732422f, 0.123535f, 0.0214844f,
+0.126465f, 0.0383301f, 0.128906f, 0.0551758f, 0.131348f, 0.0742188f, 0.133057f, 0.0932617f,
+0.134766f, 0.112793f, 0.134766f, 0.140137f, 0.134766f, 0.165039f, 0.12793f, 0.189941f,
+0.121094f, 0.210449f, 0.106201f, 0.230957f, 0.0913086f, 0.245605f, 0.0681152f, 0.260254f,
+0.0449219f, 0.266602f, 0.012207f, 0.358398f, -0.458984f, 0.159668f, -0.458984f, 0.172852f,
+-0.52832f, 0.459473f, -0.52832f, 0.381836f, -0.630859f, 0.399902f, -0.724609f, 0.497559f,
+-0.724609f, 0.479492f, -0.630859f, 0.39502f, 0, 0.263672f, -0.243652f, 0.189941f,
+-0.195801f, 0.151855f, 0, 0.0639648f, 0, 0.20459f, -0.724609f, 0.29248f, -0.724609f,
+0.20459f, -0.271973f, 0.486328f, -0.52832f, 0.589355f, -0.52832f, 0.331055f, -0.30127f,
+0.498047f, 0, 0.321777f, -0.0693359f, 0.507324f, -0.0693359f, 0.493652f, 0, 0.0141602f,
+0, 0.027832f, -0.0693359f, 0.233887f, -0.0693359f, 0.347656f, -0.655273f, 0.206543f,
+-0.655273f, 0.219727f, -0.724609f, 0.44873f, -0.724609f, 0.208008f, 0, 0.272949f,
+-0.334961f, 0.27832f, -0.361816f, 0.281006f, -0.382324f, 0.283691f, -0.402832f, 0.283691f,
+-0.418457f, 0.283691f, -0.447266f, 0.273926f, -0.45874f, 0.26416f, -0.470215f, 0.243652f,
+-0.470215f, 0.227539f, -0.470215f, 0.212402f, -0.457764f, 0.197266f, -0.445312f,
+0.183594f, -0.422607f, 0.169922f, -0.399902f, 0.158936f, -0.36792f, 0.147949f, -0.335938f,
+0.140137f, -0.296387f, 0.0825195f, 0, 0, 0, 0.0805664f, -0.415527f, 0.0839844f, -0.432129f,
+0.0871582f, -0.450439f, 0.090332f, -0.46875f, 0.0930176f, -0.485107f, 0.0957031f,
+-0.501465f, 0.0976562f, -0.513184f, 0.0996094f, -0.524902f, 0.0996094f, -0.52832f,
+0.172363f, -0.52832f, 0.172363f, -0.525879f, 0.170898f, -0.515869f, 0.169434f, -0.505859f,
+0.16748f, -0.49292f, 0.165527f, -0.47998f, 0.163086f, -0.466309f, 0.160645f, -0.452637f,
+0.158691f, -0.442871f, 0.159668f, -0.442871f, 0.169922f, -0.461914f, 0.181885f, -0.479248f,
+0.193848f, -0.496582f, 0.208984f, -0.509766f, 0.224121f, -0.522949f, 0.242676f, -0.530518f,
+0.26123f, -0.538086f, 0.283691f, -0.538086f, 0.32666f, -0.538086f, 0.343506f, -0.514648f,
+0.360352f, -0.491211f, 0.359863f, -0.442383f, 0.36084f, -0.442383f, 0.374023f, -0.465332f,
+0.387939f, -0.483154f, 0.401855f, -0.500977f, 0.417969f, -0.513184f, 0.434082f, -0.525391f,
+0.452881f, -0.531738f, 0.47168f, -0.538086f, 0.494629f, -0.538086f, 0.537598f, -0.538086f,
+0.557129f, -0.515625f, 0.57666f, -0.493164f, 0.57666f, -0.444336f, 0.57666f, -0.425293f,
+0.573975f, -0.402588f, 0.571289f, -0.379883f, 0.565918f, -0.352051f, 0.497559f, 0,
+0.415527f, 0, 0.480469f, -0.334961f, 0.48584f, -0.361816f, 0.488525f, -0.382324f,
+0.491211f, -0.402832f, 0.491211f, -0.418457f, 0.491211f, -0.447266f, 0.481445f, -0.45874f,
+0.47168f, -0.470215f, 0.451172f, -0.470215f, 0.419434f, -0.470215f, 0.392334f, -0.428955f,
+0.365234f, -0.387695f, 0.349609f, -0.306152f, 0.290039f, 0, 0.372559f, 0, 0.438477f,
+-0.339355f, 0.443848f, -0.367676f, 0.443848f, -0.387207f, 0.443848f, -0.411621f,
+0.4375f, -0.42749f, 0.431152f, -0.443359f, 0.419434f, -0.452881f, 0.407715f, -0.462402f,
+0.391602f, -0.466309f, 0.375488f, -0.470215f, 0.356445f, -0.470215f, 0.327637f, -0.470215f,
+0.300293f, -0.459229f, 0.272949f, -0.448242f, 0.250244f, -0.42749f, 0.227539f, -0.406738f,
+0.210938f, -0.376221f, 0.194336f, -0.345703f, 0.186523f, -0.306152f, 0.126953f, 0,
+0.0390625f, 0, 0.119629f, -0.415527f, 0.123047f, -0.432129f, 0.126221f, -0.450439f,
+0.129395f, -0.46875f, 0.13208f, -0.485107f, 0.134766f, -0.501465f, 0.136719f, -0.513184f,
+0.138672f, -0.524902f, 0.138672f, -0.52832f, 0.22168f, -0.52832f, 0.22168f, -0.525879f,
+0.220215f, -0.515137f, 0.21875f, -0.504395f, 0.216797f, -0.490479f, 0.214844f, -0.476562f,
+0.212402f, -0.462158f, 0.209961f, -0.447754f, 0.208008f, -0.437988f, 0.209473f, -0.437988f,
+0.242676f, -0.484375f, 0.288086f, -0.51123f, 0.333496f, -0.538086f, 0.397949f, -0.538086f,
+0.464844f, -0.538086f, 0.500488f, -0.508545f, 0.536133f, -0.479004f, 0.536133f, -0.414062f,
+0.536133f, -0.399902f, 0.534424f, -0.384521f, 0.532715f, -0.369141f, 0.529297f, -0.352051f,
+0.460938f, 0, 0.535645f, -0.264648f, 0.522461f, -0.195312f, 0.496094f, -0.143799f,
+0.469727f, -0.0922852f, 0.432373f, -0.0581055f, 0.39502f, -0.0239258f, 0.347412f,
+-0.00708008f, 0.299805f, 0.00976562f, 0.244141f, 0.00976562f, 0.200195f, 0.00976562f,
+0.165039f, -0.00170898f, 0.129883f, -0.0131836f, 0.105225f, -0.0366211f, 0.0805664f,
+-0.0600586f, 0.067627f, -0.0957031f, 0.0546875f, -0.131348f, 0.0546875f, -0.179199f,
+0.0546875f, -0.217773f, 0.0634766f, -0.264648f, 0.090332f, -0.400879f, 0.165283f,
+-0.469482f, 0.240234f, -0.538086f, 0.353516f, -0.538086f, 0.450684f, -0.538086f,
+0.498047f, -0.493164f, 0.54541f, -0.448242f, 0.54541f, -0.357422f, 0.54541f, -0.336426f,
+0.543213f, -0.313477f, 0.541016f, -0.290527f, 0.535645f, -0.264648f, 0.443359f, -0.264648f,
+0.448242f, -0.290039f, 0.450684f, -0.311523f, 0.453125f, -0.333008f, 0.453125f, -0.351562f,
+0.453125f, -0.386719f, 0.445068f, -0.409912f, 0.437012f, -0.433105f, 0.422363f, -0.447266f,
+0.407715f, -0.461426f, 0.387451f, -0.467285f, 0.367188f, -0.473145f, 0.342285f, -0.473145f,
+0.310547f, -0.473145f, 0.281738f, -0.463135f, 0.25293f, -0.453125f, 0.22876f, -0.428955f,
+0.20459f, -0.404785f, 0.186035f, -0.364746f, 0.16748f, -0.324707f, 0.155762f, -0.264648f,
+0.150879f, -0.240723f, 0.148926f, -0.220215f, 0.146973f, -0.199707f, 0.146973f, -0.182129f,
+0.146973f, -0.145508f, 0.155518f, -0.121094f, 0.164062f, -0.0966797f, 0.178955f,
+-0.0820312f, 0.193848f, -0.0673828f, 0.213623f, -0.0612793f, 0.233398f, -0.0551758f,
+0.255859f, -0.0551758f, 0.287598f, -0.0551758f, 0.316406f, -0.0646973f, 0.345215f,
+-0.0742188f, 0.369385f, -0.0981445f, 0.393555f, -0.12207f, 0.412598f, -0.162598f,
+0.431641f, -0.203125f, 0.443359f, -0.264648f, 0.532715f, -0.266602f, 0.520996f, -0.206543f,
+0.501465f, -0.155762f, 0.481934f, -0.10498f, 0.452393f, -0.0683594f, 0.422852f, -0.0317383f,
+0.38208f, -0.0109863f, 0.341309f, 0.00976562f, 0.287598f, 0.00976562f, 0.260742f,
+0.00976562f, 0.237061f, 0.00488281f, 0.213379f, 0, 0.194824f, -0.0107422f, 0.17627f,
+-0.0214844f, 0.163086f, -0.0385742f, 0.149902f, -0.0556641f, 0.143555f, -0.0800781f,
+0.141113f, -0.0800781f, 0.141113f, -0.0791016f, 0.140137f, -0.0715332f, 0.13916f,
+-0.0639648f, 0.137207f, -0.0527344f, 0.135254f, -0.0415039f, 0.132812f, -0.0273438f,
+0.130371f, -0.0131836f, 0.127441f, 0.000976562f, 0.0869141f, 0.20752f, -0.00146484f,
+0.20752f, 0.120605f, -0.418945f, 0.124512f, -0.438477f, 0.127686f, -0.456543f, 0.130859f,
+-0.474609f, 0.133057f, -0.489014f, 0.135254f, -0.503418f, 0.136719f, -0.513672f,
+0.138184f, -0.523926f, 0.138672f, -0.52832f, 0.224121f, -0.52832f, 0.224121f, -0.526855f,
+0.223389f, -0.517822f, 0.222656f, -0.508789f, 0.220947f, -0.496094f, 0.219238f, -0.483398f,
+0.217041f, -0.46875f, 0.214844f, -0.454102f, 0.212402f, -0.441406f, 0.214355f, -0.441406f,
+0.231445f, -0.466797f, 0.250488f, -0.485352f, 0.269531f, -0.503906f, 0.291504f, -0.515869f,
+0.313477f, -0.527832f, 0.338867f, -0.533447f, 0.364258f, -0.539062f, 0.394531f, -0.539062f,
+0.435547f, -0.539062f, 0.464111f, -0.527588f, 0.492676f, -0.516113f, 0.510498f, -0.494873f,
+0.52832f, -0.473633f, 0.536621f, -0.443359f, 0.544922f, -0.413086f, 0.544922f, -0.375f,
+0.544922f, -0.350098f, 0.541748f, -0.323242f, 0.538574f, -0.296387f, 0.532715f, -0.266602f,
+0.441895f, -0.266602f, 0.453125f, -0.322754f, 0.453125f, -0.362793f, 0.453125f, -0.415527f,
+0.431396f, -0.443359f, 0.409668f, -0.471191f, 0.358398f, -0.471191f, 0.32959f, -0.471191f,
+0.30249f, -0.462158f, 0.275391f, -0.453125f, 0.251953f, -0.429443f, 0.228516f, -0.405762f,
+0.209229f, -0.36377f, 0.189941f, -0.321777f, 0.177246f, -0.255859f, 0.16748f, -0.205566f,
+0.16748f, -0.170898f, 0.16748f, -0.13916f, 0.174805f, -0.116943f, 0.182129f, -0.0947266f,
+0.196045f, -0.0810547f, 0.209961f, -0.0673828f, 0.230225f, -0.0612793f, 0.250488f,
+-0.0551758f, 0.276367f, -0.0551758f, 0.312012f, -0.0551758f, 0.338623f, -0.0690918f,
+0.365234f, -0.0830078f, 0.38501f, -0.109863f, 0.404785f, -0.136719f, 0.418457f, -0.17627f,
+0.432129f, -0.21582f, 0.441895f, -0.266602f, 0.311035f, -0.536133f, 0.343262f, -0.536133f,
+0.367188f, -0.530762f, 0.391113f, -0.525391f, 0.408203f, -0.51416f, 0.425293f, -0.50293f,
+0.437012f, -0.486084f, 0.44873f, -0.469238f, 0.456055f, -0.446289f, 0.457031f, -0.446289f,
+0.459473f, -0.458496f, 0.462646f, -0.472412f, 0.46582f, -0.486328f, 0.469238f, -0.498291f,
+0.472656f, -0.510254f, 0.475342f, -0.518799f, 0.478027f, -0.527344f, 0.479004f, -0.528809f,
+0.564453f, -0.528809f, 0.562988f, -0.524414f, 0.560547f, -0.514648f, 0.558105f, -0.504883f,
+0.554443f, -0.488281f, 0.550781f, -0.47168f, 0.545898f, -0.447754f, 0.541016f, -0.423828f,
+0.534668f, -0.391113f, 0.417969f, 0.20752f, 0.32959f, 0.20752f, 0.371582f, -0.00683594f,
+0.374023f, -0.0195312f, 0.377197f, -0.0336914f, 0.380371f, -0.0478516f, 0.382812f,
+-0.0605469f, 0.385742f, -0.0751953f, 0.38916f, -0.0888672f, 0.388184f, -0.0888672f,
+0.371094f, -0.0639648f, 0.352295f, -0.0449219f, 0.333496f, -0.0258789f, 0.311279f,
+-0.0129395f, 0.289062f, 0, 0.262939f, 0.00634766f, 0.236816f, 0.0126953f, 0.205078f,
+0.0126953f, 0.12793f, 0.0126953f, 0.0913086f, -0.0283203f, 0.0546875f, -0.0693359f,
+0.0546875f, -0.151855f, 0.0546875f, -0.199219f, 0.0664062f, -0.259766f, 0.0932617f,
+-0.397461f, 0.153809f, -0.466797f, 0.214355f, -0.536133f, 0.311035f, -0.536133f,
+0.422852f, -0.270508f, 0.427734f, -0.294922f, 0.429932f, -0.315674f, 0.432129f, -0.336426f,
+0.432129f, -0.354004f, 0.432129f, -0.387207f, 0.424561f, -0.409668f, 0.416992f, -0.432129f,
+0.402832f, -0.445801f, 0.388672f, -0.459473f, 0.368408f, -0.465332f, 0.348145f, -0.471191f,
+0.323242f, -0.471191f, 0.290039f, -0.471191f, 0.26416f, -0.45874f, 0.238281f, -0.446289f,
+0.218018f, -0.420654f, 0.197754f, -0.39502f, 0.183105f, -0.355713f, 0.168457f, -0.316406f,
+0.158203f, -0.262695f, 0.152832f, -0.234863f, 0.150146f, -0.211182f, 0.147461f, -0.1875f,
+0.147461f, -0.166992f, 0.147461f, -0.11084f, 0.169678f, -0.0830078f, 0.191895f, -0.0551758f,
+0.241211f, -0.0551758f, 0.27002f, -0.0551758f, 0.297363f, -0.0646973f, 0.324707f,
+-0.0742188f, 0.348389f, -0.0983887f, 0.37207f, -0.122559f, 0.391113f, -0.164307f,
+0.410156f, -0.206055f, 0.422852f, -0.270508f, 0.545898f, -0.448242f, 0.523926f, -0.452148f,
+0.499268f, -0.454834f, 0.474609f, -0.45752f, 0.444336f, -0.45752f, 0.40332f, -0.45752f,
+0.367432f, -0.440918f, 0.331543f, -0.424316f, 0.303467f, -0.395752f, 0.275391f, -0.367188f,
+0.256104f, -0.329102f, 0.236816f, -0.291016f, 0.228516f, -0.248047f, 0.180176f, 0,
+0.0922852f, 0, 0.158691f, -0.342285f, 0.165527f, -0.379395f, 0.168213f, -0.416748f,
+0.170898f, -0.454102f, 0.170898f, -0.483398f, 0.170898f, -0.497559f, 0.17041f, -0.509033f,
+0.169922f, -0.520508f, 0.169434f, -0.52832f, 0.25293f, -0.52832f, 0.254395f, -0.516113f,
+0.255127f, -0.499756f, 0.255859f, -0.483398f, 0.255859f, -0.46582f, 0.255859f, -0.450195f,
+0.255127f, -0.435059f, 0.254395f, -0.419922f, 0.25293f, -0.40625f, 0.255371f, -0.40625f,
+0.274902f, -0.436523f, 0.294678f, -0.460938f, 0.314453f, -0.485352f, 0.338623f, -0.502441f,
+0.362793f, -0.519531f, 0.392822f, -0.528809f, 0.422852f, -0.538086f, 0.462891f, -0.538086f,
+0.490234f, -0.538086f, 0.516357f, -0.535645f, 0.54248f, -0.533203f, 0.562012f, -0.529785f,
+0.495605f, -0.150879f, 0.488281f, -0.11377f, 0.468262f, -0.0839844f, 0.448242f, -0.0541992f,
+0.416748f, -0.0334473f, 0.385254f, -0.0126953f, 0.343262f, -0.00146484f, 0.30127f,
+0.00976562f, 0.25f, 0.00976562f, 0.204102f, 0.00976562f, 0.168457f, 0.00317383f,
+0.132812f, -0.00341797f, 0.10791f, -0.0185547f, 0.0830078f, -0.0336914f, 0.0693359f,
+-0.0588379f, 0.0556641f, -0.0839844f, 0.0537109f, -0.121094f, 0.134277f, -0.13623f,
+0.135254f, -0.109375f, 0.14502f, -0.0935059f, 0.154785f, -0.0776367f, 0.171631f,
+-0.0693359f, 0.188477f, -0.0610352f, 0.21167f, -0.0583496f, 0.234863f, -0.0556641f,
+0.262695f, -0.0556641f, 0.291016f, -0.0556641f, 0.315918f, -0.0598145f, 0.34082f,
+-0.0639648f, 0.360352f, -0.0739746f, 0.379883f, -0.0839844f, 0.393066f, -0.0998535f,
+0.40625f, -0.115723f, 0.410645f, -0.13916f, 0.412109f, -0.147461f, 0.412109f, -0.153809f,
+0.412109f, -0.172852f, 0.400879f, -0.185303f, 0.389648f, -0.197754f, 0.370361f, -0.206543f,
+0.351074f, -0.215332f, 0.324951f, -0.222412f, 0.298828f, -0.229492f, 0.268555f, -0.237793f,
+0.241699f, -0.245117f, 0.215576f, -0.253662f, 0.189453f, -0.262207f, 0.168945f, -0.275146f,
+0.148438f, -0.288086f, 0.135742f, -0.307373f, 0.123047f, -0.32666f, 0.123047f, -0.355469f,
+0.123047f, -0.368652f, 0.125977f, -0.383789f, 0.132812f, -0.419922f, 0.151611f, -0.448242f,
+0.17041f, -0.476562f, 0.199707f, -0.496094f, 0.229004f, -0.515625f, 0.268799f, -0.526123f,
+0.308594f, -0.536621f, 0.357422f, -0.536621f, 0.395996f, -0.536621f, 0.428223f, -0.529541f,
+0.460449f, -0.522461f, 0.483887f, -0.50708f, 0.507324f, -0.491699f, 0.520508f, -0.467529f,
+0.533691f, -0.443359f, 0.533691f, -0.409668f, 0.452637f, -0.399902f, 0.453125f, -0.421875f,
+0.444824f, -0.435547f, 0.436523f, -0.449219f, 0.421875f, -0.457275f, 0.407227f, -0.465332f,
+0.387207f, -0.468262f, 0.367188f, -0.471191f, 0.344727f, -0.471191f, 0.225098f, -0.471191f,
+0.210449f, -0.397461f, 0.208984f, -0.389648f, 0.208984f, -0.382812f, 0.208984f, -0.365234f,
+0.218506f, -0.35376f, 0.228027f, -0.342285f, 0.245117f, -0.334473f, 0.262207f, -0.32666f,
+0.285645f, -0.320557f, 0.309082f, -0.314453f, 0.336426f, -0.307129f, 0.36377f, -0.299805f,
+0.392578f, -0.290771f, 0.421387f, -0.281738f, 0.444824f, -0.267578f, 0.468262f, -0.253418f,
+0.483398f, -0.232178f, 0.498535f, -0.210938f, 0.498535f, -0.178711f, 0.498535f, -0.165527f,
+0.495605f, -0.150879f, 0.130859f, -0.458984f, 0.144043f, -0.52832f, 0.227051f, -0.52832f,
+0.282227f, -0.666016f, 0.34082f, -0.666016f, 0.313965f, -0.52832f, 0.524902f, -0.52832f,
+0.511719f, -0.458984f, 0.300781f, -0.458984f, 0.23877f, -0.140625f, 0.237793f, -0.134766f,
+0.237061f, -0.129395f, 0.236328f, -0.124023f, 0.236328f, -0.119141f, 0.236328f, -0.0913086f,
+0.254883f, -0.078125f, 0.273438f, -0.0649414f, 0.312988f, -0.0649414f, 0.33252f,
+-0.0649414f, 0.353516f, -0.0666504f, 0.374512f, -0.0683594f, 0.394287f, -0.0708008f,
+0.414062f, -0.0732422f, 0.431396f, -0.0761719f, 0.44873f, -0.0791016f, 0.460938f,
+-0.081543f, 0.448242f, -0.0146484f, 0.437012f, -0.0117188f, 0.419189f, -0.0078125f,
+0.401367f, -0.00390625f, 0.379395f, -0.000488281f, 0.357422f, 0.00292969f, 0.332031f,
+0.00537109f, 0.306641f, 0.0078125f, 0.280273f, 0.0078125f, 0.212402f, 0.0078125f,
+0.178711f, -0.0163574f, 0.14502f, -0.0405273f, 0.14502f, -0.0922852f, 0.14502f, -0.101074f,
+0.145752f, -0.11084f, 0.146484f, -0.120605f, 0.148926f, -0.131348f, 0.212891f, -0.458984f,
+0.229492f, -0.52832f, 0.164551f, -0.193359f, 0.161133f, -0.175781f, 0.159424f, -0.160889f,
+0.157715f, -0.145996f, 0.157715f, -0.133301f, 0.157715f, -0.112305f, 0.162842f, -0.0979004f,
+0.167969f, -0.0834961f, 0.178955f, -0.074707f, 0.189941f, -0.065918f, 0.207031f,
+-0.0620117f, 0.224121f, -0.0581055f, 0.247559f, -0.0581055f, 0.278809f, -0.0581055f,
+0.306152f, -0.0690918f, 0.333496f, -0.0800781f, 0.355225f, -0.10083f, 0.376953f,
+-0.121582f, 0.392578f, -0.1521f, 0.408203f, -0.182617f, 0.415527f, -0.222168f, 0.475098f,
+-0.52832f, 0.563477f, -0.52832f, 0.48291f, -0.112793f, 0.479492f, -0.0961914f, 0.476318f,
+-0.0778809f, 0.473145f, -0.0595703f, 0.470459f, -0.0432129f, 0.467773f, -0.0268555f,
+0.46582f, -0.0151367f, 0.463867f, -0.00341797f, 0.463867f, 0, 0.380859f, 0, 0.380859f,
+-0.00244141f, 0.382324f, -0.0131836f, 0.383789f, -0.0239258f, 0.385986f, -0.0378418f,
+0.388184f, -0.0517578f, 0.390381f, -0.0661621f, 0.392578f, -0.0805664f, 0.394531f,
+-0.090332f, 0.393066f, -0.090332f, 0.375977f, -0.0673828f, 0.357178f, -0.0488281f,
+0.338379f, -0.0302734f, 0.315674f, -0.017334f, 0.292969f, -0.00439453f, 0.265869f,
+0.00268555f, 0.23877f, 0.00976562f, 0.20459f, 0.00976562f, 0.133301f, 0.00976562f,
+0.0996094f, -0.0185547f, 0.065918f, -0.046875f, 0.065918f, -0.108887f, 0.065918f,
+-0.138184f, 0.0732422f, -0.17627f, 0.141602f, -0.52832f, 0.297852f, 0, 0.193848f,
+0, 0.0849609f, -0.52832f, 0.183594f, -0.52832f, 0.247559f, -0.18457f, 0.249023f,
+-0.173828f, 0.250732f, -0.158447f, 0.252441f, -0.143066f, 0.253906f, -0.126465f,
+0.255371f, -0.109863f, 0.256592f, -0.0944824f, 0.257812f, -0.0791016f, 0.258789f,
+-0.0688477f, 0.26416f, -0.0791016f, 0.271484f, -0.0944824f, 0.278809f, -0.109863f,
+0.287109f, -0.125977f, 0.29541f, -0.14209f, 0.303467f, -0.157471f, 0.311523f, -0.172852f,
+0.317383f, -0.183594f, 0.519043f, -0.52832f, 0.617188f, -0.52832f, 0.445801f, 0,
+0.346191f, 0, 0.321289f, -0.22998f, 0.319824f, -0.243164f, 0.318359f, -0.26001f,
+0.316895f, -0.276855f, 0.31543f, -0.29248f, 0.313477f, -0.310547f, 0.3125f, -0.328613f,
+0.304688f, -0.310547f, 0.295898f, -0.292969f, 0.288574f, -0.277832f, 0.280273f, -0.260498f,
+0.271973f, -0.243164f, 0.26416f, -0.228027f, 0.147461f, 0, 0.0483398f, 0, 0.0615234f,
+-0.52832f, 0.148438f, -0.52832f, 0.13623f, -0.231934f, 0.135742f, -0.220215f, 0.134277f,
+-0.199463f, 0.132812f, -0.178711f, 0.130859f, -0.155273f, 0.128906f, -0.131836f,
+0.126709f, -0.109375f, 0.124512f, -0.0869141f, 0.121582f, -0.0727539f, 0.131836f,
+-0.0947266f, 0.140625f, -0.114746f, 0.148438f, -0.131836f, 0.156738f, -0.149658f,
+0.165039f, -0.16748f, 0.17041f, -0.177246f, 0.276367f, -0.384277f, 0.370605f, -0.384277f,
+0.393555f, -0.176758f, 0.394531f, -0.166992f, 0.395752f, -0.149658f, 0.396973f, -0.132324f,
+0.397949f, -0.115234f, 0.399414f, -0.0952148f, 0.400391f, -0.0727539f, 0.40332f,
+-0.0874023f, 0.409668f, -0.109375f, 0.416016f, -0.131348f, 0.42334f, -0.154541f,
+0.430664f, -0.177734f, 0.4375f, -0.19873f, 0.444336f, -0.219727f, 0.448242f, -0.231934f,
+0.555176f, -0.52832f, 0.641113f, -0.52832f, 0.403809f, 0, 0.289062f, -0.216797f,
+0.0893555f, 0, -0.00537109f, 0, 0.25f, -0.271484f, 0.105957f, -0.52832f, 0.203125f,
+-0.52832f, 0.30957f, -0.322754f, 0.495117f, -0.52832f, 0.593262f, -0.52832f, 0.349609f,
+-0.272461f, 0.501953f, 0, 0.292969f, 0, 0.265137f, 0.0478516f, 0.238281f, 0.0861816f,
+0.211426f, 0.124512f, 0.182373f, 0.151611f, 0.15332f, 0.178711f, 0.121094f, 0.193115f,
+0.0888672f, 0.20752f, 0.0507812f, 0.20752f, 0.0341797f, 0.20752f, 0.0205078f, 0.206543f,
+0.00683594f, 0.205566f, -0.00830078f, 0.202148f, 0.00439453f, 0.13623f, 0.0131836f,
+0.137695f, 0.0249023f, 0.138428f, 0.0366211f, 0.13916f, 0.0449219f, 0.13916f, 0.0834961f,
+0.13916f, 0.123047f, 0.110352f, 0.162598f, 0.081543f, 0.198242f, 0.0185547f, 0.211426f,
+-0.00537109f, 0.0834961f, -0.52832f, 0.177246f, -0.52832f, 0.245605f, -0.214844f,
+0.248535f, -0.20166f, 0.252441f, -0.182373f, 0.256348f, -0.163086f, 0.26001f, -0.144287f,
+0.263672f, -0.125488f, 0.266357f, -0.110352f, 0.269043f, -0.0952148f, 0.269043f,
+-0.0908203f, 0.271484f, -0.0961914f, 0.280029f, -0.111084f, 0.288574f, -0.125977f,
+0.299561f, -0.144287f, 0.310547f, -0.162598f, 0.322021f, -0.181885f, 0.333496f, -0.201172f,
+0.341797f, -0.215332f, 0.525391f, -0.52832f, 0.618164f, -0.52832f, 0.0205078f, 0,
+0.0336914f, -0.0668945f, 0.442383f, -0.460449f, 0.129395f, -0.460449f, 0.142578f,
+-0.52832f, 0.554688f, -0.52832f, 0.541992f, -0.461426f, 0.132324f, -0.0678711f, 0.483398f,
+-0.0678711f, 0.470215f, 0, 0.296875f, 0.20752f, 0.269531f, 0.20752f, 0.247559f, 0.199463f,
+0.225586f, 0.191406f, 0.210205f, 0.176758f, 0.194824f, 0.162109f, 0.186768f, 0.141113f,
+0.178711f, 0.120117f, 0.178711f, 0.0942383f, 0.178711f, 0.0859375f, 0.179443f, 0.0773926f,
+0.180176f, 0.0688477f, 0.182129f, 0.0595703f, 0.21582f, -0.111816f, 0.216797f, -0.118652f,
+0.217529f, -0.124756f, 0.218262f, -0.130859f, 0.218262f, -0.13623f, 0.218262f, -0.160156f,
+0.20874f, -0.176514f, 0.199219f, -0.192871f, 0.183105f, -0.203369f, 0.166992f, -0.213867f,
+0.14624f, -0.218994f, 0.125488f, -0.224121f, 0.103516f, -0.225098f, 0.116211f, -0.291992f,
+0.141602f, -0.292969f, 0.166992f, -0.299316f, 0.192383f, -0.305664f, 0.213867f, -0.319092f,
+0.235352f, -0.33252f, 0.250977f, -0.353516f, 0.266602f, -0.374512f, 0.272461f, -0.404785f,
+0.306152f, -0.57666f, 0.312988f, -0.61084f, 0.328613f, -0.638184f, 0.344238f, -0.665527f,
+0.366943f, -0.684814f, 0.389648f, -0.704102f, 0.417969f, -0.714355f, 0.446289f, -0.724609f,
+0.478027f, -0.724609f, 0.607422f, -0.724609f, 0.594238f, -0.656738f, 0.490234f, -0.656738f,
+0.468262f, -0.656738f, 0.451416f, -0.651611f, 0.43457f, -0.646484f, 0.422363f, -0.635254f,
+0.410156f, -0.624023f, 0.401855f, -0.605957f, 0.393555f, -0.587891f, 0.388672f, -0.561523f,
+0.355469f, -0.392578f, 0.350098f, -0.364746f, 0.335693f, -0.342285f, 0.321289f, -0.319824f,
+0.302002f, -0.302979f, 0.282715f, -0.286133f, 0.260254f, -0.275391f, 0.237793f, -0.264648f,
+0.216797f, -0.259766f, 0.216797f, -0.258789f, 0.234375f, -0.254395f, 0.250488f, -0.245361f,
+0.266602f, -0.236328f, 0.279053f, -0.2229f, 0.291504f, -0.209473f, 0.298828f, -0.19165f,
+0.306152f, -0.173828f, 0.306152f, -0.151367f, 0.306152f, -0.14502f, 0.305664f, -0.138428f,
+0.305176f, -0.131836f, 0.303711f, -0.125f, 0.270508f, 0.0444336f, 0.268555f, 0.0546875f,
+0.267578f, 0.0637207f, 0.266602f, 0.0727539f, 0.266602f, 0.0805664f, 0.266602f, 0.112305f,
+0.283203f, 0.125977f, 0.299805f, 0.139648f, 0.335449f, 0.139648f, 0.439453f, 0.139648f,
+0.42627f, 0.20752f, 0.259277f, 0.20752f, 0.259277f, -0.724609f, 0.340332f, -0.724609f,
+0.340332f, 0.20752f, -0.0102539f, 0.20752f, 0.00292969f, 0.139648f, 0.106934f, 0.139648f,
+0.151367f, 0.139648f, 0.175537f, 0.11792f, 0.199707f, 0.0961914f, 0.209473f, 0.0444336f,
+0.242676f, -0.125f, 0.248047f, -0.15332f, 0.262207f, -0.176025f, 0.276367f, -0.19873f,
+0.29541f, -0.215332f, 0.314453f, -0.231934f, 0.33667f, -0.24292f, 0.358887f, -0.253906f,
+0.380859f, -0.258789f, 0.380859f, -0.259766f, 0.36377f, -0.26416f, 0.3479f, -0.272949f,
+0.332031f, -0.281738f, 0.31958f, -0.29541f, 0.307129f, -0.309082f, 0.299561f, -0.326904f,
+0.291992f, -0.344727f, 0.291992f, -0.367188f, 0.291992f, -0.373047f, 0.292725f, -0.379395f,
+0.293457f, -0.385742f, 0.294434f, -0.392578f, 0.327637f, -0.561523f, 0.32959f, -0.571777f,
+0.330566f, -0.580811f, 0.331543f, -0.589844f, 0.331543f, -0.597656f, 0.331543f, -0.629883f,
+0.314453f, -0.643311f, 0.297363f, -0.656738f, 0.261719f, -0.656738f, 0.157715f, -0.656738f,
+0.170898f, -0.724609f, 0.300293f, -0.724609f, 0.355469f, -0.724609f, 0.387207f, -0.694824f,
+0.418945f, -0.665039f, 0.418945f, -0.612305f, 0.418945f, -0.604004f, 0.418213f, -0.595215f,
+0.41748f, -0.586426f, 0.415527f, -0.57666f, 0.381836f, -0.404785f, 0.380859f, -0.397949f,
+0.380127f, -0.39209f, 0.379395f, -0.38623f, 0.379395f, -0.380859f, 0.379395f, -0.357422f,
+0.388916f, -0.341064f, 0.398438f, -0.324707f, 0.414307f, -0.313965f, 0.430176f, -0.303223f,
+0.450928f, -0.298096f, 0.47168f, -0.292969f, 0.494141f, -0.291992f, 0.481445f, -0.225098f,
+0.456055f, -0.224121f, 0.430664f, -0.217773f, 0.405273f, -0.211426f, 0.383789f, -0.198242f,
+0.362305f, -0.185059f, 0.34668f, -0.163818f, 0.331055f, -0.142578f, 0.325195f, -0.111816f,
+0.291504f, 0.0595703f, 0.285156f, 0.0927734f, 0.269287f, 0.119873f, 0.253418f, 0.146973f,
+0.230713f, 0.166504f, 0.208008f, 0.186035f, 0.179443f, 0.196777f, 0.150879f, 0.20752f,
+0.119141f, 0.20752f, 0.206543f, -0.394043f, 0.246094f, -0.394043f, 0.281738f, -0.382812f,
+0.317383f, -0.371582f, 0.350586f, -0.358887f, 0.370117f, -0.351562f, 0.394775f, -0.344238f,
+0.419434f, -0.336914f, 0.441895f, -0.336914f, 0.475586f, -0.336914f, 0.508057f, -0.349121f,
+0.540527f, -0.361328f, 0.569824f, -0.381836f, 0.555664f, -0.309082f, 0.538086f, -0.29834f,
+0.522217f, -0.290771f, 0.506348f, -0.283203f, 0.490234f, -0.278564f, 0.474121f, -0.273926f,
+0.457275f, -0.271973f, 0.44043f, -0.27002f, 0.420898f, -0.27002f, 0.387207f, -0.27002f,
+0.354004f, -0.280762f, 0.320801f, -0.291504f, 0.287598f, -0.304199f, 0.229004f, -0.326172f,
+0.186035f, -0.326172f, 0.16748f, -0.326172f, 0.150879f, -0.323242f, 0.134277f, -0.320312f,
+0.118652f, -0.314697f, 0.103027f, -0.309082f, 0.0878906f, -0.30127f, 0.0727539f,
+-0.293457f, 0.0566406f, -0.283203f, 0.0703125f, -0.353027f, 0.0981445f, -0.371582f,
+0.132568f, -0.382812f, 0.166992f, -0.394043f, 0.206543f, -0.394043f
+};
+
+const unsigned char LiberationMonoItalicVerbs[] = {
+0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5,
+0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5,
+0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 5, 6
+};
+
+const unsigned LiberationMonoItalicCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
+101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+117, 118, 119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationMonoItalicWidths[] = {
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0
+};
+
+const int LiberationMonoItalicCharCodesCount = (int) SK_ARRAY_COUNT(LiberationMonoItalicCharCodes);
+
+const SkPaint::FontMetrics LiberationMonoItalicMetrics = {
+0x30307833, -0.83252f, -0.83252f, 0.300293f, 0.300293f, 0, 0.798828f, 0.0124817f,
+-0.0942383f, 0.70459f, 0.538086f, 0.0104446f, 0.0410156f, 0.23291f
+};
+
+const SkScalar LiberationMonoBoldItalicPoints[] = {
+0.0717773f, 0, 0.0717773f, -0.658691f, 0.52832f, -0.658691f, 0.52832f, 0, 0.470215f,
+-0.600586f, 0.129883f, -0.600586f, 0.129883f, -0.0581055f, 0.470215f, -0.0581055f,
+0.345703f, -0.208008f, 0.233398f, -0.208008f, 0.305176f, -0.658691f, 0.44873f, -0.658691f,
+0.177246f, 0, 0.202637f, -0.131836f, 0.343262f, -0.131836f, 0.317871f, 0, 0.48877f,
+-0.412109f, 0.391602f, -0.412109f, 0.43457f, -0.725098f, 0.568848f, -0.725098f, 0.266113f,
+-0.412109f, 0.168945f, -0.412109f, 0.211914f, -0.725098f, 0.345215f, -0.725098f,
+0.492188f, -0.407715f, 0.427734f, -0.249512f, 0.543457f, -0.249512f, 0.529297f, -0.176758f,
+0.397461f, -0.176758f, 0.325195f, 0, 0.249512f, 0, 0.322266f, -0.176758f, 0.171387f,
+-0.176758f, 0.0991211f, 0, 0.0244141f, 0, 0.0966797f, -0.176758f, 0.0117188f, -0.176758f,
+0.0258789f, -0.249512f, 0.126465f, -0.249512f, 0.191406f, -0.407715f, 0.0805664f,
+-0.407715f, 0.0947266f, -0.47998f, 0.221191f, -0.47998f, 0.294434f, -0.658691f, 0.369141f,
+-0.658691f, 0.296387f, -0.47998f, 0.446777f, -0.47998f, 0.52002f, -0.658691f, 0.594727f,
+-0.658691f, 0.521973f, -0.47998f, 0.612305f, -0.47998f, 0.598145f, -0.407715f, 0.266113f,
+-0.407715f, 0.201172f, -0.249512f, 0.352051f, -0.249512f, 0.416992f, -0.407715f,
+0.54834f, -0.191895f, 0.540527f, -0.150391f, 0.520264f, -0.116455f, 0.5f, -0.0825195f,
+0.466553f, -0.0578613f, 0.433105f, -0.0332031f, 0.385986f, -0.0187988f, 0.338867f,
+-0.00439453f, 0.276855f, -0.00195312f, 0.260254f, 0.0834961f, 0.207031f, 0.0834961f,
+0.223145f, -0.000488281f, 0.167969f, -0.00244141f, 0.129395f, -0.015625f, 0.0908203f,
+-0.0288086f, 0.0664062f, -0.0527344f, 0.0419922f, -0.0766602f, 0.0307617f, -0.111084f,
+0.0195312f, -0.145508f, 0.0195312f, -0.189941f, 0.148926f, -0.212891f, 0.148438f,
+-0.189453f, 0.1521f, -0.170166f, 0.155762f, -0.150879f, 0.16626f, -0.136719f, 0.176758f,
+-0.122559f, 0.195068f, -0.113525f, 0.213379f, -0.104492f, 0.242676f, -0.101562f,
+0.279785f, -0.29248f, 0.278809f, -0.293457f, 0.273193f, -0.294678f, 0.267578f, -0.295898f,
+0.265625f, -0.295898f, 0.233398f, -0.303711f, 0.203125f, -0.314697f, 0.172852f, -0.325684f,
+0.149414f, -0.343018f, 0.125977f, -0.360352f, 0.111572f, -0.385986f, 0.097168f, -0.411621f,
+0.097168f, -0.449219f, 0.097168f, -0.470703f, 0.102051f, -0.493652f, 0.11084f, -0.538086f,
+0.132812f, -0.570068f, 0.154785f, -0.602051f, 0.187744f, -0.623047f, 0.220703f, -0.644043f,
+0.262695f, -0.654785f, 0.304688f, -0.665527f, 0.353027f, -0.66748f, 0.365723f, -0.73291f,
+0.418945f, -0.73291f, 0.40625f, -0.66748f, 0.45752f, -0.665527f, 0.492432f, -0.653809f,
+0.527344f, -0.64209f, 0.549072f, -0.62085f, 0.570801f, -0.599609f, 0.581055f, -0.568604f,
+0.591309f, -0.537598f, 0.593262f, -0.496582f, 0.460449f, -0.477539f, 0.461914f, -0.561523f,
+0.387695f, -0.571777f, 0.354004f, -0.399902f, 0.356445f, -0.398926f, 0.359131f, -0.398926f,
+0.361816f, -0.398926f, 0.364258f, -0.397949f, 0.399902f, -0.38916f, 0.433838f, -0.378174f,
+0.467773f, -0.367188f, 0.494385f, -0.349121f, 0.520996f, -0.331055f, 0.537109f, -0.304199f,
+0.553223f, -0.277344f, 0.553223f, -0.236816f, 0.553223f, -0.226562f, 0.552002f, -0.215332f,
+0.550781f, -0.204102f, 0.54834f, -0.191895f, 0.334473f, -0.57373f, 0.308105f, -0.571777f,
+0.289795f, -0.564941f, 0.271484f, -0.558105f, 0.259033f, -0.547607f, 0.246582f, -0.537109f,
+0.239746f, -0.523682f, 0.23291f, -0.510254f, 0.22998f, -0.495605f, 0.228027f, -0.486328f,
+0.228027f, -0.477051f, 0.228027f, -0.461914f, 0.233887f, -0.451904f, 0.239746f, -0.441895f,
+0.249756f, -0.434814f, 0.259766f, -0.427734f, 0.273438f, -0.422607f, 0.287109f, -0.41748f,
+0.303223f, -0.411621f, 0.421387f, -0.189941f, 0.42334f, -0.199219f, 0.42334f, -0.208984f,
+0.42334f, -0.226562f, 0.416016f, -0.237793f, 0.408691f, -0.249023f, 0.395996f, -0.256836f,
+0.383301f, -0.264648f, 0.366699f, -0.269775f, 0.350098f, -0.274902f, 0.331055f, -0.280762f,
+0.295898f, -0.101562f, 0.348633f, -0.10498f, 0.380859f, -0.125977f, 0.413086f, -0.146973f,
+0.421387f, -0.189941f, 0.0639648f, 0, -0.0214844f, 0, 0.562012f, -0.660645f, 0.648438f,
+-0.660645f, 0.220215f, -0.664551f, 0.243652f, -0.664551f, 0.26416f, -0.659424f, 0.284668f,
+-0.654297f, 0.299805f, -0.641846f, 0.314941f, -0.629395f, 0.323486f, -0.608887f,
+0.332031f, -0.588379f, 0.332031f, -0.557129f, 0.332031f, -0.532715f, 0.326172f, -0.500488f,
+0.317383f, -0.453613f, 0.300049f, -0.421875f, 0.282715f, -0.390137f, 0.26001f, -0.370605f,
+0.237305f, -0.351074f, 0.210205f, -0.342529f, 0.183105f, -0.333984f, 0.153809f, -0.333984f,
+0.129395f, -0.333984f, 0.108398f, -0.339844f, 0.0874023f, -0.345703f, 0.0722656f,
+-0.358887f, 0.0571289f, -0.37207f, 0.048584f, -0.393311f, 0.0400391f, -0.414551f,
+0.0400391f, -0.445312f, 0.0400391f, -0.469727f, 0.0458984f, -0.500488f, 0.0551758f,
+-0.548828f, 0.0722656f, -0.580322f, 0.0893555f, -0.611816f, 0.112061f, -0.630615f,
+0.134766f, -0.649414f, 0.162354f, -0.656982f, 0.189941f, -0.664551f, 0.220215f, -0.664551f,
+0.240234f, -0.500488f, 0.243164f, -0.514648f, 0.244385f, -0.526611f, 0.245605f, -0.538574f,
+0.245605f, -0.54834f, 0.245605f, -0.576172f, 0.235352f, -0.587402f, 0.225098f, -0.598633f,
+0.206055f, -0.598633f, 0.178711f, -0.598633f, 0.160645f, -0.576416f, 0.142578f, -0.554199f,
+0.131836f, -0.500488f, 0.129395f, -0.486816f, 0.12793f, -0.475586f, 0.126465f, -0.464355f,
+0.126465f, -0.45459f, 0.126465f, -0.426758f, 0.136963f, -0.414551f, 0.147461f, -0.402344f,
+0.167969f, -0.402344f, 0.192383f, -0.402344f, 0.211182f, -0.425049f, 0.22998f, -0.447754f,
+0.240234f, -0.500488f, 0.474121f, -0.324707f, 0.497559f, -0.324707f, 0.518066f, -0.31958f,
+0.538574f, -0.314453f, 0.553711f, -0.302002f, 0.568848f, -0.289551f, 0.577637f, -0.268799f,
+0.586426f, -0.248047f, 0.586426f, -0.216797f, 0.586426f, -0.192383f, 0.580566f, -0.160645f,
+0.571289f, -0.11377f, 0.554199f, -0.0820312f, 0.537109f, -0.050293f, 0.514404f, -0.0307617f,
+0.491699f, -0.0112305f, 0.4646f, -0.00268555f, 0.4375f, 0.00585938f, 0.408203f, 0.00585938f,
+0.383789f, 0.00585938f, 0.362793f, 0, 0.341797f, -0.00585938f, 0.32666f, -0.019043f,
+0.311523f, -0.0322266f, 0.302979f, -0.0534668f, 0.294434f, -0.074707f, 0.294434f,
+-0.105469f, 0.294434f, -0.129883f, 0.300293f, -0.160645f, 0.30957f, -0.208984f, 0.32666f,
+-0.240479f, 0.34375f, -0.271973f, 0.366455f, -0.290771f, 0.38916f, -0.30957f, 0.416504f,
+-0.317139f, 0.443848f, -0.324707f, 0.474121f, -0.324707f, 0.494629f, -0.160645f,
+0.497559f, -0.174805f, 0.498779f, -0.186768f, 0.5f, -0.19873f, 0.5f, -0.208496f,
+0.5f, -0.236328f, 0.489746f, -0.247559f, 0.479492f, -0.258789f, 0.460449f, -0.258789f,
+0.433105f, -0.258789f, 0.415039f, -0.236572f, 0.396973f, -0.214355f, 0.38623f, -0.160645f,
+0.383789f, -0.146973f, 0.382324f, -0.135742f, 0.380859f, -0.124512f, 0.380859f, -0.114746f,
+0.380859f, -0.0869141f, 0.391357f, -0.074707f, 0.401855f, -0.0625f, 0.422363f, -0.0625f,
+0.446777f, -0.0625f, 0.465576f, -0.0852051f, 0.484375f, -0.10791f, 0.494629f, -0.160645f,
+-0.00439453f, -0.180176f, 0.00244141f, -0.214355f, 0.0197754f, -0.244385f, 0.0371094f,
+-0.274414f, 0.0620117f, -0.299805f, 0.0869141f, -0.325195f, 0.117676f, -0.345459f,
+0.148438f, -0.365723f, 0.181641f, -0.380371f, 0.175293f, -0.400879f, 0.171875f, -0.423096f,
+0.168457f, -0.445312f, 0.168457f, -0.467773f, 0.168457f, -0.479004f, 0.169434f, -0.489746f,
+0.17041f, -0.500488f, 0.172363f, -0.510742f, 0.178223f, -0.541504f, 0.193115f, -0.569092f,
+0.208008f, -0.59668f, 0.233154f, -0.617432f, 0.258301f, -0.638184f, 0.294189f, -0.650391f,
+0.330078f, -0.662598f, 0.378418f, -0.662598f, 0.410156f, -0.662598f, 0.436035f, -0.655273f,
+0.461914f, -0.647949f, 0.480469f, -0.633789f, 0.499023f, -0.619629f, 0.509033f, -0.599365f,
+0.519043f, -0.579102f, 0.519043f, -0.552734f, 0.519043f, -0.539551f, 0.516113f, -0.523926f,
+0.509766f, -0.490234f, 0.489258f, -0.463623f, 0.46875f, -0.437012f, 0.439453f, -0.415527f,
+0.410156f, -0.394043f, 0.374512f, -0.376221f, 0.338867f, -0.358398f, 0.302246f, -0.342773f,
+0.317383f, -0.302734f, 0.335693f, -0.266602f, 0.354004f, -0.230469f, 0.378418f, -0.195312f,
+0.404785f, -0.23291f, 0.425537f, -0.272217f, 0.446289f, -0.311523f, 0.461914f, -0.353516f,
+0.558594f, -0.340332f, 0.538086f, -0.285645f, 0.508545f, -0.231201f, 0.479004f, -0.176758f,
+0.441895f, -0.12793f, 0.458984f, -0.109863f, 0.47876f, -0.101074f, 0.498535f, -0.0922852f,
+0.517578f, -0.0922852f, 0.528809f, -0.0922852f, 0.541992f, -0.0944824f, 0.555176f,
+-0.0966797f, 0.564453f, -0.100586f, 0.545898f, -0.00488281f, 0.535156f, 0.000488281f,
+0.521729f, 0.00292969f, 0.508301f, 0.00537109f, 0.497559f, 0.00537109f, 0.473633f,
+0.00537109f, 0.453613f, 0.000732422f, 0.433594f, -0.00390625f, 0.416992f, -0.0114746f,
+0.400391f, -0.019043f, 0.386719f, -0.0292969f, 0.373047f, -0.0395508f, 0.361816f,
+-0.0507812f, 0.344238f, -0.0390625f, 0.323242f, -0.0280762f, 0.302246f, -0.0170898f,
+0.278809f, -0.00878906f, 0.255371f, -0.000488281f, 0.229248f, 0.00439453f, 0.203125f,
+0.00927734f, 0.174805f, 0.00927734f, 0.125977f, 0.00927734f, 0.0910645f, -0.0012207f,
+0.0561523f, -0.0117188f, 0.0339355f, -0.0307617f, 0.0117188f, -0.0498047f, 0.0012207f,
+-0.0761719f, -0.00927734f, -0.102539f, -0.00927734f, -0.134277f, -0.00927734f, -0.145508f,
+-0.00805664f, -0.156738f, -0.00683594f, -0.167969f, -0.00439453f, -0.180176f, 0.298828f,
+-0.116699f, 0.270996f, -0.156738f, 0.246826f, -0.200684f, 0.222656f, -0.244629f,
+0.205078f, -0.29248f, 0.188965f, -0.28418f, 0.174316f, -0.272949f, 0.159668f, -0.261719f,
+0.147461f, -0.247803f, 0.135254f, -0.233887f, 0.126709f, -0.217285f, 0.118164f, -0.200684f,
+0.114746f, -0.182129f, 0.113281f, -0.175293f, 0.112793f, -0.168945f, 0.112305f, -0.162598f,
+0.112305f, -0.15625f, 0.112305f, -0.139648f, 0.117188f, -0.125488f, 0.12207f, -0.111328f,
+0.132568f, -0.101074f, 0.143066f, -0.0908203f, 0.15918f, -0.0852051f, 0.175293f,
+-0.0795898f, 0.197266f, -0.0795898f, 0.212402f, -0.0795898f, 0.226807f, -0.0830078f,
+0.241211f, -0.0864258f, 0.25415f, -0.0915527f, 0.26709f, -0.0966797f, 0.278564f,
+-0.103516f, 0.290039f, -0.110352f, 0.298828f, -0.116699f, 0.411133f, -0.522949f,
+0.412598f, -0.53125f, 0.412598f, -0.538086f, 0.412598f, -0.558594f, 0.400146f, -0.571045f,
+0.387695f, -0.583496f, 0.361816f, -0.583496f, 0.325684f, -0.583496f, 0.302979f, -0.563232f,
+0.280273f, -0.542969f, 0.273926f, -0.509766f, 0.272461f, -0.50293f, 0.271973f, -0.49585f,
+0.271484f, -0.48877f, 0.271484f, -0.481445f, 0.271484f, -0.465332f, 0.27417f, -0.449463f,
+0.276855f, -0.433594f, 0.281738f, -0.419434f, 0.306152f, -0.429688f, 0.327881f, -0.440186f,
+0.349609f, -0.450684f, 0.366943f, -0.462891f, 0.384277f, -0.475098f, 0.395996f, -0.48999f,
+0.407715f, -0.504883f, 0.411133f, -0.522949f, 0.377441f, -0.412109f, 0.280273f, -0.412109f,
+0.323242f, -0.725098f, 0.456543f, -0.725098f, 0.221191f, 0.20752f, 0.185059f, 0.135254f,
+0.166992f, 0.0632324f, 0.148926f, -0.00878906f, 0.148926f, -0.0883789f, 0.148926f,
+-0.128418f, 0.153564f, -0.170654f, 0.158203f, -0.212891f, 0.166992f, -0.259277f,
+0.180664f, -0.329102f, 0.200928f, -0.389893f, 0.221191f, -0.450684f, 0.25f, -0.50708f,
+0.278809f, -0.563477f, 0.316406f, -0.616943f, 0.354004f, -0.67041f, 0.402344f, -0.724609f,
+0.539551f, -0.724609f, 0.489746f, -0.667969f, 0.451172f, -0.612793f, 0.412598f, -0.557617f,
+0.383789f, -0.500977f, 0.35498f, -0.444336f, 0.334961f, -0.384521f, 0.314941f, -0.324707f,
+0.302246f, -0.258789f, 0.293945f, -0.214355f, 0.289551f, -0.173828f, 0.285156f, -0.133301f,
+0.285156f, -0.0942383f, 0.285156f, -0.015625f, 0.303223f, 0.0578613f, 0.321289f,
+0.131348f, 0.358398f, 0.20752f, 0.0581055f, 0.20752f, 0.108398f, 0.150391f, 0.146973f,
+0.095459f, 0.185547f, 0.0405273f, 0.214355f, -0.0161133f, 0.243164f, -0.0727539f,
+0.263184f, -0.132568f, 0.283203f, -0.192383f, 0.295898f, -0.258789f, 0.304199f, -0.302734f,
+0.308594f, -0.343262f, 0.312988f, -0.383789f, 0.312988f, -0.422852f, 0.312988f, -0.501953f,
+0.294922f, -0.575195f, 0.276855f, -0.648438f, 0.239258f, -0.724609f, 0.376465f, -0.724609f,
+0.394531f, -0.688477f, 0.408203f, -0.652588f, 0.421875f, -0.616699f, 0.430908f, -0.580566f,
+0.439941f, -0.544434f, 0.44458f, -0.506836f, 0.449219f, -0.469238f, 0.449219f, -0.429688f,
+0.449219f, -0.390137f, 0.444824f, -0.3479f, 0.44043f, -0.305664f, 0.431152f, -0.259277f,
+0.417969f, -0.189941f, 0.397461f, -0.128662f, 0.376953f, -0.0673828f, 0.348145f,
+-0.0107422f, 0.319336f, 0.0458984f, 0.281494f, 0.0996094f, 0.243652f, 0.15332f, 0.195312f,
+0.20752f, 0.408203f, -0.590332f, 0.532715f, -0.641113f, 0.547363f, -0.544922f, 0.419434f,
+-0.515137f, 0.490234f, -0.411133f, 0.388672f, -0.352051f, 0.341309f, -0.475098f,
+0.244629f, -0.352051f, 0.165527f, -0.412109f, 0.27832f, -0.515137f, 0.162109f, -0.544922f,
+0.213867f, -0.641113f, 0.320801f, -0.590332f, 0.337891f, -0.724121f, 0.442871f, -0.724121f,
+0.354492f, -0.277832f, 0.354492f, -0.0786133f, 0.244141f, -0.0786133f, 0.244141f,
+-0.277832f, 0.0493164f, -0.277832f, 0.0493164f, -0.387207f, 0.244141f, -0.387207f,
+0.244141f, -0.586426f, 0.354492f, -0.586426f, 0.354492f, -0.387207f, 0.550781f, -0.387207f,
+0.550781f, -0.277832f, 0.0400391f, 0.177246f, 0.185547f, -0.145996f, 0.339355f, -0.145996f,
+0.124512f, 0.177246f, 0.145996f, -0.199707f, 0.168945f, -0.318848f, 0.452148f, -0.318848f,
+0.429199f, -0.199707f, 0.178223f, 0, 0.207031f, -0.148926f, 0.348145f, -0.148926f,
+0.319336f, 0, -0.00976562f, 0.00976562f, 0.533691f, -0.724609f, 0.64502f, -0.724609f,
+0.103516f, 0.00976562f, 0.550293f, -0.32959f, 0.532227f, -0.236328f, 0.501709f, -0.171631f,
+0.471191f, -0.106934f, 0.431396f, -0.0666504f, 0.391602f, -0.0263672f, 0.344238f,
+-0.00830078f, 0.296875f, 0.00976562f, 0.245117f, 0.00976562f, 0.203613f, 0.00976562f,
+0.169434f, -0.00170898f, 0.135254f, -0.0131836f, 0.111084f, -0.0380859f, 0.0869141f,
+-0.0629883f, 0.0737305f, -0.102783f, 0.0605469f, -0.142578f, 0.0605469f, -0.199219f,
+0.0605469f, -0.227539f, 0.0639648f, -0.26001f, 0.0673828f, -0.29248f, 0.074707f,
+-0.32959f, 0.09375f, -0.427734f, 0.124023f, -0.493164f, 0.154297f, -0.558594f, 0.193359f,
+-0.597656f, 0.232422f, -0.636719f, 0.279785f, -0.652832f, 0.327148f, -0.668945f,
+0.380859f, -0.668945f, 0.421387f, -0.668945f, 0.455078f, -0.658691f, 0.48877f, -0.648438f,
+0.513428f, -0.624756f, 0.538086f, -0.601074f, 0.551758f, -0.562012f, 0.56543f, -0.522949f,
+0.56543f, -0.464844f, 0.56543f, -0.406738f, 0.550293f, -0.32959f, 0.412598f, -0.32959f,
+0.421387f, -0.375f, 0.425781f, -0.409424f, 0.430176f, -0.443848f, 0.430176f, -0.470215f,
+0.430176f, -0.495605f, 0.425781f, -0.513184f, 0.421387f, -0.530762f, 0.412598f, -0.541504f,
+0.403809f, -0.552246f, 0.390625f, -0.556885f, 0.377441f, -0.561523f, 0.359375f, -0.561523f,
+0.330566f, -0.561523f, 0.308838f, -0.550293f, 0.287109f, -0.539062f, 0.27002f, -0.512207f,
+0.25293f, -0.485352f, 0.239014f, -0.440674f, 0.225098f, -0.395996f, 0.211914f, -0.32959f,
+0.203613f, -0.285156f, 0.199219f, -0.251465f, 0.194824f, -0.217773f, 0.194824f, -0.191895f,
+0.194824f, -0.140625f, 0.212402f, -0.119385f, 0.22998f, -0.0981445f, 0.26709f, -0.0981445f,
+0.293945f, -0.0981445f, 0.315186f, -0.109619f, 0.336426f, -0.121094f, 0.354004f,
+-0.148193f, 0.371582f, -0.175293f, 0.385742f, -0.219727f, 0.399902f, -0.26416f, 0.412598f,
+-0.32959f, 0.0214844f, 0, 0.0415039f, -0.102051f, 0.231445f, -0.102051f, 0.315918f,
+-0.537109f, 0.302734f, -0.517578f, 0.279785f, -0.500244f, 0.256836f, -0.48291f, 0.228027f,
+-0.470215f, 0.199219f, -0.45752f, 0.166748f, -0.449951f, 0.134277f, -0.442383f, 0.102051f,
+-0.442383f, 0.122559f, -0.546875f, 0.158691f, -0.546875f, 0.19165f, -0.555176f, 0.224609f,
+-0.563477f, 0.253174f, -0.578369f, 0.281738f, -0.593262f, 0.30542f, -0.61377f, 0.329102f,
+-0.634277f, 0.34668f, -0.658691f, 0.476562f, -0.658691f, 0.368652f, -0.102051f, 0.526367f,
+-0.102051f, 0.506348f, 0, 0.00878906f, 0, 0.0273438f, -0.0952148f, 0.0610352f, -0.146484f,
+0.102783f, -0.187988f, 0.144531f, -0.229492f, 0.187988f, -0.263916f, 0.231445f, -0.29834f,
+0.273438f, -0.327148f, 0.31543f, -0.355957f, 0.349609f, -0.38208f, 0.383789f, -0.408203f,
+0.406494f, -0.433105f, 0.429199f, -0.458008f, 0.43457f, -0.484375f, 0.436035f, -0.493164f,
+0.436035f, -0.501465f, 0.436035f, -0.528809f, 0.416748f, -0.544189f, 0.397461f, -0.55957f,
+0.358887f, -0.55957f, 0.314941f, -0.55957f, 0.287109f, -0.535889f, 0.259277f, -0.512207f,
+0.243164f, -0.464844f, 0.106445f, -0.472656f, 0.119141f, -0.513184f, 0.141357f, -0.548828f,
+0.163574f, -0.584473f, 0.196777f, -0.611328f, 0.22998f, -0.638184f, 0.275146f, -0.653564f,
+0.320312f, -0.668945f, 0.378906f, -0.668945f, 0.428223f, -0.668945f, 0.465576f, -0.658203f,
+0.50293f, -0.647461f, 0.527832f, -0.628418f, 0.552734f, -0.609375f, 0.56543f, -0.582764f,
+0.578125f, -0.556152f, 0.578125f, -0.524414f, 0.578125f, -0.506836f, 0.574707f, -0.490234f,
+0.566406f, -0.446777f, 0.540283f, -0.410889f, 0.51416f, -0.375f, 0.478271f, -0.343506f,
+0.442383f, -0.312012f, 0.400635f, -0.283691f, 0.358887f, -0.255371f, 0.319336f, -0.228027f,
+0.279785f, -0.200684f, 0.246094f, -0.172607f, 0.212402f, -0.144531f, 0.192871f, -0.112793f,
+0.512207f, -0.112793f, 0.490234f, 0, 0.533691f, -0.183594f, 0.524902f, -0.139648f,
+0.501953f, -0.103516f, 0.479004f, -0.0673828f, 0.442383f, -0.0419922f, 0.405762f,
+-0.0166016f, 0.356689f, -0.00268555f, 0.307617f, 0.0112305f, 0.24707f, 0.0112305f,
+0.184082f, 0.0112305f, 0.142334f, -0.00292969f, 0.100586f, -0.0170898f, 0.0751953f,
+-0.0407715f, 0.0498047f, -0.0644531f, 0.0393066f, -0.095459f, 0.0288086f, -0.126465f,
+0.0288086f, -0.160645f, 0.0288086f, -0.165527f, 0.0288086f, -0.170166f, 0.0288086f,
+-0.174805f, 0.0292969f, -0.179688f, 0.170898f, -0.191895f, 0.168457f, -0.147461f,
+0.191406f, -0.123779f, 0.214355f, -0.100098f, 0.268066f, -0.100098f, 0.29248f, -0.100098f,
+0.313721f, -0.106201f, 0.334961f, -0.112305f, 0.351562f, -0.124023f, 0.368164f, -0.135742f,
+0.37915f, -0.152832f, 0.390137f, -0.169922f, 0.394531f, -0.191895f, 0.395508f, -0.196289f,
+0.395996f, -0.200684f, 0.396484f, -0.205078f, 0.396484f, -0.208984f, 0.396484f, -0.230957f,
+0.384521f, -0.244873f, 0.372559f, -0.258789f, 0.354492f, -0.266357f, 0.336426f, -0.273926f,
+0.314941f, -0.276611f, 0.293457f, -0.279297f, 0.274902f, -0.279297f, 0.227051f, -0.279297f,
+0.248535f, -0.390137f, 0.293457f, -0.390137f, 0.313965f, -0.390137f, 0.33667f, -0.393799f,
+0.359375f, -0.397461f, 0.379395f, -0.407227f, 0.399414f, -0.416992f, 0.414307f, -0.433594f,
+0.429199f, -0.450195f, 0.434082f, -0.476074f, 0.435547f, -0.484863f, 0.435547f, -0.492676f,
+0.435547f, -0.522949f, 0.414062f, -0.54126f, 0.392578f, -0.55957f, 0.352539f, -0.55957f,
+0.310059f, -0.55957f, 0.279297f, -0.539795f, 0.248535f, -0.52002f, 0.23584f, -0.477051f,
+0.100586f, -0.486816f, 0.115723f, -0.535156f, 0.143311f, -0.56958f, 0.170898f, -0.604004f,
+0.207275f, -0.625977f, 0.243652f, -0.647949f, 0.286865f, -0.658447f, 0.330078f, -0.668945f,
+0.375977f, -0.668945f, 0.429199f, -0.668945f, 0.467773f, -0.657715f, 0.506348f, -0.646484f,
+0.53125f, -0.626953f, 0.556152f, -0.607422f, 0.567871f, -0.581299f, 0.57959f, -0.555176f,
+0.57959f, -0.525391f, 0.57959f, -0.51709f, 0.578613f, -0.509277f, 0.577637f, -0.501465f,
+0.576172f, -0.493164f, 0.570801f, -0.465332f, 0.557373f, -0.440674f, 0.543945f, -0.416016f,
+0.521973f, -0.395996f, 0.5f, -0.375977f, 0.469482f, -0.361328f, 0.438965f, -0.34668f,
+0.399414f, -0.339355f, 0.398926f, -0.337402f, 0.435059f, -0.333008f, 0.461182f, -0.321777f,
+0.487305f, -0.310547f, 0.50415f, -0.293945f, 0.520996f, -0.277344f, 0.528809f, -0.256348f,
+0.536621f, -0.235352f, 0.536621f, -0.212402f, 0.536621f, -0.198242f, 0.533691f, -0.183594f,
+0.45459f, -0.140137f, 0.427246f, 0, 0.296387f, 0, 0.32373f, -0.140137f, 0.0107422f,
+-0.140137f, 0.0307617f, -0.243164f, 0.401855f, -0.658691f, 0.555176f, -0.658691f,
+0.474121f, -0.242188f, 0.565918f, -0.242188f, 0.546387f, -0.140137f, 0.382324f, -0.442871f,
+0.383789f, -0.451172f, 0.386963f, -0.4646f, 0.390137f, -0.478027f, 0.393311f, -0.492188f,
+0.396484f, -0.506348f, 0.399902f, -0.519287f, 0.40332f, -0.532227f, 0.405762f, -0.539551f,
+0.402344f, -0.53418f, 0.394775f, -0.52417f, 0.387207f, -0.51416f, 0.378418f, -0.502686f,
+0.369629f, -0.491211f, 0.360596f, -0.47998f, 0.351562f, -0.46875f, 0.344238f, -0.460449f,
+0.145508f, -0.242188f, 0.343262f, -0.242188f, 0.540039f, -0.22168f, 0.530762f, -0.172852f,
+0.505859f, -0.130371f, 0.480957f, -0.0878906f, 0.442871f, -0.0568848f, 0.404785f,
+-0.0258789f, 0.35376f, -0.00805664f, 0.302734f, 0.00976562f, 0.240234f, 0.00976562f,
+0.184082f, 0.00976562f, 0.144531f, -0.00366211f, 0.10498f, -0.0170898f, 0.0800781f,
+-0.0405273f, 0.0551758f, -0.0639648f, 0.0439453f, -0.0957031f, 0.0327148f, -0.127441f,
+0.0327148f, -0.164062f, 0.0327148f, -0.171875f, 0.172363f, -0.183105f, 0.172852f,
+-0.166992f, 0.177246f, -0.151855f, 0.181641f, -0.136719f, 0.191895f, -0.125f, 0.202148f,
+-0.113281f, 0.219238f, -0.106201f, 0.236328f, -0.0991211f, 0.262695f, -0.0991211f,
+0.288574f, -0.0991211f, 0.310791f, -0.106934f, 0.333008f, -0.114746f, 0.350586f,
+-0.129883f, 0.368164f, -0.14502f, 0.380371f, -0.16748f, 0.392578f, -0.189941f, 0.398438f,
+-0.21875f, 0.401367f, -0.233398f, 0.401367f, -0.24707f, 0.401367f, -0.285645f, 0.378174f,
+-0.308105f, 0.35498f, -0.330566f, 0.311035f, -0.330566f, 0.276855f, -0.330566f, 0.252197f,
+-0.317627f, 0.227539f, -0.304688f, 0.208984f, -0.286133f, 0.0751953f, -0.286133f,
+0.171387f, -0.658691f, 0.584961f, -0.658691f, 0.56543f, -0.556641f, 0.276367f, -0.556641f,
+0.233887f, -0.397461f, 0.258301f, -0.415527f, 0.291992f, -0.428467f, 0.325684f, -0.441406f,
+0.367188f, -0.441406f, 0.410645f, -0.441406f, 0.443848f, -0.429443f, 0.477051f, -0.41748f,
+0.499512f, -0.395508f, 0.521973f, -0.373535f, 0.533691f, -0.342773f, 0.54541f, -0.312012f,
+0.54541f, -0.274414f, 0.54541f, -0.25f, 0.540039f, -0.22168f, 0.535645f, -0.217773f,
+0.525879f, -0.168457f, 0.503174f, -0.126709f, 0.480469f, -0.0849609f, 0.445312f,
+-0.0546875f, 0.410156f, -0.0244141f, 0.363525f, -0.00732422f, 0.316895f, 0.00976562f,
+0.259766f, 0.00976562f, 0.210938f, 0.00976562f, 0.173828f, -0.00561523f, 0.136719f,
+-0.0209961f, 0.111816f, -0.0500488f, 0.0869141f, -0.0791016f, 0.0744629f, -0.12085f,
+0.0620117f, -0.162598f, 0.0620117f, -0.21582f, 0.0620117f, -0.267578f, 0.0737305f,
+-0.328125f, 0.090332f, -0.414551f, 0.119629f, -0.478516f, 0.148926f, -0.54248f, 0.189453f,
+-0.584961f, 0.22998f, -0.627441f, 0.281738f, -0.648193f, 0.333496f, -0.668945f, 0.39502f,
+-0.668945f, 0.436035f, -0.668945f, 0.468262f, -0.6604f, 0.500488f, -0.651855f, 0.522949f,
+-0.632812f, 0.54541f, -0.61377f, 0.558105f, -0.58374f, 0.570801f, -0.553711f, 0.57373f,
+-0.510742f, 0.440918f, -0.492676f, 0.438477f, -0.528809f, 0.419189f, -0.544678f,
+0.399902f, -0.560547f, 0.371094f, -0.560547f, 0.31543f, -0.560547f, 0.273926f, -0.507568f,
+0.232422f, -0.45459f, 0.212402f, -0.352539f, 0.241699f, -0.38916f, 0.284424f, -0.408691f,
+0.327148f, -0.428223f, 0.376465f, -0.428223f, 0.415527f, -0.428223f, 0.446045f, -0.417236f,
+0.476562f, -0.40625f, 0.497559f, -0.385986f, 0.518555f, -0.365723f, 0.529785f, -0.336426f,
+0.541016f, -0.307129f, 0.541016f, -0.270508f, 0.541016f, -0.257812f, 0.539551f, -0.244873f,
+0.538086f, -0.231934f, 0.535645f, -0.217773f, 0.396973f, -0.213867f, 0.398926f, -0.222168f,
+0.399658f, -0.230225f, 0.400391f, -0.238281f, 0.400391f, -0.245605f, 0.400391f, -0.282715f,
+0.379883f, -0.304932f, 0.359375f, -0.327148f, 0.317383f, -0.327148f, 0.299316f, -0.327148f,
+0.280029f, -0.321289f, 0.260742f, -0.31543f, 0.244385f, -0.303223f, 0.228027f, -0.291016f,
+0.215576f, -0.272461f, 0.203125f, -0.253906f, 0.198242f, -0.228516f, 0.196289f, -0.219727f,
+0.195557f, -0.211182f, 0.194824f, -0.202637f, 0.194824f, -0.194336f, 0.194824f, -0.173828f,
+0.200195f, -0.156006f, 0.205566f, -0.138184f, 0.21582f, -0.125f, 0.226074f, -0.111816f,
+0.241211f, -0.104492f, 0.256348f, -0.097168f, 0.276367f, -0.097168f, 0.299316f, -0.097168f,
+0.319092f, -0.105469f, 0.338867f, -0.11377f, 0.354492f, -0.12915f, 0.370117f, -0.144531f,
+0.381104f, -0.166016f, 0.39209f, -0.1875f, 0.396973f, -0.213867f, 0.588867f, -0.549805f,
+0.525879f, -0.481934f, 0.47168f, -0.415771f, 0.41748f, -0.349609f, 0.374268f, -0.282227f,
+0.331055f, -0.214844f, 0.300781f, -0.144775f, 0.270508f, -0.074707f, 0.255859f, 0,
+0.112793f, 0, 0.127441f, -0.0742188f, 0.159424f, -0.14502f, 0.191406f, -0.21582f,
+0.236816f, -0.283691f, 0.282227f, -0.351562f, 0.339111f, -0.416992f, 0.395996f, -0.482422f,
+0.460449f, -0.545898f, 0.118652f, -0.545898f, 0.140625f, -0.658691f, 0.609863f, -0.658691f,
+0.531738f, -0.186523f, 0.523926f, -0.14502f, 0.502197f, -0.109131f, 0.480469f, -0.0732422f,
+0.445068f, -0.046875f, 0.409668f, -0.0205078f, 0.360352f, -0.00537109f, 0.311035f,
+0.00976562f, 0.24707f, 0.00976562f, 0.191406f, 0.00976562f, 0.151123f, -0.00170898f,
+0.11084f, -0.0131836f, 0.0847168f, -0.0336914f, 0.0585938f, -0.0541992f, 0.0461426f,
+-0.0825195f, 0.0336914f, -0.11084f, 0.0336914f, -0.144531f, 0.0336914f, -0.164551f,
+0.0380859f, -0.185547f, 0.0449219f, -0.220215f, 0.0620117f, -0.248047f, 0.0791016f,
+-0.275879f, 0.102539f, -0.295898f, 0.125977f, -0.315918f, 0.153564f, -0.328369f,
+0.181152f, -0.34082f, 0.208984f, -0.345215f, 0.209473f, -0.347168f, 0.161621f, -0.358398f,
+0.136475f, -0.390625f, 0.111328f, -0.422852f, 0.111328f, -0.465332f, 0.111328f, -0.479492f,
+0.114258f, -0.494141f, 0.121582f, -0.532715f, 0.142578f, -0.564697f, 0.163574f, -0.59668f,
+0.197021f, -0.619873f, 0.230469f, -0.643066f, 0.275635f, -0.656006f, 0.320801f, -0.668945f,
+0.376953f, -0.668945f, 0.429199f, -0.668945f, 0.467285f, -0.658691f, 0.505371f, -0.648438f,
+0.530029f, -0.630127f, 0.554688f, -0.611816f, 0.566406f, -0.586426f, 0.578125f, -0.561035f,
+0.578125f, -0.530273f, 0.578125f, -0.521484f, 0.577148f, -0.512207f, 0.576172f, -0.50293f,
+0.574219f, -0.493164f, 0.569336f, -0.46875f, 0.556396f, -0.445312f, 0.543457f, -0.421875f,
+0.523438f, -0.4021f, 0.503418f, -0.382324f, 0.477539f, -0.368164f, 0.45166f, -0.354004f,
+0.421387f, -0.348145f, 0.420898f, -0.346191f, 0.446289f, -0.342285f, 0.467285f, -0.332275f,
+0.488281f, -0.322266f, 0.503418f, -0.306396f, 0.518555f, -0.290527f, 0.526855f, -0.269287f,
+0.535156f, -0.248047f, 0.535156f, -0.22168f, 0.535156f, -0.203613f, 0.531738f, -0.186523f,
+0.431641f, -0.48584f, 0.432617f, -0.492676f, 0.43335f, -0.499023f, 0.434082f, -0.505371f,
+0.434082f, -0.51123f, 0.434082f, -0.524414f, 0.430176f, -0.535889f, 0.42627f, -0.547363f,
+0.41748f, -0.55542f, 0.408691f, -0.563477f, 0.394287f, -0.568115f, 0.379883f, -0.572754f,
+0.358398f, -0.572754f, 0.333008f, -0.572754f, 0.314697f, -0.565918f, 0.296387f, -0.559082f,
+0.283691f, -0.547363f, 0.270996f, -0.535645f, 0.263428f, -0.519775f, 0.255859f, -0.503906f,
+0.252441f, -0.48584f, 0.251465f, -0.479492f, 0.250732f, -0.473389f, 0.25f, -0.467285f,
+0.25f, -0.460449f, 0.25f, -0.447754f, 0.253418f, -0.435791f, 0.256836f, -0.423828f,
+0.265137f, -0.414795f, 0.273438f, -0.405762f, 0.288086f, -0.400146f, 0.302734f, -0.394531f,
+0.324707f, -0.394531f, 0.354004f, -0.394531f, 0.373535f, -0.40332f, 0.393066f, -0.412109f,
+0.405029f, -0.425537f, 0.416992f, -0.438965f, 0.422852f, -0.455078f, 0.428711f, -0.471191f,
+0.431641f, -0.48584f, 0.39209f, -0.197754f, 0.39502f, -0.210938f, 0.39502f, -0.224609f,
+0.39502f, -0.239258f, 0.390625f, -0.252686f, 0.38623f, -0.266113f, 0.375977f, -0.276123f,
+0.365723f, -0.286133f, 0.348145f, -0.292236f, 0.330566f, -0.29834f, 0.304199f, -0.29834f,
+0.274902f, -0.29834f, 0.253174f, -0.289551f, 0.231445f, -0.280762f, 0.216797f, -0.266113f,
+0.202148f, -0.251465f, 0.193604f, -0.233154f, 0.185059f, -0.214844f, 0.181152f, -0.195801f,
+0.177734f, -0.179199f, 0.177734f, -0.162598f, 0.177734f, -0.145996f, 0.182373f, -0.131836f,
+0.187012f, -0.117676f, 0.197754f, -0.10791f, 0.208496f, -0.0981445f, 0.225342f, -0.0925293f,
+0.242188f, -0.0869141f, 0.26709f, -0.0869141f, 0.297852f, -0.0869141f, 0.319336f,
+-0.095459f, 0.34082f, -0.104004f, 0.355469f, -0.118896f, 0.370117f, -0.133789f, 0.378906f,
+-0.154053f, 0.387695f, -0.174316f, 0.39209f, -0.197754f, 0.554688f, -0.340332f, 0.538086f,
+-0.254395f, 0.508301f, -0.188965f, 0.478516f, -0.123535f, 0.437256f, -0.0793457f,
+0.395996f, -0.0351562f, 0.34375f, -0.0126953f, 0.291504f, 0.00976562f, 0.22998f,
+0.00976562f, 0.185547f, 0.00976562f, 0.1521f, 0.000488281f, 0.118652f, -0.00878906f,
+0.0959473f, -0.0283203f, 0.0732422f, -0.0478516f, 0.060791f, -0.0786133f, 0.0483398f,
+-0.109375f, 0.0458984f, -0.151855f, 0.178711f, -0.169922f, 0.181152f, -0.133301f,
+0.199951f, -0.115723f, 0.21875f, -0.0981445f, 0.252441f, -0.0981445f, 0.307617f,
+-0.0981445f, 0.349854f, -0.149414f, 0.39209f, -0.200684f, 0.412598f, -0.302246f,
+0.398926f, -0.283203f, 0.379883f, -0.268555f, 0.36084f, -0.253906f, 0.338867f, -0.244141f,
+0.316895f, -0.234375f, 0.292969f, -0.229248f, 0.269043f, -0.224121f, 0.245605f, -0.224121f,
+0.20752f, -0.224121f, 0.177734f, -0.235596f, 0.147949f, -0.24707f, 0.127197f, -0.268311f,
+0.106445f, -0.289551f, 0.0957031f, -0.319824f, 0.0849609f, -0.350098f, 0.0849609f,
+-0.387695f, 0.0849609f, -0.415039f, 0.0908203f, -0.445801f, 0.101074f, -0.498047f,
+0.125488f, -0.539307f, 0.149902f, -0.580566f, 0.186279f, -0.609375f, 0.222656f, -0.638184f,
+0.270264f, -0.653564f, 0.317871f, -0.668945f, 0.374512f, -0.668945f, 0.469238f, -0.668945f,
+0.518555f, -0.617676f, 0.567871f, -0.566406f, 0.567871f, -0.461426f, 0.567871f, -0.407715f,
+0.554688f, -0.340332f, 0.427246f, -0.429199f, 0.429199f, -0.438965f, 0.430176f, -0.448242f,
+0.431152f, -0.45752f, 0.431152f, -0.466309f, 0.431152f, -0.486816f, 0.42627f, -0.50415f,
+0.421387f, -0.521484f, 0.411377f, -0.53418f, 0.401367f, -0.546875f, 0.38623f, -0.554199f,
+0.371094f, -0.561523f, 0.350586f, -0.561523f, 0.327637f, -0.561523f, 0.307861f, -0.552979f,
+0.288086f, -0.544434f, 0.272461f, -0.529053f, 0.256836f, -0.513672f, 0.24585f, -0.492188f,
+0.234863f, -0.470703f, 0.22998f, -0.444824f, 0.226562f, -0.429199f, 0.226562f, -0.412598f,
+0.226562f, -0.394043f, 0.231445f, -0.378174f, 0.236328f, -0.362305f, 0.246094f, -0.35083f,
+0.255859f, -0.339355f, 0.270508f, -0.332764f, 0.285156f, -0.326172f, 0.305176f, -0.326172f,
+0.324219f, -0.326172f, 0.34375f, -0.33252f, 0.363281f, -0.338867f, 0.380127f, -0.351807f,
+0.396973f, -0.364746f, 0.409668f, -0.384033f, 0.422363f, -0.40332f, 0.427246f, -0.429199f,
+0.178223f, 0, 0.207031f, -0.148926f, 0.348145f, -0.148926f, 0.319336f, 0, 0.252441f,
+-0.380859f, 0.28125f, -0.529785f, 0.422363f, -0.529785f, 0.393555f, -0.380859f, 0.256836f,
+-0.380859f, 0.285645f, -0.529785f, 0.426758f, -0.529785f, 0.397949f, -0.380859f,
+0.0732422f, 0.177246f, 0.21875f, -0.145996f, 0.372559f, -0.145996f, 0.157715f, 0.177246f,
+0.0493164f, -0.251953f, 0.0493164f, -0.40918f, 0.550781f, -0.600098f, 0.550781f,
+-0.48877f, 0.144043f, -0.330078f, 0.550781f, -0.171875f, 0.550781f, -0.0610352f,
+0.0493164f, -0.411133f, 0.0493164f, -0.52002f, 0.550781f, -0.52002f, 0.550781f, -0.411133f,
+0.0493164f, -0.14209f, 0.0493164f, -0.25f, 0.550781f, -0.25f, 0.550781f, -0.14209f,
+0.0493164f, -0.0610352f, 0.0493164f, -0.171875f, 0.455566f, -0.330078f, 0.0493164f,
+-0.48877f, 0.0493164f, -0.600098f, 0.550781f, -0.40918f, 0.550781f, -0.251953f, 0.585938f,
+-0.481445f, 0.578125f, -0.442383f, 0.557861f, -0.414062f, 0.537598f, -0.385742f,
+0.510742f, -0.36377f, 0.483887f, -0.341797f, 0.454346f, -0.323975f, 0.424805f, -0.306152f,
+0.398438f, -0.287598f, 0.37207f, -0.269043f, 0.352295f, -0.248047f, 0.33252f, -0.227051f,
+0.325684f, -0.198242f, 0.195312f, -0.198242f, 0.203125f, -0.229492f, 0.217285f, -0.253906f,
+0.231445f, -0.27832f, 0.249268f, -0.297607f, 0.26709f, -0.316895f, 0.287598f, -0.332031f,
+0.308105f, -0.347168f, 0.328857f, -0.360596f, 0.349609f, -0.374023f, 0.369141f, -0.386475f,
+0.388672f, -0.398926f, 0.404541f, -0.412109f, 0.42041f, -0.425293f, 0.431396f, -0.440674f,
+0.442383f, -0.456055f, 0.446289f, -0.475586f, 0.447754f, -0.483887f, 0.447754f, -0.490723f,
+0.447754f, -0.52002f, 0.424072f, -0.539307f, 0.400391f, -0.558594f, 0.354492f, -0.558594f,
+0.32959f, -0.558594f, 0.307129f, -0.551025f, 0.284668f, -0.543457f, 0.266113f, -0.529785f,
+0.247559f, -0.516113f, 0.233643f, -0.496582f, 0.219727f, -0.477051f, 0.212402f, -0.453613f,
+0.0742188f, -0.459473f, 0.0883789f, -0.50293f, 0.114014f, -0.541016f, 0.139648f,
+-0.579102f, 0.177002f, -0.607422f, 0.214355f, -0.635742f, 0.263672f, -0.652344f,
+0.312988f, -0.668945f, 0.374023f, -0.668945f, 0.42627f, -0.668945f, 0.466309f, -0.657959f,
+0.506348f, -0.646973f, 0.533691f, -0.627197f, 0.561035f, -0.607422f, 0.575195f, -0.579346f,
+0.589355f, -0.55127f, 0.589355f, -0.516602f, 0.589355f, -0.498535f, 0.585938f, -0.481445f,
+0.152832f, 0, 0.178223f, -0.131836f, 0.319336f, -0.131836f, 0.293945f, 0, 0.601074f,
+-0.368652f, 0.587402f, -0.29834f, 0.565918f, -0.23999f, 0.544434f, -0.181641f, 0.51709f,
+-0.139648f, 0.489746f, -0.0976562f, 0.45752f, -0.0742188f, 0.425293f, -0.0507812f,
+0.390137f, -0.0507812f, 0.37793f, -0.0507812f, 0.367432f, -0.0534668f, 0.356934f,
+-0.0561523f, 0.349365f, -0.0625f, 0.341797f, -0.0688477f, 0.337402f, -0.0788574f,
+0.333008f, -0.0888672f, 0.333008f, -0.103516f, 0.333008f, -0.108887f, 0.333496f,
+-0.114746f, 0.333984f, -0.120605f, 0.335449f, -0.127441f, 0.335449f, -0.128418f,
+0.336182f, -0.131836f, 0.336914f, -0.135254f, 0.337891f, -0.138916f, 0.338867f, -0.142578f,
+0.3396f, -0.145996f, 0.340332f, -0.149414f, 0.34082f, -0.150879f, 0.337891f, -0.150879f,
+0.327148f, -0.131836f, 0.312256f, -0.11377f, 0.297363f, -0.0957031f, 0.280273f, -0.0817871f,
+0.263184f, -0.0678711f, 0.243652f, -0.0593262f, 0.224121f, -0.0507812f, 0.203613f,
+-0.0507812f, 0.181152f, -0.0507812f, 0.165771f, -0.0595703f, 0.150391f, -0.0683594f,
+0.140869f, -0.0834961f, 0.131348f, -0.0986328f, 0.126953f, -0.119385f, 0.122559f,
+-0.140137f, 0.122559f, -0.164062f, 0.122559f, -0.181641f, 0.124512f, -0.200439f,
+0.126465f, -0.219238f, 0.130371f, -0.23877f, 0.137695f, -0.275879f, 0.150391f, -0.3125f,
+0.163086f, -0.349121f, 0.18042f, -0.382324f, 0.197754f, -0.415527f, 0.21875f, -0.444092f,
+0.239746f, -0.472656f, 0.263916f, -0.493408f, 0.288086f, -0.51416f, 0.314209f, -0.525879f,
+0.340332f, -0.537598f, 0.367676f, -0.537598f, 0.385742f, -0.537598f, 0.398193f, -0.53125f,
+0.410645f, -0.524902f, 0.418213f, -0.513672f, 0.425781f, -0.502441f, 0.428955f, -0.487061f,
+0.432129f, -0.47168f, 0.431152f, -0.453125f, 0.433594f, -0.453125f, 0.464355f, -0.526855f,
+0.530273f, -0.526855f, 0.433594f, -0.279297f, 0.425781f, -0.258789f, 0.418457f, -0.239014f,
+0.411133f, -0.219238f, 0.404785f, -0.201416f, 0.398438f, -0.183594f, 0.394043f, -0.168701f,
+0.389648f, -0.153809f, 0.387695f, -0.143555f, 0.38623f, -0.134766f, 0.38623f, -0.128906f,
+0.38623f, -0.116699f, 0.391602f, -0.113525f, 0.396973f, -0.110352f, 0.405273f, -0.110352f,
+0.423828f, -0.110352f, 0.442383f, -0.128906f, 0.460938f, -0.147461f, 0.478027f, -0.181152f,
+0.495117f, -0.214844f, 0.510254f, -0.262451f, 0.525391f, -0.310059f, 0.536621f, -0.367676f,
+0.546875f, -0.42041f, 0.546875f, -0.467773f, 0.546875f, -0.510742f, 0.538086f, -0.546631f,
+0.529297f, -0.58252f, 0.511719f, -0.608398f, 0.494141f, -0.634277f, 0.467529f, -0.648682f,
+0.440918f, -0.663086f, 0.404785f, -0.663086f, 0.347168f, -0.663086f, 0.296387f, -0.630859f,
+0.245605f, -0.598633f, 0.204102f, -0.542725f, 0.162598f, -0.486816f, 0.132324f, -0.411621f,
+0.102051f, -0.336426f, 0.0854492f, -0.250977f, 0.0791016f, -0.219238f, 0.0761719f,
+-0.190186f, 0.0732422f, -0.161133f, 0.0732422f, -0.134277f, 0.0732422f, -0.0859375f,
+0.083252f, -0.0471191f, 0.0932617f, -0.00830078f, 0.112793f, 0.019043f, 0.132324f,
+0.0463867f, 0.161621f, 0.0610352f, 0.190918f, 0.0756836f, 0.229004f, 0.0756836f,
+0.257812f, 0.0756836f, 0.283691f, 0.0695801f, 0.30957f, 0.0634766f, 0.333496f, 0.0532227f,
+0.357422f, 0.0429688f, 0.379883f, 0.0288086f, 0.402344f, 0.0146484f, 0.424316f, -0.00146484f,
+0.449707f, 0.0458984f, 0.424805f, 0.0639648f, 0.397949f, 0.0805664f, 0.371094f, 0.097168f,
+0.341553f, 0.110107f, 0.312012f, 0.123047f, 0.279785f, 0.130615f, 0.247559f, 0.138184f,
+0.211914f, 0.138184f, 0.162109f, 0.138184f, 0.123535f, 0.120361f, 0.0849609f, 0.102539f,
+0.0588379f, 0.0688477f, 0.0327148f, 0.0351562f, 0.019043f, -0.0129395f, 0.00537109f,
+-0.0610352f, 0.00537109f, -0.121582f, 0.00537109f, -0.151367f, 0.00878906f, -0.183594f,
+0.012207f, -0.21582f, 0.019043f, -0.250977f, 0.0390625f, -0.353027f, 0.0761719f,
+-0.439697f, 0.113281f, -0.526367f, 0.164795f, -0.589844f, 0.216309f, -0.65332f, 0.280273f,
+-0.688965f, 0.344238f, -0.724609f, 0.41748f, -0.724609f, 0.468262f, -0.724609f, 0.505127f,
+-0.706299f, 0.541992f, -0.687988f, 0.565918f, -0.655273f, 0.589844f, -0.622559f,
+0.601318f, -0.578369f, 0.612793f, -0.53418f, 0.612793f, -0.481934f, 0.612793f, -0.427246f,
+0.601074f, -0.368652f, 0.391602f, -0.382812f, 0.396484f, -0.407227f, 0.396484f, -0.42627f,
+0.396484f, -0.478027f, 0.356934f, -0.478027f, 0.332031f, -0.478027f, 0.308594f, -0.456055f,
+0.285156f, -0.434082f, 0.264893f, -0.399658f, 0.244629f, -0.365234f, 0.229492f, -0.322998f,
+0.214355f, -0.280762f, 0.206055f, -0.239746f, 0.202148f, -0.219727f, 0.199707f, -0.200684f,
+0.197266f, -0.181641f, 0.197266f, -0.165527f, 0.197266f, -0.14209f, 0.203857f, -0.127197f,
+0.210449f, -0.112305f, 0.227539f, -0.112305f, 0.245605f, -0.112305f, 0.263672f, -0.124512f,
+0.281738f, -0.136719f, 0.299072f, -0.159912f, 0.316406f, -0.183105f, 0.332764f, -0.216064f,
+0.349121f, -0.249023f, 0.363281f, -0.290527f, 0.366699f, -0.299805f, 0.371094f, -0.3125f,
+0.375488f, -0.325195f, 0.379395f, -0.338379f, 0.383301f, -0.351562f, 0.386719f, -0.363525f,
+0.390137f, -0.375488f, 0.391602f, -0.382812f, 0.548828f, 0, 0.405273f, 0, 0.391602f,
+-0.161133f, 0.168945f, -0.161133f, 0.0927734f, 0, -0.0512695f, 0, 0.292969f, -0.658691f,
+0.460938f, -0.658691f, 0.359863f, -0.569824f, 0.35791f, -0.564941f, 0.352783f, -0.552734f,
+0.347656f, -0.540527f, 0.34082f, -0.524902f, 0.333984f, -0.509277f, 0.325684f, -0.490967f,
+0.317383f, -0.472656f, 0.309082f, -0.455078f, 0.220215f, -0.269531f, 0.382324f, -0.269531f,
+0.365723f, -0.455078f, 0.364258f, -0.472656f, 0.363281f, -0.490967f, 0.362305f, -0.509277f,
+0.361572f, -0.524902f, 0.36084f, -0.540527f, 0.360352f, -0.552734f, 0.359863f, -0.564941f,
+0.359863f, -0.569824f, 0.564453f, -0.187988f, 0.554688f, -0.137695f, 0.529297f, -0.102051f,
+0.503906f, -0.0664062f, 0.468262f, -0.0437012f, 0.432617f, -0.0209961f, 0.38916f,
+-0.010498f, 0.345703f, 0, 0.299805f, 0, 0.015625f, 0, 0.143555f, -0.658691f, 0.399902f,
+-0.658691f, 0.444336f, -0.658691f, 0.479248f, -0.650879f, 0.51416f, -0.643066f, 0.53833f,
+-0.627441f, 0.5625f, -0.611816f, 0.575195f, -0.587646f, 0.587891f, -0.563477f, 0.587891f,
+-0.53125f, 0.587891f, -0.522461f, 0.586914f, -0.512939f, 0.585938f, -0.503418f, 0.583984f,
+-0.493164f, 0.573242f, -0.437012f, 0.533447f, -0.398682f, 0.493652f, -0.360352f,
+0.424316f, -0.346191f, 0.495117f, -0.338379f, 0.531494f, -0.306396f, 0.567871f, -0.274414f,
+0.567871f, -0.221191f, 0.567871f, -0.20459f, 0.564453f, -0.187988f, 0.435547f, -0.473633f,
+0.437988f, -0.487305f, 0.437988f, -0.496582f, 0.437988f, -0.526367f, 0.419678f, -0.539062f,
+0.401367f, -0.551758f, 0.369141f, -0.551758f, 0.26709f, -0.551758f, 0.236816f, -0.395996f,
+0.339844f, -0.395996f, 0.419922f, -0.395996f, 0.435547f, -0.473633f, 0.421875f, -0.200195f,
+0.424316f, -0.213867f, 0.424316f, -0.223145f, 0.424316f, -0.241699f, 0.41748f, -0.254395f,
+0.410645f, -0.26709f, 0.398926f, -0.274902f, 0.387207f, -0.282715f, 0.371338f, -0.286133f,
+0.355469f, -0.289551f, 0.337891f, -0.289551f, 0.21582f, -0.289551f, 0.180664f, -0.106934f,
+0.306152f, -0.106934f, 0.325684f, -0.106934f, 0.344238f, -0.111328f, 0.362793f, -0.115723f,
+0.378174f, -0.126221f, 0.393555f, -0.136719f, 0.405029f, -0.154785f, 0.416504f, -0.172852f,
+0.421875f, -0.200195f, 0.19873f, -0.33252f, 0.188477f, -0.279297f, 0.188477f, -0.237305f,
+0.188477f, -0.171875f, 0.213623f, -0.137695f, 0.23877f, -0.103516f, 0.290527f, -0.103516f,
+0.3125f, -0.103516f, 0.332275f, -0.112305f, 0.352051f, -0.121094f, 0.369629f, -0.136963f,
+0.387207f, -0.152832f, 0.402588f, -0.174805f, 0.417969f, -0.196777f, 0.431152f, -0.222656f,
+0.55957f, -0.197266f, 0.534668f, -0.148926f, 0.504639f, -0.110596f, 0.474609f, -0.0722656f,
+0.438232f, -0.0456543f, 0.401855f, -0.019043f, 0.359375f, -0.00463867f, 0.316895f,
+0.00976562f, 0.26709f, 0.00976562f, 0.20752f, 0.00976562f, 0.164551f, -0.00610352f,
+0.121582f, -0.0219727f, 0.0939941f, -0.0517578f, 0.0664062f, -0.081543f, 0.0534668f,
+-0.124023f, 0.0405273f, -0.166504f, 0.0405273f, -0.219238f, 0.0405273f, -0.271973f,
+0.0522461f, -0.33252f, 0.0683594f, -0.414062f, 0.097168f, -0.476562f, 0.125977f,
+-0.539062f, 0.168457f, -0.582031f, 0.210938f, -0.625f, 0.267578f, -0.646973f, 0.324219f,
+-0.668945f, 0.39502f, -0.668945f, 0.445801f, -0.668945f, 0.482422f, -0.654785f, 0.519043f,
+-0.640625f, 0.543701f, -0.615479f, 0.568359f, -0.590332f, 0.582031f, -0.55542f, 0.595703f,
+-0.520508f, 0.600586f, -0.479004f, 0.461426f, -0.446777f, 0.459473f, -0.470215f,
+0.453369f, -0.490234f, 0.447266f, -0.510254f, 0.436523f, -0.524902f, 0.425781f, -0.539551f,
+0.4104f, -0.547607f, 0.39502f, -0.555664f, 0.375f, -0.555664f, 0.308594f, -0.555664f,
+0.264404f, -0.499268f, 0.220215f, -0.442871f, 0.19873f, -0.33252f, 0.574707f, -0.334473f,
+0.558594f, -0.252441f, 0.5271f, -0.189941f, 0.495605f, -0.127441f, 0.450195f, -0.0852051f,
+0.404785f, -0.0429688f, 0.34668f, -0.0214844f, 0.288574f, 0, 0.220215f, 0, 0.0146484f,
+0, 0.142578f, -0.658691f, 0.318848f, -0.658691f, 0.383789f, -0.658691f, 0.433594f,
+-0.645264f, 0.483398f, -0.631836f, 0.51709f, -0.604248f, 0.550781f, -0.57666f, 0.568115f,
+-0.534424f, 0.585449f, -0.492188f, 0.585449f, -0.434082f, 0.585449f, -0.388184f,
+0.574707f, -0.334473f, 0.429688f, -0.334473f, 0.438477f, -0.379883f, 0.438477f, -0.414551f,
+0.438477f, -0.484863f, 0.402588f, -0.516113f, 0.366699f, -0.547363f, 0.294922f, -0.547363f,
+0.265137f, -0.547363f, 0.180176f, -0.111328f, 0.22998f, -0.111328f, 0.309082f, -0.111328f,
+0.358398f, -0.167236f, 0.407715f, -0.223145f, 0.429688f, -0.334473f, 0.015625f, 0,
+0.143555f, -0.658691f, 0.616211f, -0.658691f, 0.594727f, -0.547363f, 0.266113f, -0.547363f,
+0.235352f, -0.38916f, 0.53418f, -0.38916f, 0.512695f, -0.277832f, 0.213867f, -0.277832f,
+0.181152f, -0.111328f, 0.529785f, -0.111328f, 0.508301f, 0, 0.280762f, -0.547363f,
+0.244141f, -0.359863f, 0.547363f, -0.359863f, 0.525879f, -0.248535f, 0.222656f, -0.248535f,
+0.174316f, 0, 0.0302734f, 0, 0.158203f, -0.658691f, 0.616699f, -0.658691f, 0.595215f,
+-0.547363f, 0.51709f, -0.090332f, 0.495605f, -0.074707f, 0.467285f, -0.0571289f,
+0.438965f, -0.0395508f, 0.405762f, -0.0246582f, 0.372559f, -0.00976562f, 0.334961f,
+0, 0.297363f, 0.00976562f, 0.256836f, 0.00976562f, 0.201172f, 0.00976562f, 0.1604f,
+-0.00708008f, 0.119629f, -0.0239258f, 0.0932617f, -0.0546875f, 0.0668945f, -0.0854492f,
+0.0539551f, -0.128662f, 0.0410156f, -0.171875f, 0.0410156f, -0.224609f, 0.0410156f,
+-0.25f, 0.0439453f, -0.276855f, 0.046875f, -0.303711f, 0.0522461f, -0.33252f, 0.0683594f,
+-0.414062f, 0.0964355f, -0.476807f, 0.124512f, -0.539551f, 0.16626f, -0.582275f,
+0.208008f, -0.625f, 0.263672f, -0.646973f, 0.319336f, -0.668945f, 0.390137f, -0.668945f,
+0.438965f, -0.668945f, 0.473145f, -0.655762f, 0.507324f, -0.642578f, 0.529785f, -0.618408f,
+0.552246f, -0.594238f, 0.564209f, -0.560547f, 0.576172f, -0.526855f, 0.580078f, -0.48584f,
+0.441406f, -0.459473f, 0.4375f, -0.508301f, 0.419189f, -0.531982f, 0.400879f, -0.555664f,
+0.369629f, -0.555664f, 0.334473f, -0.555664f, 0.307129f, -0.54126f, 0.279785f, -0.526855f,
+0.259277f, -0.498779f, 0.23877f, -0.470703f, 0.223877f, -0.428955f, 0.208984f, -0.387207f,
+0.198242f, -0.33252f, 0.187988f, -0.27832f, 0.187988f, -0.23584f, 0.187988f, -0.171875f,
+0.212158f, -0.138672f, 0.236328f, -0.105469f, 0.286621f, -0.105469f, 0.305176f, -0.105469f,
+0.322266f, -0.109619f, 0.339355f, -0.11377f, 0.353516f, -0.119385f, 0.367676f, -0.125f,
+0.378418f, -0.131104f, 0.38916f, -0.137207f, 0.39502f, -0.141602f, 0.41748f, -0.256348f,
+0.283691f, -0.256348f, 0.304199f, -0.362793f, 0.569824f, -0.362793f, 0.337402f, 0,
+0.39209f, -0.280273f, 0.214844f, -0.280273f, 0.160156f, 0, 0.0161133f, 0, 0.144043f,
+-0.658691f, 0.288086f, -0.658691f, 0.237793f, -0.399414f, 0.415039f, -0.399414f,
+0.465332f, -0.658691f, 0.609375f, -0.658691f, 0.481445f, 0, 0.15332f, -0.658691f,
+0.600586f, -0.658691f, 0.579102f, -0.547363f, 0.424805f, -0.547363f, 0.339844f, -0.111328f,
+0.494141f, -0.111328f, 0.472656f, 0, 0.0253906f, 0, 0.046875f, -0.111328f, 0.201172f,
+-0.111328f, 0.286133f, -0.547363f, 0.131836f, -0.547363f, 0.222168f, 0.00976562f,
+0.129395f, 0.00976562f, 0.0827637f, -0.0397949f, 0.0361328f, -0.0893555f, 0.0361328f,
+-0.180664f, 0.0361328f, -0.18457f, 0.036377f, -0.188477f, 0.0366211f, -0.192383f,
+0.0366211f, -0.196289f, 0.182617f, -0.217285f, 0.181152f, -0.159668f, 0.197754f,
+-0.131348f, 0.214355f, -0.103027f, 0.245117f, -0.103027f, 0.280762f, -0.103027f,
+0.307373f, -0.131836f, 0.333984f, -0.160645f, 0.344238f, -0.214355f, 0.408691f, -0.545898f,
+0.261719f, -0.545898f, 0.283691f, -0.658691f, 0.574219f, -0.658691f, 0.48877f, -0.217773f,
+0.478516f, -0.165527f, 0.455322f, -0.123291f, 0.432129f, -0.0810547f, 0.397705f,
+-0.0515137f, 0.363281f, -0.0219727f, 0.319092f, -0.00610352f, 0.274902f, 0.00976562f,
+0.222168f, 0.00976562f, 0.378906f, 0, 0.273926f, -0.271973f, 0.19873f, -0.202637f,
+0.15918f, 0, 0.0151367f, 0, 0.143066f, -0.658691f, 0.287109f, -0.658691f, 0.230469f,
+-0.366211f, 0.5f, -0.658691f, 0.66748f, -0.658691f, 0.388184f, -0.375977f, 0.548828f,
+0, 0.0517578f, 0, 0.179688f, -0.658691f, 0.32373f, -0.658691f, 0.217285f, -0.111328f,
+0.518066f, -0.111328f, 0.496582f, 0, 0.39209f, 0, 0.474609f, -0.423828f, 0.479492f,
+-0.44873f, 0.48584f, -0.474609f, 0.492188f, -0.500488f, 0.497559f, -0.521973f, 0.503906f,
+-0.546875f, 0.510742f, -0.570801f, 0.498047f, -0.537109f, 0.485352f, -0.505859f,
+0.47998f, -0.492676f, 0.474365f, -0.478516f, 0.46875f, -0.464355f, 0.462891f, -0.450928f,
+0.457031f, -0.4375f, 0.45166f, -0.425537f, 0.446289f, -0.413574f, 0.441895f, -0.404297f,
+0.336914f, -0.175781f, 0.230469f, -0.175781f, 0.213379f, -0.404297f, 0.212891f, -0.411621f,
+0.212158f, -0.422852f, 0.211426f, -0.434082f, 0.210938f, -0.447266f, 0.210449f, -0.460449f,
+0.210205f, -0.474609f, 0.209961f, -0.48877f, 0.209473f, -0.502441f, 0.208496f, -0.534668f,
+0.208496f, -0.570801f, 0.206055f, -0.547363f, 0.202637f, -0.521973f, 0.199707f, -0.5f,
+0.195801f, -0.474365f, 0.191895f, -0.44873f, 0.187012f, -0.423828f, 0.104492f, 0,
+-0.00292969f, 0, 0.125f, -0.658691f, 0.294434f, -0.658691f, 0.312988f, -0.415039f,
+0.313477f, -0.410156f, 0.313721f, -0.404541f, 0.313965f, -0.398926f, 0.313965f, -0.39209f,
+0.313965f, -0.37793f, 0.313477f, -0.362061f, 0.312988f, -0.346191f, 0.312012f, -0.333008f,
+0.311035f, -0.317383f, 0.30957f, -0.302246f, 0.317383f, -0.325195f, 0.324707f, -0.346191f,
+0.331055f, -0.364258f, 0.338379f, -0.383057f, 0.345703f, -0.401855f, 0.351074f, -0.414551f,
+0.464844f, -0.658691f, 0.628418f, -0.658691f, 0.500488f, 0, 0.313965f, 0, 0.222168f,
+-0.493164f, 0.219727f, -0.458008f, 0.216309f, -0.425781f, 0.214844f, -0.412109f,
+0.213135f, -0.397461f, 0.211426f, -0.382812f, 0.209717f, -0.368896f, 0.208008f, -0.35498f,
+0.206299f, -0.342529f, 0.20459f, -0.330078f, 0.202637f, -0.320312f, 0.140137f, 0,
+0.0146484f, 0, 0.142578f, -0.658691f, 0.307129f, -0.658691f, 0.400879f, -0.152344f,
+0.40332f, -0.185059f, 0.406738f, -0.217285f, 0.409668f, -0.245117f, 0.41333f, -0.275635f,
+0.416992f, -0.306152f, 0.421875f, -0.330566f, 0.485352f, -0.658691f, 0.61084f, -0.658691f,
+0.48291f, 0, 0.578125f, -0.331543f, 0.54541f, -0.163086f, 0.460205f, -0.0766602f,
+0.375f, 0.00976562f, 0.24707f, 0.00976562f, 0.143066f, 0.00976562f, 0.0895996f, -0.0466309f,
+0.0361328f, -0.103027f, 0.0361328f, -0.214844f, 0.0361328f, -0.241211f, 0.0390625f,
+-0.270264f, 0.0419922f, -0.299316f, 0.0483398f, -0.331543f, 0.0810547f, -0.5f, 0.166016f,
+-0.584473f, 0.250977f, -0.668945f, 0.378906f, -0.668945f, 0.482422f, -0.668945f,
+0.536377f, -0.61377f, 0.590332f, -0.558594f, 0.590332f, -0.447754f, 0.590332f, -0.421387f,
+0.587402f, -0.392578f, 0.584473f, -0.36377f, 0.578125f, -0.331543f, 0.432129f, -0.331543f,
+0.443848f, -0.391602f, 0.443848f, -0.435547f, 0.443848f, -0.555664f, 0.356934f, -0.555664f,
+0.297852f, -0.555664f, 0.25708f, -0.499756f, 0.216309f, -0.443848f, 0.194336f, -0.331543f,
+0.182617f, -0.272461f, 0.182617f, -0.227539f, 0.182617f, -0.166016f, 0.204346f, -0.134766f,
+0.226074f, -0.103516f, 0.269043f, -0.103516f, 0.328125f, -0.103516f, 0.369141f, -0.161377f,
+0.410156f, -0.219238f, 0.432129f, -0.331543f, 0.59375f, -0.450684f, 0.584961f, -0.40625f,
+0.5625f, -0.366455f, 0.540039f, -0.32666f, 0.503662f, -0.296875f, 0.467285f, -0.26709f,
+0.416504f, -0.249756f, 0.365723f, -0.232422f, 0.300781f, -0.232422f, 0.20459f, -0.232422f,
+0.15918f, 0, 0.0151367f, 0, 0.143066f, -0.658691f, 0.377441f, -0.658691f, 0.43457f,
+-0.658691f, 0.476318f, -0.647949f, 0.518066f, -0.637207f, 0.54541f, -0.616943f, 0.572754f,
+-0.59668f, 0.585938f, -0.567383f, 0.599121f, -0.538086f, 0.599121f, -0.500977f, 0.599121f,
+-0.489258f, 0.597656f, -0.476562f, 0.596191f, -0.463867f, 0.59375f, -0.450684f, 0.448242f,
+-0.448242f, 0.451172f, -0.462891f, 0.451172f, -0.475098f, 0.451172f, -0.513672f,
+0.423096f, -0.530273f, 0.39502f, -0.546875f, 0.339844f, -0.546875f, 0.265625f, -0.546875f,
+0.226074f, -0.343262f, 0.304199f, -0.343262f, 0.368652f, -0.343262f, 0.403564f, -0.369873f,
+0.438477f, -0.396484f, 0.448242f, -0.448242f, 0.578125f, -0.331543f, 0.550781f, -0.190918f,
+0.487549f, -0.10791f, 0.424316f, -0.0249023f, 0.329102f, 0, 0.333496f, 0.0268555f,
+0.343506f, 0.0444336f, 0.353516f, 0.0620117f, 0.367676f, 0.0722656f, 0.381836f, 0.0825195f,
+0.400635f, 0.0866699f, 0.419434f, 0.0908203f, 0.441406f, 0.0908203f, 0.455566f, 0.0908203f,
+0.471436f, 0.0888672f, 0.487305f, 0.0869141f, 0.502441f, 0.0844727f, 0.483398f, 0.183105f,
+0.455566f, 0.188965f, 0.42627f, 0.192871f, 0.396973f, 0.196777f, 0.362793f, 0.196777f,
+0.316406f, 0.196777f, 0.284424f, 0.182617f, 0.252441f, 0.168457f, 0.231445f, 0.142822f,
+0.210449f, 0.117188f, 0.199463f, 0.081543f, 0.188477f, 0.0458984f, 0.183594f, 0.00341797f,
+0.110352f, -0.012207f, 0.0732422f, -0.0668945f, 0.0361328f, -0.121582f, 0.0361328f,
+-0.214355f, 0.0361328f, -0.240723f, 0.0390625f, -0.27002f, 0.0419922f, -0.299316f,
+0.0483398f, -0.331543f, 0.0810547f, -0.5f, 0.166016f, -0.584473f, 0.250977f, -0.668945f,
+0.378906f, -0.668945f, 0.482422f, -0.668945f, 0.536377f, -0.61377f, 0.590332f, -0.558594f,
+0.590332f, -0.447754f, 0.590332f, -0.421387f, 0.587402f, -0.392578f, 0.584473f, -0.36377f,
+0.578125f, -0.331543f, 0.432129f, -0.331543f, 0.443848f, -0.391602f, 0.443848f, -0.435547f,
+0.443848f, -0.555664f, 0.356934f, -0.555664f, 0.297852f, -0.555664f, 0.25708f, -0.499756f,
+0.216309f, -0.443848f, 0.194336f, -0.331543f, 0.182617f, -0.272461f, 0.182617f, -0.227539f,
+0.182617f, -0.166016f, 0.204346f, -0.134766f, 0.226074f, -0.103516f, 0.269043f, -0.103516f,
+0.328125f, -0.103516f, 0.369141f, -0.161377f, 0.410156f, -0.219238f, 0.432129f, -0.331543f,
+0.385742f, 0, 0.292969f, -0.251465f, 0.208496f, -0.251465f, 0.159668f, 0, 0.015625f,
+0, 0.143555f, -0.658691f, 0.384766f, -0.658691f, 0.49707f, -0.658691f, 0.552734f,
+-0.620361f, 0.608398f, -0.582031f, 0.608398f, -0.509277f, 0.608398f, -0.498535f,
+0.607178f, -0.487061f, 0.605957f, -0.475586f, 0.603516f, -0.463379f, 0.59668f, -0.427246f,
+0.580811f, -0.397949f, 0.564941f, -0.368652f, 0.54248f, -0.346436f, 0.52002f, -0.324219f,
+0.491943f, -0.30835f, 0.463867f, -0.29248f, 0.432617f, -0.283691f, 0.547852f, 0,
+0.45752f, -0.45752f, 0.458496f, -0.463867f, 0.459229f, -0.469238f, 0.459961f, -0.474609f,
+0.459961f, -0.47998f, 0.459961f, -0.51709f, 0.430908f, -0.531982f, 0.401855f, -0.546875f,
+0.348145f, -0.546875f, 0.266113f, -0.546875f, 0.230469f, -0.363281f, 0.316406f, -0.363281f,
+0.380859f, -0.363281f, 0.414795f, -0.387451f, 0.44873f, -0.411621f, 0.45752f, -0.45752f,
+0.554688f, -0.190918f, 0.546387f, -0.147949f, 0.522461f, -0.111084f, 0.498535f, -0.0742188f,
+0.459717f, -0.0473633f, 0.420898f, -0.0205078f, 0.367188f, -0.00537109f, 0.313477f,
+0.00976562f, 0.245117f, 0.00976562f, 0.187988f, 0.00976562f, 0.143311f, -0.00244141f,
+0.0986328f, -0.0146484f, 0.067627f, -0.0385742f, 0.0366211f, -0.0625f, 0.0200195f,
+-0.0979004f, 0.00341797f, -0.133301f, 0.00195312f, -0.179199f, 0.14502f, -0.197266f,
+0.147461f, -0.151367f, 0.177734f, -0.124756f, 0.208008f, -0.0981445f, 0.27002f, -0.0981445f,
+0.299316f, -0.0981445f, 0.323486f, -0.102539f, 0.347656f, -0.106934f, 0.365967f,
+-0.116699f, 0.384277f, -0.126465f, 0.396484f, -0.142822f, 0.408691f, -0.15918f, 0.413086f,
+-0.182617f, 0.414551f, -0.189941f, 0.414551f, -0.196777f, 0.414551f, -0.21875f, 0.400879f,
+-0.23291f, 0.387207f, -0.24707f, 0.366211f, -0.256836f, 0.345215f, -0.266602f, 0.31958f,
+-0.273193f, 0.293945f, -0.279785f, 0.270508f, -0.286133f, 0.240723f, -0.294434f,
+0.20874f, -0.305908f, 0.176758f, -0.317383f, 0.150391f, -0.335449f, 0.124023f, -0.353516f,
+0.106934f, -0.380127f, 0.0898438f, -0.406738f, 0.0898438f, -0.446289f, 0.0898438f,
+-0.462891f, 0.09375f, -0.483887f, 0.103027f, -0.531738f, 0.130371f, -0.56665f, 0.157715f,
+-0.601562f, 0.196777f, -0.624268f, 0.23584f, -0.646973f, 0.282959f, -0.657959f, 0.330078f,
+-0.668945f, 0.378906f, -0.668945f, 0.488281f, -0.668945f, 0.541504f, -0.625732f,
+0.594727f, -0.58252f, 0.595215f, -0.491699f, 0.452637f, -0.477539f, 0.450684f, -0.521973f,
+0.427246f, -0.544434f, 0.403809f, -0.566895f, 0.356445f, -0.566895f, 0.325684f, -0.566895f,
+0.303955f, -0.560791f, 0.282227f, -0.554688f, 0.268066f, -0.544189f, 0.253906f, -0.533691f,
+0.246094f, -0.520264f, 0.238281f, -0.506836f, 0.235352f, -0.492188f, 0.233887f, -0.484863f,
+0.233887f, -0.478027f, 0.233887f, -0.458984f, 0.244629f, -0.446289f, 0.255371f, -0.433594f,
+0.272949f, -0.424561f, 0.290527f, -0.415527f, 0.312744f, -0.40918f, 0.334961f, -0.402832f,
+0.358398f, -0.396484f, 0.380371f, -0.390625f, 0.403809f, -0.383545f, 0.427246f, -0.376465f,
+0.449463f, -0.367188f, 0.47168f, -0.35791f, 0.491455f, -0.345459f, 0.51123f, -0.333008f,
+0.526123f, -0.316406f, 0.541016f, -0.299805f, 0.549805f, -0.27832f, 0.558594f, -0.256836f,
+0.558594f, -0.229004f, 0.558594f, -0.220215f, 0.557617f, -0.210693f, 0.556641f, -0.201172f,
+0.554688f, -0.190918f, 0.427246f, -0.547363f, 0.320801f, 0, 0.176758f, 0, 0.283203f,
+-0.547363f, 0.0849609f, -0.547363f, 0.106445f, -0.658691f, 0.646973f, -0.658691f,
+0.625488f, -0.547363f, 0.239258f, 0.00976562f, 0.195312f, 0.00976562f, 0.160645f,
+0.000976562f, 0.125977f, -0.0078125f, 0.101562f, -0.027832f, 0.0771484f, -0.0478516f,
+0.064209f, -0.0805664f, 0.0512695f, -0.113281f, 0.0512695f, -0.161133f, 0.0512695f,
+-0.204102f, 0.0620117f, -0.257812f, 0.139648f, -0.658691f, 0.283691f, -0.658691f,
+0.206055f, -0.259277f, 0.201172f, -0.234863f, 0.198975f, -0.215088f, 0.196777f, -0.195312f,
+0.196777f, -0.179199f, 0.196777f, -0.137695f, 0.213379f, -0.120361f, 0.22998f, -0.103027f,
+0.265137f, -0.103027f, 0.289551f, -0.103027f, 0.309326f, -0.111572f, 0.329102f, -0.120117f,
+0.344971f, -0.13916f, 0.36084f, -0.158203f, 0.372559f, -0.188965f, 0.384277f, -0.219727f,
+0.393066f, -0.26416f, 0.469727f, -0.658691f, 0.61377f, -0.658691f, 0.537598f, -0.265137f,
+0.522461f, -0.188965f, 0.495117f, -0.136475f, 0.467773f, -0.0839844f, 0.429688f,
+-0.0515137f, 0.391602f, -0.019043f, 0.343506f, -0.00463867f, 0.29541f, 0.00976562f,
+0.239258f, 0.00976562f, 0.322754f, 0, 0.176758f, 0, 0.078125f, -0.658691f, 0.228516f,
+-0.658691f, 0.269043f, -0.280273f, 0.271484f, -0.258301f, 0.273438f, -0.235352f,
+0.275391f, -0.212402f, 0.276855f, -0.193359f, 0.278809f, -0.170898f, 0.279785f, -0.150391f,
+0.288574f, -0.17041f, 0.29834f, -0.192383f, 0.306641f, -0.210938f, 0.317627f, -0.234131f,
+0.328613f, -0.257324f, 0.340332f, -0.280273f, 0.526855f, -0.658691f, 0.675781f, -0.658691f,
+0.445801f, 0, 0.324707f, 0, 0.318848f, -0.130371f, 0.318359f, -0.139648f, 0.317383f,
+-0.152344f, 0.316406f, -0.165039f, 0.315674f, -0.179443f, 0.314941f, -0.193848f,
+0.314209f, -0.209229f, 0.313477f, -0.224609f, 0.312988f, -0.239258f, 0.311523f, -0.273438f,
+0.310059f, -0.310547f, 0.293945f, -0.272949f, 0.278809f, -0.23877f, 0.272461f, -0.224121f,
+0.265625f, -0.20874f, 0.258789f, -0.193359f, 0.252441f, -0.178955f, 0.246094f, -0.164551f,
+0.240479f, -0.1521f, 0.234863f, -0.139648f, 0.230469f, -0.130371f, 0.172852f, 0,
+0.0517578f, 0, 0.0766602f, -0.658691f, 0.203125f, -0.658691f, 0.180664f, -0.319336f,
+0.179688f, -0.300293f, 0.176514f, -0.277832f, 0.17334f, -0.255371f, 0.17041f, -0.235352f,
+0.166992f, -0.211914f, 0.163086f, -0.189453f, 0.169434f, -0.207031f, 0.177734f, -0.226562f,
+0.18457f, -0.243652f, 0.193848f, -0.264893f, 0.203125f, -0.286133f, 0.213379f, -0.308594f,
+0.293945f, -0.474121f, 0.38916f, -0.474121f, 0.405273f, -0.308594f, 0.407715f, -0.280762f,
+0.408203f, -0.254883f, 0.408691f, -0.229004f, 0.408691f, -0.211914f, 0.408691f, -0.189453f,
+0.40918f, -0.189453f, 0.412354f, -0.202637f, 0.415527f, -0.21582f, 0.420166f, -0.235352f,
+0.424805f, -0.254883f, 0.430908f, -0.277588f, 0.437012f, -0.300293f, 0.442871f, -0.319336f,
+0.549805f, -0.658691f, 0.67627f, -0.658691f, 0.397461f, 0, 0.296387f, -0.240723f,
+0.101074f, 0, -0.0512695f, 0, 0.240234f, -0.347168f, 0.0966797f, -0.658691f, 0.249023f,
+-0.658691f, 0.336914f, -0.44873f, 0.505371f, -0.658691f, 0.656738f, -0.658691f, 0.387207f,
+-0.347168f, 0.548828f, 0, 0.373047f, -0.271484f, 0.320312f, 0, 0.176758f, 0, 0.229492f,
+-0.271484f, 0.078125f, -0.658691f, 0.229004f, -0.658691f, 0.321777f, -0.382324f,
+0.523926f, -0.658691f, 0.674805f, -0.658691f, 0.504395f, 0, -0.00878906f, 0, 0.0112305f,
+-0.102051f, 0.424805f, -0.545898f, 0.134277f, -0.545898f, 0.15625f, -0.658691f, 0.612305f,
+-0.658691f, 0.592773f, -0.558594f, 0.178711f, -0.112793f, 0.526367f, -0.112793f,
+0.090332f, 0.20752f, 0.271484f, -0.724609f, 0.56543f, -0.724609f, 0.547852f, -0.631836f,
+0.383789f, -0.631836f, 0.23877f, 0.114258f, 0.402832f, 0.114258f, 0.384277f, 0.20752f,
+0.390137f, 0.00976562f, 0.133789f, -0.724609f, 0.245117f, -0.724609f, 0.503418f,
+0.00976562f, 0.0322266f, 0.20752f, 0.0507812f, 0.114258f, 0.214844f, 0.114258f, 0.359863f,
+-0.631836f, 0.195801f, -0.631836f, 0.213379f, -0.724609f, 0.507324f, -0.724609f,
+0.326172f, 0.20752f, 0.447754f, -0.250977f, 0.359863f, -0.618164f, 0.130371f, -0.250977f,
+0.0195312f, -0.250977f, 0.29541f, -0.687988f, 0.452637f, -0.687988f, 0.55957f, -0.250977f,
+-0.074707f, 0.107422f, -0.0654297f, 0.0605469f, 0.539062f, 0.0605469f, 0.529785f,
+0.107422f, 0.396484f, -0.578125f, 0.252441f, -0.690918f, 0.256348f, -0.711914f, 0.382324f,
+-0.711914f, 0.482422f, -0.593262f, 0.479492f, -0.578125f, 0.161133f, 0.00976562f,
+0.0957031f, 0.00976562f, 0.0603027f, -0.0205078f, 0.0249023f, -0.0507812f, 0.0249023f,
+-0.108398f, 0.0249023f, -0.127441f, 0.0292969f, -0.149414f, 0.0385742f, -0.196289f,
+0.0603027f, -0.228271f, 0.0820312f, -0.260254f, 0.113281f, -0.280029f, 0.144531f,
+-0.299805f, 0.183594f, -0.308838f, 0.222656f, -0.317871f, 0.266113f, -0.318359f,
+0.375488f, -0.320312f, 0.380371f, -0.347168f, 0.382812f, -0.358887f, 0.384033f, -0.369141f,
+0.385254f, -0.379395f, 0.385254f, -0.388184f, 0.385254f, -0.421875f, 0.369873f, -0.435547f,
+0.354492f, -0.449219f, 0.328125f, -0.449219f, 0.312988f, -0.449219f, 0.299805f, -0.445801f,
+0.286621f, -0.442383f, 0.275635f, -0.433838f, 0.264648f, -0.425293f, 0.255859f, -0.410889f,
+0.24707f, -0.396484f, 0.240234f, -0.374512f, 0.0986328f, -0.381348f, 0.11084f, -0.416016f,
+0.131348f, -0.44458f, 0.151855f, -0.473145f, 0.182617f, -0.494141f, 0.213379f, -0.515137f,
+0.255127f, -0.526611f, 0.296875f, -0.538086f, 0.351074f, -0.538086f, 0.435547f, -0.538086f,
+0.479248f, -0.502686f, 0.522949f, -0.467285f, 0.522949f, -0.398438f, 0.522949f, -0.375977f,
+0.517578f, -0.347656f, 0.480469f, -0.15625f, 0.478027f, -0.144043f, 0.476562f, -0.133545f,
+0.475098f, -0.123047f, 0.475098f, -0.114746f, 0.475098f, -0.0966797f, 0.482666f,
+-0.0874023f, 0.490234f, -0.078125f, 0.508789f, -0.078125f, 0.524414f, -0.078125f,
+0.539551f, -0.0810547f, 0.525391f, -0.00683594f, 0.512695f, -0.00390625f, 0.502441f,
+-0.00146484f, 0.492188f, 0.000976562f, 0.482178f, 0.00244141f, 0.472168f, 0.00390625f,
+0.460938f, 0.00488281f, 0.449707f, 0.00585938f, 0.435059f, 0.00585938f, 0.388672f,
+0.00585938f, 0.368164f, -0.0144043f, 0.347656f, -0.034668f, 0.347656f, -0.0742188f,
+0.347656f, -0.0791016f, 0.3479f, -0.0839844f, 0.348145f, -0.0888672f, 0.348633f,
+-0.0942383f, 0.345703f, -0.0942383f, 0.327148f, -0.0698242f, 0.307373f, -0.0505371f,
+0.287598f, -0.03125f, 0.265137f, -0.0178223f, 0.242676f, -0.00439453f, 0.217041f,
+0.00268555f, 0.191406f, 0.00976562f, 0.161133f, 0.00976562f, 0.360352f, -0.244629f,
+0.294922f, -0.243652f, 0.272949f, -0.243164f, 0.253418f, -0.240479f, 0.233887f, -0.237793f,
+0.218018f, -0.229248f, 0.202148f, -0.220703f, 0.191162f, -0.204346f, 0.180176f, -0.187988f,
+0.174805f, -0.160156f, 0.171875f, -0.145508f, 0.171875f, -0.133789f, 0.171875f, -0.0859375f,
+0.21875f, -0.0859375f, 0.245117f, -0.0859375f, 0.267822f, -0.097168f, 0.290527f,
+-0.108398f, 0.30835f, -0.126709f, 0.326172f, -0.14502f, 0.338379f, -0.168945f, 0.350586f,
+-0.192871f, 0.355469f, -0.217773f, 0.0170898f, 0, 0.0209961f, -0.0166016f, 0.0283203f,
+-0.0466309f, 0.0356445f, -0.0766602f, 0.043457f, -0.115234f, 0.161621f, -0.724609f,
+0.298828f, -0.724609f, 0.261719f, -0.532227f, 0.259277f, -0.52002f, 0.256592f, -0.506836f,
+0.253906f, -0.493652f, 0.251465f, -0.481445f, 0.249023f, -0.469238f, 0.246826f, -0.459717f,
+0.244629f, -0.450195f, 0.243652f, -0.445312f, 0.244629f, -0.445312f, 0.26123f, -0.471191f,
+0.281982f, -0.489014f, 0.302734f, -0.506836f, 0.325439f, -0.517822f, 0.348145f, -0.528809f,
+0.371826f, -0.533691f, 0.395508f, -0.538574f, 0.41748f, -0.538574f, 0.455566f, -0.538574f,
+0.483154f, -0.526123f, 0.510742f, -0.513672f, 0.528564f, -0.490479f, 0.546387f, -0.467285f,
+0.554932f, -0.435059f, 0.563477f, -0.402832f, 0.563477f, -0.363281f, 0.563477f, -0.340332f,
+0.560791f, -0.31543f, 0.558105f, -0.290527f, 0.552734f, -0.263672f, 0.541016f, -0.20459f,
+0.518555f, -0.154541f, 0.496094f, -0.104492f, 0.4646f, -0.0678711f, 0.433105f, -0.03125f,
+0.393066f, -0.0107422f, 0.353027f, 0.00976562f, 0.306641f, 0.00976562f, 0.28418f,
+0.00976562f, 0.263672f, 0.00463867f, 0.243164f, -0.000488281f, 0.22583f, -0.0119629f,
+0.208496f, -0.0234375f, 0.195557f, -0.0415039f, 0.182617f, -0.0595703f, 0.175781f,
+-0.0859375f, 0.173828f, -0.0859375f, 0.171875f, -0.0756836f, 0.168701f, -0.0625f,
+0.165527f, -0.0493164f, 0.161865f, -0.0366211f, 0.158203f, -0.0239258f, 0.155029f,
+-0.013916f, 0.151855f, -0.00390625f, 0.149902f, 0, 0.208008f, -0.26709f, 0.200195f,
+-0.226562f, 0.200195f, -0.194824f, 0.200195f, -0.163574f, 0.207031f, -0.14209f, 0.213867f,
+-0.120605f, 0.224609f, -0.10791f, 0.235352f, -0.0952148f, 0.249023f, -0.0895996f,
+0.262695f, -0.0839844f, 0.276367f, -0.0839844f, 0.323242f, -0.0839844f, 0.35791f,
+-0.128906f, 0.392578f, -0.173828f, 0.409668f, -0.263672f, 0.418457f, -0.310547f,
+0.418457f, -0.344727f, 0.418457f, -0.397461f, 0.39917f, -0.421387f, 0.379883f, -0.445312f,
+0.345703f, -0.445312f, 0.328125f, -0.445312f, 0.30835f, -0.437012f, 0.288574f, -0.428711f,
+0.269775f, -0.408447f, 0.250977f, -0.388184f, 0.234619f, -0.35376f, 0.218262f, -0.319336f,
+0.208008f, -0.26709f, 0.251465f, 0.00976562f, 0.199219f, 0.00976562f, 0.1604f, -0.00390625f,
+0.121582f, -0.0175781f, 0.0959473f, -0.0429688f, 0.0703125f, -0.0683594f, 0.0578613f,
+-0.104248f, 0.0454102f, -0.140137f, 0.0454102f, -0.18457f, 0.0454102f, -0.202637f,
+0.0473633f, -0.22168f, 0.0493164f, -0.240723f, 0.0532227f, -0.26123f, 0.065918f,
+-0.327148f, 0.0930176f, -0.378662f, 0.120117f, -0.430176f, 0.159424f, -0.465576f,
+0.19873f, -0.500977f, 0.249268f, -0.519531f, 0.299805f, -0.538086f, 0.359863f, -0.538086f,
+0.410645f, -0.538086f, 0.447754f, -0.524658f, 0.484863f, -0.51123f, 0.509033f, -0.487793f,
+0.533203f, -0.464355f, 0.544922f, -0.432617f, 0.556641f, -0.400879f, 0.556641f, -0.364258f,
+0.556641f, -0.361816f, 0.416992f, -0.35498f, 0.419434f, -0.395508f, 0.400635f, -0.419678f,
+0.381836f, -0.443848f, 0.338867f, -0.443848f, 0.283691f, -0.443848f, 0.249512f, -0.398438f,
+0.215332f, -0.353027f, 0.198242f, -0.266602f, 0.189453f, -0.222168f, 0.189453f, -0.187988f,
+0.189453f, -0.0839844f, 0.270508f, -0.0839844f, 0.30957f, -0.0839844f, 0.341064f,
+-0.108643f, 0.372559f, -0.133301f, 0.388184f, -0.182129f, 0.524414f, -0.175781f,
+0.512695f, -0.13916f, 0.48877f, -0.105713f, 0.464844f, -0.0722656f, 0.430176f, -0.0466309f,
+0.395508f, -0.0209961f, 0.350586f, -0.00561523f, 0.305664f, 0.00976562f, 0.251465f,
+0.00976562f, 0.347656f, 0, 0.347168f, -0.00390625f, 0.3479f, -0.013916f, 0.348633f,
+-0.0239258f, 0.350098f, -0.0366211f, 0.351562f, -0.0493164f, 0.353271f, -0.0625f,
+0.35498f, -0.0756836f, 0.356934f, -0.0859375f, 0.35498f, -0.0859375f, 0.336914f,
+-0.0595703f, 0.317383f, -0.0415039f, 0.297852f, -0.0234375f, 0.276367f, -0.0119629f,
+0.254883f, -0.000488281f, 0.231445f, 0.00463867f, 0.208008f, 0.00976562f, 0.182129f,
+0.00976562f, 0.145508f, 0.00976562f, 0.118164f, -0.00317383f, 0.0908203f, -0.0161133f,
+0.072998f, -0.0397949f, 0.0551758f, -0.0634766f, 0.0463867f, -0.0966797f, 0.0375977f,
+-0.129883f, 0.0375977f, -0.17041f, 0.0375977f, -0.192383f, 0.0400391f, -0.215332f,
+0.0424805f, -0.238281f, 0.0473633f, -0.263184f, 0.059082f, -0.323242f, 0.0805664f,
+-0.373535f, 0.102051f, -0.423828f, 0.133057f, -0.460205f, 0.164062f, -0.496582f,
+0.204346f, -0.516846f, 0.244629f, -0.537109f, 0.293945f, -0.537109f, 0.315918f, -0.537109f,
+0.336914f, -0.532227f, 0.35791f, -0.527344f, 0.375488f, -0.516357f, 0.393066f, -0.505371f,
+0.40625f, -0.487549f, 0.419434f, -0.469727f, 0.425781f, -0.443848f, 0.426758f, -0.443848f,
+0.427734f, -0.44873f, 0.429443f, -0.458252f, 0.431152f, -0.467773f, 0.433105f, -0.47998f,
+0.435059f, -0.492188f, 0.4375f, -0.505371f, 0.439941f, -0.518555f, 0.442383f, -0.530762f,
+0.47998f, -0.724609f, 0.617188f, -0.724609f, 0.499023f, -0.115234f, 0.491211f, -0.0766602f,
+0.487061f, -0.0466309f, 0.48291f, -0.0166016f, 0.480469f, 0, 0.393066f, -0.266602f,
+0.400879f, -0.307129f, 0.400879f, -0.338379f, 0.400879f, -0.369141f, 0.394287f, -0.389404f,
+0.387695f, -0.409668f, 0.376709f, -0.421631f, 0.365723f, -0.433594f, 0.352295f, -0.438721f,
+0.338867f, -0.443848f, 0.324707f, -0.443848f, 0.302246f, -0.443848f, 0.281982f, -0.433594f,
+0.261719f, -0.42334f, 0.244385f, -0.401611f, 0.227051f, -0.379883f, 0.213379f, -0.345703f,
+0.199707f, -0.311523f, 0.19043f, -0.263184f, 0.181641f, -0.21875f, 0.181641f, -0.18457f,
+0.181641f, -0.134277f, 0.199951f, -0.109131f, 0.218262f, -0.0839844f, 0.253418f,
+-0.0839844f, 0.270508f, -0.0839844f, 0.290527f, -0.0927734f, 0.310547f, -0.101562f,
+0.330078f, -0.122559f, 0.349609f, -0.143555f, 0.366211f, -0.178711f, 0.382812f, -0.213867f,
+0.393066f, -0.266602f, 0.252441f, 0.00976562f, 0.204102f, 0.00976562f, 0.165039f,
+-0.00244141f, 0.125977f, -0.0146484f, 0.0983887f, -0.0390625f, 0.0708008f, -0.0634766f,
+0.0559082f, -0.10083f, 0.0410156f, -0.138184f, 0.0410156f, -0.187988f, 0.0410156f,
+-0.206055f, 0.0432129f, -0.225586f, 0.0454102f, -0.245117f, 0.0493164f, -0.266602f,
+0.0639648f, -0.342285f, 0.0959473f, -0.394043f, 0.12793f, -0.445801f, 0.170166f,
+-0.477783f, 0.212402f, -0.509766f, 0.261719f, -0.523926f, 0.311035f, -0.538086f,
+0.36084f, -0.538086f, 0.411621f, -0.538086f, 0.448486f, -0.523682f, 0.485352f, -0.509277f,
+0.509277f, -0.482666f, 0.533203f, -0.456055f, 0.544922f, -0.418457f, 0.556641f, -0.380859f,
+0.556641f, -0.334473f, 0.556641f, -0.3125f, 0.554199f, -0.289551f, 0.551758f, -0.266602f,
+0.546875f, -0.241699f, 0.546387f, -0.237793f, 0.187988f, -0.237793f, 0.183105f, -0.213379f,
+0.183105f, -0.189453f, 0.183105f, -0.165527f, 0.188721f, -0.145752f, 0.194336f, -0.125977f,
+0.206055f, -0.111816f, 0.217773f, -0.0976562f, 0.235596f, -0.0898438f, 0.253418f,
+-0.0820312f, 0.277344f, -0.0820312f, 0.29541f, -0.0820312f, 0.3125f, -0.0859375f,
+0.32959f, -0.0898438f, 0.344482f, -0.0974121f, 0.359375f, -0.10498f, 0.371338f, -0.116943f,
+0.383301f, -0.128906f, 0.391113f, -0.14502f, 0.518066f, -0.133789f, 0.504883f, -0.111328f,
+0.482666f, -0.0859375f, 0.460449f, -0.0605469f, 0.427979f, -0.0393066f, 0.395508f,
+-0.0180664f, 0.352051f, -0.00415039f, 0.308594f, 0.00976562f, 0.252441f, 0.00976562f,
+0.342285f, -0.45166f, 0.321289f, -0.45166f, 0.300049f, -0.44458f, 0.278809f, -0.4375f,
+0.260498f, -0.422119f, 0.242188f, -0.406738f, 0.227783f, -0.382324f, 0.213379f, -0.35791f,
+0.205566f, -0.32373f, 0.430176f, -0.32373f, 0.431152f, -0.331055f, 0.431641f, -0.337891f,
+0.432129f, -0.344727f, 0.432129f, -0.351562f, 0.432129f, -0.401367f, 0.407227f, -0.426514f,
+0.382324f, -0.45166f, 0.342285f, -0.45166f, 0.352051f, -0.435547f, 0.267578f, 0,
+0.130859f, 0, 0.215332f, -0.435547f, 0.090332f, -0.435547f, 0.108398f, -0.52832f,
+0.233398f, -0.52832f, 0.241211f, -0.568848f, 0.24707f, -0.599121f, 0.261475f, -0.629395f,
+0.275879f, -0.659668f, 0.303711f, -0.684082f, 0.331543f, -0.708496f, 0.374512f, -0.723877f,
+0.41748f, -0.739258f, 0.480469f, -0.739258f, 0.530273f, -0.739258f, 0.569824f, -0.734863f,
+0.609375f, -0.730469f, 0.637695f, -0.725586f, 0.620117f, -0.635742f, 0.589844f, -0.639648f,
+0.555664f, -0.642334f, 0.521484f, -0.64502f, 0.486328f, -0.64502f, 0.458008f, -0.64502f,
+0.438721f, -0.638672f, 0.419434f, -0.632324f, 0.406738f, -0.62085f, 0.394043f, -0.609375f,
+0.386719f, -0.593018f, 0.379395f, -0.57666f, 0.375488f, -0.556152f, 0.370117f, -0.52832f,
+0.586426f, -0.52832f, 0.568359f, -0.435547f, 0.208496f, 0.211914f, 0.160156f, 0.211914f,
+0.124268f, 0.201416f, 0.0883789f, 0.190918f, 0.0649414f, 0.172119f, 0.0415039f, 0.15332f,
+0.0297852f, 0.127197f, 0.0180664f, 0.101074f, 0.0175781f, 0.0698242f, 0.158203f,
+0.0537109f, 0.15918f, 0.0854492f, 0.178467f, 0.104004f, 0.197754f, 0.122559f, 0.229492f,
+0.122559f, 0.25f, 0.122559f, 0.269775f, 0.115479f, 0.289551f, 0.108398f, 0.306396f,
+0.092041f, 0.323242f, 0.0756836f, 0.336182f, 0.048584f, 0.349121f, 0.0214844f, 0.356934f,
+-0.0180664f, 0.359863f, -0.0317383f, 0.363037f, -0.0466309f, 0.366211f, -0.0615234f,
+0.368652f, -0.0742188f, 0.371582f, -0.0888672f, 0.374512f, -0.103027f, 0.373535f,
+-0.103027f, 0.339844f, -0.0517578f, 0.293213f, -0.0288086f, 0.246582f, -0.00585938f,
+0.194336f, -0.00585938f, 0.157715f, -0.00585938f, 0.130859f, -0.0178223f, 0.104004f,
+-0.0297852f, 0.0864258f, -0.0517578f, 0.0688477f, -0.0737305f, 0.0603027f, -0.10498f,
+0.0517578f, -0.13623f, 0.0517578f, -0.175293f, 0.0517578f, -0.216797f, 0.0615234f,
+-0.268555f, 0.0732422f, -0.32959f, 0.0949707f, -0.378906f, 0.116699f, -0.428223f,
+0.147705f, -0.463379f, 0.178711f, -0.498535f, 0.218994f, -0.517578f, 0.259277f, -0.536621f,
+0.308105f, -0.536621f, 0.330566f, -0.536621f, 0.351562f, -0.531494f, 0.372559f, -0.526367f,
+0.389893f, -0.515137f, 0.407227f, -0.503906f, 0.420166f, -0.486084f, 0.433105f, -0.468262f,
+0.439453f, -0.443359f, 0.441895f, -0.443359f, 0.444336f, -0.453613f, 0.44751f, -0.467041f,
+0.450684f, -0.480469f, 0.454102f, -0.49292f, 0.45752f, -0.505371f, 0.460693f, -0.515137f,
+0.463867f, -0.524902f, 0.465332f, -0.52832f, 0.595215f, -0.52832f, 0.591309f, -0.510742f,
+0.583984f, -0.479004f, 0.57666f, -0.447266f, 0.568848f, -0.40625f, 0.492676f, -0.0161133f,
+0.481445f, 0.0415039f, 0.456787f, 0.0842285f, 0.432129f, 0.126953f, 0.395508f, 0.155273f,
+0.358887f, 0.183594f, 0.311768f, 0.197754f, 0.264648f, 0.211914f, 0.208496f, 0.211914f,
+0.407227f, -0.271484f, 0.414551f, -0.30957f, 0.414551f, -0.337891f, 0.414551f, -0.367676f,
+0.407715f, -0.387695f, 0.400879f, -0.407715f, 0.390137f, -0.419922f, 0.379395f, -0.432129f,
+0.365723f, -0.437256f, 0.352051f, -0.442383f, 0.338379f, -0.442383f, 0.315918f, -0.442383f,
+0.295654f, -0.432373f, 0.275391f, -0.422363f, 0.258057f, -0.401123f, 0.240723f, -0.379883f,
+0.227051f, -0.347168f, 0.213379f, -0.314453f, 0.20459f, -0.268555f, 0.196777f, -0.22998f,
+0.196777f, -0.19873f, 0.196777f, -0.148926f, 0.216064f, -0.125f, 0.235352f, -0.101074f,
+0.270996f, -0.101074f, 0.288086f, -0.101074f, 0.307861f, -0.108398f, 0.327637f, -0.115723f,
+0.346436f, -0.13501f, 0.365234f, -0.154297f, 0.381348f, -0.187256f, 0.397461f, -0.220215f,
+0.407227f, -0.271484f, 0.23584f, -0.422852f, 0.275391f, -0.483398f, 0.322754f, -0.510742f,
+0.370117f, -0.538086f, 0.428223f, -0.538086f, 0.464844f, -0.538086f, 0.490234f, -0.528564f,
+0.515625f, -0.519043f, 0.53125f, -0.501953f, 0.546875f, -0.484863f, 0.553711f, -0.460693f,
+0.560547f, -0.436523f, 0.560547f, -0.407715f, 0.560547f, -0.390625f, 0.558594f, -0.372559f,
+0.556641f, -0.354492f, 0.552734f, -0.334961f, 0.487793f, 0, 0.351074f, 0, 0.410156f,
+-0.303223f, 0.413574f, -0.320801f, 0.415527f, -0.336426f, 0.41748f, -0.352051f, 0.41748f,
+-0.365723f, 0.41748f, -0.399414f, 0.402832f, -0.417236f, 0.388184f, -0.435059f, 0.351074f,
+-0.435059f, 0.326172f, -0.435059f, 0.303711f, -0.424072f, 0.28125f, -0.413086f, 0.262939f,
+-0.392822f, 0.244629f, -0.372559f, 0.231201f, -0.344482f, 0.217773f, -0.316406f,
+0.210938f, -0.282715f, 0.155762f, 0, 0.0185547f, 0, 0.15918f, -0.724609f, 0.296387f,
+-0.724609f, 0.258301f, -0.526855f, 0.255371f, -0.51123f, 0.251709f, -0.495361f, 0.248047f,
+-0.479492f, 0.244629f, -0.465576f, 0.241211f, -0.45166f, 0.238281f, -0.44043f, 0.235352f,
+-0.429199f, 0.233887f, -0.422852f, 0.354492f, -0.0927734f, 0.526855f, -0.0927734f,
+0.508789f, 0, 0.00634766f, 0, 0.0244141f, -0.0927734f, 0.217285f, -0.0927734f, 0.283691f,
+-0.435547f, 0.14209f, -0.435547f, 0.160156f, -0.52832f, 0.438965f, -0.52832f, 0.320312f,
+-0.623535f, 0.339844f, -0.724609f, 0.477051f, -0.724609f, 0.45752f, -0.623535f, 0.369141f,
+0.00634766f, 0.358887f, 0.0595703f, 0.332764f, 0.0976562f, 0.306641f, 0.135742f,
+0.270752f, 0.160156f, 0.234863f, 0.18457f, 0.192139f, 0.196045f, 0.149414f, 0.20752f,
+0.105957f, 0.20752f, 0.0859375f, 0.20752f, 0.0661621f, 0.205811f, 0.0463867f, 0.204102f,
+0.0285645f, 0.201172f, 0.0107422f, 0.198242f, -0.00439453f, 0.19458f, -0.0195312f,
+0.190918f, -0.0302734f, 0.186523f, -0.0102539f, 0.0839844f, 0.0102539f, 0.0893555f,
+0.0427246f, 0.0949707f, 0.0751953f, 0.100586f, 0.114746f, 0.100586f, 0.135742f, 0.100586f,
+0.154541f, 0.0964355f, 0.17334f, 0.0922852f, 0.188721f, 0.0805664f, 0.204102f, 0.0688477f,
+0.21582f, 0.0483398f, 0.227539f, 0.027832f, 0.233887f, -0.00488281f, 0.317383f, -0.435547f,
+0.144531f, -0.435547f, 0.162598f, -0.52832f, 0.473145f, -0.52832f, 0.354492f, -0.623535f,
+0.374023f, -0.724609f, 0.51123f, -0.724609f, 0.491699f, -0.623535f, 0.370605f, 0,
+0.275879f, -0.239258f, 0.208984f, -0.198242f, 0.17041f, 0, 0.0332031f, 0, 0.173828f,
+-0.724609f, 0.311035f, -0.724609f, 0.230469f, -0.30957f, 0.461426f, -0.52832f, 0.608887f,
+-0.52832f, 0.383301f, -0.322266f, 0.520508f, 0, 0.354492f, -0.0927734f, 0.526855f,
+-0.0927734f, 0.508789f, 0, 0.00634766f, 0, 0.0244141f, -0.0927734f, 0.217285f, -0.0927734f,
+0.322266f, -0.631836f, 0.180664f, -0.631836f, 0.198242f, -0.724609f, 0.477051f, -0.724609f,
+0.193359f, 0, 0.255859f, -0.321289f, 0.26123f, -0.350586f, 0.26416f, -0.371582f,
+0.26709f, -0.392578f, 0.26709f, -0.407715f, 0.26709f, -0.431152f, 0.26001f, -0.440918f,
+0.25293f, -0.450684f, 0.238281f, -0.450684f, 0.226074f, -0.450684f, 0.213867f, -0.438721f,
+0.20166f, -0.426758f, 0.19043f, -0.405029f, 0.179199f, -0.383301f, 0.169434f, -0.352539f,
+0.159668f, -0.321777f, 0.152344f, -0.28418f, 0.097168f, 0, -0.0146484f, 0, 0.065918f,
+-0.415527f, 0.0693359f, -0.432129f, 0.0725098f, -0.450439f, 0.0756836f, -0.46875f,
+0.0783691f, -0.485107f, 0.0810547f, -0.501465f, 0.0830078f, -0.513184f, 0.0849609f,
+-0.524902f, 0.0849609f, -0.52832f, 0.187012f, -0.52832f, 0.187012f, -0.525879f, 0.185547f,
+-0.515869f, 0.184082f, -0.505859f, 0.182129f, -0.49292f, 0.180176f, -0.47998f, 0.177734f,
+-0.466309f, 0.175293f, -0.452637f, 0.17334f, -0.442871f, 0.174316f, -0.442871f, 0.18457f,
+-0.461914f, 0.196533f, -0.479248f, 0.208496f, -0.496582f, 0.223633f, -0.509766f,
+0.23877f, -0.522949f, 0.257324f, -0.530518f, 0.275879f, -0.538086f, 0.29834f, -0.538086f,
+0.341309f, -0.538086f, 0.358154f, -0.514648f, 0.375f, -0.491211f, 0.374512f, -0.442383f,
+0.375488f, -0.442383f, 0.388672f, -0.465332f, 0.402588f, -0.483154f, 0.416504f, -0.500977f,
+0.432617f, -0.513184f, 0.44873f, -0.525391f, 0.467529f, -0.531738f, 0.486328f, -0.538086f,
+0.509277f, -0.538086f, 0.552246f, -0.538086f, 0.571777f, -0.515625f, 0.591309f, -0.493164f,
+0.591309f, -0.444336f, 0.591309f, -0.425293f, 0.588623f, -0.402588f, 0.585938f, -0.379883f,
+0.580566f, -0.352051f, 0.512207f, 0, 0.400879f, 0, 0.463379f, -0.321289f, 0.46875f,
+-0.350586f, 0.47168f, -0.371582f, 0.474609f, -0.392578f, 0.474609f, -0.407715f, 0.474609f,
+-0.431152f, 0.467529f, -0.440918f, 0.460449f, -0.450684f, 0.445801f, -0.450684f,
+0.420898f, -0.450684f, 0.398926f, -0.411377f, 0.376953f, -0.37207f, 0.361816f, -0.293457f,
+0.304688f, 0, 0.351074f, 0, 0.409668f, -0.302246f, 0.416992f, -0.338379f, 0.416992f,
+-0.364258f, 0.416992f, -0.400879f, 0.401367f, -0.418213f, 0.385742f, -0.435547f,
+0.352051f, -0.435547f, 0.327148f, -0.435547f, 0.304688f, -0.424561f, 0.282227f, -0.413574f,
+0.263428f, -0.393311f, 0.244629f, -0.373047f, 0.231201f, -0.344971f, 0.217773f, -0.316895f,
+0.210938f, -0.283203f, 0.155762f, 0, 0.0185547f, 0, 0.0981445f, -0.410156f, 0.101562f,
+-0.427246f, 0.104736f, -0.445312f, 0.10791f, -0.463379f, 0.110596f, -0.479736f, 0.113281f,
+-0.496094f, 0.11499f, -0.509033f, 0.116699f, -0.521973f, 0.117188f, -0.52832f, 0.248047f,
+-0.52832f, 0.248047f, -0.522461f, 0.246582f, -0.509521f, 0.245117f, -0.496582f, 0.243164f,
+-0.480957f, 0.241211f, -0.465332f, 0.23877f, -0.449707f, 0.236328f, -0.434082f, 0.234375f,
+-0.42334f, 0.236328f, -0.42334f, 0.275391f, -0.483398f, 0.322998f, -0.510986f, 0.370605f,
+-0.538574f, 0.428223f, -0.538574f, 0.49707f, -0.538574f, 0.528809f, -0.503662f, 0.560547f,
+-0.46875f, 0.560547f, -0.405273f, 0.560547f, -0.373535f, 0.553223f, -0.335449f, 0.487793f,
+0, 0.555176f, -0.264648f, 0.543457f, -0.204102f, 0.518555f, -0.153809f, 0.493652f,
+-0.103516f, 0.455078f, -0.0671387f, 0.416504f, -0.0307617f, 0.364014f, -0.010498f,
+0.311523f, 0.00976562f, 0.244629f, 0.00976562f, 0.191406f, 0.00976562f, 0.1521f,
+-0.00415039f, 0.112793f, -0.0180664f, 0.0874023f, -0.0437012f, 0.0620117f, -0.0693359f,
+0.0495605f, -0.105713f, 0.0371094f, -0.14209f, 0.0371094f, -0.187012f, 0.0371094f,
+-0.205566f, 0.0390625f, -0.224854f, 0.0410156f, -0.244141f, 0.0449219f, -0.264648f,
+0.0566406f, -0.32373f, 0.0810547f, -0.373779f, 0.105469f, -0.423828f, 0.143555f,
+-0.460449f, 0.181641f, -0.49707f, 0.234131f, -0.517578f, 0.286621f, -0.538086f, 0.354004f,
+-0.538086f, 0.411621f, -0.538086f, 0.45166f, -0.524658f, 0.491699f, -0.51123f, 0.516846f,
+-0.486816f, 0.541992f, -0.462402f, 0.553223f, -0.427734f, 0.564453f, -0.393066f,
+0.564453f, -0.351074f, 0.564453f, -0.330566f, 0.562012f, -0.309326f, 0.55957f, -0.288086f,
+0.555176f, -0.264648f, 0.411621f, -0.264648f, 0.416504f, -0.289551f, 0.418945f, -0.310547f,
+0.421387f, -0.331543f, 0.421387f, -0.349121f, 0.421387f, -0.398438f, 0.401367f, -0.421143f,
+0.381348f, -0.443848f, 0.337891f, -0.443848f, 0.307617f, -0.443848f, 0.283936f, -0.43335f,
+0.260254f, -0.422852f, 0.242188f, -0.400879f, 0.224121f, -0.378906f, 0.211182f, -0.345215f,
+0.198242f, -0.311523f, 0.188965f, -0.264648f, 0.180176f, -0.21875f, 0.180176f, -0.18457f,
+0.180176f, -0.132324f, 0.200684f, -0.108154f, 0.221191f, -0.0839844f, 0.26123f, -0.0839844f,
+0.291504f, -0.0839844f, 0.31543f, -0.0944824f, 0.339355f, -0.10498f, 0.357666f, -0.126953f,
+0.375977f, -0.148926f, 0.38916f, -0.183105f, 0.402344f, -0.217285f, 0.411621f, -0.264648f,
+0.252441f, -0.52832f, 0.25293f, -0.524902f, 0.252197f, -0.514648f, 0.251465f, -0.504395f,
+0.250244f, -0.491699f, 0.249023f, -0.479004f, 0.24707f, -0.46582f, 0.245117f, -0.452637f,
+0.243164f, -0.442383f, 0.245117f, -0.442383f, 0.263184f, -0.46875f, 0.28418f, -0.487061f,
+0.305176f, -0.505371f, 0.327393f, -0.516846f, 0.349609f, -0.52832f, 0.372559f, -0.533447f,
+0.395508f, -0.538574f, 0.417969f, -0.538574f, 0.45459f, -0.538574f, 0.481934f, -0.525391f,
+0.509277f, -0.512207f, 0.5271f, -0.488281f, 0.544922f, -0.464355f, 0.553711f, -0.430908f,
+0.5625f, -0.397461f, 0.5625f, -0.356934f, 0.5625f, -0.335449f, 0.560303f, -0.312744f,
+0.558105f, -0.290039f, 0.553223f, -0.265137f, 0.541504f, -0.205078f, 0.52002f, -0.154785f,
+0.498535f, -0.104492f, 0.467285f, -0.0678711f, 0.436035f, -0.03125f, 0.395752f, -0.0107422f,
+0.355469f, 0.00976562f, 0.306152f, 0.00976562f, 0.28418f, 0.00976562f, 0.263184f,
+0.00488281f, 0.242188f, 0, 0.224609f, -0.0109863f, 0.207031f, -0.0219727f, 0.194092f,
+-0.0397949f, 0.181152f, -0.0576172f, 0.174316f, -0.0834961f, 0.17334f, -0.0834961f,
+0.172363f, -0.0786133f, 0.170654f, -0.0690918f, 0.168945f, -0.0595703f, 0.166992f,
+-0.0473633f, 0.165039f, -0.0351562f, 0.162598f, -0.0219727f, 0.160156f, -0.00878906f,
+0.157715f, 0.00341797f, 0.117676f, 0.20752f, -0.0195312f, 0.20752f, 0.101074f, -0.413086f,
+0.108887f, -0.45166f, 0.113037f, -0.481689f, 0.117188f, -0.511719f, 0.119629f, -0.52832f,
+0.207031f, -0.261719f, 0.199219f, -0.221191f, 0.199219f, -0.19043f, 0.199219f, -0.159668f,
+0.205811f, -0.13916f, 0.212402f, -0.118652f, 0.223389f, -0.106201f, 0.234375f, -0.09375f,
+0.248047f, -0.088623f, 0.261719f, -0.0834961f, 0.275391f, -0.0834961f, 0.297852f,
+-0.0834961f, 0.318115f, -0.09375f, 0.338379f, -0.104004f, 0.355713f, -0.125977f,
+0.373047f, -0.147949f, 0.386963f, -0.182373f, 0.400879f, -0.216797f, 0.410156f, -0.265137f,
+0.414551f, -0.287598f, 0.416504f, -0.306885f, 0.418457f, -0.326172f, 0.418457f, -0.343262f,
+0.418457f, -0.394043f, 0.400146f, -0.419434f, 0.381836f, -0.444824f, 0.34668f, -0.444824f,
+0.32959f, -0.444824f, 0.30957f, -0.436035f, 0.289551f, -0.427246f, 0.27002f, -0.40625f,
+0.250488f, -0.385254f, 0.233887f, -0.349854f, 0.217285f, -0.314453f, 0.207031f, -0.261719f,
+0.583008f, -0.52832f, 0.579102f, -0.511719f, 0.571777f, -0.481689f, 0.564453f, -0.45166f,
+0.556641f, -0.413086f, 0.436035f, 0.20752f, 0.298828f, 0.20752f, 0.338867f, 0.00341797f,
+0.341309f, -0.00878906f, 0.343994f, -0.0219727f, 0.34668f, -0.0351562f, 0.349121f,
+-0.0473633f, 0.351562f, -0.0595703f, 0.353516f, -0.0690918f, 0.355469f, -0.0786133f,
+0.356445f, -0.0834961f, 0.355469f, -0.0834961f, 0.338867f, -0.0576172f, 0.318115f,
+-0.0397949f, 0.297363f, -0.0219727f, 0.274658f, -0.0109863f, 0.251953f, 0, 0.228271f,
+0.00488281f, 0.20459f, 0.00976562f, 0.182617f, 0.00976562f, 0.144531f, 0.00976562f,
+0.116943f, -0.00268555f, 0.0893555f, -0.0151367f, 0.0717773f, -0.0380859f, 0.0541992f,
+-0.0610352f, 0.0456543f, -0.0932617f, 0.0371094f, -0.125488f, 0.0371094f, -0.165039f,
+0.0371094f, -0.188477f, 0.0397949f, -0.213135f, 0.0424805f, -0.237793f, 0.0478516f,
+-0.265137f, 0.059082f, -0.324219f, 0.081543f, -0.374268f, 0.104004f, -0.424316f,
+0.135498f, -0.460938f, 0.166992f, -0.497559f, 0.207031f, -0.518066f, 0.24707f, -0.538574f,
+0.293457f, -0.538574f, 0.315918f, -0.538574f, 0.336182f, -0.533447f, 0.356445f, -0.52832f,
+0.373291f, -0.516846f, 0.390137f, -0.505371f, 0.40332f, -0.487061f, 0.416504f, -0.46875f,
+0.424316f, -0.442383f, 0.42627f, -0.442383f, 0.428223f, -0.452637f, 0.431641f, -0.46582f,
+0.435059f, -0.479004f, 0.438477f, -0.491699f, 0.441895f, -0.504395f, 0.445068f, -0.514648f,
+0.448242f, -0.524902f, 0.450195f, -0.52832f, 0.39209f, -0.261719f, 0.399902f, -0.302246f,
+0.399902f, -0.333984f, 0.399902f, -0.365723f, 0.393066f, -0.386963f, 0.38623f, -0.408203f,
+0.375488f, -0.420898f, 0.364746f, -0.433594f, 0.351074f, -0.439209f, 0.337402f, -0.444824f,
+0.32373f, -0.444824f, 0.276855f, -0.444824f, 0.242432f, -0.399902f, 0.208008f, -0.35498f,
+0.190918f, -0.265137f, 0.181641f, -0.21875f, 0.181641f, -0.183594f, 0.181641f, -0.130859f,
+0.200928f, -0.107178f, 0.220215f, -0.0834961f, 0.254395f, -0.0834961f, 0.271973f,
+-0.0834961f, 0.291748f, -0.0917969f, 0.311523f, -0.100098f, 0.330566f, -0.120361f,
+0.349609f, -0.140625f, 0.365723f, -0.175049f, 0.381836f, -0.209473f, 0.39209f, -0.261719f,
+0.557129f, -0.414062f, 0.535156f, -0.417969f, 0.510498f, -0.420654f, 0.48584f, -0.42334f,
+0.455566f, -0.42334f, 0.414551f, -0.42334f, 0.380127f, -0.406738f, 0.345703f, -0.390137f,
+0.319336f, -0.361572f, 0.292969f, -0.333008f, 0.275146f, -0.294922f, 0.257324f, -0.256836f,
+0.249023f, -0.213867f, 0.20752f, 0, 0.0708008f, 0, 0.137207f, -0.342285f, 0.144043f,
+-0.379395f, 0.146729f, -0.416748f, 0.149414f, -0.454102f, 0.149414f, -0.483398f,
+0.149414f, -0.497559f, 0.148926f, -0.509033f, 0.148438f, -0.520508f, 0.147949f, -0.52832f,
+0.280273f, -0.52832f, 0.28125f, -0.515625f, 0.282227f, -0.499756f, 0.283203f, -0.483887f,
+0.283203f, -0.466309f, 0.283203f, -0.453613f, 0.282715f, -0.440918f, 0.282227f, -0.428223f,
+0.28125f, -0.416992f, 0.283203f, -0.416992f, 0.298828f, -0.444824f, 0.317139f, -0.467285f,
+0.335449f, -0.489746f, 0.359131f, -0.505371f, 0.382812f, -0.520996f, 0.412598f, -0.529541f,
+0.442383f, -0.538086f, 0.480469f, -0.538086f, 0.507812f, -0.538086f, 0.533936f, -0.535645f,
+0.560059f, -0.533203f, 0.57959f, -0.529785f, 0.517578f, -0.154297f, 0.510254f, -0.116211f,
+0.488525f, -0.0859375f, 0.466797f, -0.0556641f, 0.432373f, -0.0344238f, 0.397949f,
+-0.0131836f, 0.351807f, -0.00170898f, 0.305664f, 0.00976562f, 0.249512f, 0.00976562f,
+0.199219f, 0.00976562f, 0.160156f, 0.00244141f, 0.121094f, -0.00488281f, 0.09375f,
+-0.0217285f, 0.0664062f, -0.0385742f, 0.0510254f, -0.0654297f, 0.0356445f, -0.0922852f,
+0.0332031f, -0.131836f, 0.157715f, -0.149902f, 0.15918f, -0.12793f, 0.166748f, -0.114258f,
+0.174316f, -0.100586f, 0.187988f, -0.0932617f, 0.20166f, -0.0859375f, 0.221436f,
+-0.0834961f, 0.241211f, -0.0810547f, 0.26709f, -0.0810547f, 0.290527f, -0.0810547f,
+0.311279f, -0.0837402f, 0.332031f, -0.0864258f, 0.348145f, -0.0930176f, 0.364258f,
+-0.0996094f, 0.375f, -0.111572f, 0.385742f, -0.123535f, 0.38916f, -0.141602f, 0.393066f,
+-0.162109f, 0.383545f, -0.174072f, 0.374023f, -0.186035f, 0.354736f, -0.193604f,
+0.335449f, -0.201172f, 0.308594f, -0.206787f, 0.281738f, -0.212402f, 0.250977f, -0.219727f,
+0.222656f, -0.226562f, 0.195312f, -0.235352f, 0.167969f, -0.244141f, 0.146729f, -0.258301f,
+0.125488f, -0.272461f, 0.112305f, -0.293457f, 0.0991211f, -0.314453f, 0.0991211f,
+-0.345703f, 0.0991211f, -0.353027f, 0.0998535f, -0.361328f, 0.100586f, -0.369629f,
+0.102539f, -0.378418f, 0.109863f, -0.416016f, 0.130127f, -0.445557f, 0.150391f, -0.475098f,
+0.182617f, -0.49585f, 0.214844f, -0.516602f, 0.258789f, -0.527588f, 0.302734f, -0.538574f,
+0.356934f, -0.538574f, 0.399902f, -0.538574f, 0.435547f, -0.530518f, 0.471191f, -0.522461f,
+0.49707f, -0.505127f, 0.522949f, -0.487793f, 0.537598f, -0.460938f, 0.552246f, -0.434082f,
+0.552734f, -0.395996f, 0.428711f, -0.383301f, 0.428711f, -0.402344f, 0.422607f, -0.414795f,
+0.416504f, -0.427246f, 0.404785f, -0.43457f, 0.393066f, -0.441895f, 0.376465f, -0.44458f,
+0.359863f, -0.447266f, 0.339355f, -0.447266f, 0.290527f, -0.447266f, 0.263672f, -0.434814f,
+0.236816f, -0.422363f, 0.230957f, -0.393066f, 0.227539f, -0.375f, 0.235596f, -0.364258f,
+0.243652f, -0.353516f, 0.260498f, -0.346436f, 0.277344f, -0.339355f, 0.301514f, -0.334229f,
+0.325684f, -0.329102f, 0.354004f, -0.321777f, 0.385742f, -0.314941f, 0.415771f, -0.305908f,
+0.445801f, -0.296875f, 0.469238f, -0.281982f, 0.492676f, -0.26709f, 0.506836f, -0.244629f,
+0.520996f, -0.222168f, 0.520996f, -0.188477f, 0.520996f, -0.171387f, 0.517578f, -0.154297f,
+0.193359f, -0.435547f, 0.111816f, -0.435547f, 0.129883f, -0.52832f, 0.218262f, -0.52832f,
+0.288086f, -0.666016f, 0.374023f, -0.666016f, 0.347168f, -0.52832f, 0.535156f, -0.52832f,
+0.51709f, -0.435547f, 0.329102f, -0.435547f, 0.278809f, -0.176758f, 0.276855f, -0.166016f,
+0.275146f, -0.155762f, 0.273438f, -0.145508f, 0.273438f, -0.13623f, 0.273438f, -0.125488f,
+0.276611f, -0.116455f, 0.279785f, -0.107422f, 0.287842f, -0.10083f, 0.295898f, -0.0942383f,
+0.310303f, -0.0905762f, 0.324707f, -0.0869141f, 0.34668f, -0.0869141f, 0.37793f,
+-0.0869141f, 0.409668f, -0.090332f, 0.441406f, -0.09375f, 0.473633f, -0.100098f,
+0.456055f, -0.00927734f, 0.437012f, -0.00634766f, 0.418701f, -0.00341797f, 0.400391f,
+-0.000488281f, 0.381104f, 0.00170898f, 0.361816f, 0.00390625f, 0.340576f, 0.00512695f,
+0.319336f, 0.00634766f, 0.294434f, 0.00634766f, 0.245605f, 0.00634766f, 0.214355f,
+-0.00317383f, 0.183105f, -0.0126953f, 0.165039f, -0.0285645f, 0.146973f, -0.0444336f,
+0.140137f, -0.0654297f, 0.133301f, -0.0864258f, 0.133301f, -0.109375f, 0.133301f,
+-0.123047f, 0.135254f, -0.136719f, 0.137207f, -0.150391f, 0.139648f, -0.164062f,
+0.254395f, -0.52832f, 0.196777f, -0.231934f, 0.190918f, -0.201172f, 0.190918f, -0.175781f,
+0.190918f, -0.137695f, 0.205566f, -0.115234f, 0.220215f, -0.0927734f, 0.253906f,
+-0.0927734f, 0.274902f, -0.0927734f, 0.295654f, -0.10376f, 0.316406f, -0.114746f,
+0.333984f, -0.13501f, 0.351562f, -0.155273f, 0.36499f, -0.18335f, 0.378418f, -0.211426f,
+0.384766f, -0.245117f, 0.439453f, -0.52832f, 0.57666f, -0.52832f, 0.49707f, -0.118164f,
+0.493652f, -0.101562f, 0.490479f, -0.083252f, 0.487305f, -0.0649414f, 0.484863f,
+-0.048584f, 0.482422f, -0.0322266f, 0.480469f, -0.0192871f, 0.478516f, -0.00634766f,
+0.478027f, 0, 0.347168f, 0, 0.347656f, -0.00585938f, 0.349121f, -0.0187988f, 0.350586f,
+-0.0317383f, 0.352783f, -0.0473633f, 0.35498f, -0.0629883f, 0.357422f, -0.0786133f,
+0.359863f, -0.0942383f, 0.361816f, -0.10498f, 0.359375f, -0.10498f, 0.320312f, -0.0449219f,
+0.273926f, -0.0175781f, 0.227539f, 0.00976562f, 0.176758f, 0.00976562f, 0.140625f,
+0.00976562f, 0.115479f, 0, 0.090332f, -0.00976562f, 0.074707f, -0.0273438f, 0.059082f,
+-0.0449219f, 0.052002f, -0.0693359f, 0.0449219f, -0.09375f, 0.0449219f, -0.123535f,
+0.0449219f, -0.15625f, 0.0522461f, -0.192871f, 0.117188f, -0.52832f, 0.32666f, 0,
+0.162598f, 0, 0.0664062f, -0.52832f, 0.211426f, -0.52832f, 0.254395f, -0.224609f,
+0.256348f, -0.209961f, 0.257812f, -0.193604f, 0.259277f, -0.177246f, 0.260742f, -0.161133f,
+0.262207f, -0.14502f, 0.263428f, -0.129883f, 0.264648f, -0.114746f, 0.265625f, -0.102539f,
+0.270996f, -0.114258f, 0.278076f, -0.12915f, 0.285156f, -0.144043f, 0.292969f, -0.160156f,
+0.300781f, -0.17627f, 0.309082f, -0.192383f, 0.317383f, -0.208496f, 0.325195f, -0.223145f,
+0.490234f, -0.52832f, 0.633789f, -0.52832f, 0.450684f, 0, 0.331543f, 0, 0.306641f,
+-0.22998f, 0.305176f, -0.243164f, 0.304443f, -0.252441f, 0.303711f, -0.261719f, 0.303223f,
+-0.268066f, 0.302734f, -0.275391f, 0.302734f, -0.279785f, 0.30127f, -0.275391f, 0.29834f,
+-0.268555f, 0.295898f, -0.262695f, 0.29126f, -0.25293f, 0.286621f, -0.243164f, 0.278809f,
+-0.228027f, 0.162109f, 0, 0.043457f, 0, 0.0566406f, -0.52832f, 0.167969f, -0.52832f,
+0.150879f, -0.231934f, 0.149414f, -0.208496f, 0.146973f, -0.179443f, 0.144531f, -0.150391f,
+0.138672f, -0.121582f, 0.142578f, -0.129883f, 0.146973f, -0.13916f, 0.150879f, -0.147461f,
+0.155518f, -0.157471f, 0.160156f, -0.16748f, 0.165527f, -0.177246f, 0.279297f, -0.398926f,
+0.373535f, -0.398926f, 0.398438f, -0.176758f, 0.399414f, -0.166992f, 0.400146f, -0.157471f,
+0.400879f, -0.147949f, 0.401367f, -0.139648f, 0.401855f, -0.130371f, 0.401855f, -0.121582f,
+0.407715f, -0.150879f, 0.416504f, -0.178955f, 0.425293f, -0.207031f, 0.433594f, -0.231934f,
+0.535645f, -0.52832f, 0.645996f, -0.52832f, 0.375488f, 0, 0.284668f, -0.191406f,
+0.118652f, 0, -0.0273438f, 0, 0.224121f, -0.272949f, 0.0844727f, -0.52832f, 0.232422f,
+-0.52832f, 0.316895f, -0.355469f, 0.467285f, -0.52832f, 0.616211f, -0.52832f, 0.37793f,
+-0.274414f, 0.524414f, 0, 0.305664f, 0.027832f, 0.27832f, 0.0742188f, 0.252197f,
+0.108154f, 0.226074f, 0.14209f, 0.197998f, 0.164062f, 0.169922f, 0.186035f, 0.137939f,
+0.196777f, 0.105957f, 0.20752f, 0.0668945f, 0.20752f, 0.0454102f, 0.20752f, 0.0219727f,
+0.206055f, -0.00146484f, 0.20459f, -0.0205078f, 0.201172f, -0.00146484f, 0.103516f,
+0.00341797f, 0.104492f, 0.00976562f, 0.10498f, 0.0161133f, 0.105469f, 0.0227051f,
+0.106201f, 0.0292969f, 0.106934f, 0.0358887f, 0.107178f, 0.0424805f, 0.107422f, 0.0473633f,
+0.107422f, 0.0673828f, 0.107422f, 0.0837402f, 0.103027f, 0.100098f, 0.0986328f, 0.11499f,
+0.0883789f, 0.129883f, 0.078125f, 0.144287f, 0.0610352f, 0.158691f, 0.0439453f, 0.173828f,
+0.0180664f, 0.187012f, -0.00537109f, 0.0698242f, -0.52832f, 0.214844f, -0.52832f,
+0.257812f, -0.270996f, 0.258789f, -0.265625f, 0.260498f, -0.25293f, 0.262207f, -0.240234f,
+0.263916f, -0.223877f, 0.265625f, -0.20752f, 0.267578f, -0.189453f, 0.269531f, -0.171387f,
+0.27124f, -0.155029f, 0.272949f, -0.138672f, 0.27417f, -0.125977f, 0.275391f, -0.113281f,
+0.275391f, -0.10791f, 0.277832f, -0.113281f, 0.283447f, -0.125732f, 0.289062f, -0.138184f,
+0.296387f, -0.154053f, 0.303711f, -0.169922f, 0.312012f, -0.1875f, 0.320312f, -0.205078f,
+0.327881f, -0.221191f, 0.335449f, -0.237305f, 0.341553f, -0.250244f, 0.347656f, -0.263184f,
+0.350586f, -0.269043f, 0.48877f, -0.52832f, 0.632324f, -0.52832f, 0.0161133f, 0,
+0.0351562f, -0.097168f, 0.37793f, -0.429199f, 0.119629f, -0.429199f, 0.138672f, -0.52832f,
+0.553223f, -0.52832f, 0.53418f, -0.430176f, 0.193359f, -0.100098f, 0.494141f, -0.100098f,
+0.474609f, 0, 0.258789f, 0.20752f, 0.201172f, 0.20752f, 0.17041f, 0.178955f, 0.139648f,
+0.150391f, 0.139648f, 0.0991211f, 0.139648f, 0.0825195f, 0.143555f, 0.0615234f, 0.174316f,
+-0.0986328f, 0.17627f, -0.108398f, 0.177002f, -0.116699f, 0.177734f, -0.125f, 0.177734f,
+-0.132812f, 0.177734f, -0.153809f, 0.171143f, -0.168457f, 0.164551f, -0.183105f,
+0.152588f, -0.192383f, 0.140625f, -0.20166f, 0.123291f, -0.205811f, 0.105957f, -0.209961f,
+0.0844727f, -0.210449f, 0.103027f, -0.305664f, 0.128906f, -0.306641f, 0.150635f,
+-0.312744f, 0.172363f, -0.318848f, 0.189697f, -0.332031f, 0.207031f, -0.345215f,
+0.218994f, -0.366455f, 0.230957f, -0.387695f, 0.236816f, -0.418457f, 0.267578f, -0.578613f,
+0.281738f, -0.650391f, 0.326904f, -0.6875f, 0.37207f, -0.724609f, 0.439941f, -0.724609f,
+0.599609f, -0.724609f, 0.582031f, -0.631836f, 0.490234f, -0.631836f, 0.445801f, -0.631836f,
+0.420898f, -0.606445f, 0.395996f, -0.581055f, 0.38623f, -0.529785f, 0.357422f, -0.382812f,
+0.352539f, -0.35791f, 0.340576f, -0.337158f, 0.328613f, -0.316406f, 0.311768f, -0.300781f,
+0.294922f, -0.285156f, 0.274414f, -0.274658f, 0.253906f, -0.26416f, 0.232422f, -0.259766f,
+0.232422f, -0.257812f, 0.249512f, -0.253418f, 0.26416f, -0.245117f, 0.278809f, -0.236816f,
+0.289551f, -0.224365f, 0.300293f, -0.211914f, 0.306152f, -0.195801f, 0.312012f, -0.179688f,
+0.312012f, -0.160156f, 0.312012f, -0.153809f, 0.311523f, -0.147705f, 0.311035f, -0.141602f,
+0.30957f, -0.134766f, 0.280762f, 0.012207f, 0.278809f, 0.0224609f, 0.277832f, 0.0317383f,
+0.276855f, 0.0410156f, 0.276855f, 0.0493164f, 0.276855f, 0.0820312f, 0.293213f, 0.0981445f,
+0.30957f, 0.114258f, 0.345215f, 0.114258f, 0.437012f, 0.114258f, 0.418457f, 0.20752f,
+0.23584f, 0.222168f, 0.23584f, -0.724609f, 0.36377f, -0.724609f, 0.36377f, 0.222168f,
+-0.00195312f, 0.20752f, 0.0166016f, 0.114258f, 0.108398f, 0.114258f, 0.152832f, 0.114258f,
+0.17749f, 0.0891113f, 0.202148f, 0.0639648f, 0.211914f, 0.012207f, 0.240723f, -0.134766f,
+0.245605f, -0.159668f, 0.257324f, -0.179932f, 0.269043f, -0.200195f, 0.285889f, -0.216064f,
+0.302734f, -0.231934f, 0.323242f, -0.242432f, 0.34375f, -0.25293f, 0.365723f, -0.257812f,
+0.365723f, -0.259766f, 0.348633f, -0.263672f, 0.333984f, -0.271973f, 0.319336f, -0.280273f,
+0.308838f, -0.292725f, 0.29834f, -0.305176f, 0.292236f, -0.321533f, 0.286133f, -0.337891f,
+0.286133f, -0.357422f, 0.286133f, -0.36377f, 0.286865f, -0.369873f, 0.287598f, -0.375977f,
+0.288574f, -0.382812f, 0.317383f, -0.529785f, 0.319824f, -0.540039f, 0.320557f, -0.549561f,
+0.321289f, -0.559082f, 0.321289f, -0.567383f, 0.321289f, -0.599609f, 0.304932f, -0.615723f,
+0.288574f, -0.631836f, 0.253418f, -0.631836f, 0.161621f, -0.631836f, 0.179199f, -0.724609f,
+0.338867f, -0.724609f, 0.396484f, -0.724609f, 0.427734f, -0.697754f, 0.458984f, -0.670898f,
+0.458984f, -0.618652f, 0.458984f, -0.600098f, 0.45459f, -0.578613f, 0.423828f, -0.418457f,
+0.421875f, -0.408691f, 0.420898f, -0.400146f, 0.419922f, -0.391602f, 0.419922f, -0.383789f,
+0.419922f, -0.342285f, 0.445068f, -0.324463f, 0.470215f, -0.306641f, 0.513672f, -0.305664f,
+0.495117f, -0.210449f, 0.469727f, -0.209961f, 0.447754f, -0.204102f, 0.425781f, -0.198242f,
+0.408691f, -0.185059f, 0.391602f, -0.171875f, 0.379395f, -0.150635f, 0.367188f, -0.129395f,
+0.361328f, -0.0986328f, 0.330566f, 0.0615234f, 0.324219f, 0.0952148f, 0.308838f,
+0.122314f, 0.293457f, 0.149414f, 0.27124f, 0.168213f, 0.249023f, 0.187012f, 0.220215f,
+0.197266f, 0.191406f, 0.20752f, 0.157715f, 0.20752f, 0.42041f, -0.251953f, 0.383789f,
+-0.251953f, 0.350586f, -0.262207f, 0.317383f, -0.272461f, 0.283203f, -0.285156f,
+0.25293f, -0.296387f, 0.227539f, -0.302246f, 0.202148f, -0.308105f, 0.179688f, -0.308105f,
+0.160645f, -0.308105f, 0.143555f, -0.305176f, 0.126465f, -0.302246f, 0.110596f, -0.296631f,
+0.0947266f, -0.291016f, 0.0791016f, -0.283203f, 0.0634766f, -0.275391f, 0.046875f,
+-0.265137f, 0.0668945f, -0.369141f, 0.0952148f, -0.387695f, 0.130615f, -0.398926f,
+0.166016f, -0.410156f, 0.207031f, -0.410156f, 0.227051f, -0.410156f, 0.246338f, -0.406982f,
+0.265625f, -0.403809f, 0.284424f, -0.398682f, 0.303223f, -0.393555f, 0.321045f, -0.386963f,
+0.338867f, -0.380371f, 0.355957f, -0.374023f, 0.376465f, -0.366211f, 0.401367f, -0.359619f,
+0.42627f, -0.353027f, 0.449707f, -0.353027f, 0.48291f, -0.353027f, 0.516357f, -0.365234f,
+0.549805f, -0.377441f, 0.579102f, -0.397949f, 0.558594f, -0.291016f, 0.541016f, -0.280273f,
+0.524658f, -0.272705f, 0.508301f, -0.265137f, 0.491699f, -0.260498f, 0.475098f, -0.255859f,
+0.457764f, -0.253906f, 0.44043f, -0.251953f, 0.42041f, -0.251953f
+};
+
+const unsigned char LiberationMonoBoldItalicVerbs[] = {
+0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 1,
+2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1,
+1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5,
+0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 1, 1, 1, 2, 5, 0, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 1, 1, 1, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 1, 1, 1, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationMonoBoldItalicCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
+119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationMonoBoldItalicWidths[] = {
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0
+};
+
+const int LiberationMonoBoldItalicCharCodesCount = (int) SK_ARRAY_COUNT(LiberationMonoBoldItalicCharCodes);
+
+const SkPaint::FontMetrics LiberationMonoBoldItalicMetrics = {
+0x30307833, -0.83252f, -0.83252f, 0.300293f, 0.300293f, 0, 0.791992f, 0.0123749f,
+-0.0942383f, 0.697754f, 0.538086f, 0.0104446f, 0.100098f, 0.23291f
+};
--- /dev/null
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+// Auto-generated by create_test_font.cpp
+
+const SkScalar LiberationSansNormalPoints[] = {
+0.100098f, -0.687988f, 0.649414f, -0.687988f, 0.649414f, 0, 0.100098f, 0, 0.137207f,
+-0.650879f, 0.137207f, -0.0371094f, 0.612305f, -0.0371094f, 0.612305f, -0.650879f,
+0.175293f, -0.193848f, 0.103027f, -0.193848f, 0.0913086f, -0.687988f, 0.187012f,
+-0.687988f, 0.090332f, 0, 0.090332f, -0.0981445f, 0.185059f, -0.0981445f, 0.185059f,
+0, 0.301758f, -0.47168f, 0.232422f, -0.47168f, 0.222656f, -0.687988f, 0.3125f, -0.687988f,
+0.121582f, -0.47168f, 0.0527344f, -0.47168f, 0.0424805f, -0.687988f, 0.132324f, -0.687988f,
+0.4375f, -0.432129f, 0.399414f, -0.251953f, 0.526367f, -0.251953f, 0.526367f, -0.199219f,
+0.388184f, -0.199219f, 0.345215f, 0, 0.291504f, 0, 0.333496f, -0.199219f, 0.15625f,
+-0.199219f, 0.115234f, 0, 0.0615234f, 0, 0.102539f, -0.199219f, 0.00439453f, -0.199219f,
+0.00439453f, -0.251953f, 0.114258f, -0.251953f, 0.152344f, -0.432129f, 0.0292969f,
+-0.432129f, 0.0292969f, -0.484863f, 0.163086f, -0.484863f, 0.206543f, -0.684082f,
+0.260254f, -0.684082f, 0.217285f, -0.484863f, 0.394531f, -0.484863f, 0.4375f, -0.684082f,
+0.491211f, -0.684082f, 0.448242f, -0.484863f, 0.55127f, -0.484863f, 0.55127f, -0.432129f,
+0.20752f, -0.432129f, 0.168457f, -0.251953f, 0.345215f, -0.251953f, 0.383301f, -0.432129f,
+0.25293f, -0.00976562f, 0.146973f, -0.0141602f, 0.0871582f, -0.0593262f, 0.0273438f,
+-0.104492f, 0.0107422f, -0.185059f, 0.09375f, -0.203125f, 0.0991211f, -0.177246f,
+0.110352f, -0.156006f, 0.121582f, -0.134766f, 0.140625f, -0.119141f, 0.159668f, -0.103516f,
+0.187256f, -0.0939941f, 0.214844f, -0.0844727f, 0.25293f, -0.0820312f, 0.25293f,
+-0.324219f, 0.243164f, -0.32666f, 0.205566f, -0.335449f, 0.169434f, -0.347656f, 0.133301f,
+-0.359863f, 0.10498f, -0.380127f, 0.0766602f, -0.400391f, 0.0593262f, -0.431641f,
+0.0419922f, -0.462891f, 0.0419922f, -0.510742f, 0.0419922f, -0.551758f, 0.0576172f,
+-0.582031f, 0.0732422f, -0.612305f, 0.101318f, -0.632568f, 0.129395f, -0.652832f,
+0.167969f, -0.663574f, 0.206543f, -0.674316f, 0.25293f, -0.67627f, 0.25293f, -0.740234f,
+0.313477f, -0.740234f, 0.313477f, -0.67627f, 0.362305f, -0.673828f, 0.397705f, -0.662842f,
+0.433105f, -0.651855f, 0.458008f, -0.632324f, 0.48291f, -0.612793f, 0.499023f, -0.584717f,
+0.515137f, -0.556641f, 0.524902f, -0.52002f, 0.439941f, -0.503906f, 0.430176f, -0.549805f,
+0.400391f, -0.575439f, 0.370605f, -0.601074f, 0.313477f, -0.606445f, 0.313477f, -0.38916f,
+0.342285f, -0.382324f, 0.370117f, -0.375f, 0.397949f, -0.367676f, 0.423096f, -0.357666f,
+0.448242f, -0.347656f, 0.469727f, -0.333984f, 0.491211f, -0.320312f, 0.506836f, -0.301025f,
+0.522461f, -0.281738f, 0.53125f, -0.255127f, 0.540039f, -0.228516f, 0.540039f, -0.193359f,
+0.540039f, -0.155762f, 0.526367f, -0.123779f, 0.512695f, -0.0917969f, 0.484863f,
+-0.0673828f, 0.457031f, -0.0429688f, 0.414307f, -0.027832f, 0.371582f, -0.0126953f,
+0.313477f, -0.00976562f, 0.313477f, 0.0693359f, 0.25293f, 0.0693359f, 0.456055f,
+-0.192383f, 0.456055f, -0.223145f, 0.44458f, -0.242676f, 0.433105f, -0.262207f, 0.41333f,
+-0.274658f, 0.393555f, -0.287109f, 0.367676f, -0.294922f, 0.341797f, -0.302734f,
+0.313477f, -0.310059f, 0.313477f, -0.081543f, 0.345215f, -0.0834961f, 0.371582f,
+-0.0910645f, 0.397949f, -0.0986328f, 0.416748f, -0.112305f, 0.435547f, -0.125977f,
+0.445801f, -0.145752f, 0.456055f, -0.165527f, 0.456055f, -0.192383f, 0.125977f, -0.511719f,
+0.125977f, -0.485352f, 0.135742f, -0.467285f, 0.145508f, -0.449219f, 0.162598f, -0.437012f,
+0.179688f, -0.424805f, 0.202881f, -0.416748f, 0.226074f, -0.408691f, 0.25293f, -0.401855f,
+0.25293f, -0.607422f, 0.217773f, -0.605469f, 0.193359f, -0.597412f, 0.168945f, -0.589355f,
+0.154053f, -0.57666f, 0.13916f, -0.563965f, 0.132568f, -0.547363f, 0.125977f, -0.530762f,
+0.125977f, -0.511719f, 0.853516f, -0.211914f, 0.853516f, -0.150879f, 0.841064f, -0.109131f,
+0.828613f, -0.0673828f, 0.807373f, -0.041748f, 0.786133f, -0.0161133f, 0.757812f,
+-0.00512695f, 0.729492f, 0.00585938f, 0.697266f, 0.00585938f, 0.665039f, 0.00585938f,
+0.636963f, -0.00512695f, 0.608887f, -0.0161133f, 0.588135f, -0.0415039f, 0.567383f,
+-0.0668945f, 0.55542f, -0.108643f, 0.543457f, -0.150391f, 0.543457f, -0.211914f,
+0.543457f, -0.276855f, 0.555176f, -0.319336f, 0.566895f, -0.361816f, 0.587891f, -0.386963f,
+0.608887f, -0.412109f, 0.637451f, -0.422119f, 0.666016f, -0.432129f, 0.699219f, -0.432129f,
+0.731445f, -0.432129f, 0.759521f, -0.422119f, 0.787598f, -0.412109f, 0.80835f, -0.386963f,
+0.829102f, -0.361816f, 0.841309f, -0.319336f, 0.853516f, -0.276855f, 0.853516f, -0.211914f,
+0.257324f, 0, 0.181641f, 0, 0.631836f, -0.687988f, 0.708496f, -0.687988f, 0.192383f,
+-0.693848f, 0.223633f, -0.693848f, 0.251465f, -0.683838f, 0.279297f, -0.673828f,
+0.300293f, -0.648926f, 0.321289f, -0.624023f, 0.333252f, -0.582031f, 0.345215f, -0.540039f,
+0.345215f, -0.476074f, 0.345215f, -0.414551f, 0.333008f, -0.372559f, 0.320801f, -0.330566f,
+0.300049f, -0.304443f, 0.279297f, -0.27832f, 0.250977f, -0.26709f, 0.222656f, -0.255859f,
+0.19043f, -0.255859f, 0.157715f, -0.255859f, 0.129395f, -0.26709f, 0.101074f, -0.27832f,
+0.0803223f, -0.304199f, 0.0595703f, -0.330078f, 0.0476074f, -0.37207f, 0.0356445f,
+-0.414062f, 0.0356445f, -0.476074f, 0.0356445f, -0.540039f, 0.0476074f, -0.582031f,
+0.0595703f, -0.624023f, 0.0805664f, -0.648926f, 0.101562f, -0.673828f, 0.130371f,
+-0.683838f, 0.15918f, -0.693848f, 0.192383f, -0.693848f, 0.78125f, -0.211914f, 0.78125f,
+-0.260254f, 0.775879f, -0.292236f, 0.770508f, -0.324219f, 0.76001f, -0.343262f, 0.749512f,
+-0.362305f, 0.734131f, -0.370117f, 0.71875f, -0.37793f, 0.699219f, -0.37793f, 0.678711f,
+-0.37793f, 0.663086f, -0.369873f, 0.647461f, -0.361816f, 0.636719f, -0.342773f, 0.625977f,
+-0.32373f, 0.620605f, -0.291748f, 0.615234f, -0.259766f, 0.615234f, -0.211914f, 0.615234f,
+-0.165527f, 0.62085f, -0.134277f, 0.626465f, -0.103027f, 0.636963f, -0.0837402f,
+0.647461f, -0.0644531f, 0.662842f, -0.0561523f, 0.678223f, -0.0478516f, 0.698242f,
+-0.0478516f, 0.717285f, -0.0478516f, 0.732666f, -0.0561523f, 0.748047f, -0.0644531f,
+0.758789f, -0.0837402f, 0.769531f, -0.103027f, 0.775391f, -0.134277f, 0.78125f, -0.165527f,
+0.78125f, -0.211914f, 0.273438f, -0.476074f, 0.273438f, -0.523926f, 0.268066f, -0.555664f,
+0.262695f, -0.587402f, 0.252441f, -0.606445f, 0.242188f, -0.625488f, 0.227051f, -0.633301f,
+0.211914f, -0.641113f, 0.192383f, -0.641113f, 0.171387f, -0.641113f, 0.155518f, -0.633057f,
+0.139648f, -0.625f, 0.128906f, -0.605957f, 0.118164f, -0.586914f, 0.112793f, -0.555176f,
+0.107422f, -0.523438f, 0.107422f, -0.476074f, 0.107422f, -0.429688f, 0.113037f, -0.397949f,
+0.118652f, -0.366211f, 0.12915f, -0.346924f, 0.139648f, -0.327637f, 0.155273f, -0.319336f,
+0.170898f, -0.311035f, 0.191406f, -0.311035f, 0.209961f, -0.311035f, 0.225098f, -0.319336f,
+0.240234f, -0.327637f, 0.250977f, -0.346924f, 0.261719f, -0.366211f, 0.267578f, -0.397949f,
+0.273438f, -0.429688f, 0.273438f, -0.476074f, 0.58252f, 0.00585938f, 0.535645f, 0.00585938f,
+0.500488f, -0.0102539f, 0.465332f, -0.0263672f, 0.437012f, -0.0561523f, 0.422363f,
+-0.043457f, 0.403809f, -0.0317383f, 0.385254f, -0.0200195f, 0.362549f, -0.0107422f,
+0.339844f, -0.00146484f, 0.313232f, 0.00415039f, 0.286621f, 0.00976562f, 0.255371f,
+0.00976562f, 0.198242f, 0.00976562f, 0.156494f, -0.00488281f, 0.114746f, -0.0195312f,
+0.0878906f, -0.045166f, 0.0610352f, -0.0708008f, 0.0480957f, -0.105713f, 0.0351562f,
+-0.140625f, 0.0351562f, -0.181152f, 0.0351562f, -0.219727f, 0.0476074f, -0.251221f,
+0.0600586f, -0.282715f, 0.0822754f, -0.30835f, 0.104492f, -0.333984f, 0.135254f,
+-0.354248f, 0.166016f, -0.374512f, 0.202637f, -0.390625f, 0.193848f, -0.407227f,
+0.186768f, -0.426025f, 0.179688f, -0.444824f, 0.174316f, -0.463867f, 0.168945f, -0.48291f,
+0.166016f, -0.501953f, 0.163086f, -0.520996f, 0.163086f, -0.538086f, 0.163086f, -0.570312f,
+0.172852f, -0.598389f, 0.182617f, -0.626465f, 0.203369f, -0.647217f, 0.224121f, -0.667969f,
+0.256592f, -0.679932f, 0.289062f, -0.691895f, 0.334473f, -0.691895f, 0.370117f, -0.691895f,
+0.400146f, -0.682617f, 0.430176f, -0.67334f, 0.452148f, -0.655762f, 0.474121f, -0.638184f,
+0.486328f, -0.612305f, 0.498535f, -0.586426f, 0.498535f, -0.553223f, 0.498535f, -0.516602f,
+0.482422f, -0.488037f, 0.466309f, -0.459473f, 0.438965f, -0.437012f, 0.411621f, -0.414551f,
+0.375488f, -0.39624f, 0.339355f, -0.37793f, 0.298828f, -0.361816f, 0.329102f, -0.306152f,
+0.364746f, -0.25708f, 0.400391f, -0.208008f, 0.441895f, -0.160645f, 0.47168f, -0.20459f,
+0.491455f, -0.253174f, 0.51123f, -0.301758f, 0.525391f, -0.36084f, 0.596191f, -0.339844f,
+0.579102f, -0.271973f, 0.552979f, -0.216553f, 0.526855f, -0.161133f, 0.492676f, -0.11084f,
+0.518555f, -0.0844727f, 0.544434f, -0.0737305f, 0.570312f, -0.0629883f, 0.594238f,
+-0.0629883f, 0.609863f, -0.0629883f, 0.624268f, -0.0646973f, 0.638672f, -0.0664062f,
+0.651367f, -0.0708008f, 0.651367f, -0.00488281f, 0.637695f, 0.000488281f, 0.619385f,
+0.00317383f, 0.601074f, 0.00585938f, 0.58252f, 0.00585938f, 0.424316f, -0.553223f,
+0.424316f, -0.571289f, 0.417725f, -0.585938f, 0.411133f, -0.600586f, 0.399414f, -0.611084f,
+0.387695f, -0.621582f, 0.37085f, -0.627197f, 0.354004f, -0.632812f, 0.333496f, -0.632812f,
+0.286621f, -0.632812f, 0.262207f, -0.607666f, 0.237793f, -0.58252f, 0.237793f, -0.538086f,
+0.237793f, -0.509277f, 0.246826f, -0.477783f, 0.255859f, -0.446289f, 0.269531f, -0.418945f,
+0.30127f, -0.431641f, 0.32959f, -0.445068f, 0.35791f, -0.458496f, 0.378906f, -0.474365f,
+0.399902f, -0.490234f, 0.412109f, -0.509521f, 0.424316f, -0.528809f, 0.424316f, -0.553223f,
+0.388184f, -0.105957f, 0.344727f, -0.157227f, 0.304688f, -0.213379f, 0.264648f, -0.269531f,
+0.232422f, -0.329102f, 0.177246f, -0.305664f, 0.147217f, -0.269531f, 0.117188f, -0.233398f,
+0.117188f, -0.182129f, 0.117188f, -0.155273f, 0.125732f, -0.13208f, 0.134277f, -0.108887f,
+0.151855f, -0.0915527f, 0.169434f, -0.0742188f, 0.196045f, -0.064209f, 0.222656f,
+-0.0541992f, 0.258301f, -0.0541992f, 0.279785f, -0.0541992f, 0.299072f, -0.0588379f,
+0.318359f, -0.0634766f, 0.334961f, -0.0708008f, 0.351562f, -0.078125f, 0.36499f,
+-0.0874023f, 0.378418f, -0.0966797f, 0.388184f, -0.105957f, 0.129883f, -0.47168f,
+0.0610352f, -0.47168f, 0.0507812f, -0.687988f, 0.140625f, -0.687988f, 0.0620117f,
+-0.259766f, 0.0620117f, -0.327637f, 0.0722656f, -0.389648f, 0.0825195f, -0.45166f,
+0.104492f, -0.508789f, 0.126465f, -0.565918f, 0.160645f, -0.619629f, 0.194824f, -0.67334f,
+0.242188f, -0.724609f, 0.327148f, -0.724609f, 0.28125f, -0.67334f, 0.247803f, -0.619385f,
+0.214355f, -0.56543f, 0.192871f, -0.508057f, 0.171387f, -0.450684f, 0.160889f, -0.388672f,
+0.150391f, -0.32666f, 0.150391f, -0.258789f, 0.150391f, -0.190918f, 0.160889f, -0.128906f,
+0.171387f, -0.0668945f, 0.192871f, -0.00927734f, 0.214355f, 0.0483398f, 0.247803f,
+0.102051f, 0.28125f, 0.155762f, 0.327148f, 0.207031f, 0.242188f, 0.207031f, 0.194824f,
+0.155762f, 0.160645f, 0.102051f, 0.126465f, 0.0483398f, 0.104492f, -0.00878906f,
+0.0825195f, -0.065918f, 0.0722656f, -0.127686f, 0.0620117f, -0.189453f, 0.0620117f,
+-0.257812f, 0.270996f, -0.257812f, 0.270996f, -0.189453f, 0.260742f, -0.127686f,
+0.250488f, -0.065918f, 0.228516f, -0.00878906f, 0.206543f, 0.0483398f, 0.172363f,
+0.102051f, 0.138184f, 0.155762f, 0.0908203f, 0.207031f, 0.00585938f, 0.207031f, 0.0517578f,
+0.155762f, 0.0852051f, 0.102051f, 0.118652f, 0.0483398f, 0.140137f, -0.00927734f,
+0.161621f, -0.0668945f, 0.172119f, -0.128906f, 0.182617f, -0.190918f, 0.182617f,
+-0.258789f, 0.182617f, -0.32666f, 0.172119f, -0.388672f, 0.161621f, -0.450684f, 0.140137f,
+-0.508057f, 0.118652f, -0.56543f, 0.0852051f, -0.619385f, 0.0517578f, -0.67334f,
+0.00585938f, -0.724609f, 0.0908203f, -0.724609f, 0.138184f, -0.67334f, 0.172363f,
+-0.619629f, 0.206543f, -0.565918f, 0.228516f, -0.508789f, 0.250488f, -0.45166f, 0.260742f,
+-0.389648f, 0.270996f, -0.327637f, 0.270996f, -0.259766f, 0.222656f, -0.543945f,
+0.351562f, -0.594238f, 0.373535f, -0.529785f, 0.23584f, -0.494141f, 0.326172f, -0.37207f,
+0.268066f, -0.336914f, 0.194824f, -0.462891f, 0.118652f, -0.337891f, 0.0605469f,
+-0.373047f, 0.152832f, -0.494141f, 0.0161133f, -0.529785f, 0.0380859f, -0.595215f,
+0.168457f, -0.542969f, 0.162598f, -0.687988f, 0.229004f, -0.687988f, 0.327637f, -0.296875f,
+0.327637f, -0.0878906f, 0.255859f, -0.0878906f, 0.255859f, -0.296875f, 0.0488281f,
+-0.296875f, 0.0488281f, -0.368164f, 0.255859f, -0.368164f, 0.255859f, -0.577148f,
+0.327637f, -0.577148f, 0.327637f, -0.368164f, 0.534668f, -0.368164f, 0.534668f, -0.296875f,
+0.187988f, -0.106934f, 0.187988f, -0.0249023f, 0.187988f, 0.000976562f, 0.185791f,
+0.0222168f, 0.183594f, 0.043457f, 0.178711f, 0.0617676f, 0.173828f, 0.0800781f, 0.166748f,
+0.0961914f, 0.159668f, 0.112305f, 0.149902f, 0.12793f, 0.0898438f, 0.12793f, 0.111816f,
+0.0961914f, 0.123779f, 0.0639648f, 0.135742f, 0.0317383f, 0.135742f, 0, 0.0927734f,
+0, 0.0927734f, -0.106934f, 0.0444336f, -0.226562f, 0.0444336f, -0.304688f, 0.288574f,
+-0.304688f, 0.288574f, -0.226562f, 0.0913086f, 0, 0.0913086f, -0.106934f, 0.186523f,
+-0.106934f, 0.186523f, 0, 0, 0.00976562f, 0.200684f, -0.724609f, 0.277832f, -0.724609f,
+0.0791016f, 0.00976562f, 0.51709f, -0.344238f, 0.51709f, -0.245117f, 0.498291f, -0.17749f,
+0.479492f, -0.109863f, 0.447021f, -0.0681152f, 0.414551f, -0.0263672f, 0.370605f,
+-0.00830078f, 0.32666f, 0.00976562f, 0.276855f, 0.00976562f, 0.226562f, 0.00976562f,
+0.183105f, -0.00830078f, 0.139648f, -0.0263672f, 0.107666f, -0.0678711f, 0.0756836f,
+-0.109375f, 0.057373f, -0.177002f, 0.0390625f, -0.244629f, 0.0390625f, -0.344238f,
+0.0390625f, -0.448242f, 0.057373f, -0.516357f, 0.0756836f, -0.584473f, 0.10791f,
+-0.625f, 0.140137f, -0.665527f, 0.184082f, -0.681885f, 0.228027f, -0.698242f, 0.279785f,
+-0.698242f, 0.329102f, -0.698242f, 0.372314f, -0.681885f, 0.415527f, -0.665527f,
+0.447754f, -0.625f, 0.47998f, -0.584473f, 0.498535f, -0.516357f, 0.51709f, -0.448242f,
+0.51709f, -0.344238f, 0.427734f, -0.344238f, 0.427734f, -0.42627f, 0.417969f, -0.480713f,
+0.408203f, -0.535156f, 0.38916f, -0.567627f, 0.370117f, -0.600098f, 0.342529f, -0.613525f,
+0.314941f, -0.626953f, 0.279785f, -0.626953f, 0.242676f, -0.626953f, 0.214355f, -0.613281f,
+0.186035f, -0.599609f, 0.166748f, -0.567139f, 0.147461f, -0.534668f, 0.137695f, -0.480225f,
+0.12793f, -0.425781f, 0.12793f, -0.344238f, 0.12793f, -0.265137f, 0.137939f, -0.210938f,
+0.147949f, -0.156738f, 0.167236f, -0.123779f, 0.186523f, -0.0908203f, 0.214355f,
+-0.076416f, 0.242188f, -0.0620117f, 0.277832f, -0.0620117f, 0.3125f, -0.0620117f,
+0.340332f, -0.076416f, 0.368164f, -0.0908203f, 0.387451f, -0.123779f, 0.406738f,
+-0.156738f, 0.417236f, -0.210938f, 0.427734f, -0.265137f, 0.427734f, -0.344238f,
+0.0761719f, 0, 0.0761719f, -0.074707f, 0.251465f, -0.074707f, 0.251465f, -0.604004f,
+0.0961914f, -0.493164f, 0.0961914f, -0.576172f, 0.258789f, -0.687988f, 0.339844f,
+-0.687988f, 0.339844f, -0.074707f, 0.507324f, -0.074707f, 0.507324f, 0, 0.050293f,
+0, 0.050293f, -0.0620117f, 0.0751953f, -0.119141f, 0.111084f, -0.162842f, 0.146973f,
+-0.206543f, 0.186523f, -0.241943f, 0.226074f, -0.277344f, 0.264893f, -0.307617f,
+0.303711f, -0.337891f, 0.334961f, -0.368164f, 0.366211f, -0.398438f, 0.385498f, -0.431641f,
+0.404785f, -0.464844f, 0.404785f, -0.506836f, 0.404785f, -0.536133f, 0.395996f, -0.55835f,
+0.387207f, -0.580566f, 0.370605f, -0.595703f, 0.354004f, -0.61084f, 0.330811f, -0.618408f,
+0.307617f, -0.625977f, 0.279297f, -0.625977f, 0.25293f, -0.625977f, 0.229736f, -0.618652f,
+0.206543f, -0.611328f, 0.188477f, -0.59668f, 0.17041f, -0.582031f, 0.158936f, -0.560303f,
+0.147461f, -0.538574f, 0.144043f, -0.509766f, 0.0541992f, -0.518066f, 0.0585938f,
+-0.555176f, 0.074707f, -0.587891f, 0.0908203f, -0.620605f, 0.119141f, -0.645264f,
+0.147461f, -0.669922f, 0.187256f, -0.684082f, 0.227051f, -0.698242f, 0.279297f, -0.698242f,
+0.330566f, -0.698242f, 0.370605f, -0.686035f, 0.410645f, -0.673828f, 0.438232f, -0.649902f,
+0.46582f, -0.625977f, 0.480469f, -0.59082f, 0.495117f, -0.555664f, 0.495117f, -0.509766f,
+0.495117f, -0.475098f, 0.482666f, -0.443848f, 0.470215f, -0.412598f, 0.449463f, -0.384277f,
+0.428711f, -0.355957f, 0.401367f, -0.32959f, 0.374023f, -0.303223f, 0.344238f, -0.278076f,
+0.314453f, -0.25293f, 0.28418f, -0.228271f, 0.253906f, -0.203613f, 0.227295f, -0.178711f,
+0.200684f, -0.153809f, 0.179688f, -0.128174f, 0.158691f, -0.102539f, 0.146973f, -0.074707f,
+0.505859f, -0.074707f, 0.505859f, 0, 0.512207f, -0.189941f, 0.512207f, -0.142578f,
+0.496826f, -0.105469f, 0.481445f, -0.0683594f, 0.451904f, -0.0427246f, 0.422363f,
+-0.0170898f, 0.378662f, -0.00366211f, 0.334961f, 0.00976562f, 0.278809f, 0.00976562f,
+0.214844f, 0.00976562f, 0.171143f, -0.00610352f, 0.127441f, -0.0219727f, 0.0991211f,
+-0.0480957f, 0.0708008f, -0.0742188f, 0.0566406f, -0.107666f, 0.0424805f, -0.141113f,
+0.0380859f, -0.176758f, 0.128906f, -0.185059f, 0.132812f, -0.157715f, 0.143311f,
+-0.135254f, 0.153809f, -0.112793f, 0.171875f, -0.0966797f, 0.189941f, -0.0805664f,
+0.216309f, -0.0717773f, 0.242676f, -0.0629883f, 0.278809f, -0.0629883f, 0.345215f,
+-0.0629883f, 0.383057f, -0.0957031f, 0.420898f, -0.128418f, 0.420898f, -0.192871f,
+0.420898f, -0.230957f, 0.404053f, -0.25415f, 0.387207f, -0.277344f, 0.362061f, -0.290283f,
+0.336914f, -0.303223f, 0.307373f, -0.307617f, 0.277832f, -0.312012f, 0.25293f, -0.312012f,
+0.203125f, -0.312012f, 0.203125f, -0.388184f, 0.250977f, -0.388184f, 0.275879f, -0.388184f,
+0.302734f, -0.393311f, 0.32959f, -0.398438f, 0.351807f, -0.411865f, 0.374023f, -0.425293f,
+0.388428f, -0.448242f, 0.402832f, -0.471191f, 0.402832f, -0.506836f, 0.402832f, -0.562012f,
+0.370361f, -0.593994f, 0.337891f, -0.625977f, 0.273926f, -0.625977f, 0.21582f, -0.625977f,
+0.179932f, -0.596191f, 0.144043f, -0.566406f, 0.138184f, -0.512207f, 0.0498047f,
+-0.519043f, 0.0551758f, -0.564453f, 0.074707f, -0.598145f, 0.0942383f, -0.631836f,
+0.124268f, -0.654053f, 0.154297f, -0.67627f, 0.192871f, -0.687256f, 0.231445f, -0.698242f,
+0.274902f, -0.698242f, 0.33252f, -0.698242f, 0.374023f, -0.683838f, 0.415527f, -0.669434f,
+0.441895f, -0.644775f, 0.468262f, -0.620117f, 0.480713f, -0.586914f, 0.493164f, -0.553711f,
+0.493164f, -0.516113f, 0.493164f, -0.48584f, 0.484863f, -0.459473f, 0.476562f, -0.433105f,
+0.458984f, -0.412109f, 0.441406f, -0.391113f, 0.414307f, -0.375977f, 0.387207f, -0.36084f,
+0.349121f, -0.353027f, 0.349121f, -0.351074f, 0.390625f, -0.34668f, 0.421387f, -0.332275f,
+0.452148f, -0.317871f, 0.472168f, -0.296387f, 0.492188f, -0.274902f, 0.502197f, -0.247559f,
+0.512207f, -0.220215f, 0.512207f, -0.189941f, 0.430176f, -0.155762f, 0.430176f, 0,
+0.347168f, 0, 0.347168f, -0.155762f, 0.0229492f, -0.155762f, 0.0229492f, -0.224121f,
+0.337891f, -0.687988f, 0.430176f, -0.687988f, 0.430176f, -0.225098f, 0.526855f, -0.225098f,
+0.526855f, -0.155762f, 0.347168f, -0.588867f, 0.346191f, -0.586426f, 0.342285f, -0.579346f,
+0.338379f, -0.572266f, 0.333496f, -0.563477f, 0.328613f, -0.554688f, 0.323486f, -0.545654f,
+0.318359f, -0.536621f, 0.314453f, -0.530762f, 0.138184f, -0.270996f, 0.135742f, -0.26709f,
+0.131104f, -0.260742f, 0.126465f, -0.254395f, 0.121582f, -0.247803f, 0.116699f, -0.241211f,
+0.111816f, -0.234863f, 0.106934f, -0.228516f, 0.104004f, -0.225098f, 0.347168f, -0.225098f,
+0.51416f, -0.224121f, 0.51416f, -0.172363f, 0.498535f, -0.129395f, 0.48291f, -0.0864258f,
+0.452148f, -0.0554199f, 0.421387f, -0.0244141f, 0.375732f, -0.00732422f, 0.330078f,
+0.00976562f, 0.27002f, 0.00976562f, 0.21582f, 0.00976562f, 0.175537f, -0.00292969f,
+0.135254f, -0.015625f, 0.107422f, -0.0378418f, 0.0795898f, -0.0600586f, 0.0632324f,
+-0.0898438f, 0.046875f, -0.119629f, 0.0400391f, -0.153809f, 0.128906f, -0.164062f,
+0.134277f, -0.144531f, 0.144043f, -0.126221f, 0.153809f, -0.10791f, 0.170654f, -0.0935059f,
+0.1875f, -0.0791016f, 0.212158f, -0.0705566f, 0.236816f, -0.0620117f, 0.271973f,
+-0.0620117f, 0.306152f, -0.0620117f, 0.333984f, -0.0725098f, 0.361816f, -0.0830078f,
+0.381592f, -0.103516f, 0.401367f, -0.124023f, 0.412109f, -0.153809f, 0.422852f, -0.183594f,
+0.422852f, -0.222168f, 0.422852f, -0.253906f, 0.412598f, -0.280518f, 0.402344f, -0.307129f,
+0.383301f, -0.326416f, 0.364258f, -0.345703f, 0.33667f, -0.356445f, 0.309082f, -0.367188f,
+0.273926f, -0.367188f, 0.251953f, -0.367188f, 0.233398f, -0.363281f, 0.214844f, -0.359375f,
+0.198975f, -0.352539f, 0.183105f, -0.345703f, 0.170166f, -0.33667f, 0.157227f, -0.327637f,
+0.145996f, -0.317871f, 0.0600586f, -0.317871f, 0.0830078f, -0.687988f, 0.474121f,
+-0.687988f, 0.474121f, -0.613281f, 0.163086f, -0.613281f, 0.149902f, -0.39502f, 0.17334f,
+-0.413086f, 0.208496f, -0.426025f, 0.243652f, -0.438965f, 0.291992f, -0.438965f,
+0.343262f, -0.438965f, 0.384277f, -0.42334f, 0.425293f, -0.407715f, 0.454102f, -0.37915f,
+0.48291f, -0.350586f, 0.498535f, -0.311035f, 0.51416f, -0.271484f, 0.51416f, -0.224121f,
+0.512207f, -0.225098f, 0.512207f, -0.17334f, 0.497803f, -0.130127f, 0.483398f, -0.0869141f,
+0.455322f, -0.0559082f, 0.427246f, -0.0249023f, 0.385742f, -0.00756836f, 0.344238f,
+0.00976562f, 0.290039f, 0.00976562f, 0.22998f, 0.00976562f, 0.185059f, -0.0131836f,
+0.140137f, -0.0361328f, 0.110352f, -0.0793457f, 0.0805664f, -0.122559f, 0.0656738f,
+-0.185303f, 0.0507812f, -0.248047f, 0.0507812f, -0.328125f, 0.0507812f, -0.419922f,
+0.067627f, -0.489258f, 0.0844727f, -0.558594f, 0.116211f, -0.60498f, 0.147949f, -0.651367f,
+0.193604f, -0.674805f, 0.239258f, -0.698242f, 0.296875f, -0.698242f, 0.332031f, -0.698242f,
+0.362793f, -0.690918f, 0.393555f, -0.683594f, 0.418701f, -0.667236f, 0.443848f, -0.650879f,
+0.462891f, -0.624023f, 0.481934f, -0.597168f, 0.493164f, -0.558105f, 0.40918f, -0.542969f,
+0.395508f, -0.587402f, 0.365479f, -0.607178f, 0.335449f, -0.626953f, 0.295898f, -0.626953f,
+0.259766f, -0.626953f, 0.230469f, -0.609863f, 0.201172f, -0.592773f, 0.180664f, -0.558838f,
+0.160156f, -0.524902f, 0.14917f, -0.473633f, 0.138184f, -0.422363f, 0.138184f, -0.354004f,
+0.162109f, -0.398438f, 0.205566f, -0.421631f, 0.249023f, -0.444824f, 0.305176f, -0.444824f,
+0.352051f, -0.444824f, 0.390137f, -0.429688f, 0.428223f, -0.414551f, 0.455322f, -0.385986f,
+0.482422f, -0.357422f, 0.497314f, -0.31665f, 0.512207f, -0.275879f, 0.512207f, -0.225098f,
+0.422852f, -0.221191f, 0.422852f, -0.256836f, 0.414062f, -0.285645f, 0.405273f, -0.314453f,
+0.387695f, -0.334717f, 0.370117f, -0.35498f, 0.344238f, -0.365967f, 0.318359f, -0.376953f,
+0.28418f, -0.376953f, 0.260254f, -0.376953f, 0.23584f, -0.369873f, 0.211426f, -0.362793f,
+0.19165f, -0.346924f, 0.171875f, -0.331055f, 0.159424f, -0.305176f, 0.146973f, -0.279297f,
+0.146973f, -0.242188f, 0.146973f, -0.204102f, 0.156738f, -0.171143f, 0.166504f, -0.138184f,
+0.184814f, -0.11377f, 0.203125f, -0.0893555f, 0.229004f, -0.0751953f, 0.254883f,
+-0.0610352f, 0.287109f, -0.0610352f, 0.318848f, -0.0610352f, 0.343994f, -0.0720215f,
+0.369141f, -0.0830078f, 0.386719f, -0.10376f, 0.404297f, -0.124512f, 0.413574f, -0.154297f,
+0.422852f, -0.184082f, 0.422852f, -0.221191f, 0.505859f, -0.616699f, 0.454102f, -0.537598f,
+0.410645f, -0.4646f, 0.367188f, -0.391602f, 0.335938f, -0.317627f, 0.304688f, -0.243652f,
+0.287354f, -0.165771f, 0.27002f, -0.0878906f, 0.27002f, 0, 0.178223f, 0, 0.178223f,
+-0.0825195f, 0.197754f, -0.161865f, 0.217285f, -0.241211f, 0.250488f, -0.317627f,
+0.283691f, -0.394043f, 0.327637f, -0.467773f, 0.371582f, -0.541504f, 0.420898f, -0.613281f,
+0.0512695f, -0.613281f, 0.0512695f, -0.687988f, 0.505859f, -0.687988f, 0.512695f,
+-0.191895f, 0.512695f, -0.147949f, 0.498779f, -0.111084f, 0.484863f, -0.0742188f,
+0.456299f, -0.0473633f, 0.427734f, -0.0205078f, 0.383301f, -0.00537109f, 0.338867f,
+0.00976562f, 0.27832f, 0.00976562f, 0.217773f, 0.00976562f, 0.173584f, -0.00537109f,
+0.129395f, -0.0205078f, 0.100342f, -0.0471191f, 0.0712891f, -0.0737305f, 0.057373f,
+-0.110596f, 0.043457f, -0.147461f, 0.043457f, -0.190918f, 0.043457f, -0.228516f,
+0.0549316f, -0.257812f, 0.0664062f, -0.287109f, 0.0856934f, -0.30835f, 0.10498f,
+-0.32959f, 0.129639f, -0.342529f, 0.154297f, -0.355469f, 0.180664f, -0.359863f, 0.180664f,
+-0.361816f, 0.151855f, -0.368652f, 0.12915f, -0.383789f, 0.106445f, -0.398926f, 0.0910645f,
+-0.420166f, 0.0756836f, -0.441406f, 0.067627f, -0.467285f, 0.0595703f, -0.493164f,
+0.0595703f, -0.521973f, 0.0595703f, -0.558105f, 0.0734863f, -0.590088f, 0.0874023f,
+-0.62207f, 0.114746f, -0.64624f, 0.14209f, -0.67041f, 0.182617f, -0.684326f, 0.223145f,
+-0.698242f, 0.276367f, -0.698242f, 0.33252f, -0.698242f, 0.373779f, -0.684082f, 0.415039f,
+-0.669922f, 0.442139f, -0.645752f, 0.469238f, -0.621582f, 0.482422f, -0.589355f,
+0.495605f, -0.557129f, 0.495605f, -0.520996f, 0.495605f, -0.492676f, 0.487549f, -0.466797f,
+0.479492f, -0.440918f, 0.464111f, -0.419678f, 0.44873f, -0.398438f, 0.426025f, -0.383545f,
+0.40332f, -0.368652f, 0.373535f, -0.362793f, 0.373535f, -0.36084f, 0.40332f, -0.355957f,
+0.428711f, -0.343018f, 0.454102f, -0.330078f, 0.472656f, -0.308838f, 0.491211f, -0.287598f,
+0.501953f, -0.258301f, 0.512695f, -0.229004f, 0.512695f, -0.191895f, 0.404297f, -0.516113f,
+0.404297f, -0.541992f, 0.397705f, -0.563477f, 0.391113f, -0.584961f, 0.375977f, -0.600342f,
+0.36084f, -0.615723f, 0.336426f, -0.624268f, 0.312012f, -0.632812f, 0.276367f, -0.632812f,
+0.241699f, -0.632812f, 0.217773f, -0.624268f, 0.193848f, -0.615723f, 0.178467f, -0.600342f,
+0.163086f, -0.584961f, 0.15625f, -0.563477f, 0.149414f, -0.541992f, 0.149414f, -0.516113f,
+0.149414f, -0.495605f, 0.154785f, -0.474121f, 0.160156f, -0.452637f, 0.174316f, -0.435059f,
+0.188477f, -0.41748f, 0.213379f, -0.40625f, 0.238281f, -0.39502f, 0.277344f, -0.39502f,
+0.318848f, -0.39502f, 0.343994f, -0.40625f, 0.369141f, -0.41748f, 0.382568f, -0.435059f,
+0.395996f, -0.452637f, 0.400146f, -0.474121f, 0.404297f, -0.495605f, 0.404297f, -0.516113f,
+0.421387f, -0.200195f, 0.421387f, -0.225098f, 0.414551f, -0.248291f, 0.407715f, -0.271484f,
+0.391113f, -0.289307f, 0.374512f, -0.307129f, 0.346436f, -0.318115f, 0.318359f, -0.329102f,
+0.276367f, -0.329102f, 0.237793f, -0.329102f, 0.210693f, -0.318115f, 0.183594f, -0.307129f,
+0.166748f, -0.289062f, 0.149902f, -0.270996f, 0.14209f, -0.247314f, 0.134277f, -0.223633f,
+0.134277f, -0.198242f, 0.134277f, -0.166504f, 0.14209f, -0.140381f, 0.149902f, -0.114258f,
+0.166992f, -0.095459f, 0.184082f, -0.0766602f, 0.211914f, -0.0664062f, 0.239746f,
+-0.0561523f, 0.279297f, -0.0561523f, 0.319336f, -0.0561523f, 0.34668f, -0.0664062f,
+0.374023f, -0.0766602f, 0.390625f, -0.095459f, 0.407227f, -0.114258f, 0.414307f,
+-0.140869f, 0.421387f, -0.16748f, 0.421387f, -0.200195f, 0.508789f, -0.35791f, 0.508789f,
+-0.266113f, 0.491455f, -0.197021f, 0.474121f, -0.12793f, 0.441895f, -0.0820312f,
+0.409668f, -0.0361328f, 0.363525f, -0.0131836f, 0.317383f, 0.00976562f, 0.259766f,
+0.00976562f, 0.220215f, 0.00976562f, 0.188477f, 0.00170898f, 0.156738f, -0.00634766f,
+0.131836f, -0.0234375f, 0.106934f, -0.0405273f, 0.0893555f, -0.0678711f, 0.0717773f,
+-0.0952148f, 0.0610352f, -0.133789f, 0.14502f, -0.146973f, 0.158691f, -0.102539f,
+0.187744f, -0.0817871f, 0.216797f, -0.0610352f, 0.26123f, -0.0610352f, 0.296875f,
+-0.0610352f, 0.326416f, -0.0778809f, 0.355957f, -0.0947266f, 0.376709f, -0.128418f,
+0.397461f, -0.162109f, 0.40918f, -0.212891f, 0.420898f, -0.263672f, 0.421875f, -0.332031f,
+0.411621f, -0.309082f, 0.393799f, -0.291016f, 0.375977f, -0.272949f, 0.353271f, -0.260498f,
+0.330566f, -0.248047f, 0.304199f, -0.241455f, 0.277832f, -0.234863f, 0.250977f, -0.234863f,
+0.204102f, -0.234863f, 0.16626f, -0.251709f, 0.128418f, -0.268555f, 0.102051f, -0.298828f,
+0.0756836f, -0.329102f, 0.0612793f, -0.371826f, 0.046875f, -0.414551f, 0.046875f,
+-0.466797f, 0.046875f, -0.52002f, 0.0622559f, -0.562988f, 0.0776367f, -0.605957f,
+0.106934f, -0.635986f, 0.13623f, -0.666016f, 0.178955f, -0.682129f, 0.22168f, -0.698242f,
+0.275879f, -0.698242f, 0.390625f, -0.698242f, 0.449707f, -0.613281f, 0.508789f, -0.52832f,
+0.508789f, -0.35791f, 0.413086f, -0.442871f, 0.413086f, -0.480957f, 0.404053f, -0.514648f,
+0.39502f, -0.54834f, 0.377197f, -0.573242f, 0.359375f, -0.598145f, 0.333252f, -0.612549f,
+0.307129f, -0.626953f, 0.272949f, -0.626953f, 0.241211f, -0.626953f, 0.21582f, -0.615723f,
+0.19043f, -0.604492f, 0.172852f, -0.58374f, 0.155273f, -0.562988f, 0.145752f, -0.533203f,
+0.13623f, -0.503418f, 0.13623f, -0.466797f, 0.13623f, -0.432129f, 0.144775f, -0.402344f,
+0.15332f, -0.372559f, 0.17041f, -0.35083f, 0.1875f, -0.329102f, 0.212891f, -0.31665f,
+0.238281f, -0.304199f, 0.271973f, -0.304199f, 0.296387f, -0.304199f, 0.321533f, -0.3125f,
+0.34668f, -0.320801f, 0.366943f, -0.337891f, 0.387207f, -0.35498f, 0.400146f, -0.381104f,
+0.413086f, -0.407227f, 0.413086f, -0.442871f, 0.0913086f, -0.427246f, 0.0913086f,
+-0.52832f, 0.186523f, -0.52832f, 0.186523f, -0.427246f, 0.0913086f, 0, 0.0913086f,
+-0.101074f, 0.186523f, -0.101074f, 0.186523f, 0, 0.187988f, -0.101074f, 0.187988f,
+-0.0249023f, 0.187988f, 0.000976562f, 0.185791f, 0.0222168f, 0.183594f, 0.043457f,
+0.178711f, 0.0617676f, 0.173828f, 0.0800781f, 0.166748f, 0.0961914f, 0.159668f, 0.112305f,
+0.149902f, 0.12793f, 0.0898438f, 0.12793f, 0.111816f, 0.0961914f, 0.123779f, 0.0639648f,
+0.135742f, 0.0317383f, 0.135742f, 0, 0.0927734f, 0, 0.0927734f, -0.101074f, 0.0927734f,
+-0.427246f, 0.0927734f, -0.52832f, 0.187988f, -0.52832f, 0.187988f, -0.427246f, 0.0493164f,
+-0.278809f, 0.0493164f, -0.378906f, 0.535156f, -0.583008f, 0.535156f, -0.507812f,
+0.116211f, -0.329102f, 0.535156f, -0.149902f, 0.535156f, -0.0751953f, 0.0488281f,
+-0.417969f, 0.0488281f, -0.490234f, 0.534668f, -0.490234f, 0.534668f, -0.417969f,
+0.0488281f, -0.167969f, 0.0488281f, -0.240234f, 0.534668f, -0.240234f, 0.534668f,
+-0.167969f, 0.0493164f, -0.0751953f, 0.0493164f, -0.149902f, 0.468262f, -0.329102f,
+0.0493164f, -0.507812f, 0.0493164f, -0.583008f, 0.535156f, -0.378906f, 0.535156f,
+-0.278809f, 0.519043f, -0.503906f, 0.519043f, -0.469238f, 0.51001f, -0.442871f, 0.500977f,
+-0.416504f, 0.48584f, -0.395752f, 0.470703f, -0.375f, 0.451416f, -0.358643f, 0.432129f,
+-0.342285f, 0.412109f, -0.327637f, 0.39209f, -0.312988f, 0.372803f, -0.298828f, 0.353516f,
+-0.284668f, 0.338135f, -0.268066f, 0.322754f, -0.251465f, 0.313232f, -0.231201f,
+0.303711f, -0.210938f, 0.303223f, -0.184082f, 0.217773f, -0.184082f, 0.21875f, -0.217773f,
+0.228271f, -0.243164f, 0.237793f, -0.268555f, 0.25293f, -0.288086f, 0.268066f, -0.307617f,
+0.287109f, -0.322998f, 0.306152f, -0.338379f, 0.325684f, -0.352295f, 0.345215f, -0.366211f,
+0.364014f, -0.380127f, 0.382812f, -0.394043f, 0.397461f, -0.411133f, 0.412109f, -0.428223f,
+0.421143f, -0.449707f, 0.430176f, -0.471191f, 0.430176f, -0.5f, 0.430176f, -0.528809f,
+0.419922f, -0.55127f, 0.409668f, -0.57373f, 0.390869f, -0.589111f, 0.37207f, -0.604492f,
+0.345459f, -0.612305f, 0.318848f, -0.620117f, 0.286133f, -0.620117f, 0.217773f, -0.620117f,
+0.177734f, -0.585938f, 0.137695f, -0.551758f, 0.130859f, -0.492188f, 0.0410156f,
+-0.498047f, 0.0463867f, -0.539062f, 0.0627441f, -0.575439f, 0.0791016f, -0.611816f,
+0.108643f, -0.63916f, 0.138184f, -0.666504f, 0.181885f, -0.682373f, 0.225586f, -0.698242f,
+0.285156f, -0.698242f, 0.34082f, -0.698242f, 0.384277f, -0.68457f, 0.427734f, -0.670898f,
+0.457764f, -0.645752f, 0.487793f, -0.620605f, 0.503418f, -0.584473f, 0.519043f, -0.54834f,
+0.519043f, -0.503906f, 0.213867f, 0, 0.213867f, -0.0981445f, 0.309082f, -0.0981445f,
+0.309082f, 0, 0.928711f, -0.368652f, 0.928711f, -0.29834f, 0.912354f, -0.23999f,
+0.895996f, -0.181641f, 0.867188f, -0.139648f, 0.838379f, -0.0976562f, 0.798096f,
+-0.0742188f, 0.757812f, -0.0507812f, 0.710449f, -0.0507812f, 0.683105f, -0.0507812f,
+0.663818f, -0.057373f, 0.644531f, -0.0639648f, 0.632324f, -0.0754395f, 0.620117f,
+-0.0869141f, 0.614746f, -0.102539f, 0.609375f, -0.118164f, 0.609375f, -0.136719f,
+0.609375f, -0.144043f, 0.609863f, -0.154541f, 0.610352f, -0.165039f, 0.61084f, -0.170898f,
+0.60791f, -0.170898f, 0.596191f, -0.148926f, 0.579346f, -0.127197f, 0.5625f, -0.105469f,
+0.539795f, -0.088623f, 0.51709f, -0.0717773f, 0.488525f, -0.0612793f, 0.459961f,
+-0.0507812f, 0.425293f, -0.0507812f, 0.384277f, -0.0507812f, 0.35376f, -0.0649414f,
+0.323242f, -0.0791016f, 0.303467f, -0.104248f, 0.283691f, -0.129395f, 0.273926f,
+-0.163818f, 0.26416f, -0.198242f, 0.26416f, -0.23877f, 0.26416f, -0.297363f, 0.281494f,
+-0.351318f, 0.298828f, -0.405273f, 0.331055f, -0.446533f, 0.363281f, -0.487793f,
+0.408447f, -0.512695f, 0.453613f, -0.537598f, 0.509277f, -0.537598f, 0.538574f, -0.537598f,
+0.562012f, -0.531006f, 0.585449f, -0.524414f, 0.603271f, -0.512695f, 0.621094f, -0.500977f,
+0.634277f, -0.484619f, 0.647461f, -0.468262f, 0.65625f, -0.44873f, 0.65918f, -0.44873f,
+0.678223f, -0.526855f, 0.754395f, -0.526855f, 0.697754f, -0.279785f, 0.688477f, -0.23877f,
+0.684082f, -0.209473f, 0.679688f, -0.180176f, 0.679688f, -0.15625f, 0.679688f, -0.132812f,
+0.690186f, -0.121582f, 0.700684f, -0.110352f, 0.719238f, -0.110352f, 0.749512f, -0.110352f,
+0.775635f, -0.130127f, 0.801758f, -0.149902f, 0.821045f, -0.18457f, 0.840332f, -0.219238f,
+0.851318f, -0.266113f, 0.862305f, -0.312988f, 0.862305f, -0.367676f, 0.862305f, -0.430664f,
+0.842041f, -0.484863f, 0.821777f, -0.539062f, 0.782471f, -0.578613f, 0.743164f, -0.618164f,
+0.685059f, -0.640625f, 0.626953f, -0.663086f, 0.550781f, -0.663086f, 0.485352f, -0.663086f,
+0.429932f, -0.647461f, 0.374512f, -0.631836f, 0.32959f, -0.603516f, 0.284668f, -0.575195f,
+0.250732f, -0.535889f, 0.216797f, -0.496582f, 0.193848f, -0.449707f, 0.170898f, -0.402832f,
+0.15918f, -0.349365f, 0.147461f, -0.295898f, 0.147461f, -0.239746f, 0.147461f, -0.170898f,
+0.168457f, -0.112793f, 0.189453f, -0.0546875f, 0.229736f, -0.0129395f, 0.27002f,
+0.0288086f, 0.329346f, 0.0522461f, 0.388672f, 0.0756836f, 0.46582f, 0.0756836f, 0.51709f,
+0.0756836f, 0.561523f, 0.067627f, 0.605957f, 0.0595703f, 0.643066f, 0.0478516f, 0.680176f,
+0.0361328f, 0.709473f, 0.0222168f, 0.73877f, 0.00830078f, 0.760254f, -0.00341797f,
+0.787109f, 0.0512695f, 0.762695f, 0.065918f, 0.729736f, 0.0812988f, 0.696777f, 0.0966797f,
+0.65625f, 0.109375f, 0.615723f, 0.12207f, 0.567871f, 0.130127f, 0.52002f, 0.138184f,
+0.46582f, 0.138184f, 0.373047f, 0.138184f, 0.301025f, 0.110107f, 0.229004f, 0.0820312f,
+0.179443f, 0.0317383f, 0.129883f, -0.0185547f, 0.104248f, -0.0878906f, 0.0786133f,
+-0.157227f, 0.0786133f, -0.239746f, 0.0786133f, -0.307617f, 0.0939941f, -0.370117f,
+0.109375f, -0.432617f, 0.138184f, -0.486328f, 0.166992f, -0.540039f, 0.208496f, -0.583984f,
+0.25f, -0.62793f, 0.30249f, -0.65918f, 0.35498f, -0.69043f, 0.417236f, -0.70752f,
+0.479492f, -0.724609f, 0.549805f, -0.724609f, 0.647949f, -0.724609f, 0.719238f, -0.695801f,
+0.790527f, -0.666992f, 0.837158f, -0.618164f, 0.883789f, -0.569336f, 0.90625f, -0.504883f,
+0.928711f, -0.44043f, 0.928711f, -0.368652f, 0.632812f, -0.364746f, 0.632812f, -0.38916f,
+0.624512f, -0.409668f, 0.616211f, -0.430176f, 0.60083f, -0.444824f, 0.585449f, -0.459473f,
+0.563721f, -0.467529f, 0.541992f, -0.475586f, 0.514648f, -0.475586f, 0.472656f, -0.475586f,
+0.440918f, -0.454834f, 0.40918f, -0.434082f, 0.387939f, -0.400391f, 0.366699f, -0.366699f,
+0.355713f, -0.324463f, 0.344727f, -0.282227f, 0.344727f, -0.239746f, 0.344727f, -0.181152f,
+0.36792f, -0.147949f, 0.391113f, -0.114746f, 0.439453f, -0.114746f, 0.473145f, -0.114746f,
+0.502441f, -0.129883f, 0.531738f, -0.14502f, 0.555176f, -0.169922f, 0.578613f, -0.194824f,
+0.595703f, -0.227051f, 0.612793f, -0.259277f, 0.621582f, -0.293945f, 0.625977f, -0.311523f,
+0.629395f, -0.331055f, 0.632812f, -0.350586f, 0.632812f, -0.364746f, 0.569824f, 0,
+0.491211f, -0.201172f, 0.177734f, -0.201172f, 0.0986328f, 0, 0.00195312f, 0, 0.282715f,
+-0.687988f, 0.388672f, -0.687988f, 0.665039f, 0, 0.375f, -0.500977f, 0.367188f, -0.520508f,
+0.360107f, -0.540527f, 0.353027f, -0.560547f, 0.347656f, -0.576904f, 0.342285f, -0.593262f,
+0.338623f, -0.604248f, 0.334961f, -0.615234f, 0.334473f, -0.617676f, 0.333496f, -0.615234f,
+0.330078f, -0.604004f, 0.32666f, -0.592773f, 0.321045f, -0.576172f, 0.31543f, -0.55957f,
+0.30835f, -0.539551f, 0.30127f, -0.519531f, 0.293945f, -0.5f, 0.206055f, -0.273926f,
+0.463379f, -0.273926f, 0.614258f, -0.193848f, 0.614258f, -0.141602f, 0.59375f, -0.104736f,
+0.573242f, -0.0678711f, 0.538574f, -0.0446777f, 0.503906f, -0.0214844f, 0.458008f,
+-0.0107422f, 0.412109f, 0, 0.361328f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.332031f,
+-0.687988f, 0.38916f, -0.687988f, 0.434082f, -0.678467f, 0.479004f, -0.668945f, 0.510254f,
+-0.648438f, 0.541504f, -0.62793f, 0.557861f, -0.596436f, 0.574219f, -0.564941f, 0.574219f,
+-0.520996f, 0.574219f, -0.492188f, 0.566162f, -0.466797f, 0.558105f, -0.441406f,
+0.541748f, -0.420654f, 0.525391f, -0.399902f, 0.500732f, -0.38501f, 0.476074f, -0.370117f,
+0.443359f, -0.362793f, 0.484863f, -0.35791f, 0.516846f, -0.34375f, 0.548828f, -0.32959f,
+0.570312f, -0.307617f, 0.591797f, -0.285645f, 0.603027f, -0.256592f, 0.614258f, -0.227539f,
+0.614258f, -0.193848f, 0.480469f, -0.509766f, 0.480469f, -0.56543f, 0.442383f, -0.589355f,
+0.404297f, -0.613281f, 0.332031f, -0.613281f, 0.175293f, -0.613281f, 0.175293f, -0.395508f,
+0.332031f, -0.395508f, 0.373047f, -0.395508f, 0.401367f, -0.403564f, 0.429688f, -0.411621f,
+0.447266f, -0.426514f, 0.464844f, -0.441406f, 0.472656f, -0.462402f, 0.480469f, -0.483398f,
+0.480469f, -0.509766f, 0.52002f, -0.201172f, 0.52002f, -0.233887f, 0.508057f, -0.256836f,
+0.496094f, -0.279785f, 0.473633f, -0.294434f, 0.451172f, -0.309082f, 0.419678f, -0.315918f,
+0.388184f, -0.322754f, 0.349121f, -0.322754f, 0.175293f, -0.322754f, 0.175293f, -0.074707f,
+0.356445f, -0.074707f, 0.39209f, -0.074707f, 0.422119f, -0.0805664f, 0.452148f, -0.0864258f,
+0.473877f, -0.101074f, 0.495605f, -0.115723f, 0.507812f, -0.140137f, 0.52002f, -0.164551f,
+0.52002f, -0.201172f, 0.386719f, -0.62207f, 0.328125f, -0.62207f, 0.282959f, -0.602539f,
+0.237793f, -0.583008f, 0.207275f, -0.546875f, 0.176758f, -0.510742f, 0.161133f, -0.459961f,
+0.145508f, -0.40918f, 0.145508f, -0.347168f, 0.145508f, -0.285156f, 0.162354f, -0.233643f,
+0.179199f, -0.182129f, 0.210693f, -0.14502f, 0.242188f, -0.10791f, 0.287842f, -0.0874023f,
+0.333496f, -0.0668945f, 0.390625f, -0.0668945f, 0.430664f, -0.0668945f, 0.463623f,
+-0.0773926f, 0.496582f, -0.0878906f, 0.523193f, -0.106934f, 0.549805f, -0.125977f,
+0.570801f, -0.1521f, 0.591797f, -0.178223f, 0.60791f, -0.209961f, 0.684082f, -0.171875f,
+0.665527f, -0.133301f, 0.638184f, -0.100098f, 0.61084f, -0.0668945f, 0.573975f, -0.0424805f,
+0.537109f, -0.0180664f, 0.490479f, -0.00415039f, 0.443848f, 0.00976562f, 0.38623f,
+0.00976562f, 0.302734f, 0.00976562f, 0.23999f, -0.0168457f, 0.177246f, -0.043457f,
+0.13501f, -0.0910645f, 0.0927734f, -0.138672f, 0.0717773f, -0.204102f, 0.0507812f,
+-0.269531f, 0.0507812f, -0.347168f, 0.0507812f, -0.427734f, 0.072998f, -0.492676f,
+0.0952148f, -0.557617f, 0.137939f, -0.603271f, 0.180664f, -0.648926f, 0.243164f,
+-0.673584f, 0.305664f, -0.698242f, 0.385742f, -0.698242f, 0.495605f, -0.698242f,
+0.569336f, -0.655273f, 0.643066f, -0.612305f, 0.677734f, -0.527832f, 0.589355f, -0.498535f,
+0.57959f, -0.522949f, 0.562988f, -0.545166f, 0.546387f, -0.567383f, 0.521484f, -0.584473f,
+0.496582f, -0.601562f, 0.463135f, -0.611816f, 0.429688f, -0.62207f, 0.386719f, -0.62207f,
+0.674316f, -0.351074f, 0.674316f, -0.265137f, 0.648438f, -0.199463f, 0.622559f, -0.133789f,
+0.577637f, -0.0895996f, 0.532715f, -0.0454102f, 0.471436f, -0.0227051f, 0.410156f,
+0, 0.339355f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.30957f, -0.687988f, 0.38916f,
+-0.687988f, 0.456299f, -0.668213f, 0.523438f, -0.648438f, 0.571777f, -0.607178f,
+0.620117f, -0.565918f, 0.647217f, -0.502441f, 0.674316f, -0.438965f, 0.674316f, -0.351074f,
+0.580566f, -0.351074f, 0.580566f, -0.420898f, 0.560547f, -0.470459f, 0.540527f, -0.52002f,
+0.504395f, -0.551758f, 0.468262f, -0.583496f, 0.417969f, -0.598389f, 0.367676f, -0.613281f,
+0.307617f, -0.613281f, 0.175293f, -0.613281f, 0.175293f, -0.074707f, 0.328613f, -0.074707f,
+0.382812f, -0.074707f, 0.428955f, -0.0922852f, 0.475098f, -0.109863f, 0.508789f,
+-0.144531f, 0.54248f, -0.179199f, 0.561523f, -0.230957f, 0.580566f, -0.282715f, 0.580566f,
+-0.351074f, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.604004f, -0.687988f, 0.604004f,
+-0.611816f, 0.175293f, -0.611816f, 0.175293f, -0.391113f, 0.574707f, -0.391113f,
+0.574707f, -0.315918f, 0.175293f, -0.315918f, 0.175293f, -0.0761719f, 0.624023f,
+-0.0761719f, 0.624023f, 0, 0.175293f, -0.611816f, 0.175293f, -0.355957f, 0.559082f,
+-0.355957f, 0.559082f, -0.278809f, 0.175293f, -0.278809f, 0.175293f, 0, 0.0820312f,
+0, 0.0820312f, -0.687988f, 0.570801f, -0.687988f, 0.570801f, -0.611816f, 0.050293f,
+-0.347168f, 0.050293f, -0.427734f, 0.0720215f, -0.492676f, 0.09375f, -0.557617f,
+0.136963f, -0.603271f, 0.180176f, -0.648926f, 0.244141f, -0.673584f, 0.308105f, -0.698242f,
+0.392578f, -0.698242f, 0.456055f, -0.698242f, 0.503906f, -0.687012f, 0.551758f, -0.675781f,
+0.586914f, -0.654785f, 0.62207f, -0.633789f, 0.646484f, -0.60376f, 0.670898f, -0.57373f,
+0.687988f, -0.536133f, 0.599121f, -0.509766f, 0.586426f, -0.535156f, 0.568604f, -0.555908f,
+0.550781f, -0.57666f, 0.525391f, -0.591309f, 0.5f, -0.605957f, 0.466553f, -0.614014f,
+0.433105f, -0.62207f, 0.390137f, -0.62207f, 0.327637f, -0.62207f, 0.281494f, -0.602539f,
+0.235352f, -0.583008f, 0.205078f, -0.546875f, 0.174805f, -0.510742f, 0.159912f, -0.459961f,
+0.14502f, -0.40918f, 0.14502f, -0.347168f, 0.14502f, -0.285156f, 0.161133f, -0.233643f,
+0.177246f, -0.182129f, 0.208984f, -0.144775f, 0.240723f, -0.107422f, 0.287842f, -0.0866699f,
+0.334961f, -0.065918f, 0.396973f, -0.065918f, 0.4375f, -0.065918f, 0.47168f, -0.0727539f,
+0.505859f, -0.0795898f, 0.533447f, -0.0905762f, 0.561035f, -0.101562f, 0.582031f,
+-0.11499f, 0.603027f, -0.128418f, 0.617188f, -0.14209f, 0.617188f, -0.266113f, 0.411621f,
+-0.266113f, 0.411621f, -0.344238f, 0.703125f, -0.344238f, 0.703125f, -0.106934f,
+0.680176f, -0.0834961f, 0.64917f, -0.0622559f, 0.618164f, -0.0410156f, 0.57959f,
+-0.0249023f, 0.541016f, -0.00878906f, 0.495117f, 0.000488281f, 0.449219f, 0.00976562f,
+0.396973f, 0.00976562f, 0.310059f, 0.00976562f, 0.245117f, -0.0168457f, 0.180176f,
+-0.043457f, 0.136963f, -0.0910645f, 0.09375f, -0.138672f, 0.0720215f, -0.204102f,
+0.050293f, -0.269531f, 0.050293f, -0.347168f, 0.547363f, 0, 0.547363f, -0.318848f,
+0.175293f, -0.318848f, 0.175293f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.175293f,
+-0.687988f, 0.175293f, -0.396973f, 0.547363f, -0.396973f, 0.547363f, -0.687988f,
+0.640625f, -0.687988f, 0.640625f, 0, 0.0922852f, 0, 0.0922852f, -0.687988f, 0.185547f,
+-0.687988f, 0.185547f, 0, 0.223145f, 0.00976562f, 0.139648f, 0.00976562f, 0.0861816f,
+-0.0336914f, 0.0327148f, -0.0771484f, 0.015625f, -0.170898f, 0.106934f, -0.186035f,
+0.111816f, -0.154297f, 0.123047f, -0.131592f, 0.134277f, -0.108887f, 0.149902f, -0.0942383f,
+0.165527f, -0.0795898f, 0.18457f, -0.0727539f, 0.203613f, -0.065918f, 0.223633f,
+-0.065918f, 0.274414f, -0.065918f, 0.303711f, -0.10083f, 0.333008f, -0.135742f, 0.333008f,
+-0.203125f, 0.333008f, -0.611816f, 0.200684f, -0.611816f, 0.200684f, -0.687988f,
+0.425781f, -0.687988f, 0.425781f, -0.205078f, 0.425781f, -0.155762f, 0.412109f, -0.116211f,
+0.398438f, -0.0766602f, 0.372314f, -0.048584f, 0.346191f, -0.0205078f, 0.308594f,
+-0.00537109f, 0.270996f, 0.00976562f, 0.223145f, 0.00976562f, 0.540039f, 0, 0.265137f,
+-0.332031f, 0.175293f, -0.263672f, 0.175293f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f,
+0.175293f, -0.687988f, 0.175293f, -0.343262f, 0.506836f, -0.687988f, 0.616699f, -0.687988f,
+0.32373f, -0.38916f, 0.655762f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.175293f,
+-0.687988f, 0.175293f, -0.0761719f, 0.522949f, -0.0761719f, 0.522949f, 0, 0.666992f,
+0, 0.666992f, -0.458984f, 0.666992f, -0.483887f, 0.66748f, -0.509766f, 0.667969f,
+-0.535645f, 0.668945f, -0.557129f, 0.669922f, -0.582031f, 0.671387f, -0.605469f,
+0.664551f, -0.580566f, 0.657227f, -0.556152f, 0.650879f, -0.535156f, 0.643311f, -0.511475f,
+0.635742f, -0.487793f, 0.628418f, -0.46875f, 0.450684f, 0, 0.385254f, 0, 0.205078f,
+-0.46875f, 0.202148f, -0.476074f, 0.198975f, -0.48584f, 0.195801f, -0.495605f, 0.192139f,
+-0.506592f, 0.188477f, -0.517578f, 0.184814f, -0.529053f, 0.181152f, -0.540527f,
+0.177734f, -0.551758f, 0.169434f, -0.577637f, 0.161621f, -0.605469f, 0.162109f, -0.578125f,
+0.163086f, -0.55127f, 0.164062f, -0.52832f, 0.164551f, -0.503174f, 0.165039f, -0.478027f,
+0.165039f, -0.458984f, 0.165039f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.20459f,
+-0.687988f, 0.387695f, -0.210938f, 0.391113f, -0.201172f, 0.395996f, -0.185791f,
+0.400879f, -0.17041f, 0.405273f, -0.154297f, 0.409668f, -0.138184f, 0.41333f, -0.123779f,
+0.416992f, -0.109375f, 0.418457f, -0.101562f, 0.419922f, -0.109375f, 0.423828f, -0.124023f,
+0.427734f, -0.138672f, 0.432861f, -0.154785f, 0.437988f, -0.170898f, 0.442871f, -0.186035f,
+0.447754f, -0.201172f, 0.45166f, -0.210938f, 0.631348f, -0.687988f, 0.750977f, -0.687988f,
+0.750977f, 0, 0.52832f, 0, 0.160156f, -0.585938f, 0.161133f, -0.562012f, 0.162598f,
+-0.538574f, 0.163574f, -0.518555f, 0.164307f, -0.496338f, 0.165039f, -0.474121f,
+0.165039f, -0.457031f, 0.165039f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.19043f,
+-0.687988f, 0.5625f, -0.0981445f, 0.561035f, -0.12207f, 0.55957f, -0.145996f, 0.558594f,
+-0.166504f, 0.557617f, -0.190674f, 0.556641f, -0.214844f, 0.556641f, -0.236816f,
+0.556641f, -0.687988f, 0.640625f, -0.687988f, 0.640625f, 0, 0.72998f, -0.347168f,
+0.72998f, -0.266602f, 0.706787f, -0.200684f, 0.683594f, -0.134766f, 0.639648f, -0.0878906f,
+0.595703f, -0.0410156f, 0.532227f, -0.015625f, 0.46875f, 0.00976562f, 0.388184f,
+0.00976562f, 0.303223f, 0.00976562f, 0.239258f, -0.0168457f, 0.175293f, -0.043457f,
+0.132812f, -0.0910645f, 0.090332f, -0.138672f, 0.0688477f, -0.204102f, 0.0473633f,
+-0.269531f, 0.0473633f, -0.347168f, 0.0473633f, -0.427734f, 0.0698242f, -0.492676f,
+0.0922852f, -0.557617f, 0.135742f, -0.603271f, 0.179199f, -0.648926f, 0.24292f, -0.673584f,
+0.306641f, -0.698242f, 0.38916f, -0.698242f, 0.471191f, -0.698242f, 0.534912f, -0.67334f,
+0.598633f, -0.648438f, 0.641846f, -0.602539f, 0.685059f, -0.556641f, 0.70752f, -0.491699f,
+0.72998f, -0.426758f, 0.72998f, -0.347168f, 0.634766f, -0.347168f, 0.634766f, -0.40918f,
+0.618896f, -0.459961f, 0.603027f, -0.510742f, 0.572021f, -0.546875f, 0.541016f, -0.583008f,
+0.495117f, -0.602539f, 0.449219f, -0.62207f, 0.38916f, -0.62207f, 0.327637f, -0.62207f,
+0.28125f, -0.602539f, 0.234863f, -0.583008f, 0.203857f, -0.546875f, 0.172852f, -0.510742f,
+0.157471f, -0.459961f, 0.14209f, -0.40918f, 0.14209f, -0.347168f, 0.14209f, -0.285156f,
+0.157959f, -0.233643f, 0.173828f, -0.182129f, 0.204834f, -0.144775f, 0.23584f, -0.107422f,
+0.281982f, -0.0866699f, 0.328125f, -0.065918f, 0.388184f, -0.065918f, 0.452637f,
+-0.065918f, 0.499268f, -0.0869141f, 0.545898f, -0.10791f, 0.575928f, -0.145264f,
+0.605957f, -0.182617f, 0.620361f, -0.234375f, 0.634766f, -0.286133f, 0.634766f, -0.347168f,
+0.614258f, -0.480957f, 0.614258f, -0.436035f, 0.599365f, -0.397217f, 0.584473f, -0.358398f,
+0.554932f, -0.329834f, 0.525391f, -0.30127f, 0.480957f, -0.284668f, 0.436523f, -0.268066f,
+0.377441f, -0.268066f, 0.175293f, -0.268066f, 0.175293f, 0, 0.0820312f, 0, 0.0820312f,
+-0.687988f, 0.371582f, -0.687988f, 0.432617f, -0.687988f, 0.478027f, -0.673096f,
+0.523438f, -0.658203f, 0.553711f, -0.631104f, 0.583984f, -0.604004f, 0.599121f, -0.565674f,
+0.614258f, -0.527344f, 0.614258f, -0.480957f, 0.520508f, -0.47998f, 0.520508f, -0.54541f,
+0.480469f, -0.579346f, 0.44043f, -0.613281f, 0.360352f, -0.613281f, 0.175293f, -0.613281f,
+0.175293f, -0.341797f, 0.364258f, -0.341797f, 0.444824f, -0.341797f, 0.482666f, -0.377441f,
+0.520508f, -0.413086f, 0.520508f, -0.47998f, 0.72998f, -0.347168f, 0.72998f, -0.274414f,
+0.711182f, -0.214111f, 0.692383f, -0.153809f, 0.656982f, -0.108398f, 0.621582f, -0.0629883f,
+0.570068f, -0.0344238f, 0.518555f, -0.00585938f, 0.453125f, 0.00292969f, 0.463379f,
+0.0341797f, 0.476318f, 0.0561523f, 0.489258f, 0.078125f, 0.505859f, 0.092041f, 0.522461f,
+0.105957f, 0.542725f, 0.112549f, 0.562988f, 0.119141f, 0.587891f, 0.119141f, 0.601562f,
+0.119141f, 0.617188f, 0.117188f, 0.632812f, 0.115234f, 0.644043f, 0.112793f, 0.644043f,
+0.178223f, 0.625488f, 0.182617f, 0.603271f, 0.185791f, 0.581055f, 0.188965f, 0.557129f,
+0.188965f, 0.515137f, 0.188965f, 0.483887f, 0.176514f, 0.452637f, 0.164062f, 0.428955f,
+0.140869f, 0.405273f, 0.117676f, 0.388184f, 0.0839844f, 0.371094f, 0.050293f, 0.35791f,
+0.0078125f, 0.280762f, 0.00390625f, 0.222412f, -0.0241699f, 0.164062f, -0.0522461f,
+0.125244f, -0.0993652f, 0.0864258f, -0.146484f, 0.0668945f, -0.209717f, 0.0473633f,
+-0.272949f, 0.0473633f, -0.347168f, 0.0473633f, -0.427734f, 0.0698242f, -0.492676f,
+0.0922852f, -0.557617f, 0.135742f, -0.603271f, 0.179199f, -0.648926f, 0.24292f, -0.673584f,
+0.306641f, -0.698242f, 0.38916f, -0.698242f, 0.471191f, -0.698242f, 0.534912f, -0.67334f,
+0.598633f, -0.648438f, 0.641846f, -0.602539f, 0.685059f, -0.556641f, 0.70752f, -0.491699f,
+0.72998f, -0.426758f, 0.72998f, -0.347168f, 0.634766f, -0.347168f, 0.634766f, -0.40918f,
+0.618896f, -0.459961f, 0.603027f, -0.510742f, 0.572021f, -0.546875f, 0.541016f, -0.583008f,
+0.495117f, -0.602539f, 0.449219f, -0.62207f, 0.38916f, -0.62207f, 0.327637f, -0.62207f,
+0.28125f, -0.602539f, 0.234863f, -0.583008f, 0.203857f, -0.546875f, 0.172852f, -0.510742f,
+0.157471f, -0.459961f, 0.14209f, -0.40918f, 0.14209f, -0.347168f, 0.14209f, -0.285156f,
+0.157959f, -0.233643f, 0.173828f, -0.182129f, 0.204834f, -0.144775f, 0.23584f, -0.107422f,
+0.281982f, -0.0866699f, 0.328125f, -0.065918f, 0.388184f, -0.065918f, 0.452637f,
+-0.065918f, 0.499268f, -0.0869141f, 0.545898f, -0.10791f, 0.575928f, -0.145264f,
+0.605957f, -0.182617f, 0.620361f, -0.234375f, 0.634766f, -0.286133f, 0.634766f, -0.347168f,
+0.568359f, 0, 0.389648f, -0.285645f, 0.175293f, -0.285645f, 0.175293f, 0, 0.0820312f,
+0, 0.0820312f, -0.687988f, 0.405762f, -0.687988f, 0.464355f, -0.687988f, 0.509521f,
+-0.674561f, 0.554688f, -0.661133f, 0.585449f, -0.635742f, 0.616211f, -0.610352f,
+0.632324f, -0.57373f, 0.648438f, -0.537109f, 0.648438f, -0.491211f, 0.648438f, -0.458496f,
+0.638916f, -0.426758f, 0.629395f, -0.39502f, 0.608887f, -0.368652f, 0.588379f, -0.342285f,
+0.556641f, -0.323242f, 0.524902f, -0.304199f, 0.480469f, -0.296387f, 0.675781f, 0,
+0.554688f, -0.490234f, 0.554688f, -0.521484f, 0.543945f, -0.544434f, 0.533203f, -0.567383f,
+0.512695f, -0.582764f, 0.492188f, -0.598145f, 0.462891f, -0.605713f, 0.433594f, -0.613281f,
+0.396484f, -0.613281f, 0.175293f, -0.613281f, 0.175293f, -0.359375f, 0.400391f, -0.359375f,
+0.44043f, -0.359375f, 0.469727f, -0.369385f, 0.499023f, -0.379395f, 0.517822f, -0.396973f,
+0.536621f, -0.414551f, 0.545654f, -0.438477f, 0.554688f, -0.462402f, 0.554688f, -0.490234f,
+0.621094f, -0.189941f, 0.621094f, -0.146484f, 0.604248f, -0.109863f, 0.587402f, -0.0732422f,
+0.552246f, -0.0466309f, 0.51709f, -0.0200195f, 0.463623f, -0.00512695f, 0.410156f,
+0.00976562f, 0.336914f, 0.00976562f, 0.208496f, 0.00976562f, 0.136719f, -0.0351562f,
+0.0649414f, -0.0800781f, 0.0454102f, -0.165039f, 0.135742f, -0.183105f, 0.142578f,
+-0.15625f, 0.156738f, -0.134277f, 0.170898f, -0.112305f, 0.195068f, -0.0964355f,
+0.219238f, -0.0805664f, 0.254883f, -0.0717773f, 0.290527f, -0.0629883f, 0.340332f,
+-0.0629883f, 0.381836f, -0.0629883f, 0.416504f, -0.0700684f, 0.451172f, -0.0771484f,
+0.476074f, -0.0917969f, 0.500977f, -0.106445f, 0.514893f, -0.129639f, 0.528809f,
+-0.152832f, 0.528809f, -0.185059f, 0.528809f, -0.21875f, 0.513428f, -0.239746f, 0.498047f,
+-0.260742f, 0.470215f, -0.274414f, 0.442383f, -0.288086f, 0.403809f, -0.297363f,
+0.365234f, -0.306641f, 0.318359f, -0.317383f, 0.289551f, -0.32373f, 0.260498f, -0.331299f,
+0.231445f, -0.338867f, 0.204834f, -0.349365f, 0.178223f, -0.359863f, 0.154785f, -0.374023f,
+0.131348f, -0.388184f, 0.114258f, -0.407959f, 0.097168f, -0.427734f, 0.0874023f,
+-0.453857f, 0.0776367f, -0.47998f, 0.0776367f, -0.51416f, 0.0776367f, -0.562988f,
+0.0974121f, -0.5979f, 0.117188f, -0.632812f, 0.152344f, -0.655273f, 0.1875f, -0.677734f,
+0.235352f, -0.687988f, 0.283203f, -0.698242f, 0.338867f, -0.698242f, 0.402832f, -0.698242f,
+0.448242f, -0.688232f, 0.493652f, -0.678223f, 0.524902f, -0.658203f, 0.556152f, -0.638184f,
+0.574951f, -0.608643f, 0.59375f, -0.579102f, 0.60498f, -0.540039f, 0.513184f, -0.523926f,
+0.506348f, -0.548828f, 0.493408f, -0.568359f, 0.480469f, -0.587891f, 0.459473f, -0.601074f,
+0.438477f, -0.614258f, 0.408447f, -0.621094f, 0.378418f, -0.62793f, 0.337891f, -0.62793f,
+0.290039f, -0.62793f, 0.257568f, -0.619385f, 0.225098f, -0.61084f, 0.205322f, -0.596191f,
+0.185547f, -0.581543f, 0.177002f, -0.561768f, 0.168457f, -0.541992f, 0.168457f, -0.519043f,
+0.168457f, -0.488281f, 0.183838f, -0.468506f, 0.199219f, -0.44873f, 0.225586f, -0.435547f,
+0.251953f, -0.422363f, 0.286621f, -0.413574f, 0.321289f, -0.404785f, 0.360352f, -0.395996f,
+0.39209f, -0.388672f, 0.423584f, -0.381104f, 0.455078f, -0.373535f, 0.483887f, -0.363037f,
+0.512695f, -0.352539f, 0.537842f, -0.338379f, 0.562988f, -0.324219f, 0.581543f, -0.303711f,
+0.600098f, -0.283203f, 0.610596f, -0.255371f, 0.621094f, -0.227539f, 0.621094f, -0.189941f,
+0.351562f, -0.611816f, 0.351562f, 0, 0.258789f, 0, 0.258789f, -0.611816f, 0.0224609f,
+-0.611816f, 0.0224609f, -0.687988f, 0.587891f, -0.687988f, 0.587891f, -0.611816f,
+0.356934f, 0.00976562f, 0.300293f, 0.00976562f, 0.249512f, -0.00537109f, 0.19873f,
+-0.0205078f, 0.1604f, -0.0524902f, 0.12207f, -0.0844727f, 0.0996094f, -0.133545f,
+0.0771484f, -0.182617f, 0.0771484f, -0.25f, 0.0771484f, -0.687988f, 0.17041f, -0.687988f,
+0.17041f, -0.257812f, 0.17041f, -0.205566f, 0.184326f, -0.169189f, 0.198242f, -0.132812f,
+0.223145f, -0.109863f, 0.248047f, -0.0869141f, 0.281982f, -0.076416f, 0.315918f,
+-0.065918f, 0.356445f, -0.065918f, 0.396484f, -0.065918f, 0.432129f, -0.0766602f,
+0.467773f, -0.0874023f, 0.494629f, -0.11084f, 0.521484f, -0.134277f, 0.536865f, -0.172119f,
+0.552246f, -0.209961f, 0.552246f, -0.26416f, 0.552246f, -0.687988f, 0.64502f, -0.687988f,
+0.64502f, -0.258789f, 0.64502f, -0.189941f, 0.622314f, -0.139404f, 0.599609f, -0.0888672f,
+0.560547f, -0.0556641f, 0.521484f, -0.0224609f, 0.468994f, -0.00634766f, 0.416504f,
+0.00976562f, 0.356934f, 0.00976562f, 0.381836f, 0, 0.285156f, 0, 0.00439453f, -0.687988f,
+0.102539f, -0.687988f, 0.292969f, -0.203613f, 0.300293f, -0.181641f, 0.307617f, -0.159912f,
+0.314941f, -0.138184f, 0.320801f, -0.121094f, 0.327637f, -0.101074f, 0.333984f, -0.0820312f,
+0.339844f, -0.100098f, 0.34668f, -0.120117f, 0.352539f, -0.137207f, 0.359619f, -0.158691f,
+0.366699f, -0.180176f, 0.375f, -0.203613f, 0.564453f, -0.687988f, 0.662598f, -0.687988f,
+0.737793f, 0, 0.626465f, 0, 0.507324f, -0.437012f, 0.501953f, -0.455566f, 0.49585f,
+-0.480957f, 0.489746f, -0.506348f, 0.484863f, -0.529297f, 0.479004f, -0.556152f,
+0.473145f, -0.583984f, 0.466797f, -0.555664f, 0.460938f, -0.528809f, 0.455566f, -0.505371f,
+0.449707f, -0.480469f, 0.443848f, -0.455566f, 0.438477f, -0.437012f, 0.318359f, 0,
+0.207031f, 0, 0.00439453f, -0.687988f, 0.101562f, -0.687988f, 0.225098f, -0.250977f,
+0.233398f, -0.220215f, 0.240967f, -0.189941f, 0.248535f, -0.159668f, 0.253906f, -0.135742f,
+0.260254f, -0.107422f, 0.265625f, -0.0820312f, 0.272949f, -0.115723f, 0.280762f,
+-0.148438f, 0.28418f, -0.162109f, 0.287598f, -0.177246f, 0.291016f, -0.192383f, 0.294678f,
+-0.207031f, 0.29834f, -0.22168f, 0.302002f, -0.235107f, 0.305664f, -0.248535f, 0.308594f,
+-0.259766f, 0.428223f, -0.687988f, 0.517578f, -0.687988f, 0.637207f, -0.259766f,
+0.640137f, -0.248535f, 0.643799f, -0.235107f, 0.647461f, -0.22168f, 0.651123f, -0.207275f,
+0.654785f, -0.192871f, 0.658203f, -0.177734f, 0.661621f, -0.162598f, 0.665039f, -0.148926f,
+0.672852f, -0.116211f, 0.680176f, -0.0820312f, 0.680664f, -0.0820312f, 0.68457f,
+-0.098877f, 0.688477f, -0.115723f, 0.694336f, -0.141113f, 0.700195f, -0.166504f,
+0.707275f, -0.196045f, 0.714355f, -0.225586f, 0.72168f, -0.250977f, 0.843262f, -0.687988f,
+0.94043f, -0.687988f, 0.542969f, 0, 0.336426f, -0.300781f, 0.125488f, 0, 0.0224609f,
+0, 0.28418f, -0.357422f, 0.0424805f, -0.687988f, 0.145508f, -0.687988f, 0.336914f,
+-0.417969f, 0.522949f, -0.687988f, 0.625977f, -0.687988f, 0.390625f, -0.36084f, 0.645996f,
+0, 0.379395f, -0.285156f, 0.379395f, 0, 0.286621f, 0, 0.286621f, -0.285156f, 0.0219727f,
+-0.687988f, 0.124512f, -0.687988f, 0.333984f, -0.360352f, 0.54248f, -0.687988f, 0.64502f,
+-0.687988f, 0.57959f, 0, 0.0317383f, 0, 0.0317383f, -0.0698242f, 0.450684f, -0.611816f,
+0.0673828f, -0.611816f, 0.0673828f, -0.687988f, 0.556641f, -0.687988f, 0.556641f,
+-0.620117f, 0.137695f, -0.0761719f, 0.57959f, -0.0761719f, 0.0712891f, 0.20752f,
+0.0712891f, -0.724609f, 0.27002f, -0.724609f, 0.27002f, -0.661621f, 0.15625f, -0.661621f,
+0.15625f, 0.144531f, 0.27002f, 0.144531f, 0.27002f, 0.20752f, 0.19873f, 0.00976562f,
+0, -0.724609f, 0.0771484f, -0.724609f, 0.277832f, 0.00976562f, 0.0078125f, 0.20752f,
+0.0078125f, 0.144531f, 0.121582f, 0.144531f, 0.121582f, -0.661621f, 0.0078125f, -0.661621f,
+0.0078125f, -0.724609f, 0.206543f, -0.724609f, 0.206543f, 0.20752f, 0.384277f, -0.328613f,
+0.233398f, -0.637695f, 0.0839844f, -0.328613f, 0.00488281f, -0.328613f, 0.18457f,
+-0.687988f, 0.283691f, -0.687988f, 0.464355f, -0.328613f, -0.0151367f, 0.19873f,
+-0.0151367f, 0.135254f, 0.567383f, 0.135254f, 0.567383f, 0.19873f, 0.212891f, -0.586426f,
+0.0517578f, -0.722168f, 0.0517578f, -0.736328f, 0.152832f, -0.736328f, 0.258789f,
+-0.596191f, 0.258789f, -0.586426f, 0.202148f, 0.00976562f, 0.122559f, 0.00976562f,
+0.0825195f, -0.0322266f, 0.0424805f, -0.0742188f, 0.0424805f, -0.147461f, 0.0424805f,
+-0.199707f, 0.0622559f, -0.233154f, 0.0820312f, -0.266602f, 0.114014f, -0.285645f,
+0.145996f, -0.304688f, 0.187012f, -0.312012f, 0.228027f, -0.319336f, 0.270508f, -0.320312f,
+0.38916f, -0.322266f, 0.38916f, -0.351074f, 0.38916f, -0.383789f, 0.382324f, -0.406738f,
+0.375488f, -0.429688f, 0.361328f, -0.443848f, 0.347168f, -0.458008f, 0.325928f, -0.4646f,
+0.304688f, -0.471191f, 0.275879f, -0.471191f, 0.250488f, -0.471191f, 0.22998f, -0.467529f,
+0.209473f, -0.463867f, 0.194336f, -0.454346f, 0.179199f, -0.444824f, 0.169922f, -0.428467f,
+0.160645f, -0.412109f, 0.157715f, -0.387207f, 0.065918f, -0.395508f, 0.0708008f,
+-0.426758f, 0.0844727f, -0.452881f, 0.0981445f, -0.479004f, 0.123291f, -0.498047f,
+0.148438f, -0.51709f, 0.186279f, -0.527588f, 0.224121f, -0.538086f, 0.277832f, -0.538086f,
+0.377441f, -0.538086f, 0.427734f, -0.492432f, 0.478027f, -0.446777f, 0.478027f, -0.360352f,
+0.478027f, -0.132812f, 0.478027f, -0.09375f, 0.488281f, -0.0739746f, 0.498535f, -0.0541992f,
+0.527344f, -0.0541992f, 0.534668f, -0.0541992f, 0.541992f, -0.0551758f, 0.549316f,
+-0.0561523f, 0.556152f, -0.0576172f, 0.556152f, -0.00292969f, 0.539551f, 0.000976562f,
+0.523193f, 0.00292969f, 0.506836f, 0.00488281f, 0.488281f, 0.00488281f, 0.463379f,
+0.00488281f, 0.445557f, -0.00170898f, 0.427734f, -0.00830078f, 0.416504f, -0.0217285f,
+0.405273f, -0.0351562f, 0.399414f, -0.0549316f, 0.393555f, -0.074707f, 0.39209f,
+-0.101074f, 0.38916f, -0.101074f, 0.375f, -0.0756836f, 0.358154f, -0.0551758f, 0.341309f,
+-0.034668f, 0.318848f, -0.0202637f, 0.296387f, -0.00585938f, 0.267822f, 0.00195312f,
+0.239258f, 0.00976562f, 0.202148f, 0.00976562f, 0.222168f, -0.0561523f, 0.26416f,
+-0.0561523f, 0.295654f, -0.0715332f, 0.327148f, -0.0869141f, 0.3479f, -0.11084f,
+0.368652f, -0.134766f, 0.378906f, -0.163086f, 0.38916f, -0.191406f, 0.38916f, -0.217285f,
+0.38916f, -0.260742f, 0.292969f, -0.258789f, 0.260742f, -0.258301f, 0.231689f, -0.25415f,
+0.202637f, -0.25f, 0.180664f, -0.237793f, 0.158691f, -0.225586f, 0.145752f, -0.203613f,
+0.132812f, -0.181641f, 0.132812f, -0.145996f, 0.132812f, -0.103027f, 0.156006f, -0.0795898f,
+0.179199f, -0.0561523f, 0.222168f, -0.0561523f, 0.51416f, -0.266602f, 0.51416f, 0.00976562f,
+0.319824f, 0.00976562f, 0.259766f, 0.00976562f, 0.219971f, -0.0119629f, 0.180176f,
+-0.0336914f, 0.155273f, -0.0820312f, 0.154297f, -0.0820312f, 0.154297f, -0.0693359f,
+0.153564f, -0.0556641f, 0.152832f, -0.0419922f, 0.1521f, -0.0302734f, 0.151367f,
+-0.0185547f, 0.150635f, -0.0102539f, 0.149902f, -0.00195312f, 0.149414f, 0, 0.0644531f,
+0, 0.0649414f, -0.00439453f, 0.0654297f, -0.0148926f, 0.065918f, -0.0253906f, 0.0664062f,
+-0.0400391f, 0.0668945f, -0.0546875f, 0.0671387f, -0.0722656f, 0.0673828f, -0.0898438f,
+0.0673828f, -0.108887f, 0.0673828f, -0.724609f, 0.155273f, -0.724609f, 0.155273f,
+-0.518066f, 0.155273f, -0.503418f, 0.155029f, -0.48999f, 0.154785f, -0.476562f, 0.154297f,
+-0.466309f, 0.153809f, -0.454102f, 0.15332f, -0.443359f, 0.155273f, -0.443359f, 0.179688f,
+-0.494141f, 0.219971f, -0.516113f, 0.260254f, -0.538086f, 0.319824f, -0.538086f,
+0.419922f, -0.538086f, 0.467041f, -0.470703f, 0.51416f, -0.40332f, 0.51416f, -0.266602f,
+0.421875f, -0.263672f, 0.421875f, -0.318359f, 0.415039f, -0.357422f, 0.408203f, -0.396484f,
+0.393066f, -0.421631f, 0.37793f, -0.446777f, 0.354492f, -0.458496f, 0.331055f, -0.470215f,
+0.297363f, -0.470215f, 0.262695f, -0.470215f, 0.236084f, -0.458984f, 0.209473f, -0.447754f,
+0.19165f, -0.422852f, 0.173828f, -0.397949f, 0.164551f, -0.357422f, 0.155273f, -0.316895f,
+0.155273f, -0.258301f, 0.155273f, -0.20166f, 0.164551f, -0.163086f, 0.173828f, -0.124512f,
+0.19165f, -0.100342f, 0.209473f, -0.0761719f, 0.23584f, -0.0656738f, 0.262207f, -0.0551758f,
+0.296387f, -0.0551758f, 0.328613f, -0.0551758f, 0.352051f, -0.0664062f, 0.375488f,
+-0.0776367f, 0.391113f, -0.102539f, 0.406738f, -0.127441f, 0.414307f, -0.167236f,
+0.421875f, -0.207031f, 0.421875f, -0.263672f, 0.134277f, -0.266602f, 0.134277f, -0.221191f,
+0.140869f, -0.183105f, 0.147461f, -0.14502f, 0.163086f, -0.117432f, 0.178711f, -0.0898438f,
+0.204346f, -0.074707f, 0.22998f, -0.0595703f, 0.267578f, -0.0595703f, 0.314453f,
+-0.0595703f, 0.345947f, -0.0849609f, 0.377441f, -0.110352f, 0.384766f, -0.163086f,
+0.473633f, -0.157227f, 0.469238f, -0.124512f, 0.45459f, -0.0942383f, 0.439941f, -0.0639648f,
+0.414795f, -0.0410156f, 0.389648f, -0.0180664f, 0.353516f, -0.00415039f, 0.317383f,
+0.00976562f, 0.27002f, 0.00976562f, 0.208008f, 0.00976562f, 0.164551f, -0.0112305f,
+0.121094f, -0.0322266f, 0.0939941f, -0.0690918f, 0.0668945f, -0.105957f, 0.0546875f,
+-0.156006f, 0.0424805f, -0.206055f, 0.0424805f, -0.264648f, 0.0424805f, -0.317871f,
+0.0512695f, -0.358643f, 0.0600586f, -0.399414f, 0.0759277f, -0.429932f, 0.0917969f,
+-0.460449f, 0.113281f, -0.481201f, 0.134766f, -0.501953f, 0.159912f, -0.514404f,
+0.185059f, -0.526855f, 0.212891f, -0.532471f, 0.240723f, -0.538086f, 0.269043f, -0.538086f,
+0.313477f, -0.538086f, 0.348145f, -0.525879f, 0.382812f, -0.513672f, 0.407959f, -0.492432f,
+0.433105f, -0.471191f, 0.44873f, -0.442383f, 0.464355f, -0.413574f, 0.470703f, -0.380371f,
+0.380371f, -0.373535f, 0.373535f, -0.41748f, 0.345703f, -0.443359f, 0.317871f, -0.469238f,
+0.266602f, -0.469238f, 0.229004f, -0.469238f, 0.203857f, -0.456787f, 0.178711f, -0.444336f,
+0.163086f, -0.419189f, 0.147461f, -0.394043f, 0.140869f, -0.355957f, 0.134277f, -0.317871f,
+0.134277f, -0.266602f, 0.400879f, -0.0849609f, 0.376465f, -0.0341797f, 0.336182f,
+-0.012207f, 0.295898f, 0.00976562f, 0.236328f, 0.00976562f, 0.13623f, 0.00976562f,
+0.0891113f, -0.0576172f, 0.0419922f, -0.125f, 0.0419922f, -0.261719f, 0.0419922f,
+-0.538086f, 0.236328f, -0.538086f, 0.296387f, -0.538086f, 0.336426f, -0.516113f,
+0.376465f, -0.494141f, 0.400879f, -0.446289f, 0.401855f, -0.446289f, 0.401855f, -0.451172f,
+0.401611f, -0.46167f, 0.401367f, -0.472168f, 0.401123f, -0.483643f, 0.400879f, -0.495117f,
+0.400879f, -0.505371f, 0.400879f, -0.515625f, 0.400879f, -0.52002f, 0.400879f, -0.724609f,
+0.48877f, -0.724609f, 0.48877f, -0.108887f, 0.48877f, -0.0898438f, 0.489014f, -0.0722656f,
+0.489258f, -0.0546875f, 0.489746f, -0.0400391f, 0.490234f, -0.0253906f, 0.490723f,
+-0.0148926f, 0.491211f, -0.00439453f, 0.491699f, 0, 0.407715f, 0, 0.406738f, -0.00488281f,
+0.406006f, -0.013916f, 0.405273f, -0.0229492f, 0.404541f, -0.034668f, 0.403809f,
+-0.0463867f, 0.40332f, -0.0593262f, 0.402832f, -0.0722656f, 0.402832f, -0.0849609f,
+0.134277f, -0.264648f, 0.134277f, -0.209961f, 0.141113f, -0.170898f, 0.147949f, -0.131836f,
+0.163086f, -0.106689f, 0.178223f, -0.081543f, 0.20166f, -0.0698242f, 0.225098f, -0.0581055f,
+0.258789f, -0.0581055f, 0.293457f, -0.0581055f, 0.320068f, -0.0693359f, 0.34668f,
+-0.0805664f, 0.364502f, -0.105713f, 0.382324f, -0.130859f, 0.391602f, -0.171387f,
+0.400879f, -0.211914f, 0.400879f, -0.270508f, 0.400879f, -0.32666f, 0.391602f, -0.365479f,
+0.382324f, -0.404297f, 0.364258f, -0.428223f, 0.346191f, -0.452148f, 0.320068f, -0.462646f,
+0.293945f, -0.473145f, 0.259766f, -0.473145f, 0.227539f, -0.473145f, 0.204102f, -0.461914f,
+0.180664f, -0.450684f, 0.165039f, -0.425781f, 0.149414f, -0.400879f, 0.141846f, -0.361084f,
+0.134277f, -0.321289f, 0.134277f, -0.264648f, 0.134766f, -0.245605f, 0.134766f, -0.204102f,
+0.143311f, -0.169189f, 0.151855f, -0.134277f, 0.169678f, -0.109131f, 0.1875f, -0.0839844f,
+0.215332f, -0.0700684f, 0.243164f, -0.0561523f, 0.282227f, -0.0561523f, 0.339355f,
+-0.0561523f, 0.373779f, -0.0791016f, 0.408203f, -0.102051f, 0.42041f, -0.137207f,
+0.497559f, -0.115234f, 0.489258f, -0.0932617f, 0.474365f, -0.0710449f, 0.459473f,
+-0.0488281f, 0.43457f, -0.0310059f, 0.409668f, -0.0131836f, 0.372314f, -0.00170898f,
+0.334961f, 0.00976562f, 0.282227f, 0.00976562f, 0.165039f, 0.00976562f, 0.10376f,
+-0.0600586f, 0.0424805f, -0.129883f, 0.0424805f, -0.267578f, 0.0424805f, -0.341797f,
+0.0610352f, -0.393311f, 0.0795898f, -0.444824f, 0.111816f, -0.477051f, 0.144043f,
+-0.509277f, 0.187012f, -0.523682f, 0.22998f, -0.538086f, 0.278809f, -0.538086f, 0.345215f,
+-0.538086f, 0.389893f, -0.516602f, 0.43457f, -0.495117f, 0.46167f, -0.457275f, 0.48877f,
+-0.419434f, 0.500244f, -0.368164f, 0.511719f, -0.316895f, 0.511719f, -0.257324f,
+0.511719f, -0.245605f, 0.420898f, -0.312988f, 0.413574f, -0.396484f, 0.378418f, -0.434814f,
+0.343262f, -0.473145f, 0.277344f, -0.473145f, 0.255371f, -0.473145f, 0.231201f, -0.466064f,
+0.207031f, -0.458984f, 0.186523f, -0.440918f, 0.166016f, -0.422852f, 0.151855f, -0.391846f,
+0.137695f, -0.36084f, 0.135742f, -0.312988f, 0.17627f, -0.464355f, 0.17627f, 0, 0.0883789f,
+0, 0.0883789f, -0.464355f, 0.0141602f, -0.464355f, 0.0141602f, -0.52832f, 0.0883789f,
+-0.52832f, 0.0883789f, -0.587891f, 0.0883789f, -0.616699f, 0.09375f, -0.641357f,
+0.0991211f, -0.666016f, 0.113525f, -0.684326f, 0.12793f, -0.702637f, 0.152832f, -0.713135f,
+0.177734f, -0.723633f, 0.217285f, -0.723633f, 0.23291f, -0.723633f, 0.249756f, -0.722168f,
+0.266602f, -0.720703f, 0.279297f, -0.717773f, 0.279297f, -0.650879f, 0.270996f, -0.652344f,
+0.26001f, -0.653564f, 0.249023f, -0.654785f, 0.240234f, -0.654785f, 0.220703f, -0.654785f,
+0.208252f, -0.649414f, 0.195801f, -0.644043f, 0.188721f, -0.634033f, 0.181641f, -0.624023f,
+0.178955f, -0.609375f, 0.17627f, -0.594727f, 0.17627f, -0.575684f, 0.17627f, -0.52832f,
+0.279297f, -0.52832f, 0.279297f, -0.464355f, 0.267578f, 0.20752f, 0.222168f, 0.20752f,
+0.187012f, 0.198242f, 0.151855f, 0.188965f, 0.126953f, 0.171631f, 0.102051f, 0.154297f,
+0.0864258f, 0.130371f, 0.0708008f, 0.106445f, 0.0639648f, 0.0771484f, 0.152344f,
+0.0644531f, 0.161133f, 0.101074f, 0.191162f, 0.12085f, 0.221191f, 0.140625f, 0.27002f,
+0.140625f, 0.299805f, 0.140625f, 0.324219f, 0.132324f, 0.348633f, 0.124023f, 0.365723f,
+0.105713f, 0.382812f, 0.0874023f, 0.39209f, 0.0581055f, 0.401367f, 0.0288086f, 0.401367f,
+-0.0131836f, 0.401367f, -0.0981445f, 0.400391f, -0.0981445f, 0.390625f, -0.078125f,
+0.376221f, -0.0598145f, 0.361816f, -0.0415039f, 0.341064f, -0.0273438f, 0.320312f,
+-0.0131836f, 0.292969f, -0.00463867f, 0.265625f, 0.00390625f, 0.230469f, 0.00390625f,
+0.180176f, 0.00390625f, 0.144287f, -0.0129395f, 0.108398f, -0.0297852f, 0.0856934f,
+-0.0634766f, 0.0629883f, -0.097168f, 0.0524902f, -0.147217f, 0.0419922f, -0.197266f,
+0.0419922f, -0.263184f, 0.0419922f, -0.32666f, 0.0524902f, -0.377441f, 0.0629883f,
+-0.428223f, 0.0866699f, -0.463623f, 0.110352f, -0.499023f, 0.148193f, -0.517822f,
+0.186035f, -0.536621f, 0.240234f, -0.536621f, 0.296387f, -0.536621f, 0.337646f, -0.510986f,
+0.378906f, -0.485352f, 0.401367f, -0.437988f, 0.402344f, -0.437988f, 0.402344f, -0.450195f,
+0.403076f, -0.465332f, 0.403809f, -0.480469f, 0.404541f, -0.493896f, 0.405273f, -0.507324f,
+0.40625f, -0.51709f, 0.407227f, -0.526855f, 0.408203f, -0.52832f, 0.491699f, -0.52832f,
+0.491211f, -0.523926f, 0.490723f, -0.513428f, 0.490234f, -0.50293f, 0.489746f, -0.488281f,
+0.489258f, -0.473633f, 0.489014f, -0.455811f, 0.48877f, -0.437988f, 0.48877f, -0.418945f,
+0.48877f, -0.0151367f, 0.48877f, 0.0957031f, 0.434326f, 0.151611f, 0.379883f, 0.20752f,
+0.267578f, 0.20752f, 0.401367f, -0.26416f, 0.401367f, -0.319336f, 0.389404f, -0.358643f,
+0.377441f, -0.397949f, 0.35791f, -0.422852f, 0.338379f, -0.447754f, 0.313232f, -0.459473f,
+0.288086f, -0.471191f, 0.261719f, -0.471191f, 0.228027f, -0.471191f, 0.203857f, -0.459473f,
+0.179688f, -0.447754f, 0.163818f, -0.422607f, 0.147949f, -0.397461f, 0.140381f, -0.358154f,
+0.132812f, -0.318848f, 0.132812f, -0.26416f, 0.132812f, -0.207031f, 0.140381f, -0.168213f,
+0.147949f, -0.129395f, 0.163574f, -0.105469f, 0.179199f, -0.081543f, 0.203125f, -0.0712891f,
+0.227051f, -0.0610352f, 0.260254f, -0.0610352f, 0.286621f, -0.0610352f, 0.311768f,
+-0.0722656f, 0.336914f, -0.0834961f, 0.356934f, -0.10791f, 0.376953f, -0.132324f,
+0.38916f, -0.170898f, 0.401367f, -0.209473f, 0.401367f, -0.26416f, 0.154785f, -0.437988f,
+0.169434f, -0.464844f, 0.186523f, -0.483643f, 0.203613f, -0.502441f, 0.224121f, -0.514648f,
+0.244629f, -0.526855f, 0.269043f, -0.532471f, 0.293457f, -0.538086f, 0.32373f, -0.538086f,
+0.374512f, -0.538086f, 0.406982f, -0.524414f, 0.439453f, -0.510742f, 0.458252f, -0.486084f,
+0.477051f, -0.461426f, 0.484131f, -0.427246f, 0.491211f, -0.393066f, 0.491211f, -0.352051f,
+0.491211f, 0, 0.402832f, 0, 0.402832f, -0.334961f, 0.402832f, -0.368652f, 0.398682f,
+-0.394043f, 0.394531f, -0.419434f, 0.382812f, -0.436279f, 0.371094f, -0.453125f,
+0.349609f, -0.46167f, 0.328125f, -0.470215f, 0.293945f, -0.470215f, 0.262695f, -0.470215f,
+0.237549f, -0.458984f, 0.212402f, -0.447754f, 0.19458f, -0.427246f, 0.176758f, -0.406738f,
+0.166992f, -0.377441f, 0.157227f, -0.348145f, 0.157227f, -0.311523f, 0.157227f, 0,
+0.0693359f, 0, 0.0693359f, -0.724609f, 0.157227f, -0.724609f, 0.157227f, -0.536133f,
+0.157227f, -0.52002f, 0.156738f, -0.503906f, 0.15625f, -0.487793f, 0.155518f, -0.474121f,
+0.154785f, -0.460449f, 0.154297f, -0.450928f, 0.153809f, -0.441406f, 0.15332f, -0.437988f,
+0.0668945f, -0.640625f, 0.0668945f, -0.724609f, 0.154785f, -0.724609f, 0.154785f,
+-0.640625f, 0.0668945f, 0, 0.0668945f, -0.52832f, 0.154785f, -0.52832f, 0.154785f,
+0, 0.0668945f, -0.640625f, 0.0668945f, -0.724609f, 0.154785f, -0.724609f, 0.154785f,
+-0.640625f, 0.154785f, 0.0654297f, 0.154785f, 0.0957031f, 0.149658f, 0.121582f, 0.144531f,
+0.147461f, 0.131348f, 0.166504f, 0.118164f, 0.185547f, 0.095459f, 0.196533f, 0.0727539f,
+0.20752f, 0.0375977f, 0.20752f, 0.0209961f, 0.20752f, 0.00512695f, 0.206543f, -0.0107422f,
+0.205566f, -0.0244141f, 0.203125f, -0.0244141f, 0.135254f, -0.0180664f, 0.13623f,
+-0.00927734f, 0.137207f, -0.000488281f, 0.138184f, 0.00585938f, 0.138184f, 0.0244141f,
+0.138184f, 0.036377f, 0.133301f, 0.0483398f, 0.128418f, 0.0551758f, 0.11792f, 0.0620117f,
+0.107422f, 0.0644531f, 0.0910645f, 0.0668945f, 0.074707f, 0.0668945f, 0.0522461f,
+0.0668945f, -0.52832f, 0.154785f, -0.52832f, 0.398438f, 0, 0.219727f, -0.241211f,
+0.155273f, -0.187988f, 0.155273f, 0, 0.0673828f, 0, 0.0673828f, -0.724609f, 0.155273f,
+-0.724609f, 0.155273f, -0.271973f, 0.387207f, -0.52832f, 0.490234f, -0.52832f, 0.275879f,
+-0.30127f, 0.501465f, 0, 0.0673828f, 0, 0.0673828f, -0.724609f, 0.155273f, -0.724609f,
+0.155273f, 0, 0.375f, 0, 0.375f, -0.334961f, 0.375f, -0.373535f, 0.370117f, -0.399414f,
+0.365234f, -0.425293f, 0.35376f, -0.441162f, 0.342285f, -0.457031f, 0.32373f, -0.463623f,
+0.305176f, -0.470215f, 0.27832f, -0.470215f, 0.250488f, -0.470215f, 0.228027f, -0.459229f,
+0.205566f, -0.448242f, 0.189697f, -0.42749f, 0.173828f, -0.406738f, 0.165283f, -0.376221f,
+0.156738f, -0.345703f, 0.156738f, -0.306152f, 0.156738f, 0, 0.0693359f, 0, 0.0693359f,
+-0.415527f, 0.0693359f, -0.432129f, 0.0690918f, -0.450439f, 0.0688477f, -0.46875f,
+0.0683594f, -0.485107f, 0.0678711f, -0.501465f, 0.0673828f, -0.513184f, 0.0668945f,
+-0.524902f, 0.0664062f, -0.52832f, 0.149414f, -0.52832f, 0.149902f, -0.525879f, 0.150391f,
+-0.515137f, 0.150879f, -0.504395f, 0.151611f, -0.490479f, 0.152344f, -0.476562f,
+0.152832f, -0.462158f, 0.15332f, -0.447754f, 0.15332f, -0.437988f, 0.154785f, -0.437988f,
+0.166504f, -0.460938f, 0.180176f, -0.479492f, 0.193848f, -0.498047f, 0.212158f, -0.510986f,
+0.230469f, -0.523926f, 0.25415f, -0.531006f, 0.277832f, -0.538086f, 0.309082f, -0.538086f,
+0.369141f, -0.538086f, 0.404053f, -0.51416f, 0.438965f, -0.490234f, 0.452637f, -0.437988f,
+0.454102f, -0.437988f, 0.46582f, -0.460938f, 0.480469f, -0.479492f, 0.495117f, -0.498047f,
+0.514648f, -0.510986f, 0.53418f, -0.523926f, 0.558594f, -0.531006f, 0.583008f, -0.538086f,
+0.614258f, -0.538086f, 0.654297f, -0.538086f, 0.68335f, -0.527344f, 0.712402f, -0.516602f,
+0.730957f, -0.494141f, 0.749512f, -0.47168f, 0.758301f, -0.436279f, 0.76709f, -0.400879f,
+0.76709f, -0.352051f, 0.76709f, 0, 0.680176f, 0, 0.680176f, -0.334961f, 0.680176f,
+-0.373535f, 0.675293f, -0.399414f, 0.67041f, -0.425293f, 0.658936f, -0.441162f, 0.647461f,
+-0.457031f, 0.628906f, -0.463623f, 0.610352f, -0.470215f, 0.583496f, -0.470215f,
+0.555664f, -0.470215f, 0.533203f, -0.459717f, 0.510742f, -0.449219f, 0.494873f, -0.428711f,
+0.479004f, -0.408203f, 0.470459f, -0.377441f, 0.461914f, -0.34668f, 0.461914f, -0.306152f,
+0.461914f, 0, 0.402832f, 0, 0.402832f, -0.334961f, 0.402832f, -0.373535f, 0.397217f,
+-0.399414f, 0.391602f, -0.425293f, 0.378906f, -0.441162f, 0.366211f, -0.457031f,
+0.345459f, -0.463623f, 0.324707f, -0.470215f, 0.293945f, -0.470215f, 0.262695f, -0.470215f,
+0.237549f, -0.459229f, 0.212402f, -0.448242f, 0.19458f, -0.42749f, 0.176758f, -0.406738f,
+0.166992f, -0.376221f, 0.157227f, -0.345703f, 0.157227f, -0.306152f, 0.157227f, 0,
+0.0693359f, 0, 0.0693359f, -0.415527f, 0.0693359f, -0.432129f, 0.0690918f, -0.450439f,
+0.0688477f, -0.46875f, 0.0683594f, -0.485107f, 0.0678711f, -0.501465f, 0.0673828f,
+-0.513184f, 0.0668945f, -0.524902f, 0.0664062f, -0.52832f, 0.149414f, -0.52832f,
+0.149902f, -0.525879f, 0.150391f, -0.515137f, 0.150879f, -0.504395f, 0.151611f, -0.490479f,
+0.152344f, -0.476562f, 0.152832f, -0.462158f, 0.15332f, -0.447754f, 0.15332f, -0.437988f,
+0.154785f, -0.437988f, 0.16748f, -0.460938f, 0.182617f, -0.479492f, 0.197754f, -0.498047f,
+0.217773f, -0.510986f, 0.237793f, -0.523926f, 0.263672f, -0.531006f, 0.289551f, -0.538086f,
+0.32373f, -0.538086f, 0.367676f, -0.538086f, 0.399414f, -0.527344f, 0.431152f, -0.516602f,
+0.45166f, -0.494141f, 0.472168f, -0.47168f, 0.481689f, -0.436279f, 0.491211f, -0.400879f,
+0.491211f, -0.352051f, 0.491211f, 0, 0.51416f, -0.264648f, 0.51416f, -0.125977f,
+0.453125f, -0.0581055f, 0.39209f, 0.00976562f, 0.275879f, 0.00976562f, 0.220703f,
+0.00976562f, 0.177246f, -0.00683594f, 0.133789f, -0.0234375f, 0.10376f, -0.0576172f,
+0.0737305f, -0.0917969f, 0.0578613f, -0.143311f, 0.0419922f, -0.194824f, 0.0419922f,
+-0.264648f, 0.0419922f, -0.538086f, 0.278809f, -0.538086f, 0.340332f, -0.538086f,
+0.38501f, -0.520996f, 0.429688f, -0.503906f, 0.458252f, -0.469727f, 0.486816f, -0.435547f,
+0.500488f, -0.384277f, 0.51416f, -0.333008f, 0.51416f, -0.264648f, 0.421875f, -0.264648f,
+0.421875f, -0.326172f, 0.412354f, -0.366211f, 0.402832f, -0.40625f, 0.384521f, -0.430176f,
+0.366211f, -0.454102f, 0.339844f, -0.463623f, 0.313477f, -0.473145f, 0.280273f, -0.473145f,
+0.246582f, -0.473145f, 0.219482f, -0.463135f, 0.192383f, -0.453125f, 0.17334f, -0.428955f,
+0.154297f, -0.404785f, 0.144287f, -0.364746f, 0.134277f, -0.324707f, 0.134277f, -0.264648f,
+0.134277f, -0.203125f, 0.14502f, -0.162842f, 0.155762f, -0.122559f, 0.174561f, -0.0986328f,
+0.193359f, -0.074707f, 0.218994f, -0.0649414f, 0.244629f, -0.0551758f, 0.274902f,
+-0.0551758f, 0.308594f, -0.0551758f, 0.335938f, -0.0646973f, 0.363281f, -0.0742188f,
+0.382324f, -0.0981445f, 0.401367f, -0.12207f, 0.411621f, -0.162598f, 0.421875f, -0.203125f,
+0.421875f, -0.264648f, 0.51416f, -0.266602f, 0.51416f, -0.206543f, 0.504395f, -0.155762f,
+0.494629f, -0.10498f, 0.471924f, -0.0683594f, 0.449219f, -0.0317383f, 0.411865f,
+-0.0109863f, 0.374512f, 0.00976562f, 0.319824f, 0.00976562f, 0.263184f, 0.00976562f,
+0.220703f, -0.0117188f, 0.178223f, -0.0332031f, 0.155762f, -0.0820312f, 0.15332f,
+-0.0820312f, 0.153809f, -0.0810547f, 0.154053f, -0.0732422f, 0.154297f, -0.0654297f,
+0.154541f, -0.0537109f, 0.154785f, -0.0419922f, 0.155029f, -0.0275879f, 0.155273f,
+-0.0131836f, 0.155273f, 0.000976562f, 0.155273f, 0.20752f, 0.0673828f, 0.20752f,
+0.0673828f, -0.42041f, 0.0673828f, -0.439453f, 0.0671387f, -0.457031f, 0.0668945f,
+-0.474609f, 0.0664062f, -0.489014f, 0.065918f, -0.503418f, 0.0654297f, -0.513672f,
+0.0649414f, -0.523926f, 0.0644531f, -0.52832f, 0.149414f, -0.52832f, 0.149902f, -0.526855f,
+0.150635f, -0.518066f, 0.151367f, -0.509277f, 0.1521f, -0.496826f, 0.152832f, -0.484375f,
+0.153564f, -0.470215f, 0.154297f, -0.456055f, 0.154297f, -0.443359f, 0.15625f, -0.443359f,
+0.168457f, -0.46875f, 0.184082f, -0.486572f, 0.199707f, -0.504395f, 0.219727f, -0.515869f,
+0.239746f, -0.527344f, 0.264404f, -0.532471f, 0.289062f, -0.537598f, 0.319824f, -0.537598f,
+0.374512f, -0.537598f, 0.411865f, -0.518066f, 0.449219f, -0.498535f, 0.471924f, -0.463135f,
+0.494629f, -0.427734f, 0.504395f, -0.377686f, 0.51416f, -0.327637f, 0.51416f, -0.266602f,
+0.421875f, -0.264648f, 0.421875f, -0.313477f, 0.416016f, -0.351562f, 0.410156f, -0.389648f,
+0.395752f, -0.416016f, 0.381348f, -0.442383f, 0.357422f, -0.456055f, 0.333496f, -0.469727f,
+0.297363f, -0.469727f, 0.268066f, -0.469727f, 0.242188f, -0.461426f, 0.216309f, -0.453125f,
+0.197021f, -0.429688f, 0.177734f, -0.40625f, 0.166504f, -0.36499f, 0.155273f, -0.32373f,
+0.155273f, -0.257812f, 0.155273f, -0.20166f, 0.164551f, -0.162842f, 0.173828f, -0.124023f,
+0.19165f, -0.100098f, 0.209473f, -0.0761719f, 0.23584f, -0.0656738f, 0.262207f, -0.0551758f,
+0.296387f, -0.0551758f, 0.333008f, -0.0551758f, 0.357178f, -0.0693359f, 0.381348f,
+-0.0834961f, 0.395752f, -0.110352f, 0.410156f, -0.137207f, 0.416016f, -0.176025f,
+0.421875f, -0.214844f, 0.421875f, -0.264648f, 0.236328f, 0.00976562f, 0.135742f,
+0.00976562f, 0.0888672f, -0.0581055f, 0.0419922f, -0.125977f, 0.0419922f, -0.261719f,
+0.0419922f, -0.399414f, 0.0900879f, -0.46875f, 0.138184f, -0.538086f, 0.236328f,
+-0.538086f, 0.269043f, -0.538086f, 0.294189f, -0.532227f, 0.319336f, -0.526367f,
+0.339111f, -0.514893f, 0.358887f, -0.503418f, 0.373779f, -0.486328f, 0.388672f, -0.469238f,
+0.400879f, -0.446289f, 0.401855f, -0.446289f, 0.401855f, -0.458496f, 0.402588f, -0.473389f,
+0.40332f, -0.488281f, 0.404053f, -0.501465f, 0.404785f, -0.514648f, 0.405762f, -0.52417f,
+0.406738f, -0.533691f, 0.407715f, -0.535156f, 0.492188f, -0.535156f, 0.491211f, -0.526855f,
+0.48999f, -0.491699f, 0.48877f, -0.456543f, 0.48877f, -0.391113f, 0.48877f, 0.20752f,
+0.400879f, 0.20752f, 0.400879f, -0.00683594f, 0.400879f, -0.0195312f, 0.401123f,
+-0.0332031f, 0.401367f, -0.046875f, 0.401855f, -0.059082f, 0.402344f, -0.0727539f,
+0.402832f, -0.0869141f, 0.401855f, -0.0869141f, 0.38916f, -0.0620117f, 0.373779f,
+-0.0437012f, 0.358398f, -0.0253906f, 0.338379f, -0.0134277f, 0.318359f, -0.00146484f,
+0.293213f, 0.00415039f, 0.268066f, 0.00976562f, 0.236328f, 0.00976562f, 0.400879f,
+-0.270508f, 0.400879f, -0.328125f, 0.390869f, -0.367188f, 0.380859f, -0.40625f, 0.362549f,
+-0.429688f, 0.344238f, -0.453125f, 0.318115f, -0.463135f, 0.291992f, -0.473145f,
+0.259766f, -0.473145f, 0.226074f, -0.473145f, 0.202148f, -0.460693f, 0.178223f, -0.448242f,
+0.16333f, -0.422607f, 0.148438f, -0.396973f, 0.141357f, -0.357666f, 0.134277f, -0.318359f,
+0.134277f, -0.264648f, 0.134277f, -0.211914f, 0.140869f, -0.172852f, 0.147461f, -0.133789f,
+0.162354f, -0.108398f, 0.177246f, -0.0830078f, 0.200928f, -0.0705566f, 0.224609f,
+-0.0581055f, 0.258789f, -0.0581055f, 0.288086f, -0.0581055f, 0.313965f, -0.0671387f,
+0.339844f, -0.0761719f, 0.359131f, -0.0998535f, 0.378418f, -0.123535f, 0.389648f,
+-0.164795f, 0.400879f, -0.206055f, 0.400879f, -0.270508f, 0.0693359f, 0, 0.0693359f,
+-0.405273f, 0.0693359f, -0.421875f, 0.0690918f, -0.439209f, 0.0688477f, -0.456543f,
+0.0683594f, -0.472656f, 0.0678711f, -0.48877f, 0.0673828f, -0.50293f, 0.0668945f,
+-0.51709f, 0.0664062f, -0.52832f, 0.149414f, -0.52832f, 0.149902f, -0.51709f, 0.150635f,
+-0.502686f, 0.151367f, -0.488281f, 0.1521f, -0.473145f, 0.152832f, -0.458008f, 0.153076f,
+-0.444092f, 0.15332f, -0.430176f, 0.15332f, -0.42041f, 0.155273f, -0.42041f, 0.164551f,
+-0.450684f, 0.175049f, -0.4729f, 0.185547f, -0.495117f, 0.199707f, -0.509521f, 0.213867f,
+-0.523926f, 0.233398f, -0.531006f, 0.25293f, -0.538086f, 0.280762f, -0.538086f, 0.291504f,
+-0.538086f, 0.30127f, -0.536377f, 0.311035f, -0.534668f, 0.316406f, -0.533203f, 0.316406f,
+-0.452637f, 0.307617f, -0.455078f, 0.295898f, -0.456299f, 0.28418f, -0.45752f, 0.269531f,
+-0.45752f, 0.239258f, -0.45752f, 0.218018f, -0.443848f, 0.196777f, -0.430176f, 0.18335f,
+-0.406006f, 0.169922f, -0.381836f, 0.163574f, -0.348389f, 0.157227f, -0.314941f,
+0.157227f, -0.275391f, 0.157227f, 0, 0.463867f, -0.145996f, 0.463867f, -0.108887f,
+0.449463f, -0.079834f, 0.435059f, -0.0507812f, 0.407715f, -0.0310059f, 0.380371f,
+-0.0112305f, 0.340576f, -0.000732422f, 0.300781f, 0.00976562f, 0.249512f, 0.00976562f,
+0.203613f, 0.00976562f, 0.166748f, 0.00268555f, 0.129883f, -0.00439453f, 0.102051f,
+-0.0200195f, 0.0742188f, -0.0356445f, 0.0554199f, -0.0612793f, 0.0366211f, -0.0869141f,
+0.027832f, -0.124023f, 0.105469f, -0.13916f, 0.116699f, -0.0966797f, 0.151855f, -0.0769043f,
+0.187012f, -0.0571289f, 0.249512f, -0.0571289f, 0.277832f, -0.0571289f, 0.301514f,
+-0.0610352f, 0.325195f, -0.0649414f, 0.342285f, -0.0744629f, 0.359375f, -0.0839844f,
+0.368896f, -0.0998535f, 0.378418f, -0.115723f, 0.378418f, -0.13916f, 0.378418f, -0.163086f,
+0.367188f, -0.178467f, 0.355957f, -0.193848f, 0.335938f, -0.204102f, 0.315918f, -0.214355f,
+0.287354f, -0.221924f, 0.258789f, -0.229492f, 0.224609f, -0.23877f, 0.192871f, -0.24707f,
+0.161621f, -0.257324f, 0.130371f, -0.267578f, 0.105225f, -0.284424f, 0.0800781f,
+-0.30127f, 0.0644531f, -0.326172f, 0.0488281f, -0.351074f, 0.0488281f, -0.388672f,
+0.0488281f, -0.460938f, 0.100342f, -0.498779f, 0.151855f, -0.536621f, 0.250488f,
+-0.536621f, 0.337891f, -0.536621f, 0.389404f, -0.505859f, 0.440918f, -0.475098f,
+0.45459f, -0.407227f, 0.375488f, -0.397461f, 0.371094f, -0.417969f, 0.359375f, -0.431885f,
+0.347656f, -0.445801f, 0.331055f, -0.454346f, 0.314453f, -0.462891f, 0.293701f, -0.466553f,
+0.272949f, -0.470215f, 0.250488f, -0.470215f, 0.190918f, -0.470215f, 0.162598f, -0.452148f,
+0.134277f, -0.434082f, 0.134277f, -0.397461f, 0.134277f, -0.375977f, 0.144775f, -0.362061f,
+0.155273f, -0.348145f, 0.174072f, -0.338623f, 0.192871f, -0.329102f, 0.219238f, -0.322021f,
+0.245605f, -0.314941f, 0.277344f, -0.307129f, 0.29834f, -0.301758f, 0.320312f, -0.295654f,
+0.342285f, -0.289551f, 0.363037f, -0.281006f, 0.383789f, -0.272461f, 0.4021f, -0.260986f,
+0.42041f, -0.249512f, 0.434082f, -0.233398f, 0.447754f, -0.217285f, 0.455811f, -0.195801f,
+0.463867f, -0.174316f, 0.463867f, -0.145996f, 0.270508f, -0.00390625f, 0.250488f,
+0.00146484f, 0.229736f, 0.00463867f, 0.208984f, 0.0078125f, 0.181641f, 0.0078125f,
+0.0761719f, 0.0078125f, 0.0761719f, -0.111816f, 0.0761719f, -0.464355f, 0.0151367f,
+-0.464355f, 0.0151367f, -0.52832f, 0.0795898f, -0.52832f, 0.105469f, -0.646484f,
+0.164062f, -0.646484f, 0.164062f, -0.52832f, 0.261719f, -0.52832f, 0.261719f, -0.464355f,
+0.164062f, -0.464355f, 0.164062f, -0.130859f, 0.164062f, -0.0927734f, 0.176514f,
+-0.0773926f, 0.188965f, -0.0620117f, 0.219727f, -0.0620117f, 0.232422f, -0.0620117f,
+0.244385f, -0.0639648f, 0.256348f, -0.065918f, 0.270508f, -0.0688477f, 0.15332f,
+-0.52832f, 0.15332f, -0.193359f, 0.15332f, -0.154785f, 0.158936f, -0.128906f, 0.164551f,
+-0.103027f, 0.177246f, -0.0871582f, 0.189941f, -0.0712891f, 0.210693f, -0.0646973f,
+0.231445f, -0.0581055f, 0.262207f, -0.0581055f, 0.293457f, -0.0581055f, 0.318604f,
+-0.0690918f, 0.34375f, -0.0800781f, 0.361572f, -0.10083f, 0.379395f, -0.121582f,
+0.38916f, -0.1521f, 0.398926f, -0.182617f, 0.398926f, -0.222168f, 0.398926f, -0.52832f,
+0.486816f, -0.52832f, 0.486816f, -0.112793f, 0.486816f, -0.0961914f, 0.487061f, -0.0778809f,
+0.487305f, -0.0595703f, 0.487793f, -0.0432129f, 0.488281f, -0.0268555f, 0.48877f,
+-0.0151367f, 0.489258f, -0.00341797f, 0.489746f, 0, 0.406738f, 0, 0.40625f, -0.00244141f,
+0.405762f, -0.0131836f, 0.405273f, -0.0239258f, 0.404541f, -0.0378418f, 0.403809f,
+-0.0517578f, 0.40332f, -0.0661621f, 0.402832f, -0.0805664f, 0.402832f, -0.090332f,
+0.401367f, -0.090332f, 0.388672f, -0.0673828f, 0.373535f, -0.0488281f, 0.358398f,
+-0.0302734f, 0.338379f, -0.017334f, 0.318359f, -0.00439453f, 0.29248f, 0.00268555f,
+0.266602f, 0.00976562f, 0.232422f, 0.00976562f, 0.188477f, 0.00976562f, 0.156738f,
+-0.000976562f, 0.125f, -0.0117188f, 0.104492f, -0.0341797f, 0.0839844f, -0.0566406f,
+0.0744629f, -0.0917969f, 0.0649414f, -0.126953f, 0.0649414f, -0.17627f, 0.0649414f,
+-0.52832f, 0.299316f, 0, 0.195312f, 0, 0.00341797f, -0.52832f, 0.097168f, -0.52832f,
+0.213379f, -0.18457f, 0.216797f, -0.173828f, 0.221436f, -0.158447f, 0.226074f, -0.143066f,
+0.230957f, -0.126465f, 0.23584f, -0.109863f, 0.23999f, -0.0944824f, 0.244141f, -0.0791016f,
+0.24707f, -0.0688477f, 0.25f, -0.0791016f, 0.254639f, -0.0944824f, 0.259277f, -0.109863f,
+0.26416f, -0.125977f, 0.269043f, -0.14209f, 0.27417f, -0.157471f, 0.279297f, -0.172852f,
+0.283203f, -0.183594f, 0.40332f, -0.52832f, 0.496582f, -0.52832f, 0.573242f, 0, 0.471191f,
+0, 0.386719f, -0.34082f, 0.382812f, -0.354004f, 0.378662f, -0.373535f, 0.374512f,
+-0.393066f, 0.370605f, -0.411621f, 0.365723f, -0.433105f, 0.361328f, -0.456055f,
+0.356934f, -0.434082f, 0.352051f, -0.412598f, 0.348145f, -0.394043f, 0.343506f, -0.374023f,
+0.338867f, -0.354004f, 0.334961f, -0.338867f, 0.248047f, 0, 0.146484f, 0, -0.00146484f,
+-0.52832f, 0.0854492f, -0.52832f, 0.174805f, -0.169434f, 0.178223f, -0.158203f, 0.181641f,
+-0.141846f, 0.185059f, -0.125488f, 0.188477f, -0.109863f, 0.191895f, -0.0917969f,
+0.195801f, -0.0727539f, 0.199707f, -0.0913086f, 0.204102f, -0.108887f, 0.208008f,
+-0.124023f, 0.211914f, -0.139648f, 0.21582f, -0.155273f, 0.21875f, -0.165527f, 0.314453f,
+-0.52832f, 0.408691f, -0.52832f, 0.500977f, -0.165527f, 0.504395f, -0.152832f, 0.508301f,
+-0.136719f, 0.512207f, -0.120605f, 0.515625f, -0.106445f, 0.519531f, -0.0898438f,
+0.523438f, -0.0727539f, 0.527344f, -0.0913086f, 0.53125f, -0.108887f, 0.534668f,
+-0.124023f, 0.53833f, -0.140381f, 0.541992f, -0.156738f, 0.54541f, -0.169434f, 0.638672f,
+-0.52832f, 0.724609f, -0.52832f, 0.391113f, 0, 0.249023f, -0.216797f, 0.105957f,
+0, 0.0112305f, 0, 0.199219f, -0.271484f, 0.0200195f, -0.52832f, 0.117188f, -0.52832f,
+0.249023f, -0.322754f, 0.379883f, -0.52832f, 0.478027f, -0.52832f, 0.298828f, -0.272461f,
+0.489258f, 0, 0.294922f, 0, 0.276367f, 0.0478516f, 0.25708f, 0.0861816f, 0.237793f,
+0.124512f, 0.213867f, 0.151611f, 0.189941f, 0.178711f, 0.160645f, 0.193115f, 0.131348f,
+0.20752f, 0.0932617f, 0.20752f, 0.0766602f, 0.20752f, 0.0625f, 0.206543f, 0.0483398f,
+0.205566f, 0.0327148f, 0.202148f, 0.0327148f, 0.13623f, 0.0419922f, 0.137695f, 0.0537109f,
+0.138428f, 0.0654297f, 0.13916f, 0.0737305f, 0.13916f, 0.112305f, 0.13916f, 0.145508f,
+0.110352f, 0.178711f, 0.081543f, 0.203613f, 0.0185547f, 0.211914f, -0.00244141f,
+0.00244141f, -0.52832f, 0.0961914f, -0.52832f, 0.20752f, -0.236328f, 0.212402f, -0.223145f,
+0.219971f, -0.201172f, 0.227539f, -0.179199f, 0.235107f, -0.157227f, 0.242676f, -0.135254f,
+0.248535f, -0.117676f, 0.254395f, -0.100098f, 0.255371f, -0.0957031f, 0.256836f,
+-0.101074f, 0.262451f, -0.116943f, 0.268066f, -0.132812f, 0.275146f, -0.152344f,
+0.282227f, -0.171875f, 0.289551f, -0.191895f, 0.296875f, -0.211914f, 0.301758f, -0.226562f,
+0.405273f, -0.52832f, 0.498047f, -0.52832f, 0.0239258f, 0, 0.0239258f, -0.0668945f,
+0.34668f, -0.460449f, 0.043457f, -0.460449f, 0.043457f, -0.52832f, 0.445801f, -0.52832f,
+0.445801f, -0.461426f, 0.122559f, -0.0678711f, 0.463867f, -0.0678711f, 0.463867f,
+0, 0.250488f, 0.20752f, 0.21875f, 0.20752f, 0.19458f, 0.19751f, 0.17041f, 0.1875f,
+0.154297f, 0.168945f, 0.138184f, 0.150391f, 0.129883f, 0.124023f, 0.121582f, 0.0976562f,
+0.121582f, 0.0644531f, 0.121582f, -0.111816f, 0.121582f, -0.142578f, 0.114502f, -0.164062f,
+0.107422f, -0.185547f, 0.0939941f, -0.199219f, 0.0805664f, -0.212891f, 0.0610352f,
+-0.219727f, 0.0415039f, -0.226562f, 0.0166016f, -0.227539f, 0.0166016f, -0.289551f,
+0.0415039f, -0.290527f, 0.0610352f, -0.297363f, 0.0805664f, -0.304199f, 0.0939941f,
+-0.317871f, 0.107422f, -0.331543f, 0.114502f, -0.353027f, 0.121582f, -0.374512f,
+0.121582f, -0.404785f, 0.121582f, -0.581543f, 0.121582f, -0.650391f, 0.154053f, -0.6875f,
+0.186523f, -0.724609f, 0.250488f, -0.724609f, 0.316406f, -0.724609f, 0.316406f, -0.661621f,
+0.285645f, -0.661621f, 0.241211f, -0.661621f, 0.222412f, -0.635498f, 0.203613f, -0.609375f,
+0.203613f, -0.556641f, 0.203613f, -0.382812f, 0.203613f, -0.358398f, 0.196289f, -0.337891f,
+0.188965f, -0.317383f, 0.17627f, -0.301758f, 0.163574f, -0.286133f, 0.14624f, -0.275391f,
+0.128906f, -0.264648f, 0.108887f, -0.259766f, 0.108887f, -0.258789f, 0.129883f, -0.253906f,
+0.147217f, -0.243164f, 0.164551f, -0.232422f, 0.177002f, -0.216553f, 0.189453f, -0.200684f,
+0.196533f, -0.180176f, 0.203613f, -0.159668f, 0.203613f, -0.134766f, 0.203613f, 0.0395508f,
+0.203613f, 0.0913086f, 0.222412f, 0.11792f, 0.241211f, 0.144531f, 0.285645f, 0.144531f,
+0.316406f, 0.144531f, 0.316406f, 0.20752f, 0.0893555f, 0.211914f, 0.0893555f, -0.724609f,
+0.17041f, -0.724609f, 0.17041f, 0.211914f, 0.0458984f, 0.144531f, 0.090332f, 0.144531f,
+0.109619f, 0.11792f, 0.128906f, 0.0913086f, 0.128906f, 0.0395508f, 0.128906f, -0.134766f,
+0.128906f, -0.159668f, 0.135742f, -0.180176f, 0.142578f, -0.200684f, 0.155029f, -0.216553f,
+0.16748f, -0.232422f, 0.184814f, -0.243164f, 0.202148f, -0.253906f, 0.223145f, -0.258789f,
+0.223145f, -0.259766f, 0.202637f, -0.264648f, 0.185547f, -0.275391f, 0.168457f, -0.286133f,
+0.155762f, -0.301758f, 0.143066f, -0.317383f, 0.135986f, -0.337891f, 0.128906f, -0.358398f,
+0.128906f, -0.382812f, 0.128906f, -0.556641f, 0.128906f, -0.609375f, 0.109619f, -0.635498f,
+0.090332f, -0.661621f, 0.0458984f, -0.661621f, 0.0166016f, -0.661621f, 0.0166016f,
+-0.724609f, 0.0810547f, -0.724609f, 0.14502f, -0.724609f, 0.17749f, -0.6875f, 0.209961f,
+-0.650391f, 0.209961f, -0.581543f, 0.209961f, -0.404785f, 0.209961f, -0.374512f,
+0.217041f, -0.353027f, 0.224121f, -0.331543f, 0.237549f, -0.317871f, 0.250977f, -0.304199f,
+0.270752f, -0.297363f, 0.290527f, -0.290527f, 0.315918f, -0.289551f, 0.315918f, -0.227539f,
+0.290527f, -0.226562f, 0.270752f, -0.219727f, 0.250977f, -0.212891f, 0.237549f, -0.199219f,
+0.224121f, -0.185547f, 0.217041f, -0.164062f, 0.209961f, -0.142578f, 0.209961f, -0.111816f,
+0.209961f, 0.0644531f, 0.209961f, 0.0976562f, 0.20166f, 0.124023f, 0.193359f, 0.150391f,
+0.177246f, 0.168945f, 0.161133f, 0.1875f, 0.136963f, 0.19751f, 0.112793f, 0.20752f,
+0.0810547f, 0.20752f, 0.0166016f, 0.20752f, 0.0166016f, 0.144531f, 0.412109f, -0.27002f,
+0.378418f, -0.27002f, 0.343018f, -0.280762f, 0.307617f, -0.291504f, 0.271973f, -0.304199f,
+0.208984f, -0.326172f, 0.166016f, -0.326172f, 0.147461f, -0.326172f, 0.131592f, -0.323242f,
+0.115723f, -0.320312f, 0.101074f, -0.314697f, 0.0864258f, -0.309082f, 0.0727539f,
+-0.30127f, 0.059082f, -0.293457f, 0.0449219f, -0.283203f, 0.0449219f, -0.353027f,
+0.0693359f, -0.371582f, 0.101562f, -0.382812f, 0.133789f, -0.394043f, 0.17334f, -0.394043f,
+0.192871f, -0.394043f, 0.212402f, -0.390869f, 0.231934f, -0.387695f, 0.250732f, -0.382812f,
+0.269531f, -0.37793f, 0.287842f, -0.371582f, 0.306152f, -0.365234f, 0.324219f, -0.358887f,
+0.334473f, -0.35498f, 0.34668f, -0.351318f, 0.358887f, -0.347656f, 0.371338f, -0.344238f,
+0.383789f, -0.34082f, 0.39624f, -0.338867f, 0.408691f, -0.336914f, 0.419922f, -0.336914f,
+0.453613f, -0.336914f, 0.483643f, -0.349121f, 0.513672f, -0.361328f, 0.539062f, -0.381836f,
+0.539062f, -0.309082f, 0.523438f, -0.297852f, 0.509033f, -0.290527f, 0.494629f, -0.283203f,
+0.479736f, -0.278564f, 0.464844f, -0.273926f, 0.448242f, -0.271973f, 0.431641f, -0.27002f,
+0.412109f, -0.27002f
+};
+
+const unsigned char LiberationSansNormalVerbs[] = {
+0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 5,
+6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1,
+5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5,
+0, 2, 2, 1, 1, 1, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSansNormalCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+124, 125, 126
+};
+
+const SkFixed LiberationSansNormalWidths[] = {
+0x0000c000, 0x00004720, 0x00004720, 0x00005ae0, 0x00008e60, 0x00008e60, 0x0000e3a0,
+0x0000aac0, 0x000030e0, 0x00005540, 0x00005540, 0x000063a0, 0x00009580, 0x00004720,
+0x00005540, 0x00004720, 0x00004720, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60,
+0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00004720,
+0x00004720, 0x00009580, 0x00009580, 0x00009580, 0x00008e60, 0x000103e0, 0x0000aac0,
+0x0000aac0, 0x0000b8e0, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000c720, 0x0000b8e0,
+0x00004720, 0x00008000, 0x0000aac0, 0x00008e60, 0x0000d540, 0x0000b8e0, 0x0000c720,
+0x0000aac0, 0x0000c720, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000b8e0, 0x0000aac0,
+0x0000f1a0, 0x0000aac0, 0x0000aac0, 0x00009c60, 0x00004720, 0x00004720, 0x00004720,
+0x00007820, 0x00008e60, 0x00005540, 0x00008e60, 0x00008e60, 0x00008000, 0x00008e60,
+0x00008e60, 0x00004720, 0x00008e60, 0x00008e60, 0x000038e0, 0x000038e0, 0x00008000,
+0x000038e0, 0x0000d540, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00005540,
+0x00008000, 0x00004720, 0x00008e60, 0x00008000, 0x0000b8e0, 0x00008000, 0x00008000,
+0x00008000, 0x00005580, 0x00004280, 0x00005580, 0x00009580
+};
+
+const int LiberationSansNormalCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSansNormalCharCodes);
+
+const SkPaint::FontMetrics LiberationSansNormalMetrics = {
+0x30307833, -0.910156f, -0.905273f, 0.211914f, 0.303223f, 0.0327148f, 1.25342f, 0.0195847f,
+-0.203125f, 1.05029f, 0.538086f, 0.0109024f, 0.0732422f, 0.105957f
+};
+
+const SkScalar LiberationSansBoldPoints[] = {
+0.222168f, -0.208008f, 0.109863f, -0.208008f, 0.0942383f, -0.687988f, 0.237793f, -0.687988f,
+0.0942383f, 0, 0.0942383f, -0.131836f, 0.234863f, -0.131836f, 0.234863f, 0, 0.394043f,
+-0.438477f, 0.287109f, -0.438477f, 0.273926f, -0.687988f, 0.408203f, -0.687988f,
+0.186035f, -0.438477f, 0.0791016f, -0.438477f, 0.065918f, -0.687988f, 0.199219f,
+-0.687988f, 0.443848f, -0.420898f, 0.410156f, -0.258789f, 0.515137f, -0.258789f,
+0.515137f, -0.186035f, 0.39502f, -0.186035f, 0.35498f, 0, 0.278809f, 0, 0.317871f,
+-0.186035f, 0.167969f, -0.186035f, 0.128906f, 0, 0.0541992f, 0, 0.0927734f, -0.186035f,
+0.0170898f, -0.186035f, 0.0170898f, -0.258789f, 0.108887f, -0.258789f, 0.143066f,
+-0.420898f, 0.0419922f, -0.420898f, 0.0419922f, -0.493164f, 0.158203f, -0.493164f,
+0.199219f, -0.681152f, 0.273926f, -0.681152f, 0.233887f, -0.493164f, 0.383789f, -0.493164f,
+0.424805f, -0.681152f, 0.500977f, -0.681152f, 0.459961f, -0.493164f, 0.540039f, -0.493164f,
+0.540039f, -0.420898f, 0.219238f, -0.420898f, 0.184082f, -0.258789f, 0.334961f, -0.258789f,
+0.369141f, -0.420898f, 0.541992f, -0.201172f, 0.541992f, -0.159668f, 0.52832f, -0.125732f,
+0.514648f, -0.0917969f, 0.486084f, -0.0671387f, 0.45752f, -0.0424805f, 0.413086f,
+-0.0280762f, 0.368652f, -0.0136719f, 0.307129f, -0.0112305f, 0.307129f, 0.0742188f,
+0.253906f, 0.0742188f, 0.253906f, -0.00976562f, 0.198242f, -0.0117188f, 0.156982f,
+-0.0249023f, 0.115723f, -0.0380859f, 0.0866699f, -0.0620117f, 0.0576172f, -0.0859375f,
+0.0397949f, -0.120361f, 0.0219727f, -0.154785f, 0.0131836f, -0.199219f, 0.138184f,
+-0.222168f, 0.14209f, -0.19873f, 0.149658f, -0.179443f, 0.157227f, -0.160156f, 0.17041f,
+-0.145996f, 0.183594f, -0.131836f, 0.203857f, -0.122803f, 0.224121f, -0.11377f, 0.253906f,
+-0.11084f, 0.253906f, -0.301758f, 0.252441f, -0.302734f, 0.246582f, -0.303955f, 0.240723f,
+-0.305176f, 0.23877f, -0.305176f, 0.200684f, -0.313965f, 0.164062f, -0.326904f, 0.127441f,
+-0.339844f, 0.098877f, -0.362061f, 0.0703125f, -0.384277f, 0.0527344f, -0.418213f,
+0.0351562f, -0.452148f, 0.0351562f, -0.50293f, 0.0351562f, -0.547363f, 0.0512695f,
+-0.579346f, 0.0673828f, -0.611328f, 0.0964355f, -0.632324f, 0.125488f, -0.65332f,
+0.165771f, -0.664062f, 0.206055f, -0.674805f, 0.253906f, -0.676758f, 0.253906f, -0.742188f,
+0.307129f, -0.742188f, 0.307129f, -0.676758f, 0.359375f, -0.674805f, 0.395996f, -0.663086f,
+0.432617f, -0.651367f, 0.458008f, -0.630127f, 0.483398f, -0.608887f, 0.499023f, -0.577881f,
+0.514648f, -0.546875f, 0.524902f, -0.505859f, 0.395996f, -0.486816f, 0.388672f, -0.529297f,
+0.367432f, -0.55249f, 0.346191f, -0.575684f, 0.307129f, -0.581055f, 0.307129f, -0.40918f,
+0.30957f, -0.408203f, 0.312256f, -0.408203f, 0.314941f, -0.408203f, 0.317871f, -0.407227f,
+0.359863f, -0.397461f, 0.400146f, -0.384277f, 0.44043f, -0.371094f, 0.471924f, -0.348633f,
+0.503418f, -0.326172f, 0.522705f, -0.290771f, 0.541992f, -0.255371f, 0.541992f, -0.201172f,
+0.253906f, -0.583008f, 0.228027f, -0.581055f, 0.210693f, -0.574219f, 0.193359f, -0.567383f,
+0.182617f, -0.556885f, 0.171875f, -0.546387f, 0.16748f, -0.532959f, 0.163086f, -0.519531f,
+0.163086f, -0.504883f, 0.163086f, -0.483887f, 0.169922f, -0.470459f, 0.176758f, -0.457031f,
+0.188965f, -0.448242f, 0.201172f, -0.439453f, 0.217773f, -0.43335f, 0.234375f, -0.427246f,
+0.253906f, -0.420898f, 0.415039f, -0.199219f, 0.415039f, -0.223145f, 0.406738f, -0.238037f,
+0.398438f, -0.25293f, 0.383789f, -0.262207f, 0.369141f, -0.271484f, 0.349365f, -0.277588f,
+0.32959f, -0.283691f, 0.307129f, -0.290039f, 0.307129f, -0.11084f, 0.358887f, -0.114258f,
+0.386963f, -0.135254f, 0.415039f, -0.15625f, 0.415039f, -0.199219f, 0.862793f, -0.210938f,
+0.862793f, -0.149902f, 0.849121f, -0.10791f, 0.835449f, -0.065918f, 0.812012f, -0.0402832f,
+0.788574f, -0.0146484f, 0.75708f, -0.00341797f, 0.725586f, 0.0078125f, 0.689941f,
+0.0078125f, 0.65332f, 0.0078125f, 0.621826f, -0.00341797f, 0.590332f, -0.0146484f,
+0.567139f, -0.0402832f, 0.543945f, -0.065918f, 0.530518f, -0.10791f, 0.51709f, -0.149902f,
+0.51709f, -0.210938f, 0.51709f, -0.275391f, 0.530518f, -0.317627f, 0.543945f, -0.359863f,
+0.567383f, -0.38501f, 0.59082f, -0.410156f, 0.622803f, -0.420166f, 0.654785f, -0.430176f,
+0.691895f, -0.430176f, 0.727051f, -0.430176f, 0.758301f, -0.420166f, 0.789551f, -0.410156f,
+0.812744f, -0.38501f, 0.835938f, -0.359863f, 0.849365f, -0.317627f, 0.862793f, -0.275391f,
+0.862793f, -0.210938f, 0.269531f, 0, 0.168945f, 0, 0.618164f, -0.687988f, 0.720215f,
+-0.687988f, 0.199219f, -0.695801f, 0.234375f, -0.695801f, 0.265625f, -0.685791f,
+0.296875f, -0.675781f, 0.320312f, -0.650879f, 0.34375f, -0.625977f, 0.357422f, -0.58374f,
+0.371094f, -0.541504f, 0.371094f, -0.477051f, 0.371094f, -0.416016f, 0.357422f, -0.374023f,
+0.34375f, -0.332031f, 0.320068f, -0.306152f, 0.296387f, -0.280273f, 0.264648f, -0.269043f,
+0.23291f, -0.257812f, 0.196777f, -0.257812f, 0.161133f, -0.257812f, 0.129639f, -0.269043f,
+0.0981445f, -0.280273f, 0.0749512f, -0.305908f, 0.0517578f, -0.331543f, 0.0383301f,
+-0.373535f, 0.0249023f, -0.415527f, 0.0249023f, -0.477051f, 0.0249023f, -0.541504f,
+0.0380859f, -0.58374f, 0.0512695f, -0.625977f, 0.074707f, -0.650879f, 0.0981445f,
+-0.675781f, 0.130127f, -0.685791f, 0.162109f, -0.695801f, 0.199219f, -0.695801f,
+0.757812f, -0.210938f, 0.757812f, -0.253418f, 0.753662f, -0.28125f, 0.749512f, -0.309082f,
+0.741211f, -0.325439f, 0.73291f, -0.341797f, 0.720703f, -0.348389f, 0.708496f, -0.35498f,
+0.691895f, -0.35498f, 0.673828f, -0.35498f, 0.660889f, -0.348389f, 0.647949f, -0.341797f,
+0.639648f, -0.325195f, 0.631348f, -0.308594f, 0.627197f, -0.280762f, 0.623047f, -0.25293f,
+0.623047f, -0.210938f, 0.623047f, -0.169922f, 0.626953f, -0.142822f, 0.630859f, -0.115723f,
+0.639404f, -0.0991211f, 0.647949f, -0.0825195f, 0.660645f, -0.0756836f, 0.67334f,
+-0.0688477f, 0.690918f, -0.0688477f, 0.707031f, -0.0688477f, 0.719482f, -0.0756836f,
+0.731934f, -0.0825195f, 0.740479f, -0.098877f, 0.749023f, -0.115234f, 0.753418f,
+-0.142578f, 0.757812f, -0.169922f, 0.757812f, -0.210938f, 0.265137f, -0.477051f,
+0.265137f, -0.519043f, 0.260986f, -0.546631f, 0.256836f, -0.574219f, 0.248535f, -0.590576f,
+0.240234f, -0.606934f, 0.228027f, -0.613525f, 0.21582f, -0.620117f, 0.199219f, -0.620117f,
+0.181152f, -0.620117f, 0.167969f, -0.613281f, 0.154785f, -0.606445f, 0.146484f, -0.590088f,
+0.138184f, -0.57373f, 0.134033f, -0.546143f, 0.129883f, -0.518555f, 0.129883f, -0.477051f,
+0.129883f, -0.436035f, 0.134033f, -0.408691f, 0.138184f, -0.381348f, 0.146729f, -0.364746f,
+0.155273f, -0.348145f, 0.167969f, -0.341064f, 0.180664f, -0.333984f, 0.198242f, -0.333984f,
+0.214844f, -0.333984f, 0.227295f, -0.34082f, 0.239746f, -0.347656f, 0.248291f, -0.364258f,
+0.256836f, -0.380859f, 0.260986f, -0.408447f, 0.265137f, -0.436035f, 0.265137f, -0.477051f,
+0.0439453f, -0.187988f, 0.0439453f, -0.226562f, 0.0563965f, -0.257812f, 0.0688477f,
+-0.289062f, 0.0908203f, -0.314453f, 0.112793f, -0.339844f, 0.143066f, -0.360107f,
+0.17334f, -0.380371f, 0.208984f, -0.396973f, 0.193359f, -0.428711f, 0.183105f, -0.464844f,
+0.172852f, -0.500977f, 0.172852f, -0.533203f, 0.172852f, -0.56543f, 0.182617f, -0.594238f,
+0.192383f, -0.623047f, 0.214355f, -0.644775f, 0.236328f, -0.666504f, 0.271484f, -0.679199f,
+0.306641f, -0.691895f, 0.356934f, -0.691895f, 0.396484f, -0.691895f, 0.428955f, -0.682373f,
+0.461426f, -0.672852f, 0.484863f, -0.654297f, 0.508301f, -0.635742f, 0.52124f, -0.608887f,
+0.53418f, -0.582031f, 0.53418f, -0.546875f, 0.53418f, -0.51123f, 0.518066f, -0.483643f,
+0.501953f, -0.456055f, 0.475342f, -0.433838f, 0.44873f, -0.411621f, 0.414062f, -0.393311f,
+0.379395f, -0.375f, 0.342773f, -0.35791f, 0.367676f, -0.313965f, 0.397461f, -0.273193f,
+0.427246f, -0.232422f, 0.461914f, -0.193848f, 0.489258f, -0.235352f, 0.507812f, -0.279053f,
+0.526367f, -0.322754f, 0.539062f, -0.371094f, 0.641113f, -0.336914f, 0.624512f, -0.279785f,
+0.601562f, -0.229492f, 0.578613f, -0.179199f, 0.546875f, -0.131836f, 0.568848f, -0.113281f,
+0.59082f, -0.104736f, 0.612793f, -0.0961914f, 0.633789f, -0.0961914f, 0.649414f,
+-0.0961914f, 0.663818f, -0.0981445f, 0.678223f, -0.100098f, 0.690918f, -0.104004f,
+0.690918f, -0.00488281f, 0.664062f, 0.00585938f, 0.626953f, 0.00585938f, 0.602051f,
+0.00585938f, 0.579102f, 0.000976562f, 0.556152f, -0.00390625f, 0.535645f, -0.0119629f,
+0.515137f, -0.0200195f, 0.497559f, -0.0307617f, 0.47998f, -0.0415039f, 0.46582f,
+-0.0532227f, 0.449707f, -0.0410156f, 0.429932f, -0.029541f, 0.410156f, -0.0180664f,
+0.386963f, -0.00927734f, 0.36377f, -0.000488281f, 0.337158f, 0.00463867f, 0.310547f,
+0.00976562f, 0.280762f, 0.00976562f, 0.219238f, 0.00976562f, 0.174316f, -0.00537109f,
+0.129395f, -0.0205078f, 0.100586f, -0.046875f, 0.0717773f, -0.0732422f, 0.0578613f,
+-0.109375f, 0.0439453f, -0.145508f, 0.0439453f, -0.187988f, 0.424805f, -0.545898f,
+0.424805f, -0.57373f, 0.40625f, -0.591309f, 0.387695f, -0.608887f, 0.355957f, -0.608887f,
+0.318359f, -0.608887f, 0.298584f, -0.587891f, 0.278809f, -0.566895f, 0.278809f, -0.532227f,
+0.278809f, -0.508789f, 0.286377f, -0.484375f, 0.293945f, -0.459961f, 0.305176f, -0.437988f,
+0.330078f, -0.44873f, 0.352051f, -0.459717f, 0.374023f, -0.470703f, 0.390137f, -0.483643f,
+0.40625f, -0.496582f, 0.415527f, -0.511719f, 0.424805f, -0.526855f, 0.424805f, -0.545898f,
+0.384766f, -0.120117f, 0.347168f, -0.162109f, 0.313477f, -0.208008f, 0.279785f, -0.253906f,
+0.251953f, -0.304199f, 0.211426f, -0.285156f, 0.189697f, -0.257324f, 0.167969f, -0.229492f,
+0.167969f, -0.189941f, 0.167969f, -0.16748f, 0.175537f, -0.147949f, 0.183105f, -0.128418f,
+0.197754f, -0.114014f, 0.212402f, -0.0996094f, 0.234619f, -0.0913086f, 0.256836f,
+-0.0830078f, 0.286133f, -0.0830078f, 0.317871f, -0.0830078f, 0.343506f, -0.0947266f,
+0.369141f, -0.106445f, 0.384766f, -0.120117f, 0.172852f, -0.438477f, 0.065918f, -0.438477f,
+0.0532227f, -0.687988f, 0.186035f, -0.687988f, 0.194824f, 0.20752f, 0.157227f, 0.15332f,
+0.129883f, 0.0996094f, 0.102539f, 0.0458984f, 0.0847168f, -0.0107422f, 0.0668945f,
+-0.0673828f, 0.0583496f, -0.128662f, 0.0498047f, -0.189941f, 0.0498047f, -0.259277f,
+0.0498047f, -0.329102f, 0.0583496f, -0.389893f, 0.0668945f, -0.450684f, 0.0847168f,
+-0.50708f, 0.102539f, -0.563477f, 0.129883f, -0.616943f, 0.157227f, -0.67041f, 0.194824f,
+-0.724609f, 0.332031f, -0.724609f, 0.292969f, -0.667969f, 0.265137f, -0.612793f,
+0.237305f, -0.557617f, 0.219482f, -0.500977f, 0.20166f, -0.444336f, 0.193359f, -0.384521f,
+0.185059f, -0.324707f, 0.185059f, -0.258789f, 0.185059f, -0.192383f, 0.193359f, -0.132568f,
+0.20166f, -0.0727539f, 0.219482f, -0.0161133f, 0.237305f, 0.0405273f, 0.265137f,
+0.095459f, 0.292969f, 0.150391f, 0.332031f, 0.20752f, 0.000976562f, 0.20752f, 0.0400391f,
+0.150391f, 0.0678711f, 0.095459f, 0.0957031f, 0.0405273f, 0.113525f, -0.0161133f,
+0.131348f, -0.0727539f, 0.139648f, -0.132568f, 0.147949f, -0.192383f, 0.147949f,
+-0.258789f, 0.147949f, -0.324707f, 0.139648f, -0.384521f, 0.131348f, -0.444336f,
+0.113525f, -0.500977f, 0.0957031f, -0.557617f, 0.0678711f, -0.612793f, 0.0400391f,
+-0.667969f, 0.000976562f, -0.724609f, 0.138184f, -0.724609f, 0.175781f, -0.67041f,
+0.203125f, -0.616943f, 0.230469f, -0.563477f, 0.248291f, -0.50708f, 0.266113f, -0.450684f,
+0.274658f, -0.389893f, 0.283203f, -0.329102f, 0.283203f, -0.259277f, 0.283203f, -0.189941f,
+0.274658f, -0.128662f, 0.266113f, -0.0673828f, 0.248291f, -0.0107422f, 0.230469f,
+0.0458984f, 0.203125f, 0.0996094f, 0.175781f, 0.15332f, 0.138184f, 0.20752f, 0.240234f,
+-0.554199f, 0.35498f, -0.60498f, 0.388184f, -0.508789f, 0.266113f, -0.479004f, 0.356934f,
+-0.375f, 0.26709f, -0.315918f, 0.195801f, -0.438965f, 0.123047f, -0.315918f, 0.0322266f,
+-0.375977f, 0.125f, -0.479004f, 0.00292969f, -0.508789f, 0.0361328f, -0.60498f, 0.152832f,
+-0.554199f, 0.144043f, -0.687988f, 0.249023f, -0.687988f, 0.347168f, -0.277832f,
+0.347168f, -0.0786133f, 0.236816f, -0.0786133f, 0.236816f, -0.277832f, 0.0419922f,
+-0.277832f, 0.0419922f, -0.387207f, 0.236816f, -0.387207f, 0.236816f, -0.586426f,
+0.347168f, -0.586426f, 0.347168f, -0.387207f, 0.543457f, -0.387207f, 0.543457f, -0.277832f,
+0.210938f, -0.0322266f, 0.210938f, 0.000488281f, 0.207275f, 0.0273438f, 0.203613f,
+0.0541992f, 0.196777f, 0.0769043f, 0.189941f, 0.0996094f, 0.180176f, 0.118652f, 0.17041f,
+0.137695f, 0.158203f, 0.154785f, 0.0678711f, 0.154785f, 0.0820312f, 0.137695f, 0.09375f,
+0.118652f, 0.105469f, 0.0996094f, 0.114258f, 0.0795898f, 0.123047f, 0.0595703f, 0.12793f,
+0.0395508f, 0.132812f, 0.0195312f, 0.132812f, 0, 0.0698242f, 0, 0.0698242f, -0.148926f,
+0.210938f, -0.148926f, 0.0390625f, -0.199707f, 0.0390625f, -0.318848f, 0.292969f,
+-0.318848f, 0.292969f, -0.199707f, 0.0678711f, 0, 0.0678711f, -0.148926f, 0.208984f,
+-0.148926f, 0.208984f, 0, 0.00976562f, 0.0200195f, 0.151855f, -0.724609f, 0.268066f,
+-0.724609f, 0.128418f, 0.0200195f, 0.515137f, -0.344238f, 0.515137f, -0.245605f,
+0.49707f, -0.177979f, 0.479004f, -0.110352f, 0.447021f, -0.0686035f, 0.415039f, -0.0268555f,
+0.371338f, -0.00854492f, 0.327637f, 0.00976562f, 0.275879f, 0.00976562f, 0.224121f,
+0.00976562f, 0.180664f, -0.00830078f, 0.137207f, -0.0263672f, 0.105957f, -0.0681152f,
+0.074707f, -0.109863f, 0.0571289f, -0.17749f, 0.0395508f, -0.245117f, 0.0395508f,
+-0.344238f, 0.0395508f, -0.448242f, 0.0568848f, -0.516357f, 0.0742188f, -0.584473f,
+0.105957f, -0.625f, 0.137695f, -0.665527f, 0.181885f, -0.681885f, 0.226074f, -0.698242f,
+0.279785f, -0.698242f, 0.330078f, -0.698242f, 0.373291f, -0.681885f, 0.416504f, -0.665527f,
+0.447998f, -0.625f, 0.479492f, -0.584473f, 0.497314f, -0.516357f, 0.515137f, -0.448242f,
+0.515137f, -0.344238f, 0.377441f, -0.344238f, 0.377441f, -0.416992f, 0.37207f, -0.4646f,
+0.366699f, -0.512207f, 0.35498f, -0.540283f, 0.343262f, -0.568359f, 0.324463f, -0.57959f,
+0.305664f, -0.59082f, 0.278809f, -0.59082f, 0.25f, -0.59082f, 0.230469f, -0.579346f,
+0.210938f, -0.567871f, 0.198975f, -0.539551f, 0.187012f, -0.51123f, 0.181885f, -0.463623f,
+0.176758f, -0.416016f, 0.176758f, -0.344238f, 0.176758f, -0.273438f, 0.182129f, -0.226074f,
+0.1875f, -0.178711f, 0.199219f, -0.150146f, 0.210938f, -0.121582f, 0.22998f, -0.109863f,
+0.249023f, -0.0981445f, 0.276855f, -0.0981445f, 0.303711f, -0.0981445f, 0.322754f,
+-0.109863f, 0.341797f, -0.121582f, 0.354004f, -0.150146f, 0.366211f, -0.178711f,
+0.371826f, -0.226074f, 0.377441f, -0.273438f, 0.377441f, -0.344238f, 0.0629883f,
+0, 0.0629883f, -0.102051f, 0.233398f, -0.102051f, 0.233398f, -0.571289f, 0.0683594f,
+-0.468262f, 0.0683594f, -0.576172f, 0.240723f, -0.687988f, 0.370605f, -0.687988f,
+0.370605f, -0.102051f, 0.52832f, -0.102051f, 0.52832f, 0, 0.034668f, 0, 0.034668f,
+-0.0952148f, 0.0581055f, -0.146484f, 0.0917969f, -0.187744f, 0.125488f, -0.229004f,
+0.162354f, -0.263428f, 0.199219f, -0.297852f, 0.235596f, -0.327393f, 0.271973f, -0.356934f,
+0.301025f, -0.384521f, 0.330078f, -0.412109f, 0.348145f, -0.439941f, 0.366211f, -0.467773f,
+0.366211f, -0.499023f, 0.366211f, -0.544922f, 0.343262f, -0.566895f, 0.320312f, -0.588867f,
+0.275879f, -0.588867f, 0.231934f, -0.588867f, 0.20874f, -0.565186f, 0.185547f, -0.541504f,
+0.178711f, -0.494141f, 0.0405273f, -0.501953f, 0.0454102f, -0.54248f, 0.0605469f,
+-0.578125f, 0.0756836f, -0.61377f, 0.10376f, -0.640625f, 0.131836f, -0.66748f, 0.174072f,
+-0.682861f, 0.216309f, -0.698242f, 0.274902f, -0.698242f, 0.330566f, -0.698242f,
+0.373535f, -0.685303f, 0.416504f, -0.672363f, 0.445801f, -0.647461f, 0.475098f, -0.622559f,
+0.490234f, -0.58667f, 0.505371f, -0.550781f, 0.505371f, -0.504883f, 0.505371f, -0.456543f,
+0.486328f, -0.41748f, 0.467285f, -0.378418f, 0.4375f, -0.345459f, 0.407715f, -0.3125f,
+0.371338f, -0.283691f, 0.334961f, -0.254883f, 0.300781f, -0.227539f, 0.266602f, -0.200195f,
+0.238525f, -0.172363f, 0.210449f, -0.144531f, 0.196777f, -0.112793f, 0.516113f, -0.112793f,
+0.516113f, 0, 0.52002f, -0.190918f, 0.52002f, -0.144043f, 0.504639f, -0.106689f,
+0.489258f, -0.0693359f, 0.458496f, -0.0429688f, 0.427734f, -0.0166016f, 0.38208f,
+-0.00268555f, 0.336426f, 0.0112305f, 0.275879f, 0.0112305f, 0.208496f, 0.0112305f,
+0.162354f, -0.00585938f, 0.116211f, -0.0229492f, 0.0866699f, -0.0510254f, 0.0571289f,
+-0.0791016f, 0.0422363f, -0.114746f, 0.0273438f, -0.150391f, 0.0229492f, -0.187012f,
+0.162598f, -0.199219f, 0.165527f, -0.177246f, 0.173584f, -0.158936f, 0.181641f, -0.140625f,
+0.195312f, -0.127441f, 0.208984f, -0.114258f, 0.22876f, -0.107178f, 0.248535f, -0.100098f,
+0.275391f, -0.100098f, 0.324707f, -0.100098f, 0.352051f, -0.124512f, 0.379395f, -0.148926f,
+0.379395f, -0.199219f, 0.379395f, -0.22998f, 0.366455f, -0.248535f, 0.353516f, -0.26709f,
+0.33374f, -0.2771f, 0.313965f, -0.287109f, 0.291016f, -0.290527f, 0.268066f, -0.293945f,
+0.247559f, -0.293945f, 0.199707f, -0.293945f, 0.199707f, -0.404785f, 0.244629f, -0.404785f,
+0.265137f, -0.404785f, 0.286377f, -0.408691f, 0.307617f, -0.412598f, 0.324707f, -0.422852f,
+0.341797f, -0.433105f, 0.352539f, -0.451416f, 0.363281f, -0.469727f, 0.363281f, -0.498047f,
+0.363281f, -0.540527f, 0.3396f, -0.564697f, 0.315918f, -0.588867f, 0.270508f, -0.588867f,
+0.228027f, -0.588867f, 0.201904f, -0.56543f, 0.175781f, -0.541992f, 0.171875f, -0.499023f,
+0.034668f, -0.508789f, 0.0405273f, -0.557129f, 0.0612793f, -0.592773f, 0.0820312f,
+-0.628418f, 0.113525f, -0.651855f, 0.14502f, -0.675293f, 0.186035f, -0.686768f, 0.227051f,
+-0.698242f, 0.272949f, -0.698242f, 0.333496f, -0.698242f, 0.376953f, -0.683594f,
+0.42041f, -0.668945f, 0.448242f, -0.644043f, 0.476074f, -0.619141f, 0.489258f, -0.585938f,
+0.502441f, -0.552734f, 0.502441f, -0.515137f, 0.502441f, -0.484863f, 0.493652f, -0.45874f,
+0.484863f, -0.432617f, 0.467041f, -0.411865f, 0.449219f, -0.391113f, 0.421387f, -0.376221f,
+0.393555f, -0.361328f, 0.355469f, -0.354004f, 0.355469f, -0.352051f, 0.397949f, -0.347168f,
+0.429199f, -0.332764f, 0.460449f, -0.318359f, 0.480469f, -0.296875f, 0.500488f, -0.275391f,
+0.510254f, -0.248291f, 0.52002f, -0.221191f, 0.52002f, -0.190918f, 0.458984f, -0.140137f,
+0.458984f, 0, 0.328125f, 0, 0.328125f, -0.140137f, 0.0151367f, -0.140137f, 0.0151367f,
+-0.243164f, 0.305664f, -0.687988f, 0.458984f, -0.687988f, 0.458984f, -0.242188f,
+0.550781f, -0.242188f, 0.550781f, -0.140137f, 0.328125f, -0.467285f, 0.328125f, -0.475586f,
+0.328369f, -0.489014f, 0.328613f, -0.502441f, 0.329346f, -0.516602f, 0.330078f, -0.530762f,
+0.330811f, -0.543701f, 0.331543f, -0.556641f, 0.33252f, -0.563965f, 0.330078f, -0.558594f,
+0.324707f, -0.548584f, 0.319336f, -0.538574f, 0.312744f, -0.5271f, 0.306152f, -0.515625f,
+0.299072f, -0.504395f, 0.291992f, -0.493164f, 0.286621f, -0.484863f, 0.126953f, -0.242188f,
+0.328125f, -0.242188f, 0.52832f, -0.229004f, 0.52832f, -0.177246f, 0.511963f, -0.133545f,
+0.495605f, -0.0898438f, 0.463379f, -0.0578613f, 0.431152f, -0.0258789f, 0.383545f,
+-0.00805664f, 0.335938f, 0.00976562f, 0.273438f, 0.00976562f, 0.21582f, 0.00976562f,
+0.172852f, -0.00415039f, 0.129883f, -0.0180664f, 0.100342f, -0.0427246f, 0.0708008f,
+-0.0673828f, 0.0539551f, -0.100586f, 0.0371094f, -0.133789f, 0.0307617f, -0.171875f,
+0.167969f, -0.183105f, 0.171875f, -0.166992f, 0.178955f, -0.151855f, 0.186035f, -0.136719f,
+0.19873f, -0.125f, 0.211426f, -0.113281f, 0.22998f, -0.106201f, 0.248535f, -0.0991211f,
+0.274902f, -0.0991211f, 0.326172f, -0.0991211f, 0.356689f, -0.131836f, 0.387207f,
+-0.164551f, 0.387207f, -0.226074f, 0.387207f, -0.253418f, 0.379639f, -0.275391f,
+0.37207f, -0.297363f, 0.358154f, -0.312988f, 0.344238f, -0.328613f, 0.323975f, -0.336914f,
+0.303711f, -0.345215f, 0.277832f, -0.345215f, 0.243652f, -0.345215f, 0.22168f, -0.332275f,
+0.199707f, -0.319336f, 0.18457f, -0.300781f, 0.0507812f, -0.300781f, 0.074707f, -0.687988f,
+0.488281f, -0.687988f, 0.488281f, -0.585938f, 0.199219f, -0.585938f, 0.187988f, -0.412109f,
+0.208496f, -0.430176f, 0.239746f, -0.443115f, 0.270996f, -0.456055f, 0.3125f, -0.456055f,
+0.363281f, -0.456055f, 0.40332f, -0.439453f, 0.443359f, -0.422852f, 0.471191f, -0.393066f,
+0.499023f, -0.363281f, 0.513672f, -0.321533f, 0.52832f, -0.279785f, 0.52832f, -0.229004f,
+0.52002f, -0.225098f, 0.52002f, -0.17334f, 0.505371f, -0.130127f, 0.490723f, -0.0869141f,
+0.46167f, -0.0559082f, 0.432617f, -0.0249023f, 0.38916f, -0.00756836f, 0.345703f,
+0.00976562f, 0.288574f, 0.00976562f, 0.166992f, 0.00976562f, 0.101807f, -0.0754395f,
+0.0366211f, -0.160645f, 0.0366211f, -0.328125f, 0.0366211f, -0.512207f, 0.102783f,
+-0.605225f, 0.168945f, -0.698242f, 0.291992f, -0.698242f, 0.333008f, -0.698242f,
+0.366699f, -0.689697f, 0.400391f, -0.681152f, 0.426758f, -0.662109f, 0.453125f, -0.643066f,
+0.47168f, -0.613037f, 0.490234f, -0.583008f, 0.501465f, -0.540039f, 0.37207f, -0.521973f,
+0.362305f, -0.558105f, 0.340332f, -0.573975f, 0.318359f, -0.589844f, 0.289062f, -0.589844f,
+0.233887f, -0.589844f, 0.202393f, -0.534668f, 0.170898f, -0.479492f, 0.170898f, -0.367188f,
+0.192871f, -0.403809f, 0.231934f, -0.42334f, 0.270996f, -0.442871f, 0.320312f, -0.442871f,
+0.365723f, -0.442871f, 0.402588f, -0.427979f, 0.439453f, -0.413086f, 0.465576f, -0.38501f,
+0.491699f, -0.356934f, 0.505859f, -0.316406f, 0.52002f, -0.275879f, 0.52002f, -0.225098f,
+0.382324f, -0.221191f, 0.382324f, -0.249023f, 0.375977f, -0.27124f, 0.369629f, -0.293457f,
+0.356689f, -0.309082f, 0.34375f, -0.324707f, 0.324707f, -0.333252f, 0.305664f, -0.341797f,
+0.280762f, -0.341797f, 0.262695f, -0.341797f, 0.244629f, -0.335938f, 0.226562f, -0.330078f,
+0.212402f, -0.317139f, 0.198242f, -0.304199f, 0.189453f, -0.28418f, 0.180664f, -0.26416f,
+0.180664f, -0.23584f, 0.180664f, -0.206543f, 0.187988f, -0.181152f, 0.195312f, -0.155762f,
+0.20874f, -0.136963f, 0.222168f, -0.118164f, 0.241211f, -0.107666f, 0.260254f, -0.097168f,
+0.28418f, -0.097168f, 0.330566f, -0.097168f, 0.356445f, -0.130127f, 0.382324f, -0.163086f,
+0.382324f, -0.221191f, 0.512207f, -0.579102f, 0.46582f, -0.505859f, 0.424561f, -0.437012f,
+0.383301f, -0.368164f, 0.352539f, -0.298584f, 0.321777f, -0.229004f, 0.303955f, -0.155518f,
+0.286133f, -0.0820312f, 0.286133f, 0, 0.143066f, 0, 0.143066f, -0.081543f, 0.162354f,
+-0.155029f, 0.181641f, -0.228516f, 0.214844f, -0.29834f, 0.248047f, -0.368164f, 0.291992f,
+-0.436279f, 0.335938f, -0.504395f, 0.384766f, -0.575195f, 0.0429688f, -0.575195f,
+0.0429688f, -0.687988f, 0.512207f, -0.687988f, 0.525391f, -0.193848f, 0.525391f,
+-0.149414f, 0.510742f, -0.112061f, 0.496094f, -0.074707f, 0.46582f, -0.0476074f,
+0.435547f, -0.0205078f, 0.38916f, -0.00537109f, 0.342773f, 0.00976562f, 0.278809f,
+0.00976562f, 0.215332f, 0.00976562f, 0.168701f, -0.00537109f, 0.12207f, -0.0205078f,
+0.0915527f, -0.0476074f, 0.0610352f, -0.074707f, 0.0463867f, -0.111816f, 0.0317383f,
+-0.148926f, 0.0317383f, -0.192871f, 0.0317383f, -0.230469f, 0.043457f, -0.259521f,
+0.0551758f, -0.288574f, 0.074707f, -0.30957f, 0.0942383f, -0.330566f, 0.119629f,
+-0.343018f, 0.14502f, -0.355469f, 0.171875f, -0.359863f, 0.171875f, -0.361816f, 0.143066f,
+-0.368164f, 0.120117f, -0.382812f, 0.097168f, -0.397461f, 0.0810547f, -0.417969f,
+0.0649414f, -0.438477f, 0.0563965f, -0.463623f, 0.0478516f, -0.48877f, 0.0478516f,
+-0.516113f, 0.0478516f, -0.557129f, 0.0627441f, -0.59082f, 0.0776367f, -0.624512f,
+0.106445f, -0.648438f, 0.135254f, -0.672363f, 0.177979f, -0.685303f, 0.220703f, -0.698242f,
+0.276855f, -0.698242f, 0.336914f, -0.698242f, 0.380615f, -0.684814f, 0.424316f, -0.671387f,
+0.452637f, -0.647217f, 0.480957f, -0.623047f, 0.494629f, -0.589355f, 0.508301f, -0.555664f,
+0.508301f, -0.515137f, 0.508301f, -0.488281f, 0.499756f, -0.463135f, 0.491211f, -0.437988f,
+0.475098f, -0.41748f, 0.458984f, -0.396973f, 0.435791f, -0.382812f, 0.412598f, -0.368652f,
+0.383301f, -0.362793f, 0.383301f, -0.36084f, 0.413574f, -0.355957f, 0.439697f, -0.343018f,
+0.46582f, -0.330078f, 0.484863f, -0.309326f, 0.503906f, -0.288574f, 0.514648f, -0.259521f,
+0.525391f, -0.230469f, 0.525391f, -0.193848f, 0.367188f, -0.507812f, 0.367188f, -0.52832f,
+0.362793f, -0.545654f, 0.358398f, -0.562988f, 0.348145f, -0.575439f, 0.337891f, -0.587891f,
+0.320557f, -0.594971f, 0.303223f, -0.602051f, 0.276855f, -0.602051f, 0.251465f, -0.602051f,
+0.234375f, -0.594971f, 0.217285f, -0.587891f, 0.207031f, -0.575439f, 0.196777f, -0.562988f,
+0.192383f, -0.545654f, 0.187988f, -0.52832f, 0.187988f, -0.507812f, 0.187988f, -0.489746f,
+0.19165f, -0.472168f, 0.195312f, -0.45459f, 0.205078f, -0.440674f, 0.214844f, -0.426758f,
+0.232422f, -0.417969f, 0.25f, -0.40918f, 0.277832f, -0.40918f, 0.307129f, -0.40918f,
+0.324951f, -0.417969f, 0.342773f, -0.426758f, 0.352051f, -0.440918f, 0.361328f, -0.455078f,
+0.364258f, -0.472656f, 0.367188f, -0.490234f, 0.367188f, -0.507812f, 0.383301f, -0.205078f,
+0.383301f, -0.226074f, 0.378662f, -0.245605f, 0.374023f, -0.265137f, 0.362061f, -0.280029f,
+0.350098f, -0.294922f, 0.329102f, -0.303955f, 0.308105f, -0.312988f, 0.275879f, -0.312988f,
+0.246582f, -0.312988f, 0.226807f, -0.303955f, 0.207031f, -0.294922f, 0.195068f, -0.279785f,
+0.183105f, -0.264648f, 0.177979f, -0.244873f, 0.172852f, -0.225098f, 0.172852f, -0.203125f,
+0.172852f, -0.177246f, 0.177979f, -0.155762f, 0.183105f, -0.134277f, 0.195557f, -0.118896f,
+0.208008f, -0.103516f, 0.228516f, -0.0952148f, 0.249023f, -0.0869141f, 0.279785f,
+-0.0869141f, 0.310547f, -0.0869141f, 0.330566f, -0.095459f, 0.350586f, -0.104004f,
+0.362305f, -0.119629f, 0.374023f, -0.135254f, 0.378662f, -0.156982f, 0.383301f, -0.178711f,
+0.383301f, -0.205078f, 0.519043f, -0.35498f, 0.519043f, -0.171875f, 0.452148f, -0.0810547f,
+0.385254f, 0.00976562f, 0.262207f, 0.00976562f, 0.217773f, 0.00976562f, 0.182373f,
+0.000488281f, 0.146973f, -0.00878906f, 0.120605f, -0.0283203f, 0.0942383f, -0.0478516f,
+0.0759277f, -0.0786133f, 0.0576172f, -0.109375f, 0.046875f, -0.151855f, 0.175781f,
+-0.169922f, 0.185547f, -0.133301f, 0.207764f, -0.115723f, 0.22998f, -0.0981445f,
+0.263672f, -0.0981445f, 0.291504f, -0.0981445f, 0.313477f, -0.111328f, 0.335449f,
+-0.124512f, 0.351074f, -0.151367f, 0.366699f, -0.178223f, 0.375244f, -0.219482f,
+0.383789f, -0.260742f, 0.384277f, -0.316895f, 0.374512f, -0.297852f, 0.358398f, -0.283203f,
+0.342285f, -0.268555f, 0.322021f, -0.258789f, 0.301758f, -0.249023f, 0.278809f, -0.243896f,
+0.255859f, -0.23877f, 0.232422f, -0.23877f, 0.1875f, -0.23877f, 0.150879f, -0.254639f,
+0.114258f, -0.270508f, 0.0883789f, -0.300293f, 0.0625f, -0.330078f, 0.048584f, -0.372314f,
+0.034668f, -0.414551f, 0.034668f, -0.467773f, 0.034668f, -0.522461f, 0.0510254f,
+-0.56543f, 0.0673828f, -0.608398f, 0.0981445f, -0.637939f, 0.128906f, -0.66748f,
+0.173584f, -0.682861f, 0.218262f, -0.698242f, 0.274902f, -0.698242f, 0.334473f, -0.698242f,
+0.380127f, -0.677979f, 0.425781f, -0.657715f, 0.456543f, -0.615479f, 0.487305f, -0.573242f,
+0.503174f, -0.508545f, 0.519043f, -0.443848f, 0.519043f, -0.35498f, 0.374023f, -0.451172f,
+0.374023f, -0.480469f, 0.367432f, -0.506104f, 0.36084f, -0.531738f, 0.347656f, -0.550537f,
+0.334473f, -0.569336f, 0.31543f, -0.580078f, 0.296387f, -0.59082f, 0.271484f, -0.59082f,
+0.248535f, -0.59082f, 0.230469f, -0.582275f, 0.212402f, -0.57373f, 0.199707f, -0.557617f,
+0.187012f, -0.541504f, 0.18042f, -0.518555f, 0.173828f, -0.495605f, 0.173828f, -0.466797f,
+0.173828f, -0.439941f, 0.180176f, -0.416748f, 0.186523f, -0.393555f, 0.19873f, -0.376709f,
+0.210938f, -0.359863f, 0.229492f, -0.350342f, 0.248047f, -0.34082f, 0.271973f, -0.34082f,
+0.291016f, -0.34082f, 0.309326f, -0.347656f, 0.327637f, -0.354492f, 0.342041f, -0.368164f,
+0.356445f, -0.381836f, 0.365234f, -0.402588f, 0.374023f, -0.42334f, 0.374023f, -0.451172f,
+0.0961914f, -0.367188f, 0.0961914f, -0.504883f, 0.236816f, -0.504883f, 0.236816f,
+-0.367188f, 0.0961914f, 0, 0.0961914f, -0.137207f, 0.236816f, -0.137207f, 0.236816f,
+0, 0.097168f, -0.367188f, 0.097168f, -0.504883f, 0.237793f, -0.504883f, 0.237793f,
+-0.367188f, 0.237793f, -0.0322266f, 0.237793f, 0.000488281f, 0.234131f, 0.0273438f,
+0.230469f, 0.0541992f, 0.223633f, 0.0769043f, 0.216797f, 0.0996094f, 0.207031f, 0.118652f,
+0.197266f, 0.137695f, 0.185059f, 0.154785f, 0.0952148f, 0.154785f, 0.108887f, 0.137695f,
+0.12085f, 0.118652f, 0.132812f, 0.0996094f, 0.141602f, 0.0795898f, 0.150391f, 0.0595703f,
+0.155273f, 0.0395508f, 0.160156f, 0.0195312f, 0.160156f, 0, 0.097168f, 0, 0.097168f,
+-0.137207f, 0.237793f, -0.137207f, 0.0419922f, -0.251953f, 0.0419922f, -0.40918f,
+0.543457f, -0.600098f, 0.543457f, -0.48877f, 0.136719f, -0.330078f, 0.543457f, -0.171875f,
+0.543457f, -0.0610352f, 0.0415039f, -0.411133f, 0.0415039f, -0.52002f, 0.542969f,
+-0.52002f, 0.542969f, -0.411133f, 0.0415039f, -0.14209f, 0.0415039f, -0.25f, 0.542969f,
+-0.25f, 0.542969f, -0.14209f, 0.0419922f, -0.0610352f, 0.0419922f, -0.171875f, 0.448242f,
+-0.330078f, 0.0419922f, -0.48877f, 0.0419922f, -0.600098f, 0.543457f, -0.40918f,
+0.543457f, -0.251953f, 0.553223f, -0.500977f, 0.553223f, -0.46875f, 0.544678f, -0.444336f,
+0.536133f, -0.419922f, 0.521973f, -0.400635f, 0.507812f, -0.381348f, 0.489746f, -0.365967f,
+0.47168f, -0.350586f, 0.452637f, -0.336914f, 0.433594f, -0.323242f, 0.415283f, -0.310059f,
+0.396973f, -0.296875f, 0.382324f, -0.281982f, 0.367676f, -0.26709f, 0.358398f, -0.249268f,
+0.349121f, -0.231445f, 0.348145f, -0.208008f, 0.217773f, -0.208008f, 0.220215f, -0.249512f,
+0.235596f, -0.279053f, 0.250977f, -0.308594f, 0.272949f, -0.330566f, 0.294922f, -0.352539f,
+0.319824f, -0.369873f, 0.344727f, -0.387207f, 0.365967f, -0.405273f, 0.387207f, -0.42334f,
+0.401123f, -0.44458f, 0.415039f, -0.46582f, 0.415039f, -0.495117f, 0.415039f, -0.538086f,
+0.386963f, -0.562988f, 0.358887f, -0.587891f, 0.307129f, -0.587891f, 0.282227f, -0.587891f,
+0.26123f, -0.580322f, 0.240234f, -0.572754f, 0.224365f, -0.559082f, 0.208496f, -0.54541f,
+0.198242f, -0.525879f, 0.187988f, -0.506348f, 0.185059f, -0.48291f, 0.0458984f, -0.48877f,
+0.0517578f, -0.532227f, 0.0700684f, -0.570312f, 0.0883789f, -0.608398f, 0.120117f,
+-0.636719f, 0.151855f, -0.665039f, 0.197998f, -0.681641f, 0.244141f, -0.698242f,
+0.305176f, -0.698242f, 0.36377f, -0.698242f, 0.409668f, -0.68457f, 0.455566f, -0.670898f,
+0.487549f, -0.645264f, 0.519531f, -0.619629f, 0.536377f, -0.583008f, 0.553223f, -0.546387f,
+0.553223f, -0.500977f, 0.213867f, 0, 0.213867f, -0.131836f, 0.35498f, -0.131836f,
+0.35498f, 0, 0.916992f, -0.354004f, 0.916992f, -0.283691f, 0.898438f, -0.225342f,
+0.879883f, -0.166992f, 0.8479f, -0.125f, 0.815918f, -0.0830078f, 0.773193f, -0.0595703f,
+0.730469f, -0.0361328f, 0.682129f, -0.0361328f, 0.661621f, -0.0361328f, 0.644287f,
+-0.0412598f, 0.626953f, -0.0463867f, 0.614746f, -0.0568848f, 0.602539f, -0.0673828f,
+0.595703f, -0.083252f, 0.588867f, -0.0991211f, 0.588867f, -0.120117f, 0.588867f,
+-0.126953f, 0.5896f, -0.13623f, 0.590332f, -0.145508f, 0.591797f, -0.152832f, 0.588867f,
+-0.152832f, 0.578613f, -0.131348f, 0.561523f, -0.110352f, 0.544434f, -0.0893555f,
+0.522217f, -0.072998f, 0.5f, -0.0566406f, 0.473389f, -0.0463867f, 0.446777f, -0.0361328f,
+0.417969f, -0.0361328f, 0.371582f, -0.0361328f, 0.340576f, -0.0527344f, 0.30957f,
+-0.0693359f, 0.291016f, -0.0961914f, 0.272461f, -0.123047f, 0.264648f, -0.156738f,
+0.256836f, -0.19043f, 0.256836f, -0.224121f, 0.256836f, -0.280273f, 0.273438f, -0.333984f,
+0.290039f, -0.387695f, 0.321289f, -0.429688f, 0.352539f, -0.47168f, 0.397949f, -0.497314f,
+0.443359f, -0.522949f, 0.500977f, -0.522949f, 0.550781f, -0.522949f, 0.58252f, -0.500244f,
+0.614258f, -0.477539f, 0.629883f, -0.437988f, 0.632812f, -0.437988f, 0.651855f, -0.512207f,
+0.728027f, -0.512207f, 0.670898f, -0.265137f, 0.662598f, -0.226562f, 0.657715f, -0.196289f,
+0.652832f, -0.166016f, 0.652832f, -0.147949f, 0.652832f, -0.123535f, 0.664307f, -0.113281f,
+0.675781f, -0.103027f, 0.690918f, -0.103027f, 0.719727f, -0.103027f, 0.746826f, -0.121582f,
+0.773926f, -0.140137f, 0.79541f, -0.17334f, 0.816895f, -0.206543f, 0.829834f, -0.252441f,
+0.842773f, -0.29834f, 0.842773f, -0.353027f, 0.842773f, -0.414551f, 0.822754f, -0.467285f,
+0.802734f, -0.52002f, 0.763672f, -0.558594f, 0.724609f, -0.597168f, 0.666992f, -0.619141f,
+0.609375f, -0.641113f, 0.53418f, -0.641113f, 0.469238f, -0.641113f, 0.414551f, -0.625732f,
+0.359863f, -0.610352f, 0.315674f, -0.58252f, 0.271484f, -0.554688f, 0.238037f, -0.516113f,
+0.20459f, -0.477539f, 0.181885f, -0.431396f, 0.15918f, -0.385254f, 0.147705f, -0.333008f,
+0.13623f, -0.280762f, 0.13623f, -0.225098f, 0.13623f, -0.182617f, 0.144531f, -0.142822f,
+0.152832f, -0.103027f, 0.169678f, -0.0683594f, 0.186523f, -0.0336914f, 0.212158f,
+-0.00488281f, 0.237793f, 0.0239258f, 0.272461f, 0.0444336f, 0.307129f, 0.0649414f,
+0.351318f, 0.076416f, 0.395508f, 0.0878906f, 0.449219f, 0.0878906f, 0.491211f, 0.0878906f,
+0.530273f, 0.0820312f, 0.569336f, 0.0761719f, 0.605225f, 0.065918f, 0.641113f, 0.0556641f,
+0.674072f, 0.041748f, 0.707031f, 0.027832f, 0.736816f, 0.012207f, 0.76709f, 0.0717773f,
+0.737793f, 0.0883789f, 0.704102f, 0.104004f, 0.67041f, 0.119629f, 0.630859f, 0.131592f,
+0.591309f, 0.143555f, 0.54541f, 0.150879f, 0.499512f, 0.158203f, 0.445801f, 0.158203f,
+0.382324f, 0.158203f, 0.328613f, 0.144287f, 0.274902f, 0.130371f, 0.231689f, 0.105225f,
+0.188477f, 0.0800781f, 0.155762f, 0.0449219f, 0.123047f, 0.00976562f, 0.101074f,
+-0.0327148f, 0.0791016f, -0.0751953f, 0.0681152f, -0.124023f, 0.0571289f, -0.172852f,
+0.0571289f, -0.225098f, 0.0571289f, -0.292969f, 0.0725098f, -0.355469f, 0.0878906f,
+-0.417969f, 0.116943f, -0.47168f, 0.145996f, -0.525391f, 0.187744f, -0.569336f, 0.229492f,
+-0.613281f, 0.282471f, -0.644531f, 0.335449f, -0.675781f, 0.398682f, -0.692871f,
+0.461914f, -0.709961f, 0.533203f, -0.709961f, 0.632324f, -0.709961f, 0.704834f, -0.681152f,
+0.777344f, -0.652344f, 0.824463f, -0.603516f, 0.871582f, -0.554688f, 0.894287f, -0.490234f,
+0.916992f, -0.425781f, 0.916992f, -0.354004f, 0.601074f, -0.352051f, 0.601074f, -0.375f,
+0.593506f, -0.394287f, 0.585938f, -0.413574f, 0.572266f, -0.42749f, 0.558594f, -0.441406f,
+0.539551f, -0.449219f, 0.520508f, -0.457031f, 0.49707f, -0.457031f, 0.470215f, -0.457031f,
+0.447754f, -0.447021f, 0.425293f, -0.437012f, 0.407715f, -0.419922f, 0.390137f, -0.402832f,
+0.376953f, -0.380127f, 0.36377f, -0.357422f, 0.355225f, -0.331543f, 0.34668f, -0.305664f,
+0.342285f, -0.27832f, 0.337891f, -0.250977f, 0.337891f, -0.225098f, 0.337891f, -0.169434f,
+0.361572f, -0.137207f, 0.385254f, -0.10498f, 0.434082f, -0.10498f, 0.45752f, -0.10498f,
+0.480713f, -0.116211f, 0.503906f, -0.127441f, 0.524414f, -0.14917f, 0.544922f, -0.170898f,
+0.561768f, -0.202881f, 0.578613f, -0.234863f, 0.588867f, -0.275879f, 0.591309f, -0.284668f,
+0.593506f, -0.295166f, 0.595703f, -0.305664f, 0.597412f, -0.315918f, 0.599121f, -0.326172f,
+0.600098f, -0.335449f, 0.601074f, -0.344727f, 0.601074f, -0.352051f, 0.553223f, 0,
+0.492188f, -0.175781f, 0.22998f, -0.175781f, 0.168945f, 0, 0.0249023f, 0, 0.275879f,
+-0.687988f, 0.445801f, -0.687988f, 0.695801f, 0, 0.39209f, -0.481934f, 0.38623f,
+-0.499023f, 0.380615f, -0.516357f, 0.375f, -0.533691f, 0.37085f, -0.548096f, 0.366699f,
+-0.5625f, 0.364014f, -0.571777f, 0.361328f, -0.581055f, 0.36084f, -0.582031f, 0.360352f,
+-0.580566f, 0.35791f, -0.571289f, 0.355469f, -0.562012f, 0.351318f, -0.547852f, 0.347168f,
+-0.533691f, 0.341553f, -0.516357f, 0.335938f, -0.499023f, 0.330078f, -0.481934f,
+0.262207f, -0.28418f, 0.459961f, -0.28418f, 0.676758f, -0.196289f, 0.676758f, -0.144043f,
+0.655762f, -0.106689f, 0.634766f, -0.0693359f, 0.598389f, -0.0456543f, 0.562012f,
+-0.0219727f, 0.513672f, -0.0109863f, 0.465332f, 0, 0.411133f, 0, 0.0668945f, 0, 0.0668945f,
+-0.687988f, 0.381836f, -0.687988f, 0.442871f, -0.687988f, 0.490479f, -0.67749f, 0.538086f,
+-0.666992f, 0.570801f, -0.645508f, 0.603516f, -0.624023f, 0.620361f, -0.591553f,
+0.637207f, -0.559082f, 0.637207f, -0.515137f, 0.637207f, -0.456543f, 0.604736f, -0.41626f,
+0.572266f, -0.375977f, 0.505859f, -0.361816f, 0.589355f, -0.352051f, 0.633057f, -0.309326f,
+0.676758f, -0.266602f, 0.676758f, -0.196289f, 0.492188f, -0.495605f, 0.492188f, -0.541992f,
+0.462646f, -0.561523f, 0.433105f, -0.581055f, 0.375f, -0.581055f, 0.210938f, -0.581055f,
+0.210938f, -0.410645f, 0.375977f, -0.410645f, 0.437012f, -0.410645f, 0.4646f, -0.431885f,
+0.492188f, -0.453125f, 0.492188f, -0.495605f, 0.532227f, -0.20752f, 0.532227f, -0.234863f,
+0.521484f, -0.253418f, 0.510742f, -0.271973f, 0.491943f, -0.283203f, 0.473145f, -0.294434f,
+0.447998f, -0.299316f, 0.422852f, -0.304199f, 0.393555f, -0.304199f, 0.210938f, -0.304199f,
+0.210938f, -0.106934f, 0.398926f, -0.106934f, 0.427246f, -0.106934f, 0.45166f, -0.111572f,
+0.476074f, -0.116211f, 0.493896f, -0.127686f, 0.511719f, -0.13916f, 0.521973f, -0.158691f,
+0.532227f, -0.178223f, 0.532227f, -0.20752f, 0.388184f, -0.103516f, 0.428711f, -0.103516f,
+0.458252f, -0.11499f, 0.487793f, -0.126465f, 0.509521f, -0.14502f, 0.53125f, -0.163574f,
+0.545654f, -0.187012f, 0.560059f, -0.210449f, 0.569336f, -0.234375f, 0.694824f, -0.187012f,
+0.679688f, -0.149902f, 0.655273f, -0.114258f, 0.630859f, -0.0786133f, 0.594238f,
+-0.0512695f, 0.557617f, -0.0239258f, 0.50708f, -0.00708008f, 0.456543f, 0.00976562f,
+0.388184f, 0.00976562f, 0.298828f, 0.00976562f, 0.233398f, -0.0168457f, 0.167969f,
+-0.043457f, 0.125244f, -0.0910645f, 0.0825195f, -0.138672f, 0.0617676f, -0.204102f,
+0.0410156f, -0.269531f, 0.0410156f, -0.347168f, 0.0410156f, -0.427734f, 0.0617676f,
+-0.492676f, 0.0825195f, -0.557617f, 0.124512f, -0.603271f, 0.166504f, -0.648926f,
+0.230713f, -0.673584f, 0.294922f, -0.698242f, 0.381836f, -0.698242f, 0.449219f, -0.698242f,
+0.499756f, -0.684082f, 0.550293f, -0.669922f, 0.587158f, -0.644287f, 0.624023f, -0.618652f,
+0.648193f, -0.58374f, 0.672363f, -0.548828f, 0.686035f, -0.506836f, 0.559082f, -0.472168f,
+0.552246f, -0.494141f, 0.538086f, -0.514404f, 0.523926f, -0.534668f, 0.502197f, -0.550293f,
+0.480469f, -0.565918f, 0.451172f, -0.575439f, 0.421875f, -0.584961f, 0.384766f, -0.584961f,
+0.33252f, -0.584961f, 0.294922f, -0.568115f, 0.257324f, -0.55127f, 0.233154f, -0.52002f,
+0.208984f, -0.48877f, 0.19751f, -0.445068f, 0.186035f, -0.401367f, 0.186035f, -0.347168f,
+0.186035f, -0.293457f, 0.19751f, -0.248779f, 0.208984f, -0.204102f, 0.233398f, -0.171875f,
+0.257812f, -0.139648f, 0.296143f, -0.121582f, 0.334473f, -0.103516f, 0.388184f, -0.103516f,
+0.680176f, -0.349121f, 0.680176f, -0.263184f, 0.654297f, -0.197998f, 0.628418f, -0.132812f,
+0.583496f, -0.0888672f, 0.538574f, -0.0449219f, 0.477295f, -0.0224609f, 0.416016f,
+0, 0.345215f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.315918f, -0.687988f, 0.395996f,
+-0.687988f, 0.462891f, -0.667969f, 0.529785f, -0.647949f, 0.578125f, -0.606445f,
+0.626465f, -0.564941f, 0.65332f, -0.500977f, 0.680176f, -0.437012f, 0.680176f, -0.349121f,
+0.535156f, -0.349121f, 0.535156f, -0.40918f, 0.518799f, -0.452148f, 0.502441f, -0.495117f,
+0.473145f, -0.522705f, 0.443848f, -0.550293f, 0.403076f, -0.563477f, 0.362305f, -0.57666f,
+0.312988f, -0.57666f, 0.210938f, -0.57666f, 0.210938f, -0.111328f, 0.333008f, -0.111328f,
+0.376465f, -0.111328f, 0.41333f, -0.126465f, 0.450195f, -0.141602f, 0.477295f, -0.171631f,
+0.504395f, -0.20166f, 0.519775f, -0.246094f, 0.535156f, -0.290527f, 0.535156f, -0.349121f,
+0.0668945f, 0, 0.0668945f, -0.687988f, 0.60791f, -0.687988f, 0.60791f, -0.57666f,
+0.210938f, -0.57666f, 0.210938f, -0.403809f, 0.578125f, -0.403809f, 0.578125f, -0.29248f,
+0.210938f, -0.29248f, 0.210938f, -0.111328f, 0.62793f, -0.111328f, 0.62793f, 0, 0.210938f,
+-0.57666f, 0.210938f, -0.36377f, 0.562988f, -0.36377f, 0.562988f, -0.252441f, 0.210938f,
+-0.252441f, 0.210938f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.574219f, -0.687988f,
+0.574219f, -0.57666f, 0.393555f, -0.103027f, 0.424805f, -0.103027f, 0.453613f, -0.10791f,
+0.482422f, -0.112793f, 0.50708f, -0.12085f, 0.531738f, -0.128906f, 0.551514f, -0.139404f,
+0.571289f, -0.149902f, 0.583984f, -0.161133f, 0.583984f, -0.256348f, 0.416016f, -0.256348f,
+0.416016f, -0.362793f, 0.71582f, -0.362793f, 0.71582f, -0.109863f, 0.692383f, -0.0859375f,
+0.65918f, -0.064209f, 0.625977f, -0.0424805f, 0.584473f, -0.026123f, 0.542969f, -0.00976562f,
+0.493896f, 0, 0.444824f, 0.00976562f, 0.389648f, 0.00976562f, 0.29834f, 0.00976562f,
+0.232422f, -0.0168457f, 0.166504f, -0.043457f, 0.124023f, -0.0910645f, 0.081543f,
+-0.138672f, 0.0612793f, -0.204102f, 0.0410156f, -0.269531f, 0.0410156f, -0.347168f,
+0.0410156f, -0.427734f, 0.0625f, -0.492676f, 0.0839844f, -0.557617f, 0.127686f, -0.603271f,
+0.171387f, -0.648926f, 0.237549f, -0.673584f, 0.303711f, -0.698242f, 0.393066f, -0.698242f,
+0.458008f, -0.698242f, 0.508545f, -0.685547f, 0.559082f, -0.672852f, 0.596924f, -0.649414f,
+0.634766f, -0.625977f, 0.6604f, -0.593018f, 0.686035f, -0.560059f, 0.701172f, -0.519043f,
+0.568359f, -0.479004f, 0.55957f, -0.500488f, 0.544922f, -0.519775f, 0.530273f, -0.539062f,
+0.508545f, -0.553467f, 0.486816f, -0.567871f, 0.458252f, -0.576416f, 0.429688f, -0.584961f,
+0.393066f, -0.584961f, 0.339355f, -0.584961f, 0.300293f, -0.568115f, 0.26123f, -0.55127f,
+0.23584f, -0.52002f, 0.210449f, -0.48877f, 0.198242f, -0.445068f, 0.186035f, -0.401367f,
+0.186035f, -0.347168f, 0.186035f, -0.293457f, 0.198486f, -0.248535f, 0.210938f, -0.203613f,
+0.236572f, -0.171387f, 0.262207f, -0.13916f, 0.30127f, -0.121094f, 0.340332f, -0.103027f,
+0.393555f, -0.103027f, 0.516113f, 0, 0.516113f, -0.294922f, 0.210938f, -0.294922f,
+0.210938f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.210938f, -0.687988f, 0.210938f,
+-0.414062f, 0.516113f, -0.414062f, 0.516113f, -0.687988f, 0.654785f, -0.687988f,
+0.654785f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.210938f, -0.687988f, 0.210938f,
+0, 0.255859f, 0.00976562f, 0.204102f, 0.00976562f, 0.163574f, -0.000976562f, 0.123047f,
+-0.0117188f, 0.0932617f, -0.0351562f, 0.0634766f, -0.0585938f, 0.0441895f, -0.0959473f,
+0.0249023f, -0.133301f, 0.0151367f, -0.186523f, 0.158203f, -0.20752f, 0.163086f,
+-0.178711f, 0.171875f, -0.158936f, 0.180664f, -0.13916f, 0.193115f, -0.126709f, 0.205566f,
+-0.114258f, 0.22168f, -0.108643f, 0.237793f, -0.103027f, 0.256836f, -0.103027f, 0.299805f,
+-0.103027f, 0.322021f, -0.131836f, 0.344238f, -0.160645f, 0.344238f, -0.214355f,
+0.344238f, -0.575195f, 0.207031f, -0.575195f, 0.207031f, -0.687988f, 0.487793f, -0.687988f,
+0.487793f, -0.217773f, 0.487793f, -0.165527f, 0.472656f, -0.123291f, 0.45752f, -0.0810547f,
+0.427979f, -0.0515137f, 0.398438f, -0.0219727f, 0.355225f, -0.00610352f, 0.312012f,
+0.00976562f, 0.255859f, 0.00976562f, 0.542969f, 0, 0.295898f, -0.315918f, 0.210938f,
+-0.250977f, 0.210938f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.210938f, -0.687988f,
+0.210938f, -0.375977f, 0.520996f, -0.687988f, 0.688965f, -0.687988f, 0.39502f, -0.396973f,
+0.712891f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.210938f, -0.687988f, 0.210938f,
+-0.111328f, 0.580078f, -0.111328f, 0.580078f, 0, 0.638184f, 0, 0.638184f, -0.416992f,
+0.638184f, -0.441895f, 0.638916f, -0.468262f, 0.639648f, -0.494629f, 0.640625f, -0.516602f,
+0.64209f, -0.54248f, 0.643066f, -0.566895f, 0.632812f, -0.52832f, 0.623535f, -0.493652f,
+0.619629f, -0.479004f, 0.615234f, -0.463379f, 0.61084f, -0.447754f, 0.606689f, -0.433105f,
+0.602539f, -0.418457f, 0.598633f, -0.405762f, 0.594727f, -0.393066f, 0.591797f, -0.383789f,
+0.467773f, 0, 0.365234f, 0, 0.241211f, -0.383789f, 0.238281f, -0.393066f, 0.234619f,
+-0.405762f, 0.230957f, -0.418457f, 0.226807f, -0.433105f, 0.222656f, -0.447754f,
+0.218262f, -0.463379f, 0.213867f, -0.479004f, 0.209473f, -0.493652f, 0.199707f, -0.52832f,
+0.188965f, -0.566895f, 0.19043f, -0.538574f, 0.191895f, -0.51123f, 0.192871f, -0.487793f,
+0.193848f, -0.461914f, 0.194824f, -0.436035f, 0.194824f, -0.416992f, 0.194824f, 0,
+0.0668945f, 0, 0.0668945f, -0.687988f, 0.259766f, -0.687988f, 0.382812f, -0.303223f,
+0.387695f, -0.288086f, 0.393311f, -0.266113f, 0.398926f, -0.244141f, 0.404297f, -0.223633f,
+0.410156f, -0.199707f, 0.416992f, -0.173828f, 0.423828f, -0.199219f, 0.430176f, -0.222656f,
+0.433105f, -0.23291f, 0.436035f, -0.243652f, 0.438965f, -0.254395f, 0.441895f, -0.264648f,
+0.444824f, -0.274902f, 0.447754f, -0.28418f, 0.450684f, -0.293457f, 0.453125f, -0.300781f,
+0.574219f, -0.687988f, 0.766113f, -0.687988f, 0.766113f, 0, 0.48584f, 0, 0.186035f,
+-0.529785f, 0.188477f, -0.508301f, 0.19043f, -0.486816f, 0.192383f, -0.468262f, 0.193604f,
+-0.446777f, 0.194824f, -0.425293f, 0.194824f, -0.405762f, 0.194824f, 0, 0.0668945f,
+0, 0.0668945f, -0.687988f, 0.231445f, -0.687988f, 0.535645f, -0.153809f, 0.533203f,
+-0.174316f, 0.53125f, -0.196777f, 0.529297f, -0.21582f, 0.528076f, -0.239746f, 0.526855f,
+-0.263672f, 0.526855f, -0.288086f, 0.526855f, -0.687988f, 0.654785f, -0.687988f,
+0.654785f, 0, 0.73584f, -0.347168f, 0.73584f, -0.266602f, 0.711914f, -0.200684f,
+0.687988f, -0.134766f, 0.643066f, -0.0878906f, 0.598145f, -0.0410156f, 0.533447f,
+-0.015625f, 0.46875f, 0.00976562f, 0.387207f, 0.00976562f, 0.300781f, 0.00976562f,
+0.236084f, -0.0168457f, 0.171387f, -0.043457f, 0.12793f, -0.0910645f, 0.0844727f,
+-0.138672f, 0.0627441f, -0.204102f, 0.0410156f, -0.269531f, 0.0410156f, -0.347168f,
+0.0410156f, -0.427734f, 0.0637207f, -0.492676f, 0.0864258f, -0.557617f, 0.130615f,
+-0.603271f, 0.174805f, -0.648926f, 0.239502f, -0.673584f, 0.304199f, -0.698242f,
+0.388184f, -0.698242f, 0.472168f, -0.698242f, 0.536865f, -0.67334f, 0.601562f, -0.648438f,
+0.645752f, -0.602539f, 0.689941f, -0.556641f, 0.712891f, -0.491943f, 0.73584f, -0.427246f,
+0.73584f, -0.347168f, 0.588867f, -0.347168f, 0.588867f, -0.401367f, 0.575928f, -0.445068f,
+0.562988f, -0.48877f, 0.537598f, -0.52002f, 0.512207f, -0.55127f, 0.474854f, -0.568115f,
+0.4375f, -0.584961f, 0.388184f, -0.584961f, 0.337891f, -0.584961f, 0.300049f, -0.568115f,
+0.262207f, -0.55127f, 0.236816f, -0.52002f, 0.211426f, -0.48877f, 0.19873f, -0.445068f,
+0.186035f, -0.401367f, 0.186035f, -0.347168f, 0.186035f, -0.293457f, 0.198975f, -0.248779f,
+0.211914f, -0.204102f, 0.237305f, -0.171875f, 0.262695f, -0.139648f, 0.300293f, -0.121582f,
+0.337891f, -0.103516f, 0.387207f, -0.103516f, 0.439941f, -0.103516f, 0.478027f, -0.121826f,
+0.516113f, -0.140137f, 0.540771f, -0.172607f, 0.56543f, -0.205078f, 0.577148f, -0.249756f,
+0.588867f, -0.294434f, 0.588867f, -0.347168f, 0.632812f, -0.470215f, 0.632812f, -0.425781f,
+0.61792f, -0.384521f, 0.603027f, -0.343262f, 0.572266f, -0.311523f, 0.541504f, -0.279785f,
+0.494141f, -0.260986f, 0.446777f, -0.242188f, 0.381836f, -0.242188f, 0.210938f, -0.242188f,
+0.210938f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.375977f, -0.687988f, 0.441895f,
+-0.687988f, 0.490234f, -0.672119f, 0.538574f, -0.65625f, 0.570312f, -0.627441f, 0.602051f,
+-0.598633f, 0.617432f, -0.558594f, 0.632812f, -0.518555f, 0.632812f, -0.470215f,
+0.487793f, -0.467773f, 0.487793f, -0.520996f, 0.455811f, -0.548584f, 0.423828f, -0.576172f,
+0.359863f, -0.576172f, 0.210938f, -0.576172f, 0.210938f, -0.353027f, 0.36377f, -0.353027f,
+0.395996f, -0.353027f, 0.419189f, -0.361328f, 0.442383f, -0.369629f, 0.457764f, -0.384766f,
+0.473145f, -0.399902f, 0.480469f, -0.421143f, 0.487793f, -0.442383f, 0.487793f, -0.467773f,
+0.73584f, -0.347168f, 0.73584f, -0.27832f, 0.718506f, -0.220459f, 0.701172f, -0.162598f,
+0.668213f, -0.11792f, 0.635254f, -0.0732422f, 0.587891f, -0.0437012f, 0.540527f,
+-0.0141602f, 0.47998f, -0.00195312f, 0.489746f, 0.0263672f, 0.50293f, 0.0441895f,
+0.516113f, 0.0620117f, 0.532715f, 0.0720215f, 0.549316f, 0.0820312f, 0.568848f, 0.0856934f,
+0.588379f, 0.0893555f, 0.61084f, 0.0893555f, 0.625f, 0.0893555f, 0.639648f, 0.0881348f,
+0.654297f, 0.0869141f, 0.668945f, 0.0844727f, 0.667969f, 0.183105f, 0.641602f, 0.188965f,
+0.612793f, 0.192871f, 0.583984f, 0.196777f, 0.549805f, 0.196777f, 0.503418f, 0.196777f,
+0.46875f, 0.182861f, 0.434082f, 0.168945f, 0.408447f, 0.143799f, 0.382812f, 0.118652f,
+0.36499f, 0.083252f, 0.347168f, 0.0478516f, 0.333984f, 0.00488281f, 0.260742f, -0.00195312f,
+0.205811f, -0.0307617f, 0.150879f, -0.0595703f, 0.114258f, -0.105957f, 0.0776367f,
+-0.152344f, 0.0593262f, -0.213867f, 0.0410156f, -0.275391f, 0.0410156f, -0.347168f,
+0.0410156f, -0.427734f, 0.0637207f, -0.492676f, 0.0864258f, -0.557617f, 0.130615f,
+-0.603271f, 0.174805f, -0.648926f, 0.239502f, -0.673584f, 0.304199f, -0.698242f,
+0.388184f, -0.698242f, 0.472168f, -0.698242f, 0.536865f, -0.67334f, 0.601562f, -0.648438f,
+0.645752f, -0.602539f, 0.689941f, -0.556641f, 0.712891f, -0.491943f, 0.73584f, -0.427246f,
+0.73584f, -0.347168f, 0.588867f, -0.347168f, 0.588867f, -0.401367f, 0.575928f, -0.445068f,
+0.562988f, -0.48877f, 0.537598f, -0.52002f, 0.512207f, -0.55127f, 0.474854f, -0.568115f,
+0.4375f, -0.584961f, 0.388184f, -0.584961f, 0.337891f, -0.584961f, 0.300049f, -0.568115f,
+0.262207f, -0.55127f, 0.236816f, -0.52002f, 0.211426f, -0.48877f, 0.19873f, -0.445068f,
+0.186035f, -0.401367f, 0.186035f, -0.347168f, 0.186035f, -0.293457f, 0.198975f, -0.248535f,
+0.211914f, -0.203613f, 0.237305f, -0.171387f, 0.262695f, -0.13916f, 0.300293f, -0.121094f,
+0.337891f, -0.103027f, 0.387207f, -0.103027f, 0.439941f, -0.103027f, 0.478027f, -0.121338f,
+0.516113f, -0.139648f, 0.540771f, -0.172119f, 0.56543f, -0.20459f, 0.577148f, -0.249512f,
+0.588867f, -0.294434f, 0.588867f, -0.347168f, 0.539551f, 0, 0.379883f, -0.26123f,
+0.210938f, -0.26123f, 0.210938f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.410645f,
+-0.687988f, 0.475098f, -0.687988f, 0.523193f, -0.673584f, 0.571289f, -0.65918f, 0.603516f,
+-0.632568f, 0.635742f, -0.605957f, 0.651611f, -0.568115f, 0.66748f, -0.530273f, 0.66748f,
+-0.48291f, 0.66748f, -0.444336f, 0.656006f, -0.412354f, 0.644531f, -0.380371f, 0.624268f,
+-0.355469f, 0.604004f, -0.330566f, 0.576172f, -0.313721f, 0.54834f, -0.296875f, 0.515625f,
+-0.289062f, 0.70166f, 0, 0.522461f, -0.477051f, 0.522461f, -0.527344f, 0.489502f,
+-0.551758f, 0.456543f, -0.576172f, 0.395508f, -0.576172f, 0.210938f, -0.576172f,
+0.210938f, -0.373047f, 0.399414f, -0.373047f, 0.431641f, -0.373047f, 0.454834f, -0.380615f,
+0.478027f, -0.388184f, 0.49292f, -0.4021f, 0.507812f, -0.416016f, 0.515137f, -0.435059f,
+0.522461f, -0.454102f, 0.522461f, -0.477051f, 0.62793f, -0.198242f, 0.62793f, -0.151367f,
+0.61084f, -0.113037f, 0.59375f, -0.074707f, 0.557861f, -0.0473633f, 0.521973f, -0.0200195f,
+0.466064f, -0.00512695f, 0.410156f, 0.00976562f, 0.333008f, 0.00976562f, 0.264648f,
+0.00976562f, 0.212402f, -0.00244141f, 0.160156f, -0.0146484f, 0.122803f, -0.0385742f,
+0.0854492f, -0.0625f, 0.0622559f, -0.0979004f, 0.0390625f, -0.133301f, 0.0288086f,
+-0.179199f, 0.167969f, -0.202148f, 0.173828f, -0.179199f, 0.185059f, -0.160156f,
+0.196289f, -0.141113f, 0.216064f, -0.127197f, 0.23584f, -0.113281f, 0.265381f, -0.105713f,
+0.294922f, -0.0981445f, 0.336914f, -0.0981445f, 0.410156f, -0.0981445f, 0.448975f,
+-0.120361f, 0.487793f, -0.142578f, 0.487793f, -0.189941f, 0.487793f, -0.218262f,
+0.472168f, -0.236328f, 0.456543f, -0.254395f, 0.430664f, -0.266113f, 0.404785f, -0.277832f,
+0.371094f, -0.285645f, 0.337402f, -0.293457f, 0.300781f, -0.300781f, 0.271484f, -0.307617f,
+0.242188f, -0.314941f, 0.212891f, -0.322266f, 0.186279f, -0.33252f, 0.159668f, -0.342773f,
+0.136719f, -0.356934f, 0.11377f, -0.371094f, 0.0969238f, -0.391846f, 0.0800781f,
+-0.412598f, 0.0705566f, -0.44043f, 0.0610352f, -0.468262f, 0.0610352f, -0.505859f,
+0.0610352f, -0.557129f, 0.081543f, -0.59375f, 0.102051f, -0.630371f, 0.138428f, -0.653564f,
+0.174805f, -0.676758f, 0.225098f, -0.6875f, 0.275391f, -0.698242f, 0.334961f, -0.698242f,
+0.402344f, -0.698242f, 0.450439f, -0.687744f, 0.498535f, -0.677246f, 0.531006f, -0.655762f,
+0.563477f, -0.634277f, 0.582275f, -0.601807f, 0.601074f, -0.569336f, 0.609863f, -0.525879f,
+0.470215f, -0.506836f, 0.459473f, -0.55127f, 0.426514f, -0.57373f, 0.393555f, -0.596191f,
+0.332031f, -0.596191f, 0.293945f, -0.596191f, 0.268799f, -0.5896f, 0.243652f, -0.583008f,
+0.22876f, -0.571777f, 0.213867f, -0.560547f, 0.20752f, -0.545654f, 0.201172f, -0.530762f,
+0.201172f, -0.51416f, 0.201172f, -0.48877f, 0.213379f, -0.472412f, 0.225586f, -0.456055f,
+0.247559f, -0.445068f, 0.269531f, -0.434082f, 0.300049f, -0.426514f, 0.330566f, -0.418945f,
+0.367188f, -0.411133f, 0.399414f, -0.404297f, 0.431152f, -0.396729f, 0.462891f, -0.38916f,
+0.491699f, -0.378906f, 0.520508f, -0.368652f, 0.54541f, -0.354004f, 0.570312f, -0.339355f,
+0.588623f, -0.318115f, 0.606934f, -0.296875f, 0.617432f, -0.267578f, 0.62793f, -0.238281f,
+0.62793f, -0.198242f, 0.377441f, -0.57666f, 0.377441f, 0, 0.233398f, 0, 0.233398f,
+-0.57666f, 0.0112305f, -0.57666f, 0.0112305f, -0.687988f, 0.600098f, -0.687988f,
+0.600098f, -0.57666f, 0.353027f, 0.00976562f, 0.288574f, 0.00976562f, 0.234863f,
+-0.00561523f, 0.181152f, -0.0209961f, 0.142334f, -0.0534668f, 0.103516f, -0.0859375f,
+0.0817871f, -0.136719f, 0.0600586f, -0.1875f, 0.0600586f, -0.257812f, 0.0600586f,
+-0.687988f, 0.204102f, -0.687988f, 0.204102f, -0.269043f, 0.204102f, -0.225586f,
+0.214844f, -0.194092f, 0.225586f, -0.162598f, 0.245605f, -0.142334f, 0.265625f, -0.12207f,
+0.293945f, -0.112549f, 0.322266f, -0.103027f, 0.356934f, -0.103027f, 0.39209f, -0.103027f,
+0.421631f, -0.113037f, 0.451172f, -0.123047f, 0.472412f, -0.144043f, 0.493652f, -0.165039f,
+0.505371f, -0.197266f, 0.51709f, -0.229492f, 0.51709f, -0.273926f, 0.51709f, -0.687988f,
+0.661133f, -0.687988f, 0.661133f, -0.265137f, 0.661133f, -0.194336f, 0.638184f, -0.142578f,
+0.615234f, -0.0908203f, 0.574219f, -0.0568848f, 0.533203f, -0.0229492f, 0.476807f,
+-0.0065918f, 0.42041f, 0.00976562f, 0.353027f, 0.00976562f, 0.407227f, 0, 0.26123f,
+0, 0.00683594f, -0.687988f, 0.157227f, -0.687988f, 0.298828f, -0.246094f, 0.305664f,
+-0.224121f, 0.312012f, -0.201172f, 0.318359f, -0.178223f, 0.32373f, -0.15918f, 0.32959f,
+-0.136719f, 0.334961f, -0.116211f, 0.339844f, -0.13623f, 0.345215f, -0.158203f, 0.350098f,
+-0.176758f, 0.356689f, -0.199951f, 0.363281f, -0.223145f, 0.370117f, -0.246094f,
+0.51123f, -0.687988f, 0.660156f, -0.687988f, 0.765137f, 0, 0.594238f, 0, 0.500977f,
+-0.397949f, 0.496582f, -0.416016f, 0.491455f, -0.440918f, 0.486328f, -0.46582f, 0.481934f,
+-0.489258f, 0.476562f, -0.516113f, 0.472168f, -0.544922f, 0.466797f, -0.516113f,
+0.461426f, -0.48877f, 0.458984f, -0.477051f, 0.456543f, -0.4646f, 0.454102f, -0.452148f,
+0.451416f, -0.440186f, 0.44873f, -0.428223f, 0.446533f, -0.41748f, 0.444336f, -0.406738f,
+0.441895f, -0.397949f, 0.349121f, 0, 0.178223f, 0, 0.000976562f, -0.687988f, 0.146973f,
+-0.687988f, 0.23291f, -0.305176f, 0.240234f, -0.273926f, 0.246582f, -0.243652f, 0.25293f,
+-0.213379f, 0.258301f, -0.189453f, 0.26416f, -0.161621f, 0.269043f, -0.13623f, 0.276367f,
+-0.172363f, 0.283203f, -0.206543f, 0.286133f, -0.221191f, 0.289551f, -0.236816f,
+0.292969f, -0.252441f, 0.296143f, -0.267578f, 0.299316f, -0.282715f, 0.30249f, -0.296631f,
+0.305664f, -0.310547f, 0.308105f, -0.321777f, 0.393066f, -0.687988f, 0.554199f, -0.687988f,
+0.641113f, -0.321777f, 0.644043f, -0.310059f, 0.646973f, -0.295654f, 0.649902f, -0.28125f,
+0.652832f, -0.265869f, 0.655762f, -0.250488f, 0.658691f, -0.235107f, 0.661621f, -0.219727f,
+0.664062f, -0.205078f, 0.669922f, -0.170898f, 0.675781f, -0.13623f, 0.681641f, -0.163574f,
+0.687988f, -0.192871f, 0.693359f, -0.217773f, 0.700195f, -0.247559f, 0.707031f, -0.277344f,
+0.713867f, -0.305176f, 0.796875f, -0.687988f, 0.942871f, -0.687988f, 0.506836f, 0,
+0.333984f, -0.273926f, 0.161133f, 0, 0.00878906f, 0, 0.24707f, -0.361816f, 0.0288086f,
+-0.687988f, 0.181152f, -0.687988f, 0.333984f, -0.444824f, 0.486816f, -0.687988f,
+0.638184f, -0.687988f, 0.429199f, -0.361816f, 0.658203f, 0, 0.405762f, -0.282227f,
+0.405762f, 0, 0.262207f, 0, 0.262207f, -0.282227f, 0.0170898f, -0.687988f, 0.167969f,
+-0.687988f, 0.333008f, -0.396973f, 0.5f, -0.687988f, 0.650879f, -0.687988f, 0.582031f,
+0, 0.0297852f, 0, 0.0297852f, -0.102051f, 0.401855f, -0.575195f, 0.0668945f, -0.575195f,
+0.0668945f, -0.687988f, 0.562012f, -0.687988f, 0.562012f, -0.587891f, 0.189941f,
+-0.112793f, 0.582031f, -0.112793f, 0.0561523f, 0.20752f, 0.0561523f, -0.724609f,
+0.320801f, -0.724609f, 0.320801f, -0.631836f, 0.186035f, -0.631836f, 0.186035f, 0.114258f,
+0.320801f, 0.114258f, 0.320801f, 0.20752f, 0.149902f, 0.0200195f, 0.0102539f, -0.725098f,
+0.126465f, -0.725098f, 0.268555f, 0.0200195f, 0.012207f, 0.20752f, 0.012207f, 0.114258f,
+0.147949f, 0.114258f, 0.147949f, -0.631836f, 0.012207f, -0.631836f, 0.012207f, -0.724609f,
+0.276855f, -0.724609f, 0.276855f, 0.20752f, 0.450195f, -0.250977f, 0.291016f, -0.618164f,
+0.132812f, -0.250977f, 0.0219727f, -0.250977f, 0.212891f, -0.687988f, 0.370117f,
+-0.687988f, 0.562012f, -0.250977f, -0.00976562f, 0.12207f, -0.00976562f, 0.0839844f,
+0.564941f, 0.0839844f, 0.564941f, 0.12207f, 0.198242f, -0.577637f, 0.0322266f, -0.712402f,
+0.0322266f, -0.733398f, 0.158203f, -0.733398f, 0.280762f, -0.592773f, 0.280762f,
+-0.577637f, 0.191895f, 0.00976562f, 0.153809f, 0.00976562f, 0.123779f, -0.000732422f,
+0.09375f, -0.0112305f, 0.0727539f, -0.0314941f, 0.0517578f, -0.0517578f, 0.0405273f,
+-0.081543f, 0.0292969f, -0.111328f, 0.0292969f, -0.149414f, 0.0292969f, -0.196289f,
+0.0456543f, -0.228271f, 0.0620117f, -0.260254f, 0.090332f, -0.280029f, 0.118652f,
+-0.299805f, 0.156738f, -0.308838f, 0.194824f, -0.317871f, 0.237793f, -0.318359f,
+0.351562f, -0.320312f, 0.351562f, -0.347168f, 0.351562f, -0.375977f, 0.346436f, -0.395264f,
+0.341309f, -0.414551f, 0.331543f, -0.426758f, 0.321777f, -0.438965f, 0.307373f, -0.444092f,
+0.292969f, -0.449219f, 0.274414f, -0.449219f, 0.257324f, -0.449219f, 0.243896f, -0.445801f,
+0.230469f, -0.442383f, 0.220703f, -0.433838f, 0.210938f, -0.425293f, 0.204834f, -0.410889f,
+0.19873f, -0.396484f, 0.196289f, -0.374512f, 0.0532227f, -0.381348f, 0.059082f, -0.416016f,
+0.074707f, -0.44458f, 0.090332f, -0.473145f, 0.11792f, -0.494141f, 0.145508f, -0.515137f,
+0.185791f, -0.526611f, 0.226074f, -0.538086f, 0.280273f, -0.538086f, 0.32959f, -0.538086f,
+0.368164f, -0.525879f, 0.406738f, -0.513672f, 0.433594f, -0.489502f, 0.460449f, -0.465332f,
+0.474609f, -0.430176f, 0.48877f, -0.39502f, 0.48877f, -0.348633f, 0.48877f, -0.15625f,
+0.48877f, -0.137695f, 0.490479f, -0.123047f, 0.492188f, -0.108398f, 0.496826f, -0.0983887f,
+0.501465f, -0.0883789f, 0.51001f, -0.083252f, 0.518555f, -0.078125f, 0.532227f, -0.078125f,
+0.547852f, -0.078125f, 0.5625f, -0.0810547f, 0.5625f, -0.00683594f, 0.550293f, -0.00390625f,
+0.540527f, -0.00146484f, 0.530762f, 0.000976562f, 0.520996f, 0.00244141f, 0.51123f,
+0.00390625f, 0.500244f, 0.00488281f, 0.489258f, 0.00585938f, 0.474609f, 0.00585938f,
+0.422852f, 0.00585938f, 0.398193f, -0.0195312f, 0.373535f, -0.0449219f, 0.368652f,
+-0.0942383f, 0.365723f, -0.0942383f, 0.338379f, -0.0449219f, 0.295654f, -0.0175781f,
+0.25293f, 0.00976562f, 0.191895f, 0.00976562f, 0.351562f, -0.244629f, 0.28125f, -0.243652f,
+0.259277f, -0.242676f, 0.239502f, -0.23999f, 0.219727f, -0.237305f, 0.204834f, -0.22876f,
+0.189941f, -0.220215f, 0.181152f, -0.204102f, 0.172363f, -0.187988f, 0.172363f, -0.160156f,
+0.172363f, -0.122559f, 0.189697f, -0.104248f, 0.207031f, -0.0859375f, 0.23584f, -0.0859375f,
+0.262207f, -0.0859375f, 0.283691f, -0.097168f, 0.305176f, -0.108398f, 0.320068f,
+-0.126709f, 0.334961f, -0.14502f, 0.343262f, -0.168945f, 0.351562f, -0.192871f, 0.351562f,
+-0.217773f, 0.569824f, -0.266113f, 0.569824f, -0.206055f, 0.557861f, -0.155518f,
+0.545898f, -0.10498f, 0.520996f, -0.0681152f, 0.496094f, -0.03125f, 0.457764f, -0.0107422f,
+0.419434f, 0.00976562f, 0.367188f, 0.00976562f, 0.34375f, 0.00976562f, 0.320312f,
+0.00488281f, 0.296875f, 0, 0.275879f, -0.0112305f, 0.254883f, -0.0224609f, 0.237305f,
+-0.0405273f, 0.219727f, -0.0585938f, 0.207031f, -0.0849609f, 0.206055f, -0.0849609f,
+0.206055f, -0.074707f, 0.205322f, -0.0615234f, 0.20459f, -0.0483398f, 0.203613f,
+-0.0358887f, 0.202637f, -0.0234375f, 0.201416f, -0.0136719f, 0.200195f, -0.00390625f,
+0.199219f, 0, 0.065918f, 0, 0.0673828f, -0.0170898f, 0.0686035f, -0.048584f, 0.0698242f,
+-0.0800781f, 0.0698242f, -0.120605f, 0.0698242f, -0.724609f, 0.207031f, -0.724609f,
+0.207031f, -0.522461f, 0.207031f, -0.506836f, 0.206787f, -0.491943f, 0.206543f, -0.477051f,
+0.206055f, -0.464355f, 0.205566f, -0.449707f, 0.205078f, -0.436523f, 0.207031f, -0.436523f,
+0.231934f, -0.491211f, 0.275391f, -0.514648f, 0.318848f, -0.538086f, 0.375977f, -0.538086f,
+0.426758f, -0.538086f, 0.463379f, -0.517822f, 0.5f, -0.497559f, 0.523682f, -0.461182f,
+0.547363f, -0.424805f, 0.558594f, -0.375f, 0.569824f, -0.325195f, 0.569824f, -0.266113f,
+0.426758f, -0.266113f, 0.426758f, -0.355957f, 0.400391f, -0.399414f, 0.374023f, -0.442871f,
+0.318848f, -0.442871f, 0.297852f, -0.442871f, 0.277344f, -0.43457f, 0.256836f, -0.42627f,
+0.240723f, -0.405518f, 0.224609f, -0.384766f, 0.214844f, -0.349854f, 0.205078f, -0.314941f,
+0.205078f, -0.261719f, 0.205078f, -0.209961f, 0.214844f, -0.175781f, 0.224609f, -0.141602f,
+0.240234f, -0.121094f, 0.255859f, -0.100586f, 0.276367f, -0.0922852f, 0.296875f,
+-0.0839844f, 0.317871f, -0.0839844f, 0.370117f, -0.0839844f, 0.398438f, -0.127197f,
+0.426758f, -0.17041f, 0.426758f, -0.266113f, 0.290039f, 0.00976562f, 0.227051f, 0.00976562f,
+0.179932f, -0.00976562f, 0.132812f, -0.0292969f, 0.101562f, -0.0649414f, 0.0703125f,
+-0.100586f, 0.0546875f, -0.150635f, 0.0390625f, -0.200684f, 0.0390625f, -0.26123f,
+0.0390625f, -0.327148f, 0.0561523f, -0.378662f, 0.0732422f, -0.430176f, 0.105469f,
+-0.465576f, 0.137695f, -0.500977f, 0.184814f, -0.519531f, 0.231934f, -0.538086f,
+0.291992f, -0.538086f, 0.343262f, -0.538086f, 0.383057f, -0.524414f, 0.422852f, -0.510742f,
+0.45166f, -0.487061f, 0.480469f, -0.463379f, 0.498291f, -0.431152f, 0.516113f, -0.398926f,
+0.522949f, -0.361816f, 0.384766f, -0.35498f, 0.378906f, -0.395508f, 0.355469f, -0.419678f,
+0.332031f, -0.443848f, 0.289062f, -0.443848f, 0.233887f, -0.443848f, 0.208496f, -0.398438f,
+0.183105f, -0.353027f, 0.183105f, -0.266602f, 0.183105f, -0.0839844f, 0.291016f,
+-0.0839844f, 0.330078f, -0.0839844f, 0.356445f, -0.108643f, 0.382812f, -0.133301f,
+0.38916f, -0.182129f, 0.526855f, -0.175781f, 0.521973f, -0.13916f, 0.504639f, -0.105713f,
+0.487305f, -0.0722656f, 0.457764f, -0.0466309f, 0.428223f, -0.0209961f, 0.38623f,
+-0.00561523f, 0.344238f, 0.00976562f, 0.290039f, 0.00976562f, 0.412109f, 0, 0.411133f,
+-0.00390625f, 0.409912f, -0.013916f, 0.408691f, -0.0239258f, 0.407471f, -0.0366211f,
+0.40625f, -0.0493164f, 0.405518f, -0.0625f, 0.404785f, -0.0756836f, 0.404785f, -0.0859375f,
+0.402832f, -0.0859375f, 0.378906f, -0.034668f, 0.336182f, -0.0124512f, 0.293457f,
+0.00976562f, 0.233887f, 0.00976562f, 0.184082f, 0.00976562f, 0.147705f, -0.0107422f,
+0.111328f, -0.03125f, 0.0876465f, -0.0678711f, 0.0639648f, -0.104492f, 0.0524902f,
+-0.154541f, 0.0410156f, -0.20459f, 0.0410156f, -0.263672f, 0.0410156f, -0.32373f,
+0.0529785f, -0.374023f, 0.0649414f, -0.424316f, 0.0898438f, -0.460693f, 0.114746f,
+-0.49707f, 0.153076f, -0.517578f, 0.191406f, -0.538086f, 0.244141f, -0.538086f, 0.27002f,
+-0.538086f, 0.293945f, -0.532715f, 0.317871f, -0.527344f, 0.338379f, -0.516113f,
+0.358887f, -0.504883f, 0.375488f, -0.487305f, 0.39209f, -0.469727f, 0.403809f, -0.444824f,
+0.404785f, -0.444824f, 0.404785f, -0.449707f, 0.404541f, -0.459229f, 0.404297f, -0.46875f,
+0.404297f, -0.480957f, 0.404297f, -0.493164f, 0.404053f, -0.506348f, 0.403809f, -0.519531f,
+0.403809f, -0.531738f, 0.403809f, -0.724609f, 0.541016f, -0.724609f, 0.541016f, -0.115234f,
+0.541016f, -0.0766602f, 0.54248f, -0.0466309f, 0.543945f, -0.0166016f, 0.544922f,
+0, 0.405762f, -0.26709f, 0.405762f, -0.319336f, 0.395996f, -0.35376f, 0.38623f, -0.388184f,
+0.370361f, -0.408447f, 0.354492f, -0.428711f, 0.334229f, -0.436768f, 0.313965f, -0.444824f,
+0.292969f, -0.444824f, 0.266602f, -0.444824f, 0.246338f, -0.43457f, 0.226074f, -0.424316f,
+0.212158f, -0.402344f, 0.198242f, -0.380371f, 0.191162f, -0.346191f, 0.184082f, -0.312012f,
+0.184082f, -0.263672f, 0.184082f, -0.0839844f, 0.291992f, -0.0839844f, 0.3125f, -0.0839844f,
+0.333008f, -0.0927734f, 0.353516f, -0.101562f, 0.369629f, -0.122559f, 0.385742f,
+-0.143555f, 0.395752f, -0.178955f, 0.405762f, -0.214355f, 0.405762f, -0.26709f, 0.286133f,
+0.00976562f, 0.229004f, 0.00976562f, 0.18335f, -0.00708008f, 0.137695f, -0.0239258f,
+0.105469f, -0.0583496f, 0.0732422f, -0.0927734f, 0.0561523f, -0.144775f, 0.0390625f,
+-0.196777f, 0.0390625f, -0.266602f, 0.0390625f, -0.342285f, 0.0593262f, -0.394043f,
+0.0795898f, -0.445801f, 0.114014f, -0.477783f, 0.148438f, -0.509766f, 0.193359f,
+-0.523926f, 0.238281f, -0.538086f, 0.288086f, -0.538086f, 0.350586f, -0.538086f,
+0.394775f, -0.516357f, 0.438965f, -0.494629f, 0.467285f, -0.455566f, 0.495605f, -0.416504f,
+0.508789f, -0.362061f, 0.521973f, -0.307617f, 0.521973f, -0.241699f, 0.521973f, -0.237793f,
+0.183105f, -0.237793f, 0.183105f, -0.20459f, 0.188965f, -0.176025f, 0.194824f, -0.147461f,
+0.208008f, -0.126709f, 0.221191f, -0.105957f, 0.242188f, -0.0939941f, 0.263184f,
+-0.0820312f, 0.292969f, -0.0820312f, 0.329102f, -0.0820312f, 0.352051f, -0.0974121f,
+0.375f, -0.112793f, 0.384766f, -0.14502f, 0.51416f, -0.133789f, 0.505371f, -0.111328f,
+0.489502f, -0.0859375f, 0.473633f, -0.0605469f, 0.447266f, -0.0393066f, 0.420898f,
+-0.0180664f, 0.381592f, -0.00415039f, 0.342285f, 0.00976562f, 0.286133f, 0.00976562f,
+0.286133f, -0.45166f, 0.265137f, -0.45166f, 0.246826f, -0.44458f, 0.228516f, -0.4375f,
+0.215088f, -0.422119f, 0.20166f, -0.406738f, 0.193359f, -0.382324f, 0.185059f, -0.35791f,
+0.184082f, -0.32373f, 0.38916f, -0.32373f, 0.385254f, -0.387695f, 0.358398f, -0.419678f,
+0.331543f, -0.45166f, 0.286133f, -0.45166f, 0.230957f, -0.435547f, 0.230957f, 0,
+0.0942383f, 0, 0.0942383f, -0.435547f, 0.0170898f, -0.435547f, 0.0170898f, -0.52832f,
+0.0942383f, -0.52832f, 0.0942383f, -0.583496f, 0.0942383f, -0.61377f, 0.101562f,
+-0.639404f, 0.108887f, -0.665039f, 0.126465f, -0.684082f, 0.144043f, -0.703125f,
+0.173828f, -0.713867f, 0.203613f, -0.724609f, 0.248047f, -0.724609f, 0.271484f, -0.724609f,
+0.294189f, -0.722168f, 0.316895f, -0.719727f, 0.334961f, -0.716797f, 0.334961f, -0.628418f,
+0.326172f, -0.630371f, 0.315186f, -0.631592f, 0.304199f, -0.632812f, 0.294922f, -0.632812f,
+0.275879f, -0.632812f, 0.263428f, -0.628906f, 0.250977f, -0.625f, 0.243896f, -0.617188f,
+0.236816f, -0.609375f, 0.233887f, -0.597412f, 0.230957f, -0.585449f, 0.230957f, -0.569824f,
+0.230957f, -0.52832f, 0.334961f, -0.52832f, 0.334961f, -0.435547f, 0.291016f, 0.211914f,
+0.23877f, 0.211914f, 0.198975f, 0.201416f, 0.15918f, 0.190918f, 0.131104f, 0.172119f,
+0.103027f, 0.15332f, 0.0861816f, 0.127197f, 0.0693359f, 0.101074f, 0.0629883f, 0.0698242f,
+0.200195f, 0.0537109f, 0.20752f, 0.0854492f, 0.231689f, 0.103516f, 0.255859f, 0.121582f,
+0.294922f, 0.121582f, 0.319336f, 0.121582f, 0.3396f, 0.114746f, 0.359863f, 0.10791f,
+0.374268f, 0.0915527f, 0.388672f, 0.0751953f, 0.396729f, 0.0483398f, 0.404785f, 0.0214844f,
+0.404785f, -0.0180664f, 0.404785f, -0.0317383f, 0.404785f, -0.0458984f, 0.404785f,
+-0.0600586f, 0.405273f, -0.0717773f, 0.405762f, -0.0854492f, 0.405762f, -0.0981445f,
+0.404785f, -0.0981445f, 0.380859f, -0.046875f, 0.337646f, -0.0239258f, 0.294434f,
+-0.000976562f, 0.234863f, -0.000976562f, 0.18457f, -0.000976562f, 0.148193f, -0.020752f,
+0.111816f, -0.0405273f, 0.0878906f, -0.0759277f, 0.0639648f, -0.111328f, 0.0524902f,
+-0.1604f, 0.0410156f, -0.209473f, 0.0410156f, -0.268555f, 0.0410156f, -0.32959f,
+0.0532227f, -0.37915f, 0.0654297f, -0.428711f, 0.0905762f, -0.464355f, 0.115723f,
+-0.5f, 0.154053f, -0.519287f, 0.192383f, -0.538574f, 0.245117f, -0.538574f, 0.297852f,
+-0.538574f, 0.3396f, -0.516113f, 0.381348f, -0.493652f, 0.404785f, -0.443359f, 0.407227f,
+-0.443359f, 0.407227f, -0.453613f, 0.407959f, -0.467041f, 0.408691f, -0.480469f,
+0.409668f, -0.49292f, 0.410645f, -0.505371f, 0.411865f, -0.515137f, 0.413086f, -0.524902f,
+0.414062f, -0.52832f, 0.543945f, -0.52832f, 0.542969f, -0.510742f, 0.541992f, -0.479004f,
+0.541016f, -0.447266f, 0.541016f, -0.40625f, 0.541016f, -0.0161133f, 0.541016f, 0.0415039f,
+0.524414f, 0.0842285f, 0.507812f, 0.126953f, 0.47583f, 0.155273f, 0.443848f, 0.183594f,
+0.397217f, 0.197754f, 0.350586f, 0.211914f, 0.291016f, 0.211914f, 0.405762f, -0.271484f,
+0.405762f, -0.321289f, 0.395996f, -0.354492f, 0.38623f, -0.387695f, 0.370605f, -0.407715f,
+0.35498f, -0.427734f, 0.334717f, -0.436035f, 0.314453f, -0.444336f, 0.293945f, -0.444336f,
+0.267578f, -0.444336f, 0.247314f, -0.434082f, 0.227051f, -0.423828f, 0.212891f, -0.402344f,
+0.19873f, -0.380859f, 0.191406f, -0.347656f, 0.184082f, -0.314453f, 0.184082f, -0.268555f,
+0.184082f, -0.183105f, 0.211426f, -0.139648f, 0.23877f, -0.0961914f, 0.292969f, -0.0961914f,
+0.313477f, -0.0961914f, 0.33374f, -0.104248f, 0.354004f, -0.112305f, 0.370117f, -0.132568f,
+0.38623f, -0.152832f, 0.395996f, -0.186523f, 0.405762f, -0.220215f, 0.405762f, -0.271484f,
+0.205078f, -0.422852f, 0.23291f, -0.483398f, 0.274902f, -0.510742f, 0.316895f, -0.538086f,
+0.375f, -0.538086f, 0.422852f, -0.538086f, 0.455811f, -0.522461f, 0.48877f, -0.506836f,
+0.509521f, -0.479492f, 0.530273f, -0.452148f, 0.539551f, -0.415039f, 0.548828f, -0.37793f,
+0.548828f, -0.334961f, 0.548828f, 0, 0.412109f, 0, 0.412109f, -0.295898f, 0.412109f,
+-0.32666f, 0.407227f, -0.352295f, 0.402344f, -0.37793f, 0.391113f, -0.39624f, 0.379883f,
+-0.414551f, 0.361816f, -0.424805f, 0.34375f, -0.435059f, 0.317871f, -0.435059f, 0.292969f,
+-0.435059f, 0.272705f, -0.424072f, 0.252441f, -0.413086f, 0.237793f, -0.392822f,
+0.223145f, -0.372559f, 0.215088f, -0.344482f, 0.207031f, -0.316406f, 0.207031f, -0.282715f,
+0.207031f, 0, 0.0698242f, 0, 0.0698242f, -0.724609f, 0.207031f, -0.724609f, 0.207031f,
+-0.526855f, 0.207031f, -0.51123f, 0.206543f, -0.495361f, 0.206055f, -0.479492f, 0.205322f,
+-0.465576f, 0.20459f, -0.45166f, 0.204102f, -0.44043f, 0.203613f, -0.429199f, 0.203125f,
+-0.422852f, 0.0698242f, -0.623535f, 0.0698242f, -0.724609f, 0.207031f, -0.724609f,
+0.207031f, -0.623535f, 0.0698242f, 0, 0.0698242f, -0.52832f, 0.207031f, -0.52832f,
+0.207031f, 0, 0.0703125f, -0.623535f, 0.0703125f, -0.724609f, 0.20752f, -0.724609f,
+0.20752f, -0.623535f, 0.0673828f, 0.20752f, 0.0400391f, 0.20752f, 0.0197754f, 0.206299f,
+-0.000488281f, 0.205078f, -0.015625f, 0.203125f, -0.015625f, 0.106445f, -0.00927734f,
+0.107422f, -0.00292969f, 0.10791f, 0.00341797f, 0.108398f, 0.00927734f, 0.108398f,
+0.0283203f, 0.108398f, 0.0400391f, 0.104492f, 0.0517578f, 0.100586f, 0.0585938f,
+0.0913086f, 0.0654297f, 0.0820312f, 0.0678711f, 0.0668945f, 0.0703125f, 0.0517578f,
+0.0703125f, 0.0292969f, 0.0703125f, -0.52832f, 0.20752f, -0.52832f, 0.20752f, 0.0625f,
+0.20752f, 0.0942383f, 0.199707f, 0.120605f, 0.191895f, 0.146973f, 0.175049f, 0.166504f,
+0.158203f, 0.186035f, 0.131592f, 0.196777f, 0.10498f, 0.20752f, 0.0673828f, 0.20752f,
+0.407227f, 0, 0.266113f, -0.239258f, 0.207031f, -0.198242f, 0.207031f, 0, 0.0698242f,
+0, 0.0698242f, -0.724609f, 0.207031f, -0.724609f, 0.207031f, -0.30957f, 0.395508f,
+-0.52832f, 0.542969f, -0.52832f, 0.357422f, -0.322266f, 0.557129f, 0, 0.0698242f,
+0, 0.0698242f, -0.724609f, 0.207031f, -0.724609f, 0.207031f, 0, 0.380859f, 0, 0.380859f,
+-0.296387f, 0.380859f, -0.327148f, 0.376709f, -0.352783f, 0.372559f, -0.378418f,
+0.363037f, -0.396729f, 0.353516f, -0.415039f, 0.338135f, -0.425293f, 0.322754f, -0.435547f,
+0.300781f, -0.435547f, 0.279785f, -0.435547f, 0.262695f, -0.424561f, 0.245605f, -0.413574f,
+0.233154f, -0.393311f, 0.220703f, -0.373047f, 0.213867f, -0.344971f, 0.207031f, -0.316895f,
+0.207031f, -0.283203f, 0.207031f, 0, 0.0698242f, 0, 0.0698242f, -0.410156f, 0.0698242f,
+-0.427246f, 0.0695801f, -0.445312f, 0.0693359f, -0.463379f, 0.0686035f, -0.479736f,
+0.0678711f, -0.496094f, 0.0673828f, -0.509033f, 0.0668945f, -0.521973f, 0.065918f,
+-0.52832f, 0.196777f, -0.52832f, 0.197754f, -0.522461f, 0.19873f, -0.509521f, 0.199707f,
+-0.496582f, 0.200684f, -0.480957f, 0.20166f, -0.465332f, 0.202393f, -0.449707f, 0.203125f,
+-0.434082f, 0.203125f, -0.42334f, 0.205078f, -0.42334f, 0.230469f, -0.483887f, 0.268311f,
+-0.51123f, 0.306152f, -0.538574f, 0.358887f, -0.538574f, 0.419434f, -0.538574f, 0.456299f,
+-0.509033f, 0.493164f, -0.479492f, 0.505859f, -0.42334f, 0.508789f, -0.42334f, 0.522949f,
+-0.456055f, 0.539307f, -0.478027f, 0.555664f, -0.5f, 0.575439f, -0.513428f, 0.595215f,
+-0.526855f, 0.618408f, -0.532715f, 0.641602f, -0.538574f, 0.668945f, -0.538574f,
+0.712402f, -0.538574f, 0.742432f, -0.522949f, 0.772461f, -0.507324f, 0.79126f, -0.47998f,
+0.810059f, -0.452637f, 0.818604f, -0.415527f, 0.827148f, -0.378418f, 0.827148f, -0.335449f,
+0.827148f, 0, 0.690918f, 0, 0.690918f, -0.296387f, 0.690918f, -0.327148f, 0.686768f,
+-0.352783f, 0.682617f, -0.378418f, 0.673096f, -0.396729f, 0.663574f, -0.415039f,
+0.648193f, -0.425293f, 0.632812f, -0.435547f, 0.61084f, -0.435547f, 0.590332f, -0.435547f,
+0.573486f, -0.425049f, 0.556641f, -0.414551f, 0.544189f, -0.395264f, 0.531738f, -0.375977f,
+0.524902f, -0.349121f, 0.518066f, -0.322266f, 0.51709f, -0.289551f, 0.51709f, 0,
+0.412109f, 0, 0.412109f, -0.296387f, 0.412109f, -0.327148f, 0.407227f, -0.352783f,
+0.402344f, -0.378418f, 0.391113f, -0.396729f, 0.379883f, -0.415039f, 0.361816f, -0.425293f,
+0.34375f, -0.435547f, 0.317871f, -0.435547f, 0.292969f, -0.435547f, 0.272705f, -0.424561f,
+0.252441f, -0.413574f, 0.237793f, -0.393311f, 0.223145f, -0.373047f, 0.215088f, -0.344971f,
+0.207031f, -0.316895f, 0.207031f, -0.283203f, 0.207031f, 0, 0.0698242f, 0, 0.0698242f,
+-0.410156f, 0.0698242f, -0.427246f, 0.0695801f, -0.445312f, 0.0693359f, -0.463379f,
+0.0686035f, -0.479736f, 0.0678711f, -0.496094f, 0.0673828f, -0.509033f, 0.0668945f,
+-0.521973f, 0.065918f, -0.52832f, 0.196777f, -0.52832f, 0.197754f, -0.522461f, 0.19873f,
+-0.509521f, 0.199707f, -0.496582f, 0.200684f, -0.480957f, 0.20166f, -0.465332f, 0.202393f,
+-0.449707f, 0.203125f, -0.434082f, 0.203125f, -0.42334f, 0.205078f, -0.42334f, 0.23291f,
+-0.483887f, 0.274902f, -0.51123f, 0.316895f, -0.538574f, 0.375f, -0.538574f, 0.422852f,
+-0.538574f, 0.455811f, -0.522949f, 0.48877f, -0.507324f, 0.509521f, -0.47998f, 0.530273f,
+-0.452637f, 0.539551f, -0.415527f, 0.548828f, -0.378418f, 0.548828f, -0.335449f,
+0.548828f, 0, 0.571777f, -0.264648f, 0.571777f, -0.204102f, 0.554932f, -0.153809f,
+0.538086f, -0.103516f, 0.504395f, -0.0671387f, 0.470703f, -0.0307617f, 0.42041f,
+-0.010498f, 0.370117f, 0.00976562f, 0.303223f, 0.00976562f, 0.23877f, 0.00976562f,
+0.189453f, -0.0102539f, 0.140137f, -0.0302734f, 0.106689f, -0.0664062f, 0.0732422f,
+-0.102539f, 0.0561523f, -0.153076f, 0.0390625f, -0.203613f, 0.0390625f, -0.264648f,
+0.0390625f, -0.32373f, 0.0554199f, -0.373779f, 0.0717773f, -0.423828f, 0.10498f,
+-0.460449f, 0.138184f, -0.49707f, 0.188477f, -0.517578f, 0.23877f, -0.538086f, 0.306152f,
+-0.538086f, 0.377441f, -0.538086f, 0.427734f, -0.517578f, 0.478027f, -0.49707f, 0.51001f,
+-0.460693f, 0.541992f, -0.424316f, 0.556885f, -0.374268f, 0.571777f, -0.324219f,
+0.571777f, -0.264648f, 0.428223f, -0.264648f, 0.428223f, -0.358887f, 0.397461f, -0.401367f,
+0.366699f, -0.443848f, 0.308105f, -0.443848f, 0.247559f, -0.443848f, 0.215332f, -0.400879f,
+0.183105f, -0.35791f, 0.183105f, -0.264648f, 0.183105f, -0.217285f, 0.19165f, -0.183105f,
+0.200195f, -0.148926f, 0.21582f, -0.126953f, 0.231445f, -0.10498f, 0.253418f, -0.0944824f,
+0.275391f, -0.0839844f, 0.301758f, -0.0839844f, 0.332031f, -0.0839844f, 0.355713f,
+-0.0944824f, 0.379395f, -0.10498f, 0.395508f, -0.126953f, 0.411621f, -0.148926f,
+0.419922f, -0.183105f, 0.428223f, -0.217285f, 0.428223f, -0.264648f, 0.569824f, -0.266602f,
+0.569824f, -0.206543f, 0.557861f, -0.155762f, 0.545898f, -0.10498f, 0.520996f, -0.0683594f,
+0.496094f, -0.0317383f, 0.457764f, -0.0109863f, 0.419434f, 0.00976562f, 0.367188f,
+0.00976562f, 0.34375f, 0.00976562f, 0.320557f, 0.00488281f, 0.297363f, 0, 0.276367f,
+-0.0109863f, 0.255371f, -0.0219727f, 0.237549f, -0.0397949f, 0.219727f, -0.0576172f,
+0.207031f, -0.0839844f, 0.204102f, -0.0839844f, 0.20459f, -0.081543f, 0.205078f,
+-0.0717773f, 0.205566f, -0.0620117f, 0.206055f, -0.0490723f, 0.206543f, -0.0361328f,
+0.206787f, -0.0217285f, 0.207031f, -0.00732422f, 0.207031f, 0.00488281f, 0.207031f,
+0.20752f, 0.0698242f, 0.20752f, 0.0698242f, -0.406738f, 0.0698242f, -0.447266f, 0.0686035f,
+-0.479004f, 0.0673828f, -0.510742f, 0.065918f, -0.52832f, 0.199219f, -0.52832f, 0.200195f,
+-0.524902f, 0.201416f, -0.515137f, 0.202637f, -0.505371f, 0.203369f, -0.492676f,
+0.204102f, -0.47998f, 0.20459f, -0.466309f, 0.205078f, -0.452637f, 0.205078f, -0.442383f,
+0.207031f, -0.442383f, 0.231934f, -0.494629f, 0.275391f, -0.51709f, 0.318848f, -0.539551f,
+0.375977f, -0.539551f, 0.42627f, -0.539551f, 0.462891f, -0.519043f, 0.499512f, -0.498535f,
+0.523193f, -0.462402f, 0.546875f, -0.42627f, 0.55835f, -0.376221f, 0.569824f, -0.326172f,
+0.569824f, -0.266602f, 0.426758f, -0.266602f, 0.426758f, -0.356934f, 0.399414f, -0.400635f,
+0.37207f, -0.444336f, 0.317871f, -0.444336f, 0.297363f, -0.444336f, 0.2771f, -0.435791f,
+0.256836f, -0.427246f, 0.240967f, -0.406494f, 0.225098f, -0.385742f, 0.215088f, -0.35083f,
+0.205078f, -0.315918f, 0.205078f, -0.262695f, 0.205078f, -0.210938f, 0.214844f, -0.176514f,
+0.224609f, -0.14209f, 0.240479f, -0.121582f, 0.256348f, -0.101074f, 0.276367f, -0.0925293f,
+0.296387f, -0.0839844f, 0.316895f, -0.0839844f, 0.343262f, -0.0839844f, 0.36377f,
+-0.0944824f, 0.384277f, -0.10498f, 0.398193f, -0.127197f, 0.412109f, -0.149414f,
+0.419434f, -0.184082f, 0.426758f, -0.21875f, 0.426758f, -0.266602f, 0.0410156f, -0.263672f,
+0.0410156f, -0.32373f, 0.0532227f, -0.374268f, 0.0654297f, -0.424805f, 0.0905762f,
+-0.461182f, 0.115723f, -0.497559f, 0.154053f, -0.518066f, 0.192383f, -0.538574f,
+0.245117f, -0.538574f, 0.297852f, -0.538574f, 0.3396f, -0.516113f, 0.381348f, -0.493652f,
+0.404785f, -0.443359f, 0.404785f, -0.453613f, 0.405518f, -0.467041f, 0.40625f, -0.480469f,
+0.407471f, -0.49292f, 0.408691f, -0.505371f, 0.409912f, -0.515137f, 0.411133f, -0.524902f,
+0.412109f, -0.52832f, 0.543945f, -0.52832f, 0.542969f, -0.510742f, 0.541992f, -0.479004f,
+0.541016f, -0.447266f, 0.541016f, -0.406738f, 0.541016f, 0.20752f, 0.404785f, 0.20752f,
+0.404785f, -0.012207f, 0.404785f, -0.0258789f, 0.405273f, -0.0390625f, 0.405762f,
+-0.0522461f, 0.40625f, -0.0634766f, 0.406738f, -0.0761719f, 0.407227f, -0.0878906f,
+0.40625f, -0.0878906f, 0.382324f, -0.0366211f, 0.337891f, -0.0134277f, 0.293457f,
+0.00976562f, 0.233887f, 0.00976562f, 0.184082f, 0.00976562f, 0.147705f, -0.0107422f,
+0.111328f, -0.03125f, 0.0876465f, -0.0678711f, 0.0639648f, -0.104492f, 0.0524902f,
+-0.154541f, 0.0410156f, -0.20459f, 0.0410156f, -0.263672f, 0.405762f, -0.266602f,
+0.405762f, -0.319336f, 0.395996f, -0.353516f, 0.38623f, -0.387695f, 0.370605f, -0.407959f,
+0.35498f, -0.428223f, 0.334717f, -0.436279f, 0.314453f, -0.444336f, 0.293945f, -0.444336f,
+0.267578f, -0.444336f, 0.247314f, -0.434082f, 0.227051f, -0.423828f, 0.212891f, -0.401855f,
+0.19873f, -0.379883f, 0.191406f, -0.345703f, 0.184082f, -0.311523f, 0.184082f, -0.263672f,
+0.184082f, -0.0839844f, 0.292969f, -0.0839844f, 0.313477f, -0.0839844f, 0.33374f,
+-0.0927734f, 0.354004f, -0.101562f, 0.370117f, -0.122559f, 0.38623f, -0.143555f,
+0.395996f, -0.178711f, 0.405762f, -0.213867f, 0.405762f, -0.266602f, 0.0698242f,
+0, 0.0698242f, -0.404297f, 0.0698242f, -0.421387f, 0.0695801f, -0.44043f, 0.0693359f,
+-0.459473f, 0.0686035f, -0.476807f, 0.0678711f, -0.494141f, 0.0673828f, -0.508057f,
+0.0668945f, -0.521973f, 0.065918f, -0.52832f, 0.196777f, -0.52832f, 0.197754f, -0.522461f,
+0.19873f, -0.508057f, 0.199707f, -0.493652f, 0.200684f, -0.476562f, 0.20166f, -0.459473f,
+0.202393f, -0.442627f, 0.203125f, -0.425781f, 0.203125f, -0.415527f, 0.205078f, -0.415527f,
+0.215332f, -0.444336f, 0.225586f, -0.467041f, 0.23584f, -0.489746f, 0.249756f, -0.505615f,
+0.263672f, -0.521484f, 0.283203f, -0.530029f, 0.302734f, -0.538574f, 0.331543f, -0.538574f,
+0.34375f, -0.538574f, 0.355713f, -0.536377f, 0.367676f, -0.53418f, 0.374023f, -0.53125f,
+0.374023f, -0.416504f, 0.36084f, -0.419434f, 0.347412f, -0.421631f, 0.333984f, -0.423828f,
+0.31543f, -0.423828f, 0.26416f, -0.423828f, 0.235596f, -0.382324f, 0.207031f, -0.34082f,
+0.207031f, -0.259277f, 0.207031f, 0, 0.515137f, -0.154297f, 0.515137f, -0.116211f,
+0.499268f, -0.0859375f, 0.483398f, -0.0556641f, 0.453125f, -0.0344238f, 0.422852f,
+-0.0131836f, 0.378906f, -0.00170898f, 0.334961f, 0.00976562f, 0.278809f, 0.00976562f,
+0.228516f, 0.00976562f, 0.187988f, 0.00244141f, 0.147461f, -0.00488281f, 0.116943f,
+-0.0217285f, 0.0864258f, -0.0385742f, 0.065918f, -0.0654297f, 0.0454102f, -0.0922852f,
+0.0351562f, -0.131836f, 0.155762f, -0.149902f, 0.161621f, -0.12793f, 0.171875f, -0.114258f,
+0.182129f, -0.100586f, 0.197266f, -0.0932617f, 0.212402f, -0.0859375f, 0.232666f,
+-0.0834961f, 0.25293f, -0.0810547f, 0.278809f, -0.0810547f, 0.302246f, -0.0810547f,
+0.32251f, -0.0837402f, 0.342773f, -0.0864258f, 0.357666f, -0.0930176f, 0.372559f,
+-0.0996094f, 0.380859f, -0.111572f, 0.38916f, -0.123535f, 0.38916f, -0.141602f, 0.38916f,
+-0.162109f, 0.377197f, -0.174072f, 0.365234f, -0.186035f, 0.344482f, -0.193604f,
+0.32373f, -0.201172f, 0.295654f, -0.206787f, 0.267578f, -0.212402f, 0.23584f, -0.219727f,
+0.202637f, -0.227051f, 0.17041f, -0.237305f, 0.138184f, -0.247559f, 0.112793f, -0.265137f,
+0.0874023f, -0.282715f, 0.0717773f, -0.309814f, 0.0561523f, -0.336914f, 0.0561523f,
+-0.378418f, 0.0561523f, -0.416016f, 0.0708008f, -0.445557f, 0.0854492f, -0.475098f,
+0.11377f, -0.49585f, 0.14209f, -0.516602f, 0.183838f, -0.527588f, 0.225586f, -0.538574f,
+0.279785f, -0.538574f, 0.322754f, -0.538574f, 0.359863f, -0.530518f, 0.396973f, -0.522461f,
+0.42627f, -0.505127f, 0.455566f, -0.487793f, 0.475342f, -0.460938f, 0.495117f, -0.434082f,
+0.50293f, -0.395996f, 0.381348f, -0.383301f, 0.37793f, -0.402344f, 0.369141f, -0.414795f,
+0.360352f, -0.427246f, 0.347412f, -0.43457f, 0.334473f, -0.441895f, 0.317383f, -0.44458f,
+0.300293f, -0.447266f, 0.279785f, -0.447266f, 0.230957f, -0.447266f, 0.206543f, -0.434814f,
+0.182129f, -0.422363f, 0.182129f, -0.393066f, 0.182129f, -0.375f, 0.192139f, -0.364258f,
+0.202148f, -0.353516f, 0.220459f, -0.346436f, 0.23877f, -0.339355f, 0.263916f, -0.334229f,
+0.289062f, -0.329102f, 0.318848f, -0.321777f, 0.355469f, -0.313965f, 0.390869f, -0.303467f,
+0.42627f, -0.292969f, 0.453857f, -0.274658f, 0.481445f, -0.256348f, 0.498291f, -0.227539f,
+0.515137f, -0.19873f, 0.515137f, -0.154297f, 0.205078f, 0.00878906f, 0.144531f, 0.00878906f,
+0.111816f, -0.0241699f, 0.0791016f, -0.0571289f, 0.0791016f, -0.124023f, 0.0791016f,
+-0.435547f, 0.012207f, -0.435547f, 0.012207f, -0.52832f, 0.0859375f, -0.52832f, 0.128906f,
+-0.652344f, 0.214844f, -0.652344f, 0.214844f, -0.52832f, 0.314941f, -0.52832f, 0.314941f,
+-0.435547f, 0.214844f, -0.435547f, 0.214844f, -0.161133f, 0.214844f, -0.122559f,
+0.229492f, -0.104248f, 0.244141f, -0.0859375f, 0.274902f, -0.0859375f, 0.287598f,
+-0.0859375f, 0.297852f, -0.0878906f, 0.308105f, -0.0898438f, 0.320801f, -0.0927734f,
+0.320801f, -0.0078125f, 0.29541f, 0.000488281f, 0.26709f, 0.00463867f, 0.23877f,
+0.00878906f, 0.205078f, 0.00878906f, 0.199219f, -0.52832f, 0.199219f, -0.231934f,
+0.199219f, -0.201172f, 0.204102f, -0.175537f, 0.208984f, -0.149902f, 0.220215f, -0.131592f,
+0.231445f, -0.113281f, 0.249268f, -0.103027f, 0.26709f, -0.0927734f, 0.292969f, -0.0927734f,
+0.317871f, -0.0927734f, 0.338135f, -0.10376f, 0.358398f, -0.114746f, 0.373047f, -0.13501f,
+0.387695f, -0.155273f, 0.395752f, -0.18335f, 0.403809f, -0.211426f, 0.403809f, -0.245117f,
+0.403809f, -0.52832f, 0.541016f, -0.52832f, 0.541016f, -0.118164f, 0.541016f, -0.101562f,
+0.54126f, -0.083252f, 0.541504f, -0.0649414f, 0.542236f, -0.048584f, 0.542969f, -0.0322266f,
+0.543701f, -0.0192871f, 0.544434f, -0.00634766f, 0.544922f, 0, 0.414062f, 0, 0.413574f,
+-0.00585938f, 0.412354f, -0.0187988f, 0.411133f, -0.0317383f, 0.4104f, -0.0473633f,
+0.409668f, -0.0629883f, 0.408936f, -0.0786133f, 0.408203f, -0.0942383f, 0.408203f,
+-0.10498f, 0.405762f, -0.10498f, 0.378418f, -0.0449219f, 0.336182f, -0.0175781f,
+0.293945f, 0.00976562f, 0.23584f, 0.00976562f, 0.188477f, 0.00976562f, 0.155273f,
+-0.00585938f, 0.12207f, -0.0214844f, 0.101318f, -0.048584f, 0.0805664f, -0.0756836f,
+0.0712891f, -0.112793f, 0.0620117f, -0.149902f, 0.0620117f, -0.192871f, 0.0620117f,
+-0.52832f, 0.356934f, 0, 0.192871f, 0, 0.00390625f, -0.52832f, 0.148926f, -0.52832f,
+0.241211f, -0.23291f, 0.245605f, -0.218262f, 0.250488f, -0.201904f, 0.255371f, -0.185547f,
+0.259766f, -0.169434f, 0.26416f, -0.15332f, 0.268311f, -0.138184f, 0.272461f, -0.123047f,
+0.275879f, -0.11084f, 0.278809f, -0.122559f, 0.283203f, -0.137451f, 0.287598f, -0.152344f,
+0.292236f, -0.168457f, 0.296875f, -0.18457f, 0.302002f, -0.200684f, 0.307129f, -0.216797f,
+0.312012f, -0.231445f, 0.408203f, -0.52832f, 0.551758f, -0.52832f, 0.641113f, 0,
+0.496094f, 0, 0.412109f, -0.322266f, 0.408203f, -0.337402f, 0.404297f, -0.356201f,
+0.400391f, -0.375f, 0.396973f, -0.391602f, 0.38916f, -0.430664f, 0.384766f, -0.411133f,
+0.380371f, -0.391602f, 0.376465f, -0.375f, 0.37207f, -0.355957f, 0.367676f, -0.336914f,
+0.36377f, -0.321289f, 0.278809f, 0, 0.133789f, 0, -0.00292969f, -0.52832f, 0.125977f,
+-0.52832f, 0.192871f, -0.217773f, 0.195801f, -0.20459f, 0.199219f, -0.188232f, 0.202637f,
+-0.171875f, 0.205566f, -0.157715f, 0.208984f, -0.141113f, 0.212891f, -0.124512f,
+0.216309f, -0.143066f, 0.219727f, -0.160645f, 0.222656f, -0.175781f, 0.226074f, -0.191406f,
+0.229492f, -0.207031f, 0.231934f, -0.217773f, 0.314941f, -0.52832f, 0.461914f, -0.52832f,
+0.542969f, -0.217773f, 0.546387f, -0.205078f, 0.549805f, -0.188965f, 0.553223f, -0.172852f,
+0.556152f, -0.158691f, 0.55957f, -0.14209f, 0.562988f, -0.124512f, 0.566895f, -0.14209f,
+0.570312f, -0.158691f, 0.573242f, -0.172852f, 0.57666f, -0.188965f, 0.580078f, -0.205078f,
+0.583008f, -0.217773f, 0.652832f, -0.52832f, 0.779785f, -0.52832f, 0.399902f, 0,
+0.276855f, -0.191406f, 0.152832f, 0, 0.00683594f, 0, 0.200195f, -0.272949f, 0.0161133f,
+-0.52832f, 0.164062f, -0.52832f, 0.276855f, -0.355469f, 0.38916f, -0.52832f, 0.538086f,
+-0.52832f, 0.354004f, -0.274414f, 0.548828f, 0, 0.341797f, 0.027832f, 0.322754f,
+0.0742188f, 0.303223f, 0.10791f, 0.283691f, 0.141602f, 0.26001f, 0.163818f, 0.236328f,
+0.186035f, 0.206787f, 0.196777f, 0.177246f, 0.20752f, 0.138184f, 0.20752f, 0.116699f,
+0.20752f, 0.0942383f, 0.206055f, 0.0717773f, 0.20459f, 0.0517578f, 0.201172f, 0.0517578f,
+0.103516f, 0.0615234f, 0.10498f, 0.0754395f, 0.106201f, 0.0893555f, 0.107422f, 0.0991211f,
+0.107422f, 0.119141f, 0.107422f, 0.134766f, 0.103027f, 0.150391f, 0.0986328f, 0.163086f,
+0.0883789f, 0.175781f, 0.078125f, 0.186768f, 0.0610352f, 0.197754f, 0.0439453f, 0.208008f,
+0.0180664f, 0.216797f, -0.00537109f, 0.0078125f, -0.52832f, 0.152832f, -0.52832f,
+0.23584f, -0.280762f, 0.237793f, -0.275391f, 0.241943f, -0.262695f, 0.246094f, -0.25f,
+0.251221f, -0.233643f, 0.256348f, -0.217285f, 0.261719f, -0.199219f, 0.26709f, -0.181152f,
+0.271973f, -0.164795f, 0.276855f, -0.148438f, 0.280273f, -0.135742f, 0.283691f, -0.123047f,
+0.285156f, -0.117676f, 0.286621f, -0.123047f, 0.289795f, -0.135498f, 0.292969f, -0.147949f,
+0.297119f, -0.163818f, 0.30127f, -0.179688f, 0.306152f, -0.197266f, 0.311035f, -0.214844f,
+0.31543f, -0.230957f, 0.319824f, -0.24707f, 0.323486f, -0.26001f, 0.327148f, -0.272949f,
+0.329102f, -0.278809f, 0.407227f, -0.52832f, 0.550781f, -0.52832f, 0.0332031f, 0,
+0.0332031f, -0.097168f, 0.296875f, -0.429199f, 0.0532227f, -0.429199f, 0.0532227f,
+-0.52832f, 0.448242f, -0.52832f, 0.448242f, -0.430176f, 0.186035f, -0.100098f, 0.472168f,
+-0.100098f, 0.472168f, 0, 0.271973f, 0.20752f, 0.238281f, 0.20752f, 0.21167f, 0.197266f,
+0.185059f, 0.187012f, 0.16626f, 0.168213f, 0.147461f, 0.149414f, 0.137695f, 0.122314f,
+0.12793f, 0.0952148f, 0.12793f, 0.0615234f, 0.12793f, -0.0986328f, 0.12793f, -0.129395f,
+0.120117f, -0.150635f, 0.112305f, -0.171875f, 0.0976562f, -0.185059f, 0.0830078f,
+-0.198242f, 0.0622559f, -0.204102f, 0.0415039f, -0.209961f, 0.0161133f, -0.210449f,
+0.0161133f, -0.305664f, 0.0419922f, -0.306641f, 0.0627441f, -0.312744f, 0.0834961f,
+-0.318848f, 0.0979004f, -0.332031f, 0.112305f, -0.345215f, 0.120117f, -0.366455f,
+0.12793f, -0.387695f, 0.12793f, -0.418457f, 0.12793f, -0.578613f, 0.12793f, -0.649902f,
+0.16626f, -0.687256f, 0.20459f, -0.724609f, 0.271973f, -0.724609f, 0.368164f, -0.724609f,
+0.368164f, -0.631836f, 0.339844f, -0.631836f, 0.29541f, -0.631836f, 0.275635f, -0.606445f,
+0.255859f, -0.581055f, 0.255859f, -0.529785f, 0.255859f, -0.382812f, 0.255859f, -0.35791f,
+0.247803f, -0.337158f, 0.239746f, -0.316406f, 0.226074f, -0.300781f, 0.212402f, -0.285156f,
+0.193848f, -0.274658f, 0.175293f, -0.26416f, 0.154785f, -0.259766f, 0.154785f, -0.257812f,
+0.175781f, -0.25293f, 0.194336f, -0.242432f, 0.212891f, -0.231934f, 0.226562f, -0.216064f,
+0.240234f, -0.200195f, 0.248047f, -0.179932f, 0.255859f, -0.159668f, 0.255859f, -0.134766f,
+0.255859f, 0.012207f, 0.255859f, 0.0639648f, 0.275635f, 0.0891113f, 0.29541f, 0.114258f,
+0.339844f, 0.114258f, 0.368164f, 0.114258f, 0.368164f, 0.20752f, 0.0761719f, 0.222168f,
+0.0761719f, -0.724609f, 0.204102f, -0.724609f, 0.204102f, 0.222168f, 0.0209961f,
+0.114258f, 0.0488281f, 0.114258f, 0.0942383f, 0.114258f, 0.113525f, 0.0891113f, 0.132812f,
+0.0639648f, 0.132812f, 0.012207f, 0.132812f, -0.134766f, 0.132812f, -0.159668f, 0.140869f,
+-0.179932f, 0.148926f, -0.200195f, 0.162598f, -0.216064f, 0.17627f, -0.231934f, 0.19458f,
+-0.242432f, 0.212891f, -0.25293f, 0.233887f, -0.257812f, 0.233887f, -0.259766f, 0.213379f,
+-0.26416f, 0.195068f, -0.274658f, 0.176758f, -0.285156f, 0.162842f, -0.300781f, 0.148926f,
+-0.316406f, 0.140869f, -0.337158f, 0.132812f, -0.35791f, 0.132812f, -0.382812f, 0.132812f,
+-0.529785f, 0.132812f, -0.581055f, 0.113525f, -0.606445f, 0.0942383f, -0.631836f,
+0.0488281f, -0.631836f, 0.0209961f, -0.631836f, 0.0209961f, -0.724609f, 0.117188f,
+-0.724609f, 0.18457f, -0.724609f, 0.2229f, -0.687256f, 0.26123f, -0.649902f, 0.26123f,
+-0.578613f, 0.26123f, -0.418457f, 0.26123f, -0.387695f, 0.269287f, -0.366455f, 0.277344f,
+-0.345215f, 0.291992f, -0.332031f, 0.306641f, -0.318848f, 0.327393f, -0.312744f,
+0.348145f, -0.306641f, 0.374023f, -0.305664f, 0.374023f, -0.210449f, 0.348145f, -0.209961f,
+0.327393f, -0.204102f, 0.306641f, -0.198242f, 0.291992f, -0.185059f, 0.277344f, -0.171875f,
+0.269287f, -0.150635f, 0.26123f, -0.129395f, 0.26123f, -0.0986328f, 0.26123f, 0.0615234f,
+0.26123f, 0.0952148f, 0.251465f, 0.122314f, 0.241699f, 0.149414f, 0.2229f, 0.168213f,
+0.204102f, 0.187012f, 0.17749f, 0.197266f, 0.150879f, 0.20752f, 0.117188f, 0.20752f,
+0.0209961f, 0.20752f, 0.416016f, -0.251953f, 0.379395f, -0.251953f, 0.343994f, -0.262207f,
+0.308594f, -0.272461f, 0.271973f, -0.285156f, 0.239746f, -0.296387f, 0.213135f, -0.302246f,
+0.186523f, -0.308105f, 0.164062f, -0.308105f, 0.14502f, -0.308105f, 0.128662f, -0.305176f,
+0.112305f, -0.302246f, 0.0974121f, -0.296631f, 0.0825195f, -0.291016f, 0.0683594f,
+-0.283203f, 0.0541992f, -0.275391f, 0.0395508f, -0.265137f, 0.0395508f, -0.369141f,
+0.0644531f, -0.387695f, 0.0976562f, -0.398926f, 0.130859f, -0.410156f, 0.171875f,
+-0.410156f, 0.191895f, -0.410156f, 0.211914f, -0.406982f, 0.231934f, -0.403809f,
+0.251465f, -0.398682f, 0.270996f, -0.393555f, 0.290039f, -0.386963f, 0.309082f, -0.380371f,
+0.327637f, -0.374023f, 0.349609f, -0.366211f, 0.375732f, -0.359619f, 0.401855f, -0.353027f,
+0.425293f, -0.353027f, 0.458496f, -0.353027f, 0.489746f, -0.365234f, 0.520996f, -0.377441f,
+0.546387f, -0.397949f, 0.546387f, -0.291016f, 0.530762f, -0.280273f, 0.515869f, -0.272705f,
+0.500977f, -0.265137f, 0.485596f, -0.260498f, 0.470215f, -0.255859f, 0.453125f, -0.253906f,
+0.436035f, -0.251953f, 0.416016f, -0.251953f
+};
+
+const unsigned char LiberationSansBoldVerbs[] = {
+6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+1, 1, 1, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+5, 0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1,
+1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6,
+0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSansBoldCharCodes[] = {
+0,
+32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+126
+};
+
+const SkFixed LiberationSansBoldWidths[] = {
+0x0000c000, 0x00004720, 0x00005540, 0x00007960, 0x00008e60, 0x00008e60, 0x0000e3a0,
+0x0000b8e0, 0x00003ce0, 0x00005540, 0x00005540, 0x000063a0, 0x00009580, 0x00004720,
+0x00005540, 0x00004720, 0x00004720, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60,
+0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00005540,
+0x00005540, 0x00009580, 0x00009580, 0x00009580, 0x00009c60, 0x0000f9a0, 0x0000b8e0,
+0x0000b8e0, 0x0000b8e0, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000c720, 0x0000b8e0,
+0x00004720, 0x00008e60, 0x0000b8e0, 0x00009c60, 0x0000d540, 0x0000b8e0, 0x0000c720,
+0x0000aac0, 0x0000c720, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000b8e0, 0x0000aac0,
+0x0000f1a0, 0x0000aac0, 0x0000aac0, 0x00009c60, 0x00005540, 0x00004720, 0x00005540,
+0x00009580, 0x00008e60, 0x00005540, 0x00008e60, 0x00009c60, 0x00008e60, 0x00009c60,
+0x00008e60, 0x00005540, 0x00009c60, 0x00009c60, 0x00004720, 0x00004720, 0x00008e60,
+0x00004720, 0x0000e3a0, 0x00009c60, 0x00009c60, 0x00009c60, 0x00009c60, 0x000063a0,
+0x00008e60, 0x00005540, 0x00009c60, 0x00008e60, 0x0000c720, 0x00008e60, 0x00008e60,
+0x00008000, 0x000063a0, 0x000047a0, 0x000063a0, 0x00009580
+};
+
+const int LiberationSansBoldCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSansBoldCharCodes);
+
+const SkPaint::FontMetrics LiberationSansBoldMetrics = {
+0x30307833, -1.0332f, -0.905273f, 0.211914f, 0.303223f, 0.0327148f, 1.24609f, 0.0194702f,
+-0.184082f, 1.06201f, 0.538086f, 0.0109024f, 0.10498f, 0.105957f
+};
+
+const SkScalar LiberationSansItalicPoints[] = {
+0.160645f, -0.193848f, 0.0883789f, -0.193848f, 0.172363f, -0.687988f, 0.268066f, -0.687988f,
+0.0375977f, 0, 0.0571289f, -0.0981445f, 0.151855f, -0.0981445f, 0.132324f, 0, 0.340332f,
+-0.47168f, 0.270996f, -0.47168f, 0.302246f, -0.687988f, 0.39209f, -0.687988f, 0.160156f,
+-0.47168f, 0.0913086f, -0.47168f, 0.12207f, -0.687988f, 0.211914f, -0.687988f, 0.452148f,
+-0.432129f, 0.414062f, -0.251953f, 0.541016f, -0.251953f, 0.541016f, -0.199219f,
+0.402832f, -0.199219f, 0.359863f, 0, 0.306152f, 0, 0.348145f, -0.199219f, 0.170898f,
+-0.199219f, 0.129883f, 0, 0.0761719f, 0, 0.117188f, -0.199219f, 0.019043f, -0.199219f,
+0.019043f, -0.251953f, 0.128906f, -0.251953f, 0.166992f, -0.432129f, 0.0439453f,
+-0.432129f, 0.0439453f, -0.484863f, 0.177734f, -0.484863f, 0.221191f, -0.684082f,
+0.274902f, -0.684082f, 0.231934f, -0.484863f, 0.40918f, -0.484863f, 0.452148f, -0.684082f,
+0.505859f, -0.684082f, 0.462891f, -0.484863f, 0.565918f, -0.484863f, 0.565918f, -0.432129f,
+0.222168f, -0.432129f, 0.183105f, -0.251953f, 0.359863f, -0.251953f, 0.397949f, -0.432129f,
+0.523438f, -0.20752f, 0.523438f, -0.162109f, 0.506104f, -0.126221f, 0.48877f, -0.090332f,
+0.455566f, -0.0651855f, 0.422363f, -0.0400391f, 0.374023f, -0.026123f, 0.325684f,
+-0.012207f, 0.263672f, -0.0102539f, 0.248535f, 0.0683594f, 0.241211f, 0.0683594f,
+0.240723f, 0.0688477f, 0.197754f, 0.0688477f, 0.198242f, 0.0683594f, 0.192871f, 0.0683594f,
+0.208496f, -0.0112305f, 0.110352f, -0.0180664f, 0.0588379f, -0.0620117f, 0.00732422f,
+-0.105957f, -0.00585938f, -0.183594f, 0.0737305f, -0.20166f, 0.0795898f, -0.174805f,
+0.0910645f, -0.153564f, 0.102539f, -0.132324f, 0.120361f, -0.117432f, 0.138184f,
+-0.102539f, 0.16333f, -0.0939941f, 0.188477f, -0.0854492f, 0.222168f, -0.0830078f,
+0.269043f, -0.32373f, 0.231934f, -0.333984f, 0.198975f, -0.346924f, 0.166016f, -0.359863f,
+0.141357f, -0.379639f, 0.116699f, -0.399414f, 0.102539f, -0.427734f, 0.0883789f,
+-0.456055f, 0.0883789f, -0.49707f, 0.0883789f, -0.54248f, 0.108887f, -0.575928f,
+0.129395f, -0.609375f, 0.163818f, -0.631592f, 0.198242f, -0.653809f, 0.243408f, -0.664795f,
+0.288574f, -0.675781f, 0.337402f, -0.67627f, 0.349609f, -0.740234f, 0.405273f, -0.740234f,
+0.39209f, -0.67334f, 0.432617f, -0.668457f, 0.463623f, -0.656006f, 0.494629f, -0.643555f,
+0.516602f, -0.624756f, 0.538574f, -0.605957f, 0.552002f, -0.582275f, 0.56543f, -0.558594f,
+0.571289f, -0.530762f, 0.495117f, -0.508789f, 0.484375f, -0.54834f, 0.455811f, -0.57251f,
+0.427246f, -0.59668f, 0.378906f, -0.603516f, 0.336914f, -0.388184f, 0.371582f, -0.378906f,
+0.405029f, -0.364746f, 0.438477f, -0.350586f, 0.464844f, -0.329346f, 0.491211f, -0.308105f,
+0.507324f, -0.27832f, 0.523438f, -0.248535f, 0.523438f, -0.20752f, 0.433105f, -0.20166f,
+0.433105f, -0.224609f, 0.425049f, -0.241211f, 0.416992f, -0.257812f, 0.402344f, -0.27002f,
+0.387695f, -0.282227f, 0.367188f, -0.291504f, 0.34668f, -0.300781f, 0.321777f, -0.308594f,
+0.277832f, -0.0825195f, 0.313477f, -0.0844727f, 0.342285f, -0.092041f, 0.371094f,
+-0.0996094f, 0.391113f, -0.114014f, 0.411133f, -0.128418f, 0.422119f, -0.149902f,
+0.433105f, -0.171387f, 0.433105f, -0.20166f, 0.177246f, -0.49707f, 0.177246f, -0.477539f,
+0.184326f, -0.463379f, 0.191406f, -0.449219f, 0.205078f, -0.438232f, 0.21875f, -0.427246f,
+0.23877f, -0.418945f, 0.258789f, -0.410645f, 0.28418f, -0.402832f, 0.32373f, -0.605469f,
+0.284668f, -0.604004f, 0.256836f, -0.595215f, 0.229004f, -0.586426f, 0.211426f, -0.572266f,
+0.193848f, -0.558105f, 0.185547f, -0.538818f, 0.177246f, -0.519531f, 0.177246f, -0.49707f,
+0.20752f, 0, 0.126953f, 0, 0.706055f, -0.687988f, 0.787598f, -0.687988f, 0.266113f,
+-0.693848f, 0.291992f, -0.693848f, 0.314941f, -0.686035f, 0.337891f, -0.678223f,
+0.355225f, -0.6604f, 0.372559f, -0.642578f, 0.382568f, -0.61377f, 0.392578f, -0.584961f,
+0.392578f, -0.543457f, 0.392578f, -0.525391f, 0.390381f, -0.502686f, 0.388184f, -0.47998f,
+0.383789f, -0.456543f, 0.37207f, -0.39502f, 0.350098f, -0.355957f, 0.328125f, -0.316895f,
+0.302246f, -0.294678f, 0.276367f, -0.272461f, 0.248779f, -0.26416f, 0.221191f, -0.255859f,
+0.198242f, -0.255859f, 0.171387f, -0.255859f, 0.148193f, -0.264648f, 0.125f, -0.273438f,
+0.10791f, -0.292236f, 0.0908203f, -0.311035f, 0.0810547f, -0.340332f, 0.0712891f,
+-0.369629f, 0.0712891f, -0.410645f, 0.0712891f, -0.428711f, 0.0732422f, -0.450928f,
+0.0751953f, -0.473145f, 0.0795898f, -0.495605f, 0.0922852f, -0.55957f, 0.11377f,
+-0.598633f, 0.135254f, -0.637695f, 0.161133f, -0.658936f, 0.187012f, -0.680176f,
+0.2146f, -0.687012f, 0.242188f, -0.693848f, 0.266113f, -0.693848f, 0.265625f, -0.641113f,
+0.247559f, -0.641113f, 0.230469f, -0.635498f, 0.213379f, -0.629883f, 0.198242f, -0.613525f,
+0.183105f, -0.597168f, 0.17041f, -0.567871f, 0.157715f, -0.538574f, 0.148438f, -0.490723f,
+0.138672f, -0.438965f, 0.138672f, -0.403809f, 0.138672f, -0.355957f, 0.154785f, -0.333496f,
+0.170898f, -0.311035f, 0.200195f, -0.311035f, 0.217285f, -0.311035f, 0.233643f, -0.317139f,
+0.25f, -0.323242f, 0.265137f, -0.339844f, 0.280273f, -0.356445f, 0.292969f, -0.385742f,
+0.305664f, -0.415039f, 0.314453f, -0.461426f, 0.324707f, -0.515625f, 0.324707f, -0.552246f,
+0.324707f, -0.599121f, 0.309326f, -0.620117f, 0.293945f, -0.641113f, 0.265625f, -0.641113f,
+0.719727f, -0.432129f, 0.745605f, -0.432129f, 0.768555f, -0.424316f, 0.791504f, -0.416504f,
+0.808838f, -0.398682f, 0.826172f, -0.380859f, 0.836182f, -0.352051f, 0.846191f, -0.323242f,
+0.846191f, -0.281738f, 0.846191f, -0.263672f, 0.843994f, -0.240967f, 0.841797f, -0.218262f,
+0.837402f, -0.194824f, 0.825684f, -0.133301f, 0.803711f, -0.0942383f, 0.781738f,
+-0.0551758f, 0.755859f, -0.032959f, 0.72998f, -0.0107422f, 0.702393f, -0.00244141f,
+0.674805f, 0.00585938f, 0.651855f, 0.00585938f, 0.625f, 0.00585938f, 0.601807f, -0.00292969f,
+0.578613f, -0.0117188f, 0.561523f, -0.0305176f, 0.544434f, -0.0493164f, 0.534668f,
+-0.0786133f, 0.524902f, -0.10791f, 0.524902f, -0.148926f, 0.524902f, -0.166992f,
+0.526855f, -0.189209f, 0.528809f, -0.211426f, 0.533203f, -0.233887f, 0.545898f, -0.297852f,
+0.567383f, -0.336914f, 0.588867f, -0.375977f, 0.614746f, -0.397217f, 0.640625f, -0.418457f,
+0.668213f, -0.425293f, 0.695801f, -0.432129f, 0.719727f, -0.432129f, 0.719238f, -0.379395f,
+0.701172f, -0.379395f, 0.684082f, -0.373779f, 0.666992f, -0.368164f, 0.651855f, -0.351807f,
+0.636719f, -0.335449f, 0.624023f, -0.306152f, 0.611328f, -0.276855f, 0.602051f, -0.229004f,
+0.592285f, -0.177246f, 0.592285f, -0.14209f, 0.592285f, -0.0942383f, 0.608398f, -0.0717773f,
+0.624512f, -0.0493164f, 0.653809f, -0.0493164f, 0.670898f, -0.0493164f, 0.687256f,
+-0.0554199f, 0.703613f, -0.0615234f, 0.71875f, -0.078125f, 0.733887f, -0.0947266f,
+0.746582f, -0.124023f, 0.759277f, -0.15332f, 0.768066f, -0.199707f, 0.77832f, -0.253906f,
+0.77832f, -0.290527f, 0.77832f, -0.337402f, 0.762939f, -0.358398f, 0.747559f, -0.379395f,
+0.719238f, -0.379395f, 0.609375f, -0.333984f, 0.596191f, -0.304199f, 0.581055f, -0.273682f,
+0.565918f, -0.243164f, 0.548584f, -0.213135f, 0.53125f, -0.183105f, 0.510986f, -0.154785f,
+0.490723f, -0.126465f, 0.467285f, -0.101562f, 0.486816f, -0.0830078f, 0.511475f,
+-0.072998f, 0.536133f, -0.0629883f, 0.558594f, -0.0629883f, 0.574219f, -0.0629883f,
+0.58667f, -0.0646973f, 0.599121f, -0.0664062f, 0.613281f, -0.0708008f, 0.606934f,
+-0.00488281f, 0.592285f, 0.000488281f, 0.578369f, 0.00317383f, 0.564453f, 0.00585938f,
+0.545898f, 0.00585938f, 0.509766f, 0.00585938f, 0.476074f, -0.00952148f, 0.442383f,
+-0.0249023f, 0.413574f, -0.0537109f, 0.373535f, -0.0244141f, 0.324707f, -0.00732422f,
+0.275879f, 0.00976562f, 0.214844f, 0.00976562f, 0.163086f, 0.00976562f, 0.125732f,
+-0.00488281f, 0.0883789f, -0.0195312f, 0.0639648f, -0.0444336f, 0.0395508f, -0.0693359f,
+0.027832f, -0.102295f, 0.0161133f, -0.135254f, 0.0161133f, -0.171387f, 0.0161133f,
+-0.215332f, 0.0297852f, -0.248291f, 0.043457f, -0.28125f, 0.0700684f, -0.306885f,
+0.0966797f, -0.33252f, 0.135742f, -0.353271f, 0.174805f, -0.374023f, 0.225586f, -0.393555f,
+0.219727f, -0.418457f, 0.21582f, -0.446777f, 0.211914f, -0.475098f, 0.211914f, -0.505859f,
+0.211914f, -0.546387f, 0.225098f, -0.580566f, 0.238281f, -0.614746f, 0.263184f, -0.639404f,
+0.288086f, -0.664062f, 0.324463f, -0.677979f, 0.36084f, -0.691895f, 0.406738f, -0.691895f,
+0.44043f, -0.691895f, 0.468506f, -0.682617f, 0.496582f, -0.67334f, 0.516602f, -0.656494f,
+0.536621f, -0.639648f, 0.547607f, -0.616211f, 0.558594f, -0.592773f, 0.558594f, -0.563965f,
+0.558594f, -0.534668f, 0.549072f, -0.511719f, 0.539551f, -0.48877f, 0.522949f, -0.469971f,
+0.506348f, -0.451172f, 0.483398f, -0.436035f, 0.460449f, -0.420898f, 0.43335f, -0.407715f,
+0.40625f, -0.394531f, 0.376221f, -0.382568f, 0.346191f, -0.370605f, 0.31543f, -0.358398f,
+0.324219f, -0.33252f, 0.334717f, -0.307373f, 0.345215f, -0.282227f, 0.35791f, -0.25708f,
+0.370605f, -0.231934f, 0.386475f, -0.206299f, 0.402344f, -0.180664f, 0.421875f, -0.153809f,
+0.441406f, -0.17627f, 0.458496f, -0.201416f, 0.475586f, -0.226562f, 0.490723f, -0.253174f,
+0.505859f, -0.279785f, 0.519287f, -0.307129f, 0.532715f, -0.334473f, 0.544922f, -0.36084f,
+0.220703f, -0.0541992f, 0.26416f, -0.0541992f, 0.300293f, -0.0673828f, 0.336426f,
+-0.0805664f, 0.367676f, -0.103516f, 0.34668f, -0.129395f, 0.328369f, -0.158203f,
+0.310059f, -0.187012f, 0.294434f, -0.216553f, 0.278809f, -0.246094f, 0.266357f, -0.275146f,
+0.253906f, -0.304199f, 0.245117f, -0.32959f, 0.210449f, -0.315918f, 0.18335f, -0.30127f,
+0.15625f, -0.286621f, 0.137451f, -0.268555f, 0.118652f, -0.250488f, 0.108887f, -0.227295f,
+0.0991211f, -0.204102f, 0.0991211f, -0.172852f, 0.0991211f, -0.146484f, 0.107422f,
+-0.124756f, 0.115723f, -0.103027f, 0.131348f, -0.0874023f, 0.146973f, -0.0717773f,
+0.169434f, -0.0629883f, 0.191895f, -0.0541992f, 0.220703f, -0.0541992f, 0.289062f,
+-0.508301f, 0.289062f, -0.486328f, 0.291748f, -0.464111f, 0.294434f, -0.441895f,
+0.29834f, -0.421387f, 0.336914f, -0.435547f, 0.370605f, -0.448242f, 0.404297f, -0.460938f,
+0.429443f, -0.476562f, 0.45459f, -0.492188f, 0.468994f, -0.512207f, 0.483398f, -0.532227f,
+0.483398f, -0.560547f, 0.483398f, -0.57666f, 0.477539f, -0.589844f, 0.47168f, -0.603027f,
+0.461182f, -0.612549f, 0.450684f, -0.62207f, 0.436035f, -0.627441f, 0.421387f, -0.632812f,
+0.40332f, -0.632812f, 0.37793f, -0.632812f, 0.356689f, -0.625f, 0.335449f, -0.617188f,
+0.320557f, -0.601562f, 0.305664f, -0.585938f, 0.297363f, -0.562744f, 0.289062f, -0.539551f,
+0.289062f, -0.508301f, 0.16748f, -0.47168f, 0.0986328f, -0.47168f, 0.129395f, -0.687988f,
+0.219238f, -0.687988f, 0.41748f, -0.724609f, 0.278809f, -0.602539f, 0.207031f, -0.45459f,
+0.135254f, -0.306641f, 0.135254f, -0.12793f, 0.135254f, -0.0351562f, 0.159912f, 0.0488281f,
+0.18457f, 0.132812f, 0.236328f, 0.207031f, 0.151367f, 0.207031f, 0.0976562f, 0.132812f,
+0.0722656f, 0.0461426f, 0.046875f, -0.0405273f, 0.046875f, -0.135742f, 0.046875f,
+-0.224121f, 0.0646973f, -0.306641f, 0.0825195f, -0.38916f, 0.118408f, -0.463623f,
+0.154297f, -0.538086f, 0.207764f, -0.60376f, 0.26123f, -0.669434f, 0.33252f, -0.724609f,
+-0.097168f, 0.207031f, 0.0415039f, 0.0849609f, 0.113281f, -0.0629883f, 0.185059f,
+-0.210938f, 0.185059f, -0.389648f, 0.185059f, -0.482422f, 0.1604f, -0.566406f, 0.135742f,
+-0.650391f, 0.0839844f, -0.724609f, 0.168945f, -0.724609f, 0.222656f, -0.650391f,
+0.248047f, -0.563721f, 0.273438f, -0.477051f, 0.273438f, -0.381836f, 0.273438f, -0.293457f,
+0.255615f, -0.210938f, 0.237793f, -0.128418f, 0.201904f, -0.0539551f, 0.166016f,
+0.0205078f, 0.112549f, 0.0861816f, 0.059082f, 0.151855f, -0.012207f, 0.207031f, 0.265137f,
+-0.543945f, 0.394043f, -0.594238f, 0.416016f, -0.529785f, 0.27832f, -0.494141f, 0.368652f,
+-0.37207f, 0.310547f, -0.336914f, 0.237305f, -0.462891f, 0.161133f, -0.337891f, 0.103027f,
+-0.373047f, 0.195312f, -0.494141f, 0.0585938f, -0.529785f, 0.0805664f, -0.595215f,
+0.210938f, -0.542969f, 0.205078f, -0.687988f, 0.271484f, -0.687988f, 0.342285f, -0.296875f,
+0.342285f, -0.0878906f, 0.270508f, -0.0878906f, 0.270508f, -0.296875f, 0.0634766f,
+-0.296875f, 0.0634766f, -0.368164f, 0.270508f, -0.368164f, 0.270508f, -0.577148f,
+0.342285f, -0.577148f, 0.342285f, -0.368164f, 0.549316f, -0.368164f, 0.549316f, -0.296875f,
+0.145996f, -0.0249023f, 0.141113f, 0.000976562f, 0.134521f, 0.0222168f, 0.12793f,
+0.043457f, 0.119629f, 0.0617676f, 0.111328f, 0.0800781f, 0.101074f, 0.0961914f, 0.0908203f,
+0.112305f, 0.078125f, 0.12793f, 0.0180664f, 0.12793f, 0.0458984f, 0.0961914f, 0.064209f,
+0.0639648f, 0.0825195f, 0.0317383f, 0.0888672f, 0, 0.0458984f, 0, 0.0664062f, -0.106934f,
+0.161621f, -0.106934f, 0.0512695f, -0.226562f, 0.0664062f, -0.304688f, 0.310547f,
+-0.304688f, 0.29541f, -0.226562f, 0.0390625f, 0, 0.0600586f, -0.106934f, 0.155273f,
+-0.106934f, 0.134277f, 0, -0.0566406f, 0.00976562f, 0.286621f, -0.724609f, 0.36377f,
+-0.724609f, 0.0219727f, 0.00976562f, 0.357422f, -0.698242f, 0.396973f, -0.698242f,
+0.431885f, -0.684814f, 0.466797f, -0.671387f, 0.492432f, -0.643555f, 0.518066f, -0.615723f,
+0.532959f, -0.572754f, 0.547852f, -0.529785f, 0.547852f, -0.470703f, 0.547852f, -0.439941f,
+0.545166f, -0.402588f, 0.54248f, -0.365234f, 0.53418f, -0.324707f, 0.514648f, -0.225586f,
+0.482422f, -0.160889f, 0.450195f, -0.0961914f, 0.409912f, -0.0583496f, 0.369629f,
+-0.0205078f, 0.323975f, -0.00537109f, 0.27832f, 0.00976562f, 0.232422f, 0.00976562f,
+0.191895f, 0.00976562f, 0.157227f, -0.00488281f, 0.122559f, -0.0195312f, 0.0974121f,
+-0.0488281f, 0.0722656f, -0.078125f, 0.0578613f, -0.122559f, 0.043457f, -0.166992f,
+0.043457f, -0.227051f, 0.043457f, -0.243164f, 0.0439453f, -0.258545f, 0.0444336f,
+-0.273926f, 0.0458984f, -0.290039f, 0.0473633f, -0.306152f, 0.0498047f, -0.324219f,
+0.0522461f, -0.342285f, 0.0561523f, -0.36377f, 0.0693359f, -0.433105f, 0.0888672f,
+-0.484619f, 0.108398f, -0.536133f, 0.131836f, -0.573486f, 0.155273f, -0.61084f, 0.182617f,
+-0.63501f, 0.209961f, -0.65918f, 0.23877f, -0.673096f, 0.267578f, -0.687012f, 0.297852f,
+-0.692627f, 0.328125f, -0.698242f, 0.357422f, -0.698242f, 0.239746f, -0.0620117f,
+0.276855f, -0.0620117f, 0.308105f, -0.0751953f, 0.339355f, -0.0883789f, 0.365479f,
+-0.119873f, 0.391602f, -0.151367f, 0.412109f, -0.203613f, 0.432617f, -0.255859f,
+0.447754f, -0.334473f, 0.456055f, -0.375977f, 0.459229f, -0.411133f, 0.462402f, -0.446289f,
+0.462402f, -0.475098f, 0.462402f, -0.550781f, 0.43335f, -0.588867f, 0.404297f, -0.626953f,
+0.351562f, -0.626953f, 0.314453f, -0.626953f, 0.283203f, -0.61377f, 0.251953f, -0.600586f,
+0.22583f, -0.569092f, 0.199707f, -0.537598f, 0.179199f, -0.485352f, 0.158691f, -0.433105f,
+0.143555f, -0.354492f, 0.135254f, -0.312988f, 0.13208f, -0.277832f, 0.128906f, -0.242676f,
+0.128906f, -0.213867f, 0.128906f, -0.138184f, 0.157959f, -0.100098f, 0.187012f, -0.0620117f,
+0.239746f, -0.0620117f, 0.0258789f, 0, 0.0405273f, -0.074707f, 0.21582f, -0.074707f,
+0.317383f, -0.597168f, 0.141113f, -0.488281f, 0.158203f, -0.576172f, 0.342285f, -0.687988f,
+0.42334f, -0.687988f, 0.304199f, -0.074707f, 0.47168f, -0.074707f, 0.457031f, 0,
+-0.00585938f, 0, 0.00585938f, -0.0620117f, 0.0327148f, -0.107422f, 0.065918f, -0.143066f,
+0.0991211f, -0.178711f, 0.135254f, -0.207764f, 0.171387f, -0.236816f, 0.20874f, -0.260742f,
+0.246094f, -0.284668f, 0.281006f, -0.306885f, 0.315918f, -0.329102f, 0.346436f, -0.351074f,
+0.376953f, -0.373047f, 0.399902f, -0.397949f, 0.422852f, -0.422852f, 0.436035f, -0.452393f,
+0.449219f, -0.481934f, 0.449219f, -0.519043f, 0.449219f, -0.543945f, 0.440918f, -0.563721f,
+0.432617f, -0.583496f, 0.417725f, -0.597412f, 0.402832f, -0.611328f, 0.38208f, -0.618652f,
+0.361328f, -0.625977f, 0.336426f, -0.625977f, 0.283203f, -0.625977f, 0.243652f, -0.596924f,
+0.204102f, -0.567871f, 0.186035f, -0.509766f, 0.103027f, -0.527832f, 0.114746f, -0.564941f,
+0.134766f, -0.596191f, 0.154785f, -0.627441f, 0.184082f, -0.650146f, 0.213379f, -0.672852f,
+0.252686f, -0.685547f, 0.291992f, -0.698242f, 0.341797f, -0.698242f, 0.385254f, -0.698242f,
+0.421875f, -0.686035f, 0.458496f, -0.673828f, 0.485107f, -0.651123f, 0.511719f, -0.628418f,
+0.526611f, -0.596924f, 0.541504f, -0.56543f, 0.541504f, -0.526367f, 0.541504f, -0.484863f,
+0.5271f, -0.449707f, 0.512695f, -0.414551f, 0.488281f, -0.384521f, 0.463867f, -0.354492f,
+0.431641f, -0.328125f, 0.399414f, -0.301758f, 0.36377f, -0.277344f, 0.328125f, -0.25293f,
+0.291016f, -0.229492f, 0.253906f, -0.206055f, 0.219727f, -0.181641f, 0.185547f, -0.157227f,
+0.156738f, -0.131104f, 0.12793f, -0.10498f, 0.108398f, -0.074707f, 0.463379f, -0.074707f,
+0.449219f, 0, 0.276367f, -0.388184f, 0.293945f, -0.388184f, 0.314209f, -0.390137f,
+0.334473f, -0.39209f, 0.354248f, -0.397217f, 0.374023f, -0.402344f, 0.39209f, -0.412109f,
+0.410156f, -0.421875f, 0.423828f, -0.437256f, 0.4375f, -0.452637f, 0.445801f, -0.474854f,
+0.454102f, -0.49707f, 0.454102f, -0.527832f, 0.454102f, -0.549316f, 0.447021f, -0.567383f,
+0.439941f, -0.585449f, 0.426025f, -0.598389f, 0.412109f, -0.611328f, 0.39209f, -0.618652f,
+0.37207f, -0.625977f, 0.345703f, -0.625977f, 0.287598f, -0.625977f, 0.24585f, -0.596191f,
+0.204102f, -0.566406f, 0.1875f, -0.512207f, 0.100586f, -0.519043f, 0.128906f, -0.609863f,
+0.194092f, -0.654053f, 0.259277f, -0.698242f, 0.350586f, -0.698242f, 0.395996f, -0.698242f,
+0.432373f, -0.686768f, 0.46875f, -0.675293f, 0.494385f, -0.653564f, 0.52002f, -0.631836f,
+0.533691f, -0.60083f, 0.547363f, -0.569824f, 0.547363f, -0.530273f, 0.547363f, -0.492188f,
+0.534912f, -0.461182f, 0.522461f, -0.430176f, 0.499023f, -0.407227f, 0.475586f, -0.384277f,
+0.442383f, -0.369873f, 0.40918f, -0.355469f, 0.367676f, -0.350098f, 0.367188f, -0.348145f,
+0.431152f, -0.335449f, 0.466797f, -0.297119f, 0.502441f, -0.258789f, 0.502441f, -0.19873f,
+0.502441f, -0.15625f, 0.487061f, -0.118164f, 0.47168f, -0.0800781f, 0.441162f, -0.0517578f,
+0.410645f, -0.0234375f, 0.364502f, -0.00683594f, 0.318359f, 0.00976562f, 0.256836f,
+0.00976562f, 0.201172f, 0.00976562f, 0.160156f, -0.00610352f, 0.119141f, -0.0219727f,
+0.0910645f, -0.0473633f, 0.0629883f, -0.0727539f, 0.0466309f, -0.10376f, 0.0302734f,
+-0.134766f, 0.0234375f, -0.165039f, 0.103516f, -0.188477f, 0.109375f, -0.166016f,
+0.121826f, -0.143799f, 0.134277f, -0.121582f, 0.154053f, -0.103516f, 0.173828f, -0.0854492f,
+0.201172f, -0.0742188f, 0.228516f, -0.0629883f, 0.26416f, -0.0629883f, 0.300293f,
+-0.0629883f, 0.327637f, -0.072998f, 0.35498f, -0.0830078f, 0.373291f, -0.10083f,
+0.391602f, -0.118652f, 0.401123f, -0.143311f, 0.410645f, -0.167969f, 0.410645f, -0.197266f,
+0.410645f, -0.226562f, 0.400391f, -0.248047f, 0.390137f, -0.269531f, 0.371826f, -0.283691f,
+0.353516f, -0.297852f, 0.328613f, -0.304932f, 0.303711f, -0.312012f, 0.274414f, -0.312012f,
+0.213867f, -0.312012f, 0.228516f, -0.388184f, 0.413086f, -0.155762f, 0.382812f, 0,
+0.294922f, 0, 0.325195f, -0.155762f, 0.00634766f, -0.155762f, 0.0195312f, -0.224121f,
+0.419434f, -0.687988f, 0.516602f, -0.687988f, 0.426758f, -0.225098f, 0.518555f, -0.225098f,
+0.504883f, -0.155762f, 0.40332f, -0.564941f, 0.11084f, -0.225098f, 0.338867f, -0.225098f,
+0.16748f, -0.687988f, 0.558594f, -0.687988f, 0.544434f, -0.613281f, 0.233398f, -0.613281f,
+0.177734f, -0.39502f, 0.187012f, -0.402832f, 0.200195f, -0.410645f, 0.213379f, -0.418457f,
+0.230469f, -0.424805f, 0.247559f, -0.431152f, 0.268311f, -0.435059f, 0.289062f, -0.438965f,
+0.312988f, -0.438965f, 0.356445f, -0.438965f, 0.393066f, -0.426025f, 0.429688f, -0.413086f,
+0.456543f, -0.388428f, 0.483398f, -0.36377f, 0.498291f, -0.328125f, 0.513184f, -0.29248f,
+0.513184f, -0.24707f, 0.513184f, -0.188965f, 0.49585f, -0.141602f, 0.478516f, -0.0942383f,
+0.444824f, -0.0605469f, 0.411133f, -0.0268555f, 0.361328f, -0.00854492f, 0.311523f,
+0.00976562f, 0.246582f, 0.00976562f, 0.194824f, 0.00976562f, 0.156738f, -0.00244141f,
+0.118652f, -0.0146484f, 0.092041f, -0.0361328f, 0.0654297f, -0.0576172f, 0.048584f,
+-0.0869141f, 0.0317383f, -0.116211f, 0.0224609f, -0.150879f, 0.102051f, -0.171875f,
+0.107422f, -0.152344f, 0.117676f, -0.132568f, 0.12793f, -0.112793f, 0.145508f, -0.097168f,
+0.163086f, -0.081543f, 0.189209f, -0.0717773f, 0.215332f, -0.0620117f, 0.251465f,
+-0.0620117f, 0.289551f, -0.0620117f, 0.320801f, -0.0727539f, 0.352051f, -0.0834961f,
+0.374268f, -0.105469f, 0.396484f, -0.127441f, 0.408447f, -0.1604f, 0.42041f, -0.193359f,
+0.42041f, -0.237305f, 0.42041f, -0.27002f, 0.4104f, -0.294434f, 0.400391f, -0.318848f,
+0.383545f, -0.334961f, 0.366699f, -0.351074f, 0.343994f, -0.359131f, 0.321289f, -0.367188f,
+0.296387f, -0.367188f, 0.249512f, -0.367188f, 0.216797f, -0.353271f, 0.184082f, -0.339355f,
+0.158691f, -0.317871f, 0.0727539f, -0.317871f, 0.260742f, 0.00976562f, 0.212402f,
+0.00976562f, 0.174316f, -0.0078125f, 0.13623f, -0.0253906f, 0.110107f, -0.0568848f,
+0.0839844f, -0.0883789f, 0.0700684f, -0.131836f, 0.0561523f, -0.175293f, 0.0561523f,
+-0.226562f, 0.0561523f, -0.253418f, 0.0588379f, -0.285889f, 0.0615234f, -0.318359f,
+0.0673828f, -0.349121f, 0.0854492f, -0.440918f, 0.116211f, -0.50708f, 0.146973f,
+-0.573242f, 0.187012f, -0.615723f, 0.227051f, -0.658203f, 0.27417f, -0.678223f, 0.321289f,
+-0.698242f, 0.371582f, -0.698242f, 0.404785f, -0.698242f, 0.434082f, -0.690674f,
+0.463379f, -0.683105f, 0.487549f, -0.666504f, 0.511719f, -0.649902f, 0.529297f, -0.624268f,
+0.546875f, -0.598633f, 0.556152f, -0.562012f, 0.475098f, -0.544434f, 0.462891f, -0.583984f,
+0.435059f, -0.605469f, 0.407227f, -0.626953f, 0.367676f, -0.626953f, 0.32959f, -0.626953f,
+0.295654f, -0.609863f, 0.261719f, -0.592773f, 0.233887f, -0.558594f, 0.206055f, -0.524414f,
+0.18457f, -0.473389f, 0.163086f, -0.422363f, 0.149902f, -0.354492f, 0.179199f, -0.398438f,
+0.223877f, -0.421631f, 0.268555f, -0.444824f, 0.32373f, -0.444824f, 0.364258f, -0.444824f,
+0.398682f, -0.431885f, 0.433105f, -0.418945f, 0.458008f, -0.394775f, 0.48291f, -0.370605f,
+0.49707f, -0.336426f, 0.51123f, -0.302246f, 0.51123f, -0.260254f, 0.51123f, -0.206055f,
+0.493652f, -0.157227f, 0.476074f, -0.108398f, 0.443604f, -0.0712891f, 0.411133f,
+-0.0341797f, 0.364746f, -0.012207f, 0.318359f, 0.00976562f, 0.260742f, 0.00976562f,
+0.140625f, -0.205566f, 0.140625f, -0.175781f, 0.148682f, -0.149414f, 0.156738f, -0.123047f,
+0.172363f, -0.103271f, 0.187988f, -0.0834961f, 0.210693f, -0.0722656f, 0.233398f,
+-0.0610352f, 0.262695f, -0.0610352f, 0.297363f, -0.0610352f, 0.326416f, -0.0759277f,
+0.355469f, -0.0908203f, 0.376465f, -0.116943f, 0.397461f, -0.143066f, 0.408936f,
+-0.178467f, 0.42041f, -0.213867f, 0.42041f, -0.254883f, 0.42041f, -0.311035f, 0.391357f,
+-0.343994f, 0.362305f, -0.376953f, 0.307617f, -0.376953f, 0.28125f, -0.376953f, 0.251709f,
+-0.36792f, 0.222168f, -0.358887f, 0.19751f, -0.338623f, 0.172852f, -0.318359f, 0.156738f,
+-0.285645f, 0.140625f, -0.25293f, 0.140625f, -0.205566f, 0.573242f, -0.616699f, 0.52832f,
+-0.563965f, 0.487549f, -0.515381f, 0.446777f, -0.466797f, 0.410889f, -0.419434f,
+0.375f, -0.37207f, 0.343994f, -0.324219f, 0.312988f, -0.276367f, 0.287842f, -0.225342f,
+0.262695f, -0.174316f, 0.243652f, -0.118652f, 0.224609f, -0.0629883f, 0.212402f,
+0, 0.120605f, 0, 0.13916f, -0.0932617f, 0.174316f, -0.173828f, 0.209473f, -0.254395f,
+0.256592f, -0.328125f, 0.303711f, -0.401855f, 0.361084f, -0.47168f, 0.418457f, -0.541504f,
+0.481445f, -0.613281f, 0.103516f, -0.613281f, 0.117676f, -0.687988f, 0.586914f, -0.687988f,
+0.34375f, -0.697754f, 0.390625f, -0.697754f, 0.428711f, -0.686035f, 0.466797f, -0.674316f,
+0.493896f, -0.652832f, 0.520996f, -0.631348f, 0.535645f, -0.60083f, 0.550293f, -0.570312f,
+0.550293f, -0.532715f, 0.550293f, -0.499023f, 0.539307f, -0.469238f, 0.52832f, -0.439453f,
+0.508057f, -0.416504f, 0.487793f, -0.393555f, 0.458984f, -0.378418f, 0.430176f, -0.363281f,
+0.394043f, -0.35791f, 0.393555f, -0.355957f, 0.417969f, -0.348633f, 0.438477f, -0.335938f,
+0.458984f, -0.323242f, 0.473633f, -0.304932f, 0.488281f, -0.286621f, 0.496338f, -0.263184f,
+0.504395f, -0.239746f, 0.504395f, -0.210938f, 0.504395f, -0.163574f, 0.488037f, -0.123291f,
+0.47168f, -0.0830078f, 0.439209f, -0.0534668f, 0.406738f, -0.0239258f, 0.35791f,
+-0.00708008f, 0.309082f, 0.00976562f, 0.244141f, 0.00976562f, 0.188477f, 0.00976562f,
+0.147461f, -0.00415039f, 0.106445f, -0.0180664f, 0.0795898f, -0.0429688f, 0.0527344f,
+-0.0678711f, 0.0395508f, -0.101807f, 0.0263672f, -0.135742f, 0.0263672f, -0.175781f,
+0.0263672f, -0.223145f, 0.0427246f, -0.256836f, 0.059082f, -0.290527f, 0.0844727f,
+-0.313477f, 0.109863f, -0.336426f, 0.140869f, -0.349609f, 0.171875f, -0.362793f,
+0.200684f, -0.369141f, 0.200684f, -0.371094f, 0.15625f, -0.389648f, 0.131836f, -0.426514f,
+0.107422f, -0.463379f, 0.107422f, -0.513672f, 0.107422f, -0.556152f, 0.123535f, -0.590332f,
+0.139648f, -0.624512f, 0.169922f, -0.648193f, 0.200195f, -0.671875f, 0.244141f, -0.684814f,
+0.288086f, -0.697754f, 0.34375f, -0.697754f, 0.321289f, -0.395996f, 0.36377f, -0.395996f,
+0.390625f, -0.408936f, 0.41748f, -0.421875f, 0.432861f, -0.44165f, 0.448242f, -0.461426f,
+0.453857f, -0.485107f, 0.459473f, -0.508789f, 0.459473f, -0.530762f, 0.459473f, -0.578613f,
+0.42749f, -0.605225f, 0.395508f, -0.631836f, 0.333496f, -0.631836f, 0.303711f, -0.631836f,
+0.27832f, -0.624268f, 0.25293f, -0.616699f, 0.234375f, -0.601074f, 0.21582f, -0.585449f,
+0.205566f, -0.561523f, 0.195312f, -0.537598f, 0.195312f, -0.504395f, 0.195312f, -0.484863f,
+0.20166f, -0.465576f, 0.208008f, -0.446289f, 0.222656f, -0.430908f, 0.237305f, -0.415527f,
+0.261475f, -0.405762f, 0.285645f, -0.395996f, 0.321289f, -0.395996f, 0.276367f, -0.328125f,
+0.236328f, -0.328125f, 0.206299f, -0.316895f, 0.17627f, -0.305664f, 0.156494f, -0.2854f,
+0.136719f, -0.265137f, 0.126709f, -0.236816f, 0.116699f, -0.208496f, 0.116699f, -0.173828f,
+0.116699f, -0.148926f, 0.125f, -0.127441f, 0.133301f, -0.105957f, 0.150146f, -0.090332f,
+0.166992f, -0.074707f, 0.192627f, -0.065918f, 0.218262f, -0.0571289f, 0.253418f,
+-0.0571289f, 0.287109f, -0.0571289f, 0.316406f, -0.0671387f, 0.345703f, -0.0771484f,
+0.367676f, -0.0966797f, 0.389648f, -0.116211f, 0.402344f, -0.145264f, 0.415039f,
+-0.174316f, 0.415039f, -0.212891f, 0.415039f, -0.234375f, 0.407715f, -0.255127f,
+0.400391f, -0.275879f, 0.384033f, -0.291992f, 0.367676f, -0.308105f, 0.341064f, -0.318115f,
+0.314453f, -0.328125f, 0.276367f, -0.328125f, 0.438477f, -0.333984f, 0.408203f, -0.288086f,
+0.366943f, -0.261475f, 0.325684f, -0.234863f, 0.272949f, -0.234863f, 0.225586f, -0.234863f,
+0.189453f, -0.250977f, 0.15332f, -0.26709f, 0.128906f, -0.293945f, 0.104492f, -0.320801f,
+0.092041f, -0.356201f, 0.0795898f, -0.391602f, 0.0795898f, -0.430176f, 0.0795898f,
+-0.485352f, 0.0976562f, -0.53418f, 0.115723f, -0.583008f, 0.148926f, -0.619385f,
+0.182129f, -0.655762f, 0.22876f, -0.677002f, 0.275391f, -0.698242f, 0.333008f, -0.698242f,
+0.379395f, -0.698242f, 0.416748f, -0.683105f, 0.454102f, -0.667969f, 0.480469f, -0.638428f,
+0.506836f, -0.608887f, 0.52124f, -0.565918f, 0.535645f, -0.522949f, 0.535645f, -0.467285f,
+0.535645f, -0.454102f, 0.534668f, -0.4375f, 0.533691f, -0.420898f, 0.531982f, -0.403076f,
+0.530273f, -0.385254f, 0.527832f, -0.366699f, 0.525391f, -0.348145f, 0.521973f, -0.331543f,
+0.503906f, -0.239746f, 0.472656f, -0.174805f, 0.441406f, -0.109863f, 0.401611f, -0.0688477f,
+0.361816f, -0.027832f, 0.31543f, -0.0090332f, 0.269043f, 0.00976562f, 0.221191f,
+0.00976562f, 0.142578f, 0.00976562f, 0.097168f, -0.0253906f, 0.0517578f, -0.0605469f,
+0.0341797f, -0.125488f, 0.111328f, -0.147461f, 0.123047f, -0.105957f, 0.151855f,
+-0.0834961f, 0.180664f, -0.0610352f, 0.225098f, -0.0610352f, 0.26416f, -0.0610352f,
+0.297119f, -0.0791016f, 0.330078f, -0.097168f, 0.356934f, -0.13208f, 0.383789f, -0.166992f,
+0.404297f, -0.217773f, 0.424805f, -0.268555f, 0.438477f, -0.333984f, 0.45166f, -0.496582f,
+0.45166f, -0.524902f, 0.443359f, -0.548828f, 0.435059f, -0.572754f, 0.419189f, -0.590088f,
+0.40332f, -0.607422f, 0.381104f, -0.617188f, 0.358887f, -0.626953f, 0.331055f, -0.626953f,
+0.295898f, -0.626953f, 0.266113f, -0.613525f, 0.236328f, -0.600098f, 0.2146f, -0.574951f,
+0.192871f, -0.549805f, 0.180908f, -0.512939f, 0.168945f, -0.476074f, 0.168945f, -0.429199f,
+0.168945f, -0.398438f, 0.177246f, -0.375f, 0.185547f, -0.351562f, 0.200684f, -0.335938f,
+0.21582f, -0.320312f, 0.236816f, -0.312256f, 0.257812f, -0.304199f, 0.283203f, -0.304199f,
+0.307617f, -0.304199f, 0.333496f, -0.3125f, 0.359375f, -0.320801f, 0.38208f, -0.337891f,
+0.404785f, -0.35498f, 0.422119f, -0.381104f, 0.439453f, -0.407227f, 0.446289f, -0.442871f,
+0.45166f, -0.472656f, 0.45166f, -0.496582f, 0.122559f, -0.427246f, 0.142578f, -0.52832f,
+0.237793f, -0.52832f, 0.217773f, -0.427246f, 0.0395508f, 0, 0.0595703f, -0.101074f,
+0.154785f, -0.101074f, 0.134766f, 0, 0.146484f, -0.0249023f, 0.141602f, 0.000976562f,
+0.13501f, 0.0222168f, 0.128418f, 0.043457f, 0.120117f, 0.0617676f, 0.111816f, 0.0800781f,
+0.101562f, 0.0961914f, 0.0913086f, 0.112305f, 0.0786133f, 0.12793f, 0.0185547f, 0.12793f,
+0.0463867f, 0.0961914f, 0.0646973f, 0.0639648f, 0.0830078f, 0.0317383f, 0.0893555f,
+0, 0.0463867f, 0, 0.065918f, -0.101074f, 0.161133f, -0.101074f, 0.129395f, -0.427246f,
+0.148926f, -0.52832f, 0.244141f, -0.52832f, 0.224609f, -0.427246f, 0.0639648f, -0.278809f,
+0.0639648f, -0.378906f, 0.549805f, -0.583008f, 0.549805f, -0.507812f, 0.130859f,
+-0.329102f, 0.549805f, -0.149902f, 0.549805f, -0.0751953f, 0.0634766f, -0.417969f,
+0.0634766f, -0.490234f, 0.549316f, -0.490234f, 0.549316f, -0.417969f, 0.0634766f,
+-0.167969f, 0.0634766f, -0.240234f, 0.549316f, -0.240234f, 0.549316f, -0.167969f,
+0.0639648f, -0.0751953f, 0.0639648f, -0.149902f, 0.48291f, -0.329102f, 0.0639648f,
+-0.507812f, 0.0639648f, -0.583008f, 0.549805f, -0.378906f, 0.549805f, -0.278809f,
+0.342285f, -0.698242f, 0.391602f, -0.698242f, 0.430664f, -0.685059f, 0.469727f, -0.671875f,
+0.496826f, -0.648438f, 0.523926f, -0.625f, 0.538574f, -0.593262f, 0.553223f, -0.561523f,
+0.553223f, -0.523926f, 0.553223f, -0.476562f, 0.53833f, -0.443115f, 0.523438f, -0.409668f,
+0.499756f, -0.38501f, 0.476074f, -0.360352f, 0.446533f, -0.342285f, 0.416992f, -0.324219f,
+0.387695f, -0.307129f, 0.367188f, -0.29541f, 0.3479f, -0.282959f, 0.328613f, -0.270508f,
+0.312988f, -0.256104f, 0.297363f, -0.241699f, 0.286377f, -0.224121f, 0.275391f, -0.206543f,
+0.270996f, -0.184082f, 0.185547f, -0.184082f, 0.191895f, -0.222168f, 0.207764f, -0.249756f,
+0.223633f, -0.277344f, 0.245361f, -0.298096f, 0.26709f, -0.318848f, 0.29248f, -0.334473f,
+0.317871f, -0.350098f, 0.342773f, -0.364258f, 0.366211f, -0.377441f, 0.387695f, -0.391357f,
+0.40918f, -0.405273f, 0.425781f, -0.422363f, 0.442383f, -0.439453f, 0.452148f, -0.46167f,
+0.461914f, -0.483887f, 0.461914f, -0.513672f, 0.461914f, -0.537109f, 0.452637f, -0.556885f,
+0.443359f, -0.57666f, 0.426514f, -0.590576f, 0.409668f, -0.604492f, 0.38623f, -0.612305f,
+0.362793f, -0.620117f, 0.333984f, -0.620117f, 0.265625f, -0.620117f, 0.221191f, -0.585938f,
+0.176758f, -0.551758f, 0.158203f, -0.492188f, 0.0776367f, -0.511719f, 0.0908203f,
+-0.552734f, 0.112061f, -0.586914f, 0.133301f, -0.621094f, 0.165283f, -0.645752f,
+0.197266f, -0.67041f, 0.240967f, -0.684326f, 0.284668f, -0.698242f, 0.342285f, -0.698242f,
+0.145996f, 0, 0.165039f, -0.0981445f, 0.260254f, -0.0981445f, 0.241211f, 0, 0.944824f,
+-0.368652f, 0.944824f, -0.29834f, 0.928467f, -0.23999f, 0.912109f, -0.181641f, 0.883301f,
+-0.139648f, 0.854492f, -0.0976562f, 0.814453f, -0.0742188f, 0.774414f, -0.0507812f,
+0.726562f, -0.0507812f, 0.699219f, -0.0507812f, 0.679932f, -0.057373f, 0.660645f,
+-0.0639648f, 0.648682f, -0.0754395f, 0.636719f, -0.0869141f, 0.631104f, -0.102539f,
+0.625488f, -0.118164f, 0.625488f, -0.136719f, 0.625488f, -0.144043f, 0.625977f, -0.154541f,
+0.626465f, -0.165039f, 0.626953f, -0.170898f, 0.624023f, -0.170898f, 0.612305f, -0.148926f,
+0.595459f, -0.127197f, 0.578613f, -0.105469f, 0.555908f, -0.088623f, 0.533203f, -0.0717773f,
+0.504639f, -0.0612793f, 0.476074f, -0.0507812f, 0.441406f, -0.0507812f, 0.400391f,
+-0.0507812f, 0.369873f, -0.0649414f, 0.339355f, -0.0791016f, 0.31958f, -0.104248f,
+0.299805f, -0.129395f, 0.290039f, -0.163818f, 0.280273f, -0.198242f, 0.280273f, -0.23877f,
+0.280273f, -0.297363f, 0.297607f, -0.351318f, 0.314941f, -0.405273f, 0.347168f, -0.446533f,
+0.379395f, -0.487793f, 0.424561f, -0.512695f, 0.469727f, -0.537598f, 0.525391f, -0.537598f,
+0.554688f, -0.537598f, 0.578125f, -0.531006f, 0.601562f, -0.524414f, 0.619385f, -0.512695f,
+0.637207f, -0.500977f, 0.650391f, -0.484619f, 0.663574f, -0.468262f, 0.672363f, -0.44873f,
+0.675293f, -0.44873f, 0.694336f, -0.526855f, 0.770508f, -0.526855f, 0.713867f, -0.279785f,
+0.70459f, -0.23877f, 0.700195f, -0.209473f, 0.695801f, -0.180176f, 0.695801f, -0.15625f,
+0.695801f, -0.132812f, 0.706299f, -0.121582f, 0.716797f, -0.110352f, 0.735352f, -0.110352f,
+0.765625f, -0.110352f, 0.791748f, -0.130127f, 0.817871f, -0.149902f, 0.837158f, -0.18457f,
+0.856445f, -0.219238f, 0.867432f, -0.266113f, 0.878418f, -0.312988f, 0.878418f, -0.367676f,
+0.878418f, -0.430664f, 0.858154f, -0.484863f, 0.837891f, -0.539062f, 0.798584f, -0.578613f,
+0.759277f, -0.618164f, 0.701172f, -0.640625f, 0.643066f, -0.663086f, 0.566895f, -0.663086f,
+0.501465f, -0.663086f, 0.446045f, -0.647461f, 0.390625f, -0.631836f, 0.345703f, -0.603516f,
+0.300781f, -0.575195f, 0.266846f, -0.535889f, 0.23291f, -0.496582f, 0.209961f, -0.449707f,
+0.187012f, -0.402832f, 0.175293f, -0.349609f, 0.163574f, -0.296387f, 0.163574f, -0.239746f,
+0.163574f, -0.170898f, 0.18457f, -0.112793f, 0.205566f, -0.0546875f, 0.24585f, -0.0129395f,
+0.286133f, 0.0288086f, 0.345703f, 0.0522461f, 0.405273f, 0.0756836f, 0.481934f, 0.0756836f,
+0.533203f, 0.0756836f, 0.577637f, 0.067627f, 0.62207f, 0.0595703f, 0.65918f, 0.0478516f,
+0.696289f, 0.0361328f, 0.72583f, 0.0222168f, 0.755371f, 0.00830078f, 0.776367f, -0.00341797f,
+0.803223f, 0.0512695f, 0.778809f, 0.065918f, 0.74585f, 0.0812988f, 0.712891f, 0.0966797f,
+0.672363f, 0.109375f, 0.631836f, 0.12207f, 0.583984f, 0.130127f, 0.536133f, 0.138184f,
+0.481934f, 0.138184f, 0.38916f, 0.138184f, 0.317139f, 0.110107f, 0.245117f, 0.0820312f,
+0.195801f, 0.0317383f, 0.146484f, -0.0185547f, 0.120605f, -0.0878906f, 0.0947266f,
+-0.157227f, 0.0947266f, -0.239746f, 0.0947266f, -0.307617f, 0.110107f, -0.370117f,
+0.125488f, -0.432617f, 0.154297f, -0.486328f, 0.183105f, -0.540039f, 0.224609f, -0.583984f,
+0.266113f, -0.62793f, 0.318604f, -0.65918f, 0.371094f, -0.69043f, 0.43335f, -0.70752f,
+0.495605f, -0.724609f, 0.565918f, -0.724609f, 0.664062f, -0.724609f, 0.735352f, -0.695801f,
+0.806641f, -0.666992f, 0.853271f, -0.618164f, 0.899902f, -0.569336f, 0.922363f, -0.504883f,
+0.944824f, -0.44043f, 0.944824f, -0.368652f, 0.648926f, -0.364746f, 0.648926f, -0.38916f,
+0.640625f, -0.409668f, 0.632324f, -0.430176f, 0.616943f, -0.444824f, 0.601562f, -0.459473f,
+0.579834f, -0.467529f, 0.558105f, -0.475586f, 0.530762f, -0.475586f, 0.489258f, -0.475586f,
+0.457275f, -0.454834f, 0.425293f, -0.434082f, 0.404053f, -0.400391f, 0.382812f, -0.366699f,
+0.371826f, -0.324463f, 0.36084f, -0.282227f, 0.36084f, -0.239746f, 0.36084f, -0.181152f,
+0.384033f, -0.147949f, 0.407227f, -0.114746f, 0.455566f, -0.114746f, 0.489258f, -0.114746f,
+0.518799f, -0.129883f, 0.54834f, -0.14502f, 0.571777f, -0.169922f, 0.595215f, -0.194824f,
+0.612061f, -0.227295f, 0.628906f, -0.259766f, 0.637695f, -0.293945f, 0.64209f, -0.311523f,
+0.645508f, -0.331055f, 0.648926f, -0.350586f, 0.648926f, -0.364746f, 0.518066f, 0,
+0.481445f, -0.201172f, 0.169434f, -0.201172f, 0.0522461f, 0, -0.0493164f, 0, 0.364746f,
+-0.687988f, 0.470703f, -0.687988f, 0.613281f, 0, 0.425293f, -0.504883f, 0.421387f,
+-0.524902f, 0.417725f, -0.543945f, 0.414062f, -0.562988f, 0.411621f, -0.578857f,
+0.40918f, -0.594727f, 0.407471f, -0.605225f, 0.405762f, -0.615723f, 0.405273f, -0.617676f,
+0.404297f, -0.615723f, 0.398682f, -0.60498f, 0.393066f, -0.594238f, 0.384277f, -0.578369f,
+0.375488f, -0.5625f, 0.364746f, -0.543213f, 0.354004f, -0.523926f, 0.342285f, -0.504395f,
+0.210449f, -0.273926f, 0.467773f, -0.273926f, 0.164062f, -0.687988f, 0.413086f, -0.687988f,
+0.463867f, -0.687988f, 0.504395f, -0.677246f, 0.544922f, -0.666504f, 0.573486f, -0.64624f,
+0.602051f, -0.625977f, 0.617432f, -0.59668f, 0.632812f, -0.567383f, 0.632812f, -0.530762f,
+0.632812f, -0.459473f, 0.59082f, -0.418213f, 0.548828f, -0.376953f, 0.467285f, -0.362793f,
+0.501953f, -0.356934f, 0.528564f, -0.343506f, 0.555176f, -0.330078f, 0.572998f, -0.310547f,
+0.59082f, -0.291016f, 0.599854f, -0.266602f, 0.608887f, -0.242188f, 0.608887f, -0.214355f,
+0.608887f, -0.173828f, 0.597656f, -0.14209f, 0.586426f, -0.110352f, 0.566406f, -0.0864258f,
+0.546387f, -0.0625f, 0.519287f, -0.0461426f, 0.492188f, -0.0297852f, 0.460205f, -0.0195312f,
+0.428223f, -0.00927734f, 0.392822f, -0.00463867f, 0.357422f, 0, 0.321289f, 0, 0.0307617f,
+0, 0.200684f, -0.395508f, 0.362305f, -0.395508f, 0.450684f, -0.395508f, 0.493164f,
+-0.427246f, 0.535645f, -0.458984f, 0.535645f, -0.521484f, 0.535645f, -0.567871f,
+0.502197f, -0.590576f, 0.46875f, -0.613281f, 0.404785f, -0.613281f, 0.243164f, -0.613281f,
+0.138184f, -0.074707f, 0.317871f, -0.074707f, 0.355957f, -0.074707f, 0.391846f, -0.0805664f,
+0.427734f, -0.0864258f, 0.455078f, -0.102051f, 0.482422f, -0.117676f, 0.499023f,
+-0.14502f, 0.515625f, -0.172363f, 0.515625f, -0.21582f, 0.515625f, -0.268066f, 0.476807f,
+-0.29541f, 0.437988f, -0.322754f, 0.365234f, -0.322754f, 0.186523f, -0.322754f, 0.663086f,
+-0.164551f, 0.63916f, -0.128906f, 0.609375f, -0.097168f, 0.57959f, -0.0654297f, 0.54126f,
+-0.041748f, 0.50293f, -0.0180664f, 0.453857f, -0.00415039f, 0.404785f, 0.00976562f,
+0.341797f, 0.00976562f, 0.269531f, 0.00976562f, 0.215576f, -0.0126953f, 0.161621f,
+-0.0351562f, 0.125977f, -0.0739746f, 0.090332f, -0.112793f, 0.0727539f, -0.165283f,
+0.0551758f, -0.217773f, 0.0551758f, -0.277832f, 0.0551758f, -0.338379f, 0.0683594f,
+-0.393066f, 0.081543f, -0.447754f, 0.105957f, -0.494385f, 0.130371f, -0.541016f,
+0.165527f, -0.578857f, 0.200684f, -0.616699f, 0.244873f, -0.643066f, 0.289062f, -0.669434f,
+0.341309f, -0.683838f, 0.393555f, -0.698242f, 0.452148f, -0.698242f, 0.515137f, -0.698242f,
+0.5625f, -0.683838f, 0.609863f, -0.669434f, 0.643555f, -0.645996f, 0.677246f, -0.622559f,
+0.697754f, -0.592285f, 0.718262f, -0.562012f, 0.727539f, -0.529785f, 0.639648f, -0.50293f,
+0.632324f, -0.525879f, 0.617188f, -0.547119f, 0.602051f, -0.568359f, 0.578369f, -0.585205f,
+0.554688f, -0.602051f, 0.522217f, -0.612061f, 0.489746f, -0.62207f, 0.447266f, -0.62207f,
+0.375977f, -0.62207f, 0.320312f, -0.595947f, 0.264648f, -0.569824f, 0.226074f, -0.523682f,
+0.1875f, -0.477539f, 0.16748f, -0.414307f, 0.147461f, -0.351074f, 0.147461f, -0.276367f,
+0.147461f, -0.230469f, 0.160156f, -0.191895f, 0.172852f, -0.15332f, 0.197998f, -0.125244f,
+0.223145f, -0.097168f, 0.260742f, -0.081543f, 0.29834f, -0.065918f, 0.348145f, -0.065918f,
+0.39209f, -0.065918f, 0.428711f, -0.0778809f, 0.465332f, -0.0898438f, 0.49585f, -0.109619f,
+0.526367f, -0.129395f, 0.550537f, -0.155029f, 0.574707f, -0.180664f, 0.593262f, -0.208008f,
+0.363281f, -0.687988f, 0.435547f, -0.687988f, 0.495605f, -0.668701f, 0.555664f, -0.649414f,
+0.598877f, -0.611328f, 0.64209f, -0.573242f, 0.666016f, -0.516846f, 0.689941f, -0.460449f,
+0.689941f, -0.38623f, 0.689941f, -0.321289f, 0.674561f, -0.267578f, 0.65918f, -0.213867f,
+0.631348f, -0.170898f, 0.603516f, -0.12793f, 0.56543f, -0.0959473f, 0.527344f, -0.0639648f,
+0.481934f, -0.0424805f, 0.436523f, -0.0209961f, 0.385498f, -0.010498f, 0.334473f,
+0, 0.280762f, 0, 0.0307617f, 0, 0.164062f, -0.687988f, 0.138184f, -0.074707f, 0.276855f,
+-0.074707f, 0.348633f, -0.074707f, 0.407471f, -0.0961914f, 0.466309f, -0.117676f,
+0.508057f, -0.157959f, 0.549805f, -0.198242f, 0.57251f, -0.256104f, 0.595215f, -0.313965f,
+0.595215f, -0.387207f, 0.595215f, -0.445801f, 0.577393f, -0.488281f, 0.55957f, -0.530762f,
+0.52832f, -0.558594f, 0.49707f, -0.586426f, 0.454102f, -0.599854f, 0.411133f, -0.613281f,
+0.361328f, -0.613281f, 0.243164f, -0.613281f, 0.0307617f, 0, 0.164062f, -0.687988f,
+0.67627f, -0.687988f, 0.661621f, -0.611816f, 0.242676f, -0.611816f, 0.199707f, -0.391113f,
+0.589355f, -0.391113f, 0.574707f, -0.315918f, 0.185059f, -0.315918f, 0.138672f, -0.0761719f,
+0.577637f, -0.0761719f, 0.562988f, 0, 0.242676f, -0.611816f, 0.192871f, -0.355957f,
+0.581543f, -0.355957f, 0.566406f, -0.278809f, 0.177734f, -0.278809f, 0.124023f, 0,
+0.0307617f, 0, 0.164062f, -0.687988f, 0.657715f, -0.687988f, 0.643066f, -0.611816f,
+0.678711f, -0.102539f, 0.651367f, -0.0791016f, 0.619385f, -0.0585938f, 0.587402f,
+-0.0380859f, 0.548828f, -0.0229492f, 0.510254f, -0.0078125f, 0.464111f, 0.000976562f,
+0.417969f, 0.00976562f, 0.362305f, 0.00976562f, 0.283203f, 0.00976562f, 0.224365f,
+-0.0114746f, 0.165527f, -0.0327148f, 0.126709f, -0.0708008f, 0.0878906f, -0.108887f,
+0.0686035f, -0.162109f, 0.0493164f, -0.215332f, 0.0493164f, -0.279785f, 0.0493164f,
+-0.371582f, 0.0783691f, -0.448486f, 0.107422f, -0.525391f, 0.160889f, -0.580811f,
+0.214355f, -0.63623f, 0.290527f, -0.667236f, 0.366699f, -0.698242f, 0.460938f, -0.698242f,
+0.524902f, -0.698242f, 0.571533f, -0.685059f, 0.618164f, -0.671875f, 0.650879f, -0.649414f,
+0.683594f, -0.626953f, 0.703857f, -0.597656f, 0.724121f, -0.568359f, 0.734863f, -0.536133f,
+0.640625f, -0.509766f, 0.633301f, -0.532715f, 0.619629f, -0.552979f, 0.605957f, -0.573242f,
+0.58374f, -0.588623f, 0.561523f, -0.604004f, 0.529785f, -0.613037f, 0.498047f, -0.62207f,
+0.455078f, -0.62207f, 0.380371f, -0.62207f, 0.32251f, -0.596436f, 0.264648f, -0.570801f,
+0.225098f, -0.525146f, 0.185547f, -0.479492f, 0.165283f, -0.417236f, 0.14502f, -0.35498f,
+0.14502f, -0.281738f, 0.14502f, -0.234375f, 0.158203f, -0.194824f, 0.171387f, -0.155273f,
+0.198486f, -0.126709f, 0.225586f, -0.0981445f, 0.26709f, -0.0820312f, 0.308594f,
+-0.065918f, 0.365234f, -0.065918f, 0.409668f, -0.065918f, 0.446533f, -0.0732422f,
+0.483398f, -0.0805664f, 0.512695f, -0.0915527f, 0.541992f, -0.102539f, 0.564209f,
+-0.116211f, 0.586426f, -0.129883f, 0.601074f, -0.14209f, 0.625977f, -0.266113f, 0.42041f,
+-0.266113f, 0.436035f, -0.344238f, 0.727539f, -0.344238f, 0.498535f, 0, 0.560547f,
+-0.318848f, 0.186035f, -0.318848f, 0.124023f, 0, 0.0307617f, 0, 0.164551f, -0.687988f,
+0.257812f, -0.687988f, 0.201172f, -0.396973f, 0.575684f, -0.396973f, 0.632324f, -0.687988f,
+0.723145f, -0.687988f, 0.589355f, 0, 0.0395508f, 0, 0.17334f, -0.687988f, 0.266602f,
+-0.687988f, 0.132812f, 0, 0.186035f, 0.00976562f, 0.108398f, 0.00976562f, 0.0593262f,
+-0.0356445f, 0.0102539f, -0.0810547f, -0.00244141f, -0.16748f, 0.0795898f, -0.183594f,
+0.0908203f, -0.126465f, 0.118164f, -0.0961914f, 0.145508f, -0.065918f, 0.194336f,
+-0.065918f, 0.223633f, -0.065918f, 0.245117f, -0.0766602f, 0.266602f, -0.0874023f,
+0.281982f, -0.106934f, 0.297363f, -0.126465f, 0.307373f, -0.154053f, 0.317383f, -0.181641f,
+0.32373f, -0.214844f, 0.400391f, -0.611816f, 0.258301f, -0.611816f, 0.272949f, -0.687988f,
+0.507812f, -0.687988f, 0.413574f, -0.206543f, 0.404297f, -0.157715f, 0.386963f, -0.117676f,
+0.369629f, -0.0776367f, 0.342529f, -0.0493164f, 0.31543f, -0.0209961f, 0.276855f,
+-0.00561523f, 0.238281f, 0.00976562f, 0.186035f, 0.00976562f, 0.499023f, 0, 0.268555f,
+-0.329102f, 0.175781f, -0.266113f, 0.124023f, 0, 0.0307617f, 0, 0.164062f, -0.687988f,
+0.257324f, -0.687988f, 0.190918f, -0.350586f, 0.259277f, -0.413574f, 0.583984f, -0.687988f,
+0.703613f, -0.687988f, 0.337402f, -0.380371f, 0.609375f, 0, 0.0307617f, 0, 0.164062f,
+-0.687988f, 0.257324f, -0.687988f, 0.138672f, -0.0761719f, 0.486328f, -0.0761719f,
+0.47168f, 0, 0.615723f, 0, 0.703613f, -0.453125f, 0.708496f, -0.478027f, 0.713867f,
+-0.503906f, 0.719238f, -0.529785f, 0.724121f, -0.55127f, 0.729492f, -0.576172f, 0.735352f,
+-0.599609f, 0.723145f, -0.574219f, 0.710449f, -0.549316f, 0.699707f, -0.527832f,
+0.6875f, -0.504395f, 0.675293f, -0.480957f, 0.664551f, -0.462891f, 0.396973f, 0,
+0.336426f, 0, 0.246094f, -0.462891f, 0.243164f, -0.477539f, 0.239746f, -0.500732f,
+0.236328f, -0.523926f, 0.233398f, -0.545898f, 0.22998f, -0.571777f, 0.226074f, -0.599609f,
+0.222168f, -0.572266f, 0.217773f, -0.54541f, 0.213867f, -0.522461f, 0.209717f, -0.497559f,
+0.205566f, -0.472656f, 0.20166f, -0.453125f, 0.11377f, 0, 0.0307617f, 0, 0.164062f,
+-0.687988f, 0.279297f, -0.687988f, 0.371582f, -0.210938f, 0.373047f, -0.203613f,
+0.375732f, -0.187256f, 0.378418f, -0.170898f, 0.380859f, -0.153809f, 0.383789f, -0.134277f,
+0.387207f, -0.11084f, 0.397461f, -0.132324f, 0.406738f, -0.151855f, 0.415039f, -0.168945f,
+0.423584f, -0.186279f, 0.432129f, -0.203613f, 0.437988f, -0.214844f, 0.708008f, -0.687988f,
+0.833008f, -0.687988f, 0.699707f, 0, 0.481934f, 0, 0.222656f, -0.59082f, 0.219727f,
+-0.568359f, 0.216309f, -0.544922f, 0.213379f, -0.524902f, 0.209717f, -0.502197f,
+0.206055f, -0.479492f, 0.202148f, -0.460449f, 0.11377f, 0, 0.0307617f, 0, 0.164062f,
+-0.687988f, 0.267578f, -0.687988f, 0.52832f, -0.0947266f, 0.53125f, -0.115723f, 0.534668f,
+-0.13916f, 0.537598f, -0.15918f, 0.541504f, -0.183838f, 0.54541f, -0.208496f, 0.550293f,
+-0.233398f, 0.638672f, -0.687988f, 0.722656f, -0.687988f, 0.589355f, 0, 0.458008f,
+-0.698242f, 0.52832f, -0.698242f, 0.58252f, -0.67749f, 0.636719f, -0.656738f, 0.674072f,
+-0.619141f, 0.711426f, -0.581543f, 0.730713f, -0.529785f, 0.75f, -0.478027f, 0.75f,
+-0.415527f, 0.749512f, -0.391602f, 0.747314f, -0.365967f, 0.745117f, -0.340332f,
+0.740234f, -0.316895f, 0.725586f, -0.241699f, 0.690918f, -0.181396f, 0.65625f, -0.121094f,
+0.605225f, -0.0786133f, 0.554199f, -0.0361328f, 0.488525f, -0.0131836f, 0.422852f,
+0.00976562f, 0.346191f, 0.00976562f, 0.272949f, 0.00976562f, 0.218262f, -0.0114746f,
+0.163574f, -0.0327148f, 0.127197f, -0.0710449f, 0.0908203f, -0.109375f, 0.0725098f,
+-0.162598f, 0.0541992f, -0.21582f, 0.0541992f, -0.279785f, 0.0541992f, -0.302246f,
+0.0563965f, -0.325684f, 0.0585938f, -0.349121f, 0.0634766f, -0.373047f, 0.078125f,
+-0.446289f, 0.112305f, -0.506348f, 0.146484f, -0.566406f, 0.19751f, -0.609131f, 0.248535f,
+-0.651855f, 0.314453f, -0.675049f, 0.380371f, -0.698242f, 0.458008f, -0.698242f,
+0.453613f, -0.623047f, 0.389648f, -0.623047f, 0.339844f, -0.60498f, 0.290039f, -0.586914f,
+0.253174f, -0.552734f, 0.216309f, -0.518555f, 0.192383f, -0.469238f, 0.168457f, -0.419922f,
+0.155762f, -0.357422f, 0.151367f, -0.336426f, 0.149414f, -0.315186f, 0.147461f, -0.293945f,
+0.147461f, -0.274902f, 0.147461f, -0.222656f, 0.161133f, -0.18335f, 0.174805f, -0.144043f,
+0.200928f, -0.11792f, 0.227051f, -0.0917969f, 0.264893f, -0.0788574f, 0.302734f,
+-0.065918f, 0.350586f, -0.065918f, 0.415039f, -0.065918f, 0.465088f, -0.0842285f,
+0.515137f, -0.102539f, 0.551758f, -0.136963f, 0.588379f, -0.171387f, 0.612549f, -0.220459f,
+0.636719f, -0.269531f, 0.648926f, -0.330566f, 0.65332f, -0.351074f, 0.655029f, -0.373047f,
+0.656738f, -0.39502f, 0.656738f, -0.413574f, 0.656738f, -0.46582f, 0.642578f, -0.505127f,
+0.628418f, -0.544434f, 0.602051f, -0.570557f, 0.575684f, -0.59668f, 0.538086f, -0.609863f,
+0.500488f, -0.623047f, 0.453613f, -0.623047f, 0.416016f, -0.687988f, 0.472656f, -0.687988f,
+0.517822f, -0.674805f, 0.562988f, -0.661621f, 0.594727f, -0.637207f, 0.626465f, -0.612793f,
+0.643555f, -0.577393f, 0.660645f, -0.541992f, 0.660645f, -0.498047f, 0.660645f, -0.444336f,
+0.641357f, -0.401611f, 0.62207f, -0.358887f, 0.586182f, -0.329346f, 0.550293f, -0.299805f,
+0.498779f, -0.283936f, 0.447266f, -0.268066f, 0.382812f, -0.268066f, 0.175781f, -0.268066f,
+0.124023f, 0, 0.0307617f, 0, 0.164062f, -0.687988f, 0.19043f, -0.341797f, 0.379395f,
+-0.341797f, 0.473145f, -0.341797f, 0.519531f, -0.379883f, 0.565918f, -0.417969f,
+0.565918f, -0.493652f, 0.565918f, -0.525391f, 0.554932f, -0.547852f, 0.543945f, -0.570312f,
+0.523926f, -0.584961f, 0.503906f, -0.599609f, 0.47583f, -0.606445f, 0.447754f, -0.613281f,
+0.413574f, -0.613281f, 0.243164f, -0.613281f, 0.453125f, -0.698242f, 0.523438f, -0.698242f,
+0.577637f, -0.67749f, 0.631836f, -0.656738f, 0.669189f, -0.619141f, 0.706543f, -0.581543f,
+0.72583f, -0.529785f, 0.745117f, -0.478027f, 0.745117f, -0.415527f, 0.744629f, -0.391602f,
+0.742432f, -0.365967f, 0.740234f, -0.340332f, 0.735352f, -0.316895f, 0.722168f, -0.249512f,
+0.692627f, -0.193604f, 0.663086f, -0.137695f, 0.620117f, -0.0961914f, 0.577148f,
+-0.0546875f, 0.521729f, -0.0285645f, 0.466309f, -0.00244141f, 0.401367f, 0.00585938f,
+0.405762f, 0.0380859f, 0.414551f, 0.0598145f, 0.42334f, 0.081543f, 0.436523f, 0.0947266f,
+0.449707f, 0.10791f, 0.467285f, 0.113525f, 0.484863f, 0.119141f, 0.506836f, 0.119141f,
+0.520508f, 0.119141f, 0.537598f, 0.117188f, 0.554688f, 0.115234f, 0.566895f, 0.112793f,
+0.558105f, 0.178223f, 0.539551f, 0.183594f, 0.519531f, 0.186279f, 0.499512f, 0.188965f,
+0.475586f, 0.188965f, 0.434082f, 0.188965f, 0.405029f, 0.176514f, 0.375977f, 0.164062f,
+0.356934f, 0.140869f, 0.337891f, 0.117676f, 0.327148f, 0.0842285f, 0.316406f, 0.0507812f,
+0.311523f, 0.00830078f, 0.246094f, 0.00390625f, 0.196777f, -0.0192871f, 0.147461f,
+-0.0424805f, 0.114746f, -0.0800781f, 0.0820312f, -0.117676f, 0.0656738f, -0.168701f,
+0.0493164f, -0.219727f, 0.0493164f, -0.279785f, 0.0493164f, -0.302246f, 0.0515137f,
+-0.325684f, 0.0537109f, -0.349121f, 0.0585938f, -0.373047f, 0.0732422f, -0.446289f,
+0.107422f, -0.506348f, 0.141602f, -0.566406f, 0.192627f, -0.609131f, 0.243652f, -0.651855f,
+0.30957f, -0.675049f, 0.375488f, -0.698242f, 0.453125f, -0.698242f, 0.44873f, -0.623047f,
+0.384766f, -0.623047f, 0.334961f, -0.60498f, 0.285156f, -0.586914f, 0.248291f, -0.552734f,
+0.211426f, -0.518555f, 0.1875f, -0.469238f, 0.163574f, -0.419922f, 0.150879f, -0.357422f,
+0.146484f, -0.336426f, 0.144531f, -0.315186f, 0.142578f, -0.293945f, 0.142578f, -0.274902f,
+0.142578f, -0.222656f, 0.15625f, -0.18335f, 0.169922f, -0.144043f, 0.196045f, -0.11792f,
+0.222168f, -0.0917969f, 0.26001f, -0.0788574f, 0.297852f, -0.065918f, 0.345703f,
+-0.065918f, 0.410156f, -0.065918f, 0.460205f, -0.0842285f, 0.510254f, -0.102539f,
+0.546875f, -0.136963f, 0.583496f, -0.171387f, 0.607666f, -0.220459f, 0.631836f, -0.269531f,
+0.644043f, -0.330566f, 0.648438f, -0.351074f, 0.650146f, -0.373047f, 0.651855f, -0.39502f,
+0.651855f, -0.413574f, 0.651855f, -0.46582f, 0.637695f, -0.505127f, 0.623535f, -0.544434f,
+0.597168f, -0.570557f, 0.570801f, -0.59668f, 0.533203f, -0.609863f, 0.495605f, -0.623047f,
+0.44873f, -0.623047f, 0.513184f, 0, 0.394531f, -0.285645f, 0.179199f, -0.285645f,
+0.124023f, 0, 0.0307617f, 0, 0.164062f, -0.687988f, 0.462891f, -0.687988f, 0.513672f,
+-0.687988f, 0.555664f, -0.675537f, 0.597656f, -0.663086f, 0.627686f, -0.639648f,
+0.657715f, -0.616211f, 0.674561f, -0.582764f, 0.691406f, -0.549316f, 0.691406f, -0.507324f,
+0.691406f, -0.415527f, 0.638672f, -0.361816f, 0.585938f, -0.308105f, 0.48291f, -0.293945f,
+0.61377f, 0, 0.418457f, -0.359375f, 0.506836f, -0.359375f, 0.551758f, -0.39624f,
+0.59668f, -0.433105f, 0.59668f, -0.5f, 0.59668f, -0.554688f, 0.560303f, -0.583984f,
+0.523926f, -0.613281f, 0.45166f, -0.613281f, 0.243164f, -0.613281f, 0.193848f, -0.359375f,
+0.300781f, 0.00976562f, 0.237305f, 0.00976562f, 0.189697f, -0.00170898f, 0.14209f,
+-0.0131836f, 0.108887f, -0.0354004f, 0.0756836f, -0.0576172f, 0.0559082f, -0.0900879f,
+0.0361328f, -0.122559f, 0.0283203f, -0.165039f, 0.114746f, -0.183105f, 0.121094f,
+-0.152832f, 0.134766f, -0.130371f, 0.148438f, -0.10791f, 0.171387f, -0.0930176f,
+0.194336f, -0.078125f, 0.228027f, -0.0708008f, 0.261719f, -0.0634766f, 0.307617f,
+-0.0634766f, 0.355469f, -0.0634766f, 0.393555f, -0.0700684f, 0.431641f, -0.0766602f,
+0.458252f, -0.092041f, 0.484863f, -0.107422f, 0.499023f, -0.13208f, 0.513184f, -0.156738f,
+0.513184f, -0.193359f, 0.513184f, -0.218262f, 0.504883f, -0.23584f, 0.496582f, -0.253418f,
+0.476074f, -0.267334f, 0.455566f, -0.28125f, 0.420654f, -0.293701f, 0.385742f, -0.306152f,
+0.333008f, -0.320801f, 0.290039f, -0.33252f, 0.252197f, -0.346924f, 0.214355f, -0.361328f,
+0.186035f, -0.382568f, 0.157715f, -0.403809f, 0.141113f, -0.434082f, 0.124512f, -0.464355f,
+0.124512f, -0.508301f, 0.124512f, -0.55957f, 0.147705f, -0.595459f, 0.170898f, -0.631348f,
+0.209717f, -0.654297f, 0.248535f, -0.677246f, 0.298584f, -0.687744f, 0.348633f, -0.698242f,
+0.402344f, -0.698242f, 0.461426f, -0.698242f, 0.505615f, -0.6875f, 0.549805f, -0.676758f,
+0.580811f, -0.657471f, 0.611816f, -0.638184f, 0.630371f, -0.611328f, 0.648926f, -0.584473f,
+0.65625f, -0.552734f, 0.571777f, -0.527832f, 0.564453f, -0.55127f, 0.55127f, -0.569824f,
+0.538086f, -0.588379f, 0.517578f, -0.601318f, 0.49707f, -0.614258f, 0.468506f, -0.621094f,
+0.439941f, -0.62793f, 0.401855f, -0.62793f, 0.351074f, -0.62793f, 0.316162f, -0.619385f,
+0.28125f, -0.61084f, 0.259521f, -0.595459f, 0.237793f, -0.580078f, 0.228027f, -0.558838f,
+0.218262f, -0.537598f, 0.218262f, -0.512695f, 0.218262f, -0.486328f, 0.228271f, -0.468994f,
+0.238281f, -0.45166f, 0.258789f, -0.439453f, 0.279297f, -0.427246f, 0.310791f, -0.417236f,
+0.342285f, -0.407227f, 0.385254f, -0.395508f, 0.427734f, -0.383789f, 0.468018f, -0.369629f,
+0.508301f, -0.355469f, 0.539551f, -0.33374f, 0.570801f, -0.312012f, 0.5896f, -0.279785f,
+0.608398f, -0.247559f, 0.608398f, -0.199219f, 0.608398f, -0.0986328f, 0.532715f,
+-0.0444336f, 0.457031f, 0.00976562f, 0.300781f, 0.00976562f, 0.418945f, -0.611816f,
+0.299805f, 0, 0.207031f, 0, 0.326172f, -0.611816f, 0.0898438f, -0.611816f, 0.104492f,
+-0.687988f, 0.669922f, -0.687988f, 0.655273f, -0.611816f, 0.319336f, 0.00976562f,
+0.268555f, 0.00976562f, 0.223877f, -0.00341797f, 0.179199f, -0.0166016f, 0.145996f,
+-0.0439453f, 0.112793f, -0.0712891f, 0.09375f, -0.112793f, 0.074707f, -0.154297f,
+0.074707f, -0.210449f, 0.074707f, -0.220703f, 0.0756836f, -0.234131f, 0.0766602f,
+-0.247559f, 0.0783691f, -0.26123f, 0.0800781f, -0.274902f, 0.0820312f, -0.287842f,
+0.0839844f, -0.300781f, 0.0859375f, -0.310059f, 0.15918f, -0.687988f, 0.252441f,
+-0.687988f, 0.17334f, -0.276367f, 0.169922f, -0.258789f, 0.16748f, -0.23999f, 0.165039f,
+-0.221191f, 0.165039f, -0.206543f, 0.165039f, -0.17041f, 0.177246f, -0.144043f, 0.189453f,
+-0.117676f, 0.210938f, -0.100342f, 0.232422f, -0.0830078f, 0.262207f, -0.0744629f,
+0.291992f, -0.065918f, 0.327148f, -0.065918f, 0.369629f, -0.065918f, 0.406006f, -0.0766602f,
+0.442383f, -0.0874023f, 0.471436f, -0.11084f, 0.500488f, -0.134277f, 0.52124f, -0.172119f,
+0.541992f, -0.209961f, 0.552246f, -0.26416f, 0.634277f, -0.687988f, 0.727051f, -0.687988f,
+0.644043f, -0.258789f, 0.630371f, -0.189941f, 0.602295f, -0.139404f, 0.574219f, -0.0888672f,
+0.532715f, -0.0556641f, 0.491211f, -0.0224609f, 0.4375f, -0.00634766f, 0.383789f,
+0.00976562f, 0.319336f, 0.00976562f, 0.330566f, 0, 0.233887f, 0, 0.0864258f, -0.687988f,
+0.181152f, -0.687988f, 0.277832f, -0.203613f, 0.28125f, -0.181641f, 0.28418f, -0.159912f,
+0.287109f, -0.138184f, 0.289551f, -0.121094f, 0.29248f, -0.101074f, 0.294922f, -0.0820312f,
+0.304199f, -0.100098f, 0.314941f, -0.120117f, 0.324219f, -0.137207f, 0.335693f, -0.158936f,
+0.347168f, -0.180664f, 0.359863f, -0.203613f, 0.643066f, -0.687988f, 0.744629f, -0.687988f,
+0.686523f, 0, 0.577637f, 0, 0.542969f, -0.437012f, 0.54248f, -0.446289f, 0.541748f,
+-0.458008f, 0.541016f, -0.469727f, 0.540283f, -0.482666f, 0.539551f, -0.495605f,
+0.538818f, -0.509033f, 0.538086f, -0.522461f, 0.537598f, -0.534668f, 0.536133f, -0.563965f,
+0.535156f, -0.595215f, 0.523438f, -0.564453f, 0.51123f, -0.534668f, 0.500977f, -0.509277f,
+0.489502f, -0.482422f, 0.478027f, -0.455566f, 0.469238f, -0.437012f, 0.264648f, 0,
+0.155762f, 0, 0.0864258f, -0.687988f, 0.182617f, -0.687988f, 0.221191f, -0.250977f,
+0.223633f, -0.220215f, 0.225098f, -0.190186f, 0.226562f, -0.160156f, 0.227539f, -0.135742f,
+0.228516f, -0.107422f, 0.229004f, -0.0820312f, 0.243164f, -0.115723f, 0.257324f,
+-0.148438f, 0.263184f, -0.162598f, 0.269775f, -0.17749f, 0.276367f, -0.192383f, 0.282715f,
+-0.207031f, 0.289062f, -0.22168f, 0.295166f, -0.235107f, 0.30127f, -0.248535f, 0.306641f,
+-0.259766f, 0.509277f, -0.687988f, 0.598633f, -0.687988f, 0.635254f, -0.259766f,
+0.63623f, -0.249023f, 0.637207f, -0.235352f, 0.638184f, -0.22168f, 0.638916f, -0.207275f,
+0.639648f, -0.192871f, 0.640381f, -0.177979f, 0.641113f, -0.163086f, 0.641602f, -0.148926f,
+0.643066f, -0.116211f, 0.643555f, -0.0820312f, 0.644043f, -0.0820312f, 0.651123f,
+-0.098877f, 0.658203f, -0.115723f, 0.668945f, -0.141113f, 0.679688f, -0.166504f,
+0.692627f, -0.196045f, 0.705566f, -0.225586f, 0.717773f, -0.250977f, 0.924316f, -0.687988f,
+1.02246f, -0.687988f, 0.487793f, 0, 0.339844f, -0.295898f, 0.0839844f, 0, -0.019043f,
+0, 0.300293f, -0.364258f, 0.134277f, -0.687988f, 0.231445f, -0.687988f, 0.363281f,
+-0.418945f, 0.595215f, -0.687988f, 0.698242f, -0.687988f, 0.405273f, -0.35791f, 0.584961f,
+0, 0.383301f, -0.285156f, 0.328125f, 0, 0.235352f, 0, 0.291504f, -0.285156f, 0.104004f,
+-0.687988f, 0.199707f, -0.687988f, 0.349121f, -0.358887f, 0.622559f, -0.687988f,
+0.727051f, -0.687988f, 0.52832f, 0, -0.0195312f, 0, -0.00634766f, -0.0698242f, 0.508301f,
+-0.611816f, 0.134766f, -0.611816f, 0.149414f, -0.687988f, 0.638672f, -0.687988f,
+0.625488f, -0.620117f, 0.11084f, -0.0761719f, 0.542969f, -0.0761719f, -0.019043f,
+0.20752f, 0.161621f, -0.724609f, 0.360352f, -0.724609f, 0.348145f, -0.661621f, 0.234375f,
+-0.661621f, 0.0776367f, 0.144531f, 0.191406f, 0.144531f, 0.179199f, 0.20752f, 0.15625f,
+0.00976562f, 0.0712891f, -0.724609f, 0.143555f, -0.724609f, 0.230469f, 0.00976562f,
+-0.0825195f, 0.20752f, -0.0703125f, 0.144531f, 0.0429688f, 0.144531f, 0.199707f,
+-0.661621f, 0.0859375f, -0.661621f, 0.0981445f, -0.724609f, 0.296875f, -0.724609f,
+0.115723f, 0.20752f, 0.398926f, -0.328613f, 0.248047f, -0.637695f, 0.0986328f, -0.328613f,
+0.0195312f, -0.328613f, 0.199219f, -0.687988f, 0.29834f, -0.687988f, 0.479004f, -0.328613f,
+-0.078125f, 0.12207f, -0.078125f, 0.0849609f, 0.49707f, 0.0849609f, 0.49707f, 0.12207f,
+0.201172f, -0.586426f, 0.0634766f, -0.722168f, 0.065918f, -0.736328f, 0.166992f,
+-0.736328f, 0.245605f, -0.596191f, 0.244141f, -0.586426f, 0.515137f, -0.00292969f,
+0.500977f, 0.000488281f, 0.484619f, 0.00268555f, 0.468262f, 0.00488281f, 0.452637f,
+0.00488281f, 0.407227f, 0.00488281f, 0.386475f, -0.013916f, 0.365723f, -0.0327148f,
+0.365723f, -0.0698242f, 0.365723f, -0.0771484f, 0.366699f, -0.0856934f, 0.367676f,
+-0.0942383f, 0.368164f, -0.101074f, 0.365234f, -0.101074f, 0.348145f, -0.0751953f,
+0.329834f, -0.0546875f, 0.311523f, -0.0341797f, 0.289307f, -0.0197754f, 0.26709f,
+-0.00537109f, 0.239746f, 0.00219727f, 0.212402f, 0.00976562f, 0.17627f, 0.00976562f,
+0.138184f, 0.00976562f, 0.109619f, -0.00244141f, 0.0810547f, -0.0146484f, 0.0615234f,
+-0.0349121f, 0.0419922f, -0.0551758f, 0.0322266f, -0.081543f, 0.0224609f, -0.10791f,
+0.0224609f, -0.135742f, 0.0224609f, -0.175293f, 0.0339355f, -0.204102f, 0.0454102f,
+-0.23291f, 0.0651855f, -0.253418f, 0.0849609f, -0.273926f, 0.111572f, -0.286865f,
+0.138184f, -0.299805f, 0.168213f, -0.307129f, 0.198242f, -0.314453f, 0.230469f, -0.317383f,
+0.262695f, -0.320312f, 0.293457f, -0.320801f, 0.406738f, -0.322266f, 0.410156f, -0.339844f,
+0.412598f, -0.352051f, 0.414307f, -0.363281f, 0.416016f, -0.374512f, 0.416016f, -0.384277f,
+0.416016f, -0.428711f, 0.390137f, -0.449951f, 0.364258f, -0.471191f, 0.318359f, -0.471191f,
+0.294434f, -0.471191f, 0.273682f, -0.467529f, 0.25293f, -0.463867f, 0.236572f, -0.454346f,
+0.220215f, -0.444824f, 0.207764f, -0.428467f, 0.195312f, -0.412109f, 0.1875f, -0.387207f,
+0.100586f, -0.401367f, 0.109863f, -0.431641f, 0.125977f, -0.456787f, 0.14209f, -0.481934f,
+0.168457f, -0.5f, 0.194824f, -0.518066f, 0.232666f, -0.528076f, 0.270508f, -0.538086f,
+0.323242f, -0.538086f, 0.366699f, -0.538086f, 0.400391f, -0.527344f, 0.434082f, -0.516602f,
+0.457031f, -0.497559f, 0.47998f, -0.478516f, 0.491943f, -0.452148f, 0.503906f, -0.425781f,
+0.503906f, -0.394043f, 0.503906f, -0.378906f, 0.501221f, -0.357666f, 0.498535f, -0.336426f,
+0.494629f, -0.317383f, 0.458496f, -0.132812f, 0.456055f, -0.12207f, 0.45459f, -0.11084f,
+0.453125f, -0.0996094f, 0.453125f, -0.0898438f, 0.453125f, -0.0717773f, 0.462646f,
+-0.0629883f, 0.472168f, -0.0541992f, 0.492676f, -0.0541992f, 0.5f, -0.0541992f, 0.507568f,
+-0.0551758f, 0.515137f, -0.0561523f, 0.521973f, -0.0576172f, 0.39502f, -0.261719f,
+0.297852f, -0.259766f, 0.27832f, -0.259277f, 0.257324f, -0.257812f, 0.236328f, -0.256348f,
+0.216064f, -0.251709f, 0.195801f, -0.24707f, 0.17749f, -0.239258f, 0.15918f, -0.231445f,
+0.145508f, -0.218018f, 0.131836f, -0.20459f, 0.123779f, -0.185547f, 0.115723f, -0.166504f,
+0.115723f, -0.139648f, 0.115723f, -0.124023f, 0.12085f, -0.109131f, 0.125977f, -0.0942383f,
+0.136719f, -0.0827637f, 0.147461f, -0.0712891f, 0.16333f, -0.064209f, 0.179199f,
+-0.0571289f, 0.200684f, -0.0571289f, 0.243164f, -0.0571289f, 0.274902f, -0.0717773f,
+0.306641f, -0.0864258f, 0.329102f, -0.10791f, 0.351562f, -0.129395f, 0.364502f, -0.154541f,
+0.377441f, -0.179688f, 0.381836f, -0.200684f, 0.363281f, -0.538086f, 0.402344f, -0.538086f,
+0.432617f, -0.525879f, 0.462891f, -0.513672f, 0.483398f, -0.491211f, 0.503906f, -0.46875f,
+0.514648f, -0.436768f, 0.525391f, -0.404785f, 0.525391f, -0.365234f, 0.525391f, -0.34082f,
+0.523193f, -0.311768f, 0.520996f, -0.282715f, 0.515137f, -0.251953f, 0.501953f, -0.182617f,
+0.480469f, -0.133057f, 0.458984f, -0.0834961f, 0.428711f, -0.0517578f, 0.398438f,
+-0.0200195f, 0.359375f, -0.00512695f, 0.320312f, 0.00976562f, 0.271973f, 0.00976562f,
+0.211914f, 0.00976562f, 0.174316f, -0.015625f, 0.136719f, -0.0410156f, 0.121094f,
+-0.0869141f, 0.119629f, -0.0869141f, 0.117188f, -0.0742188f, 0.11377f, -0.0598145f,
+0.110352f, -0.0454102f, 0.107178f, -0.0327148f, 0.104004f, -0.0200195f, 0.101807f,
+-0.0109863f, 0.0996094f, -0.00195312f, 0.0986328f, 0, 0.0141602f, 0, 0.015625f, -0.00439453f,
+0.0180664f, -0.0148926f, 0.0205078f, -0.0253906f, 0.0236816f, -0.0400391f, 0.0268555f,
+-0.0546875f, 0.0307617f, -0.0722656f, 0.034668f, -0.0898438f, 0.0380859f, -0.108887f,
+0.157715f, -0.724609f, 0.245605f, -0.724609f, 0.205078f, -0.518066f, 0.202637f, -0.503906f,
+0.199463f, -0.491211f, 0.196289f, -0.478516f, 0.193848f, -0.469238f, 0.190918f, -0.458496f,
+0.188477f, -0.449707f, 0.19043f, -0.449707f, 0.208008f, -0.472656f, 0.226318f, -0.489258f,
+0.244629f, -0.505859f, 0.265381f, -0.516846f, 0.286133f, -0.527832f, 0.310059f, -0.532959f,
+0.333984f, -0.538086f, 0.363281f, -0.538086f, 0.337891f, -0.470215f, 0.306641f, -0.470215f,
+0.278564f, -0.460938f, 0.250488f, -0.45166f, 0.226562f, -0.428955f, 0.202637f, -0.40625f,
+0.184326f, -0.367676f, 0.166016f, -0.329102f, 0.154785f, -0.270508f, 0.145508f, -0.222656f,
+0.145508f, -0.184082f, 0.145508f, -0.152832f, 0.153809f, -0.128662f, 0.162109f, -0.104492f,
+0.17749f, -0.0881348f, 0.192871f, -0.0717773f, 0.2146f, -0.0634766f, 0.236328f, -0.0551758f,
+0.262695f, -0.0551758f, 0.292969f, -0.0551758f, 0.317383f, -0.064209f, 0.341797f,
+-0.0732422f, 0.361572f, -0.095459f, 0.381348f, -0.117676f, 0.396484f, -0.155029f,
+0.411621f, -0.192383f, 0.422363f, -0.249023f, 0.433594f, -0.308105f, 0.433594f, -0.349609f,
+0.433594f, -0.409668f, 0.410645f, -0.439941f, 0.387695f, -0.470215f, 0.337891f, -0.470215f,
+0.229004f, -0.0595703f, 0.256348f, -0.0595703f, 0.27832f, -0.067627f, 0.300293f,
+-0.0756836f, 0.317383f, -0.090332f, 0.334473f, -0.10498f, 0.347656f, -0.125732f,
+0.36084f, -0.146484f, 0.370117f, -0.171875f, 0.446289f, -0.147949f, 0.432617f, -0.111328f,
+0.412842f, -0.0822754f, 0.393066f, -0.0532227f, 0.365967f, -0.0327148f, 0.338867f,
+-0.012207f, 0.304199f, -0.0012207f, 0.269531f, 0.00976562f, 0.227051f, 0.00976562f,
+0.176758f, 0.00976562f, 0.139893f, -0.00537109f, 0.103027f, -0.0205078f, 0.0793457f,
+-0.0476074f, 0.0556641f, -0.074707f, 0.0441895f, -0.111816f, 0.0327148f, -0.148926f,
+0.0327148f, -0.192871f, 0.0327148f, -0.212402f, 0.0344238f, -0.235352f, 0.0361328f,
+-0.258301f, 0.0405273f, -0.280273f, 0.0512695f, -0.334473f, 0.0681152f, -0.374512f,
+0.0849609f, -0.414551f, 0.105713f, -0.443115f, 0.126465f, -0.47168f, 0.150635f, -0.490234f,
+0.174805f, -0.508789f, 0.200439f, -0.519287f, 0.226074f, -0.529785f, 0.252686f, -0.533936f,
+0.279297f, -0.538086f, 0.305176f, -0.538086f, 0.348633f, -0.538086f, 0.381592f, -0.526855f,
+0.414551f, -0.515625f, 0.4375f, -0.495117f, 0.460449f, -0.474609f, 0.473389f, -0.446045f,
+0.486328f, -0.41748f, 0.48877f, -0.382812f, 0.402344f, -0.370605f, 0.400879f, -0.392578f,
+0.394043f, -0.410645f, 0.387207f, -0.428711f, 0.374756f, -0.44165f, 0.362305f, -0.45459f,
+0.344238f, -0.461914f, 0.326172f, -0.469238f, 0.302246f, -0.469238f, 0.268555f, -0.469238f,
+0.241699f, -0.459473f, 0.214844f, -0.449707f, 0.193604f, -0.427734f, 0.172363f, -0.405762f,
+0.157227f, -0.370361f, 0.14209f, -0.334961f, 0.131836f, -0.283691f, 0.127441f, -0.260254f,
+0.125f, -0.234375f, 0.122559f, -0.208496f, 0.122559f, -0.189941f, 0.122559f, -0.12793f,
+0.147705f, -0.09375f, 0.172852f, -0.0595703f, 0.229004f, -0.0595703f, 0.195801f,
+0.0102539f, 0.156738f, 0.0102539f, 0.126465f, -0.00195312f, 0.0961914f, -0.0141602f,
+0.0756836f, -0.0366211f, 0.0551758f, -0.059082f, 0.0444336f, -0.0910645f, 0.0336914f,
+-0.123047f, 0.0336914f, -0.162598f, 0.0336914f, -0.18457f, 0.0358887f, -0.214844f,
+0.0380859f, -0.245117f, 0.0439453f, -0.275879f, 0.0571289f, -0.345215f, 0.0786133f,
+-0.394775f, 0.100098f, -0.444336f, 0.130371f, -0.476074f, 0.160645f, -0.507812f,
+0.199707f, -0.522705f, 0.23877f, -0.537598f, 0.287109f, -0.537598f, 0.347168f, -0.537598f,
+0.38501f, -0.512207f, 0.422852f, -0.486816f, 0.438477f, -0.440918f, 0.440918f, -0.440918f,
+0.441895f, -0.445801f, 0.443848f, -0.457031f, 0.445801f, -0.468262f, 0.447998f, -0.480713f,
+0.450195f, -0.493164f, 0.452148f, -0.504395f, 0.454102f, -0.515625f, 0.45459f, -0.52002f,
+0.494629f, -0.724609f, 0.58252f, -0.724609f, 0.462891f, -0.108887f, 0.458984f, -0.0898438f,
+0.455811f, -0.0722656f, 0.452637f, -0.0546875f, 0.450195f, -0.0400391f, 0.447754f,
+-0.0253906f, 0.446289f, -0.0148926f, 0.444824f, -0.00439453f, 0.444336f, 0, 0.360352f,
+0, 0.360352f, -0.00976562f, 0.363037f, -0.03125f, 0.365723f, -0.0527344f, 0.370605f,
+-0.078125f, 0.368164f, -0.078125f, 0.350586f, -0.0551758f, 0.332275f, -0.0385742f,
+0.313965f, -0.0219727f, 0.293457f, -0.0109863f, 0.272949f, 0, 0.249023f, 0.00512695f,
+0.225098f, 0.0102539f, 0.195801f, 0.0102539f, 0.221191f, -0.0576172f, 0.252441f,
+-0.0576172f, 0.280518f, -0.0668945f, 0.308594f, -0.0761719f, 0.33252f, -0.098877f,
+0.356445f, -0.121582f, 0.374756f, -0.160156f, 0.393066f, -0.19873f, 0.404297f, -0.257324f,
+0.413574f, -0.305176f, 0.413574f, -0.34375f, 0.413574f, -0.375488f, 0.405273f, -0.399414f,
+0.396973f, -0.42334f, 0.381592f, -0.439697f, 0.366211f, -0.456055f, 0.344482f, -0.464355f,
+0.322754f, -0.472656f, 0.296387f, -0.472656f, 0.266602f, -0.472656f, 0.241943f, -0.463623f,
+0.217285f, -0.45459f, 0.19751f, -0.432373f, 0.177734f, -0.410156f, 0.162842f, -0.372803f,
+0.147949f, -0.335449f, 0.136719f, -0.278809f, 0.125488f, -0.219727f, 0.125488f, -0.178223f,
+0.125488f, -0.118164f, 0.148438f, -0.0878906f, 0.171387f, -0.0576172f, 0.221191f,
+-0.0576172f, 0.125f, -0.245605f, 0.122559f, -0.231934f, 0.121826f, -0.218018f, 0.121094f,
+-0.204102f, 0.120605f, -0.19043f, 0.120605f, -0.125488f, 0.153076f, -0.0908203f,
+0.185547f, -0.0561523f, 0.250977f, -0.0561523f, 0.27832f, -0.0561523f, 0.300781f,
+-0.0632324f, 0.323242f, -0.0703125f, 0.341553f, -0.0822754f, 0.359863f, -0.0942383f,
+0.373779f, -0.110107f, 0.387695f, -0.125977f, 0.396973f, -0.143555f, 0.464355f, -0.112793f,
+0.452148f, -0.0908203f, 0.43457f, -0.0690918f, 0.416992f, -0.0473633f, 0.390869f,
+-0.0297852f, 0.364746f, -0.012207f, 0.328125f, -0.0012207f, 0.291504f, 0.00976562f,
+0.240723f, 0.00976562f, 0.191895f, 0.00976562f, 0.15332f, -0.00415039f, 0.114746f,
+-0.0180664f, 0.0881348f, -0.0446777f, 0.0615234f, -0.0712891f, 0.0476074f, -0.109863f,
+0.0336914f, -0.148438f, 0.0336914f, -0.197754f, 0.0336914f, -0.274902f, 0.0544434f,
+-0.337891f, 0.0751953f, -0.400879f, 0.112061f, -0.445312f, 0.148926f, -0.489746f,
+0.198975f, -0.513916f, 0.249023f, -0.538086f, 0.307617f, -0.538086f, 0.361328f, -0.538086f,
+0.400879f, -0.523926f, 0.44043f, -0.509766f, 0.466797f, -0.484375f, 0.493164f, -0.458984f,
+0.506104f, -0.423584f, 0.519043f, -0.388184f, 0.519043f, -0.345703f, 0.519043f, -0.335449f,
+0.518311f, -0.323242f, 0.517578f, -0.311035f, 0.516113f, -0.297852f, 0.514648f, -0.284668f,
+0.512451f, -0.27124f, 0.510254f, -0.257812f, 0.507324f, -0.245605f, 0.429688f, -0.312988f,
+0.430664f, -0.322754f, 0.431152f, -0.331299f, 0.431641f, -0.339844f, 0.431641f, -0.348145f,
+0.431641f, -0.380371f, 0.422852f, -0.404053f, 0.414062f, -0.427734f, 0.397949f, -0.443115f,
+0.381836f, -0.458496f, 0.359375f, -0.46582f, 0.336914f, -0.473145f, 0.30957f, -0.473145f,
+0.286133f, -0.473145f, 0.260254f, -0.466064f, 0.234375f, -0.458984f, 0.210693f, -0.440918f,
+0.187012f, -0.422852f, 0.16748f, -0.391846f, 0.147949f, -0.36084f, 0.136719f, -0.312988f,
+0.211914f, -0.464355f, 0.121582f, 0, 0.0336914f, 0, 0.124023f, -0.464355f, 0.0498047f,
+-0.464355f, 0.0625f, -0.52832f, 0.136719f, -0.52832f, 0.147949f, -0.587891f, 0.153809f,
+-0.616699f, 0.163086f, -0.641602f, 0.172363f, -0.666504f, 0.189697f, -0.685059f,
+0.207031f, -0.703613f, 0.234375f, -0.714111f, 0.261719f, -0.724609f, 0.303711f, -0.724609f,
+0.319336f, -0.724609f, 0.335693f, -0.723145f, 0.352051f, -0.72168f, 0.364258f, -0.71875f,
+0.351562f, -0.651855f, 0.347168f, -0.652832f, 0.341553f, -0.65332f, 0.335938f, -0.653809f,
+0.32959f, -0.654541f, 0.323242f, -0.655273f, 0.317383f, -0.655518f, 0.311523f, -0.655762f,
+0.307129f, -0.655762f, 0.288574f, -0.655762f, 0.276123f, -0.650391f, 0.263672f, -0.64502f,
+0.255615f, -0.634766f, 0.247559f, -0.624512f, 0.242676f, -0.609619f, 0.237793f, -0.594727f,
+0.233887f, -0.575684f, 0.224609f, -0.52832f, 0.327637f, -0.52832f, 0.314941f, -0.464355f,
+0.193848f, 0.20752f, 0.148438f, 0.20752f, 0.114746f, 0.198486f, 0.0810547f, 0.189453f,
+0.0578613f, 0.17334f, 0.034668f, 0.157227f, 0.0212402f, 0.134521f, 0.0078125f, 0.111816f,
+0.00195312f, 0.0844727f, 0.081543f, 0.0639648f, 0.0898438f, 0.101074f, 0.118408f,
+0.12085f, 0.146973f, 0.140625f, 0.195801f, 0.140625f, 0.230957f, 0.140625f, 0.257812f,
+0.131592f, 0.284668f, 0.122559f, 0.303955f, 0.104004f, 0.323242f, 0.0854492f, 0.336182f,
+0.0563965f, 0.349121f, 0.0273438f, 0.356934f, -0.0131836f, 0.359375f, -0.0258789f,
+0.362305f, -0.0405273f, 0.365234f, -0.0551758f, 0.367676f, -0.0678711f, 0.370605f,
+-0.0830078f, 0.373535f, -0.0981445f, 0.372559f, -0.0981445f, 0.358887f, -0.0786133f,
+0.343506f, -0.0600586f, 0.328125f, -0.0415039f, 0.308105f, -0.0273438f, 0.288086f,
+-0.0131836f, 0.261719f, -0.00463867f, 0.235352f, 0.00390625f, 0.200195f, 0.00390625f,
+0.161621f, 0.00390625f, 0.130859f, -0.00952148f, 0.100098f, -0.0229492f, 0.0786133f,
+-0.0466309f, 0.0571289f, -0.0703125f, 0.0456543f, -0.103271f, 0.0341797f, -0.13623f,
+0.0341797f, -0.175293f, 0.0341797f, -0.199219f, 0.0368652f, -0.22583f, 0.0395508f,
+-0.252441f, 0.0454102f, -0.283203f, 0.0698242f, -0.410645f, 0.128174f, -0.474121f,
+0.186523f, -0.537598f, 0.287109f, -0.537598f, 0.314941f, -0.537598f, 0.339844f, -0.531006f,
+0.364746f, -0.524414f, 0.384521f, -0.511475f, 0.404297f, -0.498535f, 0.418701f, -0.47998f,
+0.433105f, -0.461426f, 0.439453f, -0.437988f, 0.44043f, -0.437988f, 0.442871f, -0.450195f,
+0.446533f, -0.465332f, 0.450195f, -0.480469f, 0.453613f, -0.493896f, 0.457031f, -0.507324f,
+0.459961f, -0.51709f, 0.462891f, -0.526855f, 0.463867f, -0.52832f, 0.547363f, -0.52832f,
+0.546387f, -0.523926f, 0.543945f, -0.513428f, 0.541504f, -0.50293f, 0.538086f, -0.488281f,
+0.534668f, -0.473633f, 0.531006f, -0.455811f, 0.527344f, -0.437988f, 0.523438f, -0.418945f,
+0.444824f, -0.0151367f, 0.43457f, 0.0371094f, 0.416504f, 0.0783691f, 0.398438f, 0.119629f,
+0.368652f, 0.148438f, 0.338867f, 0.177246f, 0.296143f, 0.192383f, 0.253418f, 0.20752f,
+0.193848f, 0.20752f, 0.126465f, -0.182129f, 0.126465f, -0.123047f, 0.1521f, -0.092041f,
+0.177734f, -0.0610352f, 0.227539f, -0.0610352f, 0.253906f, -0.0610352f, 0.281006f,
+-0.0722656f, 0.308105f, -0.0834961f, 0.332275f, -0.10791f, 0.356445f, -0.132324f,
+0.375732f, -0.170898f, 0.39502f, -0.209473f, 0.405762f, -0.26416f, 0.409668f, -0.284668f,
+0.411621f, -0.306396f, 0.413574f, -0.328125f, 0.413574f, -0.34375f, 0.413574f, -0.376465f,
+0.404785f, -0.400635f, 0.395996f, -0.424805f, 0.380127f, -0.440918f, 0.364258f, -0.457031f,
+0.342773f, -0.464844f, 0.321289f, -0.472656f, 0.296387f, -0.472656f, 0.266113f, -0.472656f,
+0.241455f, -0.463623f, 0.216797f, -0.45459f, 0.197266f, -0.432861f, 0.177734f, -0.411133f,
+0.163086f, -0.374756f, 0.148438f, -0.338379f, 0.137695f, -0.283203f, 0.132324f, -0.254395f,
+0.129395f, -0.228027f, 0.126465f, -0.20166f, 0.126465f, -0.182129f, 0.187012f, -0.437988f,
+0.203613f, -0.460938f, 0.221191f, -0.479492f, 0.23877f, -0.498047f, 0.26001f, -0.510986f,
+0.28125f, -0.523926f, 0.306885f, -0.530762f, 0.33252f, -0.537598f, 0.365234f, -0.537598f,
+0.4375f, -0.537598f, 0.473877f, -0.501953f, 0.510254f, -0.466309f, 0.510254f, -0.398926f,
+0.510254f, -0.381348f, 0.50708f, -0.359375f, 0.503906f, -0.337402f, 0.5f, -0.318848f,
+0.437988f, 0, 0.349609f, 0, 0.411133f, -0.314941f, 0.415039f, -0.333984f, 0.41748f,
+-0.35376f, 0.419922f, -0.373535f, 0.419922f, -0.388184f, 0.419922f, -0.426758f, 0.399414f,
+-0.448242f, 0.378906f, -0.469727f, 0.33252f, -0.469727f, 0.30127f, -0.469727f, 0.273682f,
+-0.457275f, 0.246094f, -0.444824f, 0.223633f, -0.422119f, 0.201172f, -0.399414f,
+0.185303f, -0.367432f, 0.169434f, -0.335449f, 0.161621f, -0.295898f, 0.104004f, 0,
+0.0166016f, 0, 0.157227f, -0.724609f, 0.245117f, -0.724609f, 0.208496f, -0.536133f,
+0.205566f, -0.52002f, 0.201904f, -0.503906f, 0.198242f, -0.487793f, 0.194824f, -0.474365f,
+0.191406f, -0.460938f, 0.188965f, -0.451172f, 0.186523f, -0.441406f, 0.185547f, -0.437988f,
+0.140137f, -0.640625f, 0.156738f, -0.724609f, 0.244629f, -0.724609f, 0.228027f, -0.640625f,
+0.0161133f, 0, 0.118652f, -0.52832f, 0.206543f, -0.52832f, 0.103516f, 0, 0.141113f,
+-0.640625f, 0.157227f, -0.724609f, 0.245117f, -0.724609f, 0.229004f, -0.640625f,
+-0.0488281f, 0.20752f, -0.0654297f, 0.20752f, -0.0822754f, 0.205322f, -0.0991211f,
+0.203125f, -0.111816f, 0.200684f, -0.100586f, 0.134277f, -0.0942383f, 0.135254f,
+-0.0820312f, 0.136719f, -0.0698242f, 0.138184f, -0.0600586f, 0.138184f, -0.03125f,
+0.138184f, -0.0166016f, 0.117676f, -0.00195312f, 0.097168f, 0.00634766f, 0.0522461f,
+0.119141f, -0.52832f, 0.207031f, -0.52832f, 0.0913086f, 0.0654297f, 0.0854492f, 0.0957031f,
+0.0759277f, 0.121582f, 0.0664062f, 0.147461f, 0.050293f, 0.166504f, 0.0341797f, 0.185547f,
+0.0100098f, 0.196533f, -0.0141602f, 0.20752f, -0.0488281f, 0.20752f, 0.352051f, 0,
+0.221191f, -0.245117f, 0.13916f, -0.18457f, 0.104004f, 0, 0.0166016f, 0, 0.157227f,
+-0.724609f, 0.245117f, -0.724609f, 0.157715f, -0.276855f, 0.257324f, -0.369629f,
+0.433594f, -0.52832f, 0.541992f, -0.52832f, 0.283203f, -0.30127f, 0.447266f, 0, 0.0161133f,
+0, 0.156738f, -0.724609f, 0.244629f, -0.724609f, 0.103516f, 0, 0.322266f, 0, 0.382812f,
+-0.30957f, 0.384766f, -0.319336f, 0.386963f, -0.331055f, 0.38916f, -0.342773f, 0.390869f,
+-0.354492f, 0.392578f, -0.366211f, 0.393799f, -0.376709f, 0.39502f, -0.387207f, 0.39502f,
+-0.394531f, 0.39502f, -0.431152f, 0.376465f, -0.450439f, 0.35791f, -0.469727f, 0.315918f,
+-0.469727f, 0.288086f, -0.469727f, 0.262939f, -0.457275f, 0.237793f, -0.444824f,
+0.217773f, -0.422119f, 0.197754f, -0.399414f, 0.183105f, -0.366943f, 0.168457f, -0.334473f,
+0.161621f, -0.294922f, 0.104004f, 0, 0.0166016f, 0, 0.0976562f, -0.415527f, 0.101074f,
+-0.432129f, 0.104248f, -0.450439f, 0.107422f, -0.46875f, 0.110107f, -0.485107f, 0.112793f,
+-0.501465f, 0.114502f, -0.513184f, 0.116211f, -0.524902f, 0.116699f, -0.52832f, 0.199707f,
+-0.52832f, 0.199707f, -0.525879f, 0.198242f, -0.515137f, 0.196777f, -0.504395f, 0.19458f,
+-0.490479f, 0.192383f, -0.476562f, 0.190186f, -0.462158f, 0.187988f, -0.447754f,
+0.186035f, -0.437988f, 0.1875f, -0.437988f, 0.202148f, -0.460938f, 0.217773f, -0.479492f,
+0.233398f, -0.498047f, 0.251953f, -0.510986f, 0.270508f, -0.523926f, 0.293213f, -0.530762f,
+0.315918f, -0.537598f, 0.344727f, -0.537598f, 0.403809f, -0.537598f, 0.438477f, -0.508545f,
+0.473145f, -0.479492f, 0.47998f, -0.424316f, 0.495605f, -0.44873f, 0.512207f, -0.469238f,
+0.528809f, -0.489746f, 0.549072f, -0.505127f, 0.569336f, -0.520508f, 0.593994f, -0.529053f,
+0.618652f, -0.537598f, 0.649902f, -0.537598f, 0.71582f, -0.537598f, 0.751221f, -0.501953f,
+0.786621f, -0.466309f, 0.786621f, -0.398926f, 0.786621f, -0.381348f, 0.783447f, -0.359375f,
+0.780273f, -0.337402f, 0.776367f, -0.318848f, 0.714355f, 0, 0.627441f, 0, 0.687988f,
+-0.30957f, 0.689941f, -0.319336f, 0.692139f, -0.331055f, 0.694336f, -0.342773f, 0.696045f,
+-0.354492f, 0.697754f, -0.366211f, 0.698975f, -0.376709f, 0.700195f, -0.387207f,
+0.700195f, -0.394531f, 0.700195f, -0.431152f, 0.681641f, -0.450439f, 0.663086f, -0.469727f,
+0.621094f, -0.469727f, 0.593262f, -0.469727f, 0.568115f, -0.45752f, 0.542969f, -0.445312f,
+0.522949f, -0.422852f, 0.50293f, -0.400391f, 0.488281f, -0.368164f, 0.473633f, -0.335938f,
+0.466797f, -0.296387f, 0.40918f, 0, 0.350098f, 0, 0.411621f, -0.314941f, 0.415527f,
+-0.333984f, 0.417969f, -0.35376f, 0.42041f, -0.373535f, 0.42041f, -0.388184f, 0.42041f,
+-0.426758f, 0.399902f, -0.448242f, 0.379395f, -0.469727f, 0.333008f, -0.469727f,
+0.301758f, -0.469727f, 0.27417f, -0.457275f, 0.246582f, -0.444824f, 0.224121f, -0.422119f,
+0.20166f, -0.399414f, 0.185791f, -0.367432f, 0.169922f, -0.335449f, 0.162109f, -0.295898f,
+0.104492f, 0, 0.0166016f, 0, 0.0976562f, -0.415527f, 0.101074f, -0.432129f, 0.104248f,
+-0.450439f, 0.107422f, -0.46875f, 0.110107f, -0.485107f, 0.112793f, -0.501465f, 0.114502f,
+-0.513184f, 0.116211f, -0.524902f, 0.116699f, -0.52832f, 0.199707f, -0.52832f, 0.199707f,
+-0.525879f, 0.198242f, -0.515137f, 0.196777f, -0.504395f, 0.19458f, -0.490479f, 0.192383f,
+-0.476562f, 0.190186f, -0.462158f, 0.187988f, -0.447754f, 0.186035f, -0.437988f,
+0.1875f, -0.437988f, 0.204102f, -0.460938f, 0.22168f, -0.479492f, 0.239258f, -0.498047f,
+0.260498f, -0.510986f, 0.281738f, -0.523926f, 0.307373f, -0.530762f, 0.333008f, -0.537598f,
+0.365723f, -0.537598f, 0.437988f, -0.537598f, 0.474365f, -0.501953f, 0.510742f, -0.466309f,
+0.510742f, -0.398926f, 0.510742f, -0.381348f, 0.507568f, -0.359375f, 0.504395f, -0.337402f,
+0.500488f, -0.318848f, 0.438477f, 0, 0.524414f, -0.333496f, 0.524414f, -0.308105f,
+0.521484f, -0.282471f, 0.518555f, -0.256836f, 0.511719f, -0.228027f, 0.49707f, -0.163574f,
+0.470947f, -0.118164f, 0.444824f, -0.0727539f, 0.409668f, -0.0444336f, 0.374512f,
+-0.0161133f, 0.331543f, -0.00317383f, 0.288574f, 0.00976562f, 0.239746f, 0.00976562f,
+0.192871f, 0.00976562f, 0.154785f, -0.00463867f, 0.116699f, -0.019043f, 0.0895996f,
+-0.0466309f, 0.0625f, -0.0742188f, 0.0476074f, -0.114014f, 0.0327148f, -0.153809f,
+0.0327148f, -0.20459f, 0.0332031f, -0.227539f, 0.0354004f, -0.251953f, 0.0375977f,
+-0.276367f, 0.043457f, -0.302734f, 0.0576172f, -0.364258f, 0.0825195f, -0.408447f,
+0.107422f, -0.452637f, 0.141602f, -0.481445f, 0.175781f, -0.510254f, 0.218994f, -0.523926f,
+0.262207f, -0.537598f, 0.313477f, -0.537598f, 0.365234f, -0.537598f, 0.404541f, -0.523926f,
+0.443848f, -0.510254f, 0.470459f, -0.483887f, 0.49707f, -0.45752f, 0.510742f, -0.419678f,
+0.524414f, -0.381836f, 0.524414f, -0.333496f, 0.433594f, -0.333496f, 0.433594f, -0.371094f,
+0.425293f, -0.397461f, 0.416992f, -0.423828f, 0.401123f, -0.440674f, 0.385254f, -0.45752f,
+0.362793f, -0.465332f, 0.340332f, -0.473145f, 0.3125f, -0.473145f, 0.286621f, -0.473145f,
+0.260498f, -0.467041f, 0.234375f, -0.460938f, 0.210693f, -0.442383f, 0.187012f, -0.423828f,
+0.16748f, -0.389648f, 0.147949f, -0.355469f, 0.134766f, -0.298828f, 0.128418f, -0.271973f,
+0.125732f, -0.247803f, 0.123047f, -0.223633f, 0.123047f, -0.203125f, 0.123047f, -0.163086f,
+0.132324f, -0.134766f, 0.141602f, -0.106445f, 0.157959f, -0.0888672f, 0.174316f,
+-0.0712891f, 0.196533f, -0.0632324f, 0.21875f, -0.0551758f, 0.245117f, -0.0551758f,
+0.271484f, -0.0551758f, 0.297119f, -0.0610352f, 0.322754f, -0.0668945f, 0.345703f,
+-0.0856934f, 0.368652f, -0.104492f, 0.387939f, -0.13916f, 0.407227f, -0.173828f,
+0.42041f, -0.230957f, 0.427246f, -0.260254f, 0.429932f, -0.284668f, 0.432617f, -0.309082f,
+0.433594f, -0.333496f, 0.270508f, 0.00976562f, 0.210449f, 0.00976562f, 0.172607f,
+-0.015625f, 0.134766f, -0.0410156f, 0.119141f, -0.0869141f, 0.116699f, -0.0869141f,
+0.116699f, -0.0859375f, 0.115723f, -0.0773926f, 0.114746f, -0.0688477f, 0.112793f,
+-0.0561523f, 0.11084f, -0.043457f, 0.108154f, -0.0283203f, 0.105469f, -0.0131836f,
+0.102539f, 0.000976562f, 0.0625f, 0.20752f, -0.0249023f, 0.20752f, 0.0966797f, -0.42041f,
+0.100586f, -0.439453f, 0.103516f, -0.457031f, 0.106445f, -0.474609f, 0.108643f, -0.489014f,
+0.11084f, -0.503418f, 0.112061f, -0.513672f, 0.113281f, -0.523926f, 0.11377f, -0.52832f,
+0.195312f, -0.52832f, 0.195312f, -0.524414f, 0.194824f, -0.515625f, 0.194336f, -0.506836f,
+0.193115f, -0.49585f, 0.191895f, -0.484863f, 0.19043f, -0.472656f, 0.188965f, -0.460449f,
+0.187012f, -0.449707f, 0.188965f, -0.449707f, 0.206543f, -0.472656f, 0.224854f, -0.489258f,
+0.243164f, -0.505859f, 0.263916f, -0.516846f, 0.284668f, -0.527832f, 0.308594f, -0.532959f,
+0.33252f, -0.538086f, 0.361816f, -0.538086f, 0.400879f, -0.538086f, 0.431152f, -0.525879f,
+0.461426f, -0.513672f, 0.481934f, -0.491211f, 0.502441f, -0.46875f, 0.513184f, -0.436768f,
+0.523926f, -0.404785f, 0.523926f, -0.365234f, 0.523926f, -0.34082f, 0.521729f, -0.311768f,
+0.519531f, -0.282715f, 0.513672f, -0.251953f, 0.500488f, -0.182617f, 0.479004f, -0.133057f,
+0.45752f, -0.0834961f, 0.427246f, -0.0517578f, 0.396973f, -0.0200195f, 0.35791f,
+-0.00512695f, 0.318848f, 0.00976562f, 0.270508f, 0.00976562f, 0.336426f, -0.470215f,
+0.305176f, -0.470215f, 0.2771f, -0.460938f, 0.249023f, -0.45166f, 0.225098f, -0.428955f,
+0.201172f, -0.40625f, 0.182861f, -0.367676f, 0.164551f, -0.329102f, 0.15332f, -0.270508f,
+0.144043f, -0.222656f, 0.144043f, -0.184082f, 0.144043f, -0.152832f, 0.152344f, -0.128662f,
+0.160645f, -0.104492f, 0.176025f, -0.0881348f, 0.191406f, -0.0717773f, 0.213135f,
+-0.0634766f, 0.234863f, -0.0551758f, 0.26123f, -0.0551758f, 0.291504f, -0.0551758f,
+0.315918f, -0.064209f, 0.340332f, -0.0732422f, 0.360107f, -0.095459f, 0.379883f,
+-0.117676f, 0.39502f, -0.155029f, 0.410156f, -0.192383f, 0.420898f, -0.249023f, 0.432129f,
+-0.308105f, 0.432129f, -0.349609f, 0.432129f, -0.409668f, 0.40918f, -0.439941f, 0.38623f,
+-0.470215f, 0.336426f, -0.470215f, 0.195801f, 0.0102539f, 0.156738f, 0.0102539f,
+0.126465f, -0.00195312f, 0.0961914f, -0.0141602f, 0.0756836f, -0.0366211f, 0.0551758f,
+-0.059082f, 0.0444336f, -0.0910645f, 0.0336914f, -0.123047f, 0.0336914f, -0.162598f,
+0.0336914f, -0.18457f, 0.0358887f, -0.214844f, 0.0380859f, -0.245117f, 0.0439453f,
+-0.275879f, 0.0571289f, -0.345215f, 0.0786133f, -0.394775f, 0.100098f, -0.444336f,
+0.130371f, -0.476074f, 0.160645f, -0.507812f, 0.199707f, -0.522705f, 0.23877f, -0.537598f,
+0.287109f, -0.537598f, 0.347168f, -0.537598f, 0.38501f, -0.512207f, 0.422852f, -0.486816f,
+0.438477f, -0.440918f, 0.440918f, -0.440918f, 0.443359f, -0.453125f, 0.446777f, -0.468018f,
+0.450195f, -0.48291f, 0.453613f, -0.496338f, 0.457031f, -0.509766f, 0.459961f, -0.520508f,
+0.462891f, -0.53125f, 0.464844f, -0.535156f, 0.549316f, -0.535156f, 0.546875f, -0.526855f,
+0.538574f, -0.491699f, 0.530273f, -0.456543f, 0.517578f, -0.391113f, 0.401367f, 0.20752f,
+0.313477f, 0.20752f, 0.35498f, -0.00683594f, 0.357422f, -0.0195312f, 0.360107f, -0.0322266f,
+0.362793f, -0.0449219f, 0.365234f, -0.0551758f, 0.367676f, -0.0673828f, 0.370605f,
+-0.078125f, 0.368652f, -0.078125f, 0.351074f, -0.0551758f, 0.332764f, -0.0385742f,
+0.314453f, -0.0219727f, 0.293701f, -0.0109863f, 0.272949f, 0, 0.249023f, 0.00512695f,
+0.225098f, 0.0102539f, 0.195801f, 0.0102539f, 0.221191f, -0.0576172f, 0.252441f,
+-0.0576172f, 0.280518f, -0.0668945f, 0.308594f, -0.0761719f, 0.33252f, -0.098877f,
+0.356445f, -0.121582f, 0.374756f, -0.160156f, 0.393066f, -0.19873f, 0.404297f, -0.257324f,
+0.413574f, -0.305176f, 0.413574f, -0.34375f, 0.413574f, -0.375488f, 0.405273f, -0.399414f,
+0.396973f, -0.42334f, 0.381592f, -0.439697f, 0.366211f, -0.456055f, 0.344482f, -0.464355f,
+0.322754f, -0.472656f, 0.296387f, -0.472656f, 0.266602f, -0.472656f, 0.241943f, -0.463623f,
+0.217285f, -0.45459f, 0.19751f, -0.432373f, 0.177734f, -0.410156f, 0.162842f, -0.372803f,
+0.147949f, -0.335449f, 0.136719f, -0.278809f, 0.125488f, -0.219727f, 0.125488f, -0.178223f,
+0.125488f, -0.118164f, 0.148438f, -0.0878906f, 0.171387f, -0.0576172f, 0.221191f,
+-0.0576172f, 0.350586f, -0.458008f, 0.342285f, -0.460449f, 0.330811f, -0.462402f,
+0.319336f, -0.464355f, 0.306641f, -0.464355f, 0.275391f, -0.464355f, 0.250488f, -0.446289f,
+0.225586f, -0.428223f, 0.206787f, -0.400391f, 0.187988f, -0.372559f, 0.175781f, -0.339111f,
+0.163574f, -0.305664f, 0.158203f, -0.275391f, 0.104492f, 0, 0.0166016f, 0, 0.0957031f,
+-0.405273f, 0.0991211f, -0.422363f, 0.102051f, -0.439453f, 0.10498f, -0.456543f,
+0.107666f, -0.472656f, 0.110352f, -0.48877f, 0.112793f, -0.503174f, 0.115234f, -0.517578f,
+0.116699f, -0.52832f, 0.199707f, -0.52832f, 0.198242f, -0.517578f, 0.196045f, -0.50293f,
+0.193848f, -0.488281f, 0.191406f, -0.473145f, 0.188965f, -0.458008f, 0.186768f, -0.444092f,
+0.18457f, -0.430176f, 0.182617f, -0.42041f, 0.18457f, -0.42041f, 0.199707f, -0.450684f,
+0.2146f, -0.4729f, 0.229492f, -0.495117f, 0.245605f, -0.509521f, 0.261719f, -0.523926f,
+0.280029f, -0.531006f, 0.29834f, -0.538086f, 0.320312f, -0.538086f, 0.325684f, -0.538086f,
+0.332031f, -0.537354f, 0.338379f, -0.536621f, 0.344971f, -0.535645f, 0.351562f, -0.534668f,
+0.357422f, -0.533447f, 0.363281f, -0.532227f, 0.366699f, -0.53125f, 0.442871f, -0.154785f,
+0.442871f, -0.113281f, 0.42627f, -0.0822754f, 0.409668f, -0.0512695f, 0.37915f, -0.0307617f,
+0.348633f, -0.0102539f, 0.305176f, -0.000244141f, 0.261719f, 0.00976562f, 0.20752f,
+0.00976562f, 0.162109f, 0.00976562f, 0.12793f, 0.00195312f, 0.09375f, -0.00585938f,
+0.0690918f, -0.020752f, 0.0444336f, -0.0356445f, 0.0280762f, -0.0578613f, 0.0117188f,
+-0.0800781f, 0.00244141f, -0.108887f, 0.0742188f, -0.13623f, 0.081543f, -0.116699f,
+0.0930176f, -0.101318f, 0.104492f, -0.0859375f, 0.121338f, -0.0754395f, 0.138184f,
+-0.0649414f, 0.161377f, -0.0595703f, 0.18457f, -0.0541992f, 0.215332f, -0.0541992f,
+0.246582f, -0.0541992f, 0.272705f, -0.0593262f, 0.298828f, -0.0644531f, 0.317627f,
+-0.0756836f, 0.336426f, -0.0869141f, 0.346924f, -0.104492f, 0.357422f, -0.12207f,
+0.357422f, -0.146973f, 0.357422f, -0.166504f, 0.348145f, -0.18042f, 0.338867f, -0.194336f,
+0.322021f, -0.204834f, 0.305176f, -0.215332f, 0.281006f, -0.224365f, 0.256836f, -0.233398f,
+0.227051f, -0.242676f, 0.195312f, -0.25293f, 0.166748f, -0.265137f, 0.138184f, -0.277344f,
+0.116455f, -0.294434f, 0.0947266f, -0.311523f, 0.0817871f, -0.334717f, 0.0688477f,
+-0.35791f, 0.0688477f, -0.38916f, 0.0688477f, -0.429199f, 0.0861816f, -0.457275f,
+0.103516f, -0.485352f, 0.133057f, -0.50293f, 0.162598f, -0.520508f, 0.201904f, -0.528564f,
+0.241211f, -0.536621f, 0.285156f, -0.536621f, 0.325195f, -0.536621f, 0.358398f, -0.529785f,
+0.391602f, -0.522949f, 0.416504f, -0.508057f, 0.441406f, -0.493164f, 0.45752f, -0.469482f,
+0.473633f, -0.445801f, 0.479492f, -0.412109f, 0.399902f, -0.399902f, 0.38916f, -0.438477f,
+0.359375f, -0.455566f, 0.32959f, -0.472656f, 0.279297f, -0.472656f, 0.253418f, -0.472656f,
+0.230713f, -0.46875f, 0.208008f, -0.464844f, 0.190918f, -0.456055f, 0.173828f, -0.447266f,
+0.163818f, -0.433105f, 0.153809f, -0.418945f, 0.153809f, -0.398926f, 0.153809f, -0.378906f,
+0.163086f, -0.365479f, 0.172363f, -0.352051f, 0.189209f, -0.341797f, 0.206055f, -0.331543f,
+0.229736f, -0.323486f, 0.253418f, -0.31543f, 0.282715f, -0.306152f, 0.310547f, -0.297363f,
+0.339111f, -0.285645f, 0.367676f, -0.273926f, 0.390625f, -0.256592f, 0.413574f, -0.239258f,
+0.428223f, -0.2146f, 0.442871f, -0.189941f, 0.442871f, -0.154785f, 0.21875f, -0.00195312f,
+0.200684f, 0.00244141f, 0.179199f, 0.00610352f, 0.157715f, 0.00976562f, 0.134277f,
+0.00976562f, 0.0927734f, 0.00976562f, 0.0690918f, -0.0151367f, 0.0454102f, -0.0400391f,
+0.0454102f, -0.0810547f, 0.0454102f, -0.0966797f, 0.0478516f, -0.114502f, 0.050293f,
+-0.132324f, 0.0527344f, -0.144531f, 0.114258f, -0.464355f, 0.0532227f, -0.464355f,
+0.065918f, -0.52832f, 0.12793f, -0.52832f, 0.179199f, -0.646484f, 0.237793f, -0.646484f,
+0.214844f, -0.52832f, 0.3125f, -0.52832f, 0.299805f, -0.464355f, 0.202148f, -0.464355f,
+0.141113f, -0.149414f, 0.13916f, -0.139648f, 0.137207f, -0.125488f, 0.135254f, -0.111328f,
+0.135254f, -0.103027f, 0.135254f, -0.0825195f, 0.145508f, -0.0712891f, 0.155762f,
+-0.0600586f, 0.179199f, -0.0600586f, 0.191895f, -0.0600586f, 0.202881f, -0.0617676f,
+0.213867f, -0.0634766f, 0.228027f, -0.0668945f, 0.202637f, -0.52832f, 0.141113f,
+-0.213379f, 0.137207f, -0.194336f, 0.134766f, -0.174561f, 0.132324f, -0.154785f,
+0.132324f, -0.140137f, 0.132324f, -0.101562f, 0.152832f, -0.0800781f, 0.17334f, -0.0585938f,
+0.219727f, -0.0585938f, 0.250977f, -0.0585938f, 0.278564f, -0.0710449f, 0.306152f,
+-0.0834961f, 0.328613f, -0.106201f, 0.351074f, -0.128906f, 0.366943f, -0.160889f,
+0.382812f, -0.192871f, 0.390625f, -0.232422f, 0.448242f, -0.52832f, 0.536133f, -0.52832f,
+0.455078f, -0.112793f, 0.45166f, -0.0961914f, 0.448486f, -0.0778809f, 0.445312f,
+-0.0595703f, 0.442627f, -0.0432129f, 0.439941f, -0.0268555f, 0.438232f, -0.0151367f,
+0.436523f, -0.00341797f, 0.436035f, 0, 0.353027f, 0, 0.353027f, -0.00244141f, 0.354492f,
+-0.0131836f, 0.355957f, -0.0239258f, 0.358154f, -0.0378418f, 0.360352f, -0.0517578f,
+0.362549f, -0.0661621f, 0.364746f, -0.0805664f, 0.366699f, -0.090332f, 0.365234f,
+-0.090332f, 0.348633f, -0.0673828f, 0.331055f, -0.0488281f, 0.313477f, -0.0302734f,
+0.292236f, -0.017334f, 0.270996f, -0.00439453f, 0.245361f, 0.00244141f, 0.219727f,
+0.00927734f, 0.187012f, 0.00927734f, 0.114746f, 0.00927734f, 0.0783691f, -0.0263672f,
+0.0419922f, -0.0620117f, 0.0419922f, -0.129395f, 0.0419922f, -0.146973f, 0.045166f,
+-0.168945f, 0.0483398f, -0.190918f, 0.0522461f, -0.209473f, 0.114258f, -0.52832f,
+0.247559f, 0, 0.143555f, 0, 0.0546875f, -0.52832f, 0.145996f, -0.52832f, 0.195312f,
+-0.18457f, 0.196777f, -0.173828f, 0.198486f, -0.158447f, 0.200195f, -0.143066f, 0.20166f,
+-0.126465f, 0.203125f, -0.109863f, 0.204346f, -0.0944824f, 0.205566f, -0.0791016f,
+0.206543f, -0.0688477f, 0.211914f, -0.0791016f, 0.219238f, -0.0944824f, 0.226562f,
+-0.109863f, 0.234619f, -0.125977f, 0.242676f, -0.14209f, 0.250732f, -0.157471f, 0.258789f,
+-0.172852f, 0.264648f, -0.183594f, 0.452148f, -0.52832f, 0.547852f, -0.52832f, 0.521484f,
+0, 0.419434f, 0, 0.401367f, -0.34082f, 0.400879f, -0.350586f, 0.400391f, -0.369629f,
+0.399902f, -0.388672f, 0.399414f, -0.408203f, 0.398926f, -0.431152f, 0.398438f, -0.456055f,
+0.389648f, -0.434082f, 0.380859f, -0.412598f, 0.373047f, -0.394043f, 0.364502f, -0.374023f,
+0.355957f, -0.354004f, 0.349121f, -0.338867f, 0.196289f, 0, 0.0947266f, 0, 0.0498047f,
+-0.52832f, 0.136719f, -0.52832f, 0.15625f, -0.169434f, 0.156738f, -0.163574f, 0.157227f,
+-0.150146f, 0.157715f, -0.136719f, 0.158203f, -0.121826f, 0.158691f, -0.106934f,
+0.15918f, -0.0930176f, 0.159668f, -0.0791016f, 0.159668f, -0.0727539f, 0.166992f,
+-0.090332f, 0.174316f, -0.107422f, 0.180664f, -0.12207f, 0.187256f, -0.138184f, 0.193848f,
+-0.154297f, 0.199219f, -0.165527f, 0.365723f, -0.52832f, 0.459961f, -0.52832f, 0.481445f,
+-0.165527f, 0.48291f, -0.13916f, 0.483643f, -0.114746f, 0.484375f, -0.090332f, 0.484375f,
+-0.0727539f, 0.491699f, -0.090332f, 0.499512f, -0.107422f, 0.506348f, -0.12207f,
+0.513428f, -0.138672f, 0.520508f, -0.155273f, 0.526855f, -0.169434f, 0.689941f, -0.52832f,
+0.775879f, -0.52832f, 0.344727f, 0, 0.242676f, -0.216797f, 0.0571289f, 0, -0.0400391f,
+0, 0.200195f, -0.271484f, 0.0712891f, -0.52832f, 0.163574f, -0.52832f, 0.257812f,
+-0.322754f, 0.428711f, -0.52832f, 0.529297f, -0.52832f, 0.300293f, -0.272461f, 0.4375f,
+0, 0.244629f, 0, 0.217773f, 0.0463867f, 0.192871f, 0.0844727f, 0.167969f, 0.122559f,
+0.140625f, 0.149902f, 0.113281f, 0.177246f, 0.0812988f, 0.192383f, 0.0493164f, 0.20752f,
+0.0078125f, 0.20752f, -0.00830078f, 0.20752f, -0.0251465f, 0.205811f, -0.0419922f,
+0.204102f, -0.0566406f, 0.200684f, -0.0415039f, 0.135254f, -0.0332031f, 0.136719f,
+-0.0227051f, 0.137939f, -0.012207f, 0.13916f, -0.00390625f, 0.13916f, 0.0424805f,
+0.13916f, 0.0778809f, 0.10791f, 0.113281f, 0.0766602f, 0.147461f, 0.0170898f, 0.160645f,
+-0.00585938f, 0.0546875f, -0.52832f, 0.144043f, -0.52832f, 0.19873f, -0.236328f,
+0.20166f, -0.220703f, 0.205078f, -0.200195f, 0.208496f, -0.179688f, 0.211426f, -0.159424f,
+0.214355f, -0.13916f, 0.216553f, -0.121826f, 0.21875f, -0.104492f, 0.219238f, -0.0957031f,
+0.224121f, -0.106445f, 0.231934f, -0.121826f, 0.239746f, -0.137207f, 0.249268f, -0.154541f,
+0.258789f, -0.171875f, 0.268799f, -0.190186f, 0.278809f, -0.208496f, 0.288086f, -0.225586f,
+0.453125f, -0.52832f, 0.550293f, -0.52832f, -0.0214844f, 0, -0.00830078f, -0.0668945f,
+0.380859f, -0.460449f, 0.0874023f, -0.460449f, 0.100586f, -0.52832f, 0.50293f, -0.52832f,
+0.489746f, -0.461426f, 0.0996094f, -0.0678711f, 0.431152f, -0.0678711f, 0.417969f,
+0, 0.178711f, 0.20752f, 0.149902f, 0.20752f, 0.127686f, 0.198242f, 0.105469f, 0.188965f,
+0.0905762f, 0.172852f, 0.0756836f, 0.156738f, 0.0681152f, 0.134277f, 0.0605469f,
+0.111816f, 0.0605469f, 0.0854492f, 0.0605469f, 0.0795898f, 0.060791f, 0.0720215f,
+0.0610352f, 0.0644531f, 0.0617676f, 0.0566406f, 0.0625f, 0.0488281f, 0.0634766f,
+0.0412598f, 0.0644531f, 0.0336914f, 0.0654297f, 0.0283203f, 0.0927734f, -0.111816f,
+0.097168f, -0.133301f, 0.097168f, -0.149414f, 0.097168f, -0.189941f, 0.0744629f,
+-0.207764f, 0.0517578f, -0.225586f, 0.0102539f, -0.227539f, 0.0224609f, -0.289551f,
+0.0473633f, -0.290527f, 0.0683594f, -0.297363f, 0.0893555f, -0.304199f, 0.105469f,
+-0.317871f, 0.121582f, -0.331543f, 0.132812f, -0.353027f, 0.144043f, -0.374512f,
+0.149902f, -0.404785f, 0.184082f, -0.581543f, 0.197754f, -0.651367f, 0.234619f, -0.687988f,
+0.271484f, -0.724609f, 0.34082f, -0.724609f, 0.406738f, -0.724609f, 0.394531f, -0.661621f,
+0.36377f, -0.661621f, 0.339844f, -0.661621f, 0.322998f, -0.655273f, 0.306152f, -0.648926f,
+0.294189f, -0.63623f, 0.282227f, -0.623535f, 0.274414f, -0.60376f, 0.266602f, -0.583984f,
+0.26123f, -0.556641f, 0.227539f, -0.382812f, 0.222656f, -0.358398f, 0.211426f, -0.337891f,
+0.200195f, -0.317383f, 0.18457f, -0.301758f, 0.168945f, -0.286133f, 0.149414f, -0.275391f,
+0.129883f, -0.264648f, 0.108887f, -0.259766f, 0.108887f, -0.258789f, 0.142578f, -0.250488f,
+0.162354f, -0.226074f, 0.182129f, -0.20166f, 0.182129f, -0.163574f, 0.182129f, -0.150391f,
+0.179199f, -0.134766f, 0.149414f, 0.0209961f, 0.147949f, 0.0283203f, 0.146973f, 0.036377f,
+0.145996f, 0.0444336f, 0.145264f, 0.0524902f, 0.144531f, 0.0605469f, 0.143799f, 0.0678711f,
+0.143066f, 0.0751953f, 0.143066f, 0.0805664f, 0.14209f, 0.109863f, 0.159424f, 0.127197f,
+0.176758f, 0.144531f, 0.214355f, 0.144531f, 0.237793f, 0.144531f, 0.225586f, 0.20752f,
+0.104004f, 0.22168f, 0.104004f, -0.724609f, 0.185059f, -0.724609f, 0.185059f, 0.22168f,
+0.150391f, -0.724609f, 0.179199f, -0.724609f, 0.201416f, -0.715332f, 0.223633f, -0.706055f,
+0.238525f, -0.689941f, 0.253418f, -0.673828f, 0.260986f, -0.651367f, 0.268555f, -0.628906f,
+0.268555f, -0.602539f, 0.268555f, -0.59668f, 0.268311f, -0.589111f, 0.268066f, -0.581543f,
+0.267334f, -0.57373f, 0.266602f, -0.565918f, 0.265625f, -0.55835f, 0.264648f, -0.550781f,
+0.263672f, -0.54541f, 0.236328f, -0.405273f, 0.231934f, -0.384277f, 0.231934f, -0.367676f,
+0.231934f, -0.327148f, 0.254639f, -0.309326f, 0.277344f, -0.291504f, 0.318848f, -0.289551f,
+0.306641f, -0.227539f, 0.281738f, -0.226562f, 0.260742f, -0.219727f, 0.239746f, -0.212891f,
+0.223633f, -0.199219f, 0.20752f, -0.185547f, 0.196289f, -0.164062f, 0.185059f, -0.142578f,
+0.179199f, -0.112305f, 0.14502f, 0.0644531f, 0.131348f, 0.134277f, 0.0944824f, 0.170898f,
+0.0576172f, 0.20752f, -0.0117188f, 0.20752f, -0.0776367f, 0.20752f, -0.0654297f,
+0.144531f, -0.034668f, 0.144531f, -0.0107422f, 0.144531f, 0.00610352f, 0.138184f,
+0.0229492f, 0.131836f, 0.0349121f, 0.119141f, 0.046875f, 0.106445f, 0.0546875f, 0.0866699f,
+0.0625f, 0.0668945f, 0.0678711f, 0.0395508f, 0.101562f, -0.134277f, 0.106445f, -0.158691f,
+0.117676f, -0.179199f, 0.128906f, -0.199707f, 0.144531f, -0.215332f, 0.160156f, -0.230957f,
+0.179688f, -0.241699f, 0.199219f, -0.252441f, 0.220215f, -0.257324f, 0.220215f, -0.258301f,
+0.186523f, -0.266602f, 0.166748f, -0.291016f, 0.146973f, -0.31543f, 0.146973f, -0.353516f,
+0.146973f, -0.367188f, 0.149902f, -0.382324f, 0.179688f, -0.538086f, 0.181152f, -0.54541f,
+0.182129f, -0.553467f, 0.183105f, -0.561523f, 0.183838f, -0.56958f, 0.18457f, -0.577637f,
+0.185303f, -0.584961f, 0.186035f, -0.592285f, 0.186035f, -0.597656f, 0.187012f, -0.626953f,
+0.169678f, -0.644287f, 0.152344f, -0.661621f, 0.114746f, -0.661621f, 0.0913086f,
+-0.661621f, 0.103516f, -0.724609f, 0.426758f, -0.27002f, 0.393066f, -0.27002f, 0.357666f,
+-0.280762f, 0.322266f, -0.291504f, 0.286621f, -0.304199f, 0.223633f, -0.326172f,
+0.180664f, -0.326172f, 0.162109f, -0.326172f, 0.14624f, -0.323242f, 0.130371f, -0.320312f,
+0.115723f, -0.314697f, 0.101074f, -0.309082f, 0.0874023f, -0.30127f, 0.0737305f,
+-0.293457f, 0.0595703f, -0.283203f, 0.0595703f, -0.353027f, 0.0839844f, -0.371582f,
+0.116211f, -0.382812f, 0.148438f, -0.394043f, 0.187988f, -0.394043f, 0.208008f, -0.394043f,
+0.227295f, -0.390869f, 0.246582f, -0.387695f, 0.265381f, -0.382812f, 0.28418f, -0.37793f,
+0.30249f, -0.371582f, 0.320801f, -0.365234f, 0.338867f, -0.358887f, 0.349121f, -0.355469f,
+0.361328f, -0.351562f, 0.373535f, -0.347656f, 0.385986f, -0.344238f, 0.398438f, -0.34082f,
+0.410889f, -0.338867f, 0.42334f, -0.336914f, 0.43457f, -0.336914f, 0.468262f, -0.336914f,
+0.498291f, -0.349121f, 0.52832f, -0.361328f, 0.553711f, -0.381836f, 0.553711f, -0.309082f,
+0.538574f, -0.29834f, 0.523926f, -0.290771f, 0.509277f, -0.283203f, 0.494385f, -0.278564f,
+0.479492f, -0.273926f, 0.462891f, -0.271973f, 0.446289f, -0.27002f, 0.426758f, -0.27002f
+};
+
+const unsigned char LiberationSansItalicVerbs[] = {
+6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 5, 0, 1, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5,
+0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 1, 2, 2, 2, 2, 1, 5, 0, 1, 2,
+2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 1, 1,
+1, 1, 1, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 1, 1, 5,
+6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6,
+0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 5,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 1, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2,
+2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSansItalicCharCodes[] = {
+0, 32, 33,
+34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
+94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationSansItalicWidths[] = {
+0x0000c000, 0x00004720, 0x00004720, 0x00005ae0, 0x00008e60, 0x00008e60, 0x0000e3a0,
+0x0000aac0, 0x000030e0, 0x00005540, 0x00005540, 0x000063a0, 0x00009580, 0x00004720,
+0x00005540, 0x00004720, 0x00004720, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60,
+0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00004720,
+0x00004720, 0x00009580, 0x00009580, 0x00009580, 0x00008e60, 0x000103e0, 0x0000aac0,
+0x0000aac0, 0x0000b8e0, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000c720, 0x0000b8e0,
+0x00004720, 0x00008000, 0x0000aac0, 0x00008e60, 0x0000d540, 0x0000b8e0, 0x0000c720,
+0x0000aac0, 0x0000c720, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000b8e0, 0x0000aac0,
+0x0000f1a0, 0x0000aac0, 0x0000aac0, 0x00009c60, 0x00004720, 0x00004720, 0x00004720,
+0x00007820, 0x00008e60, 0x00005540, 0x00008e60, 0x00008e60, 0x00008000, 0x00008e60,
+0x00008e60, 0x00004720, 0x00008e60, 0x00008e60, 0x000038e0, 0x000038e0, 0x00008000,
+0x000038e0, 0x0000d540, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00005540,
+0x00008000, 0x00004720, 0x00008e60, 0x00008000, 0x0000b8e0, 0x00008000, 0x00008000,
+0x00008000, 0x00005580, 0x00004280, 0x00005580, 0x00009580
+};
+
+const int LiberationSansItalicCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSansItalicCharCodes);
+
+const SkPaint::FontMetrics LiberationSansItalicMetrics = {
+0x30307833, -1.01416f, -0.905273f, 0.211914f, 0.303223f, 0.0327148f, 1.33447f, 0.0208511f,
+-0.271973f, 1.0625f, 0.537598f, 0.0109024f, 0.0732422f, 0.105957f
+};
+
+const SkScalar LiberationSansBoldItalicPoints[] = {
+0.206543f, -0.208008f, 0.0942383f, -0.208008f, 0.172363f, -0.687988f, 0.315918f, -0.687988f,
+0.0385742f, 0, 0.0639648f, -0.131836f, 0.20459f, -0.131836f, 0.179199f, 0, 0.421875f,
+-0.438477f, 0.314941f, -0.438477f, 0.350098f, -0.687988f, 0.484375f, -0.687988f,
+0.213867f, -0.438477f, 0.106934f, -0.438477f, 0.14209f, -0.687988f, 0.275391f, -0.687988f,
+0.458496f, -0.420898f, 0.424805f, -0.258789f, 0.529785f, -0.258789f, 0.529785f, -0.186035f,
+0.409668f, -0.186035f, 0.369629f, 0, 0.293457f, 0, 0.33252f, -0.186035f, 0.182617f,
+-0.186035f, 0.143555f, 0, 0.0688477f, 0, 0.107422f, -0.186035f, 0.0317383f, -0.186035f,
+0.0317383f, -0.258789f, 0.123535f, -0.258789f, 0.157715f, -0.420898f, 0.0566406f,
+-0.420898f, 0.0566406f, -0.493164f, 0.172852f, -0.493164f, 0.213867f, -0.681152f,
+0.288574f, -0.681152f, 0.248535f, -0.493164f, 0.398438f, -0.493164f, 0.439453f, -0.681152f,
+0.515625f, -0.681152f, 0.474609f, -0.493164f, 0.554688f, -0.493164f, 0.554688f, -0.420898f,
+0.233887f, -0.420898f, 0.19873f, -0.258789f, 0.349609f, -0.258789f, 0.383789f, -0.420898f,
+0.527344f, -0.231445f, 0.527344f, -0.177246f, 0.508789f, -0.136719f, 0.490234f, -0.0961914f,
+0.455078f, -0.0688477f, 0.419922f, -0.0415039f, 0.368652f, -0.0270996f, 0.317383f,
+-0.0126953f, 0.251953f, -0.0102539f, 0.23584f, 0.0742188f, 0.181152f, 0.0742188f,
+0.196777f, -0.0112305f, 0.156738f, -0.0112305f, 0.121094f, -0.0222168f, 0.0854492f,
+-0.0332031f, 0.0583496f, -0.0546875f, 0.03125f, -0.0761719f, 0.0144043f, -0.107422f,
+-0.00244141f, -0.138672f, -0.00537109f, -0.178711f, 0.122559f, -0.199219f, 0.125977f,
+-0.15625f, 0.149414f, -0.134521f, 0.172852f, -0.112793f, 0.217285f, -0.112793f, 0.25293f,
+-0.302246f, 0.215332f, -0.311523f, 0.182129f, -0.326904f, 0.148926f, -0.342285f,
+0.124023f, -0.364502f, 0.0991211f, -0.386719f, 0.0847168f, -0.416016f, 0.0703125f,
+-0.445312f, 0.0703125f, -0.482422f, 0.0703125f, -0.519531f, 0.0812988f, -0.548828f,
+0.0922852f, -0.578125f, 0.111328f, -0.600098f, 0.130371f, -0.62207f, 0.155762f, -0.637451f,
+0.181152f, -0.652832f, 0.209717f, -0.662354f, 0.238281f, -0.671875f, 0.268799f, -0.67627f,
+0.299316f, -0.680664f, 0.328125f, -0.680664f, 0.339844f, -0.742188f, 0.393555f, -0.740234f,
+0.380371f, -0.676758f, 0.423828f, -0.676758f, 0.457031f, -0.665527f, 0.490234f, -0.654297f,
+0.513428f, -0.634766f, 0.536621f, -0.615234f, 0.549316f, -0.588623f, 0.562012f, -0.562012f,
+0.564941f, -0.531738f, 0.4375f, -0.503906f, 0.433594f, -0.525391f, 0.425781f, -0.540283f,
+0.417969f, -0.555176f, 0.407715f, -0.564209f, 0.397461f, -0.573242f, 0.385498f, -0.577148f,
+0.373535f, -0.581055f, 0.361816f, -0.581055f, 0.329102f, -0.408691f, 0.374023f, -0.397949f,
+0.4104f, -0.382812f, 0.446777f, -0.367676f, 0.4729f, -0.346436f, 0.499023f, -0.325195f,
+0.513184f, -0.296875f, 0.527344f, -0.268555f, 0.527344f, -0.231445f, 0.395508f, -0.20166f,
+0.395508f, -0.239258f, 0.374023f, -0.259033f, 0.352539f, -0.278809f, 0.306152f, -0.289551f,
+0.270508f, -0.112793f, 0.294922f, -0.112793f, 0.317627f, -0.118164f, 0.340332f, -0.123535f,
+0.357666f, -0.134521f, 0.375f, -0.145508f, 0.385254f, -0.162354f, 0.395508f, -0.179199f,
+0.395508f, -0.20166f, 0.201172f, -0.491211f, 0.201172f, -0.476562f, 0.206299f, -0.466064f,
+0.211426f, -0.455566f, 0.220947f, -0.44751f, 0.230469f, -0.439453f, 0.244385f, -0.43335f,
+0.258301f, -0.427246f, 0.276367f, -0.421387f, 0.309082f, -0.583008f, 0.28418f, -0.583008f,
+0.26416f, -0.575928f, 0.244141f, -0.568848f, 0.230225f, -0.556396f, 0.216309f, -0.543945f,
+0.20874f, -0.5271f, 0.201172f, -0.510254f, 0.201172f, -0.491211f, 0.266602f, -0.693848f,
+0.297363f, -0.693848f, 0.324707f, -0.686035f, 0.352051f, -0.678223f, 0.372803f, -0.6604f,
+0.393555f, -0.642578f, 0.405518f, -0.61377f, 0.41748f, -0.584961f, 0.41748f, -0.543457f,
+0.41748f, -0.525391f, 0.414307f, -0.502686f, 0.411133f, -0.47998f, 0.404785f, -0.456543f,
+0.391602f, -0.39502f, 0.367432f, -0.355957f, 0.343262f, -0.316895f, 0.314209f, -0.294678f,
+0.285156f, -0.272461f, 0.254883f, -0.26416f, 0.224609f, -0.255859f, 0.19873f, -0.255859f,
+0.168457f, -0.255859f, 0.14209f, -0.264648f, 0.115723f, -0.273438f, 0.0964355f, -0.292236f,
+0.0771484f, -0.311035f, 0.065918f, -0.340332f, 0.0546875f, -0.369629f, 0.0546875f,
+-0.410645f, 0.0546875f, -0.428711f, 0.057373f, -0.450928f, 0.0600586f, -0.473145f,
+0.0664062f, -0.495605f, 0.0795898f, -0.55957f, 0.102783f, -0.598633f, 0.125977f,
+-0.637695f, 0.153809f, -0.658936f, 0.181641f, -0.680176f, 0.211182f, -0.687012f,
+0.240723f, -0.693848f, 0.266602f, -0.693848f, 0.266113f, -0.620117f, 0.251465f, -0.620117f,
+0.237305f, -0.615234f, 0.223145f, -0.610352f, 0.210693f, -0.596436f, 0.198242f, -0.58252f,
+0.187744f, -0.557373f, 0.177246f, -0.532227f, 0.169434f, -0.491211f, 0.164062f, -0.465332f,
+0.161377f, -0.443604f, 0.158691f, -0.421875f, 0.158691f, -0.403809f, 0.158691f, -0.368164f,
+0.169434f, -0.351318f, 0.180176f, -0.334473f, 0.200684f, -0.334473f, 0.215332f, -0.334473f,
+0.229492f, -0.3396f, 0.243652f, -0.344727f, 0.256592f, -0.358643f, 0.269531f, -0.372559f,
+0.280518f, -0.397461f, 0.291504f, -0.422363f, 0.299316f, -0.461426f, 0.312988f, -0.514648f,
+0.312988f, -0.552246f, 0.312988f, -0.588379f, 0.300781f, -0.604248f, 0.288574f, -0.620117f,
+0.266113f, -0.620117f, 0.710449f, -0.430664f, 0.741211f, -0.430664f, 0.768555f, -0.422852f,
+0.795898f, -0.415039f, 0.81665f, -0.397217f, 0.837402f, -0.379395f, 0.849365f, -0.350586f,
+0.861328f, -0.321777f, 0.861328f, -0.280273f, 0.861328f, -0.262207f, 0.858154f, -0.239502f,
+0.85498f, -0.216797f, 0.848633f, -0.193359f, 0.835449f, -0.131836f, 0.811279f, -0.0927734f,
+0.787109f, -0.0537109f, 0.758057f, -0.0314941f, 0.729004f, -0.00927734f, 0.69873f,
+-0.000976562f, 0.668457f, 0.00732422f, 0.642578f, 0.00732422f, 0.612305f, 0.00732422f,
+0.585938f, -0.00146484f, 0.55957f, -0.0102539f, 0.540283f, -0.0290527f, 0.520996f,
+-0.0478516f, 0.509766f, -0.0771484f, 0.498535f, -0.106445f, 0.498535f, -0.147461f,
+0.498535f, -0.165527f, 0.501221f, -0.187744f, 0.503906f, -0.209961f, 0.510254f, -0.232422f,
+0.523438f, -0.296387f, 0.546631f, -0.335449f, 0.569824f, -0.374512f, 0.597656f, -0.395752f,
+0.625488f, -0.416992f, 0.655029f, -0.423828f, 0.68457f, -0.430664f, 0.710449f, -0.430664f,
+0.709961f, -0.356934f, 0.695312f, -0.356934f, 0.681152f, -0.352051f, 0.666992f, -0.347168f,
+0.654541f, -0.333252f, 0.64209f, -0.319336f, 0.631592f, -0.294189f, 0.621094f, -0.269043f,
+0.613281f, -0.228027f, 0.60791f, -0.202148f, 0.605225f, -0.18042f, 0.602539f, -0.158691f,
+0.602539f, -0.140625f, 0.602539f, -0.10498f, 0.613281f, -0.0881348f, 0.624023f, -0.0712891f,
+0.644531f, -0.0712891f, 0.65918f, -0.0712891f, 0.67334f, -0.076416f, 0.6875f, -0.081543f,
+0.700439f, -0.095459f, 0.713379f, -0.109375f, 0.724365f, -0.134277f, 0.735352f, -0.15918f,
+0.743164f, -0.198242f, 0.756836f, -0.251465f, 0.756836f, -0.289062f, 0.756836f, -0.325195f,
+0.744629f, -0.341064f, 0.732422f, -0.356934f, 0.709961f, -0.356934f, 0.237305f, 0,
+0.141113f, 0, 0.671387f, -0.687988f, 0.768555f, -0.687988f, 0.0239258f, -0.172852f,
+0.0239258f, -0.215332f, 0.0395508f, -0.249512f, 0.0551758f, -0.283691f, 0.0830078f,
+-0.311035f, 0.11084f, -0.338379f, 0.148926f, -0.359375f, 0.187012f, -0.380371f, 0.231934f,
+-0.395996f, 0.229004f, -0.405273f, 0.226074f, -0.41748f, 0.223145f, -0.429688f, 0.220703f,
+-0.444092f, 0.218262f, -0.458496f, 0.216553f, -0.474365f, 0.214844f, -0.490234f,
+0.214844f, -0.506348f, 0.214844f, -0.546387f, 0.228516f, -0.580322f, 0.242188f, -0.614258f,
+0.268555f, -0.63916f, 0.294922f, -0.664062f, 0.333984f, -0.677979f, 0.373047f, -0.691895f,
+0.423828f, -0.691895f, 0.460449f, -0.691895f, 0.490723f, -0.684082f, 0.520996f, -0.67627f,
+0.542725f, -0.6604f, 0.564453f, -0.644531f, 0.576172f, -0.621094f, 0.587891f, -0.597656f,
+0.587891f, -0.566406f, 0.587891f, -0.524902f, 0.569336f, -0.493408f, 0.550781f, -0.461914f,
+0.519287f, -0.437256f, 0.487793f, -0.412598f, 0.446289f, -0.393066f, 0.404785f, -0.373535f,
+0.359375f, -0.35498f, 0.366699f, -0.334473f, 0.374512f, -0.314453f, 0.382324f, -0.294434f,
+0.392334f, -0.274658f, 0.402344f, -0.254883f, 0.414795f, -0.234619f, 0.427246f, -0.214355f,
+0.443359f, -0.192871f, 0.479004f, -0.230957f, 0.506592f, -0.275146f, 0.53418f, -0.319336f,
+0.557617f, -0.371094f, 0.648926f, -0.330566f, 0.637207f, -0.303223f, 0.62207f, -0.276123f,
+0.606934f, -0.249023f, 0.5896f, -0.2229f, 0.572266f, -0.196777f, 0.552979f, -0.172607f,
+0.533691f, -0.148438f, 0.513184f, -0.127441f, 0.532715f, -0.11084f, 0.55542f, -0.103516f,
+0.578125f, -0.0961914f, 0.603027f, -0.0961914f, 0.617676f, -0.0961914f, 0.631592f,
+-0.0981445f, 0.645508f, -0.100098f, 0.657227f, -0.104004f, 0.638184f, -0.00488281f,
+0.62207f, 0.000488281f, 0.606689f, 0.00317383f, 0.591309f, 0.00585938f, 0.570312f,
+0.00585938f, 0.525879f, 0.00585938f, 0.489258f, -0.00878906f, 0.452637f, -0.0234375f,
+0.421387f, -0.0512695f, 0.40625f, -0.0395508f, 0.38916f, -0.0283203f, 0.37207f, -0.0170898f,
+0.349854f, -0.00878906f, 0.327637f, -0.000488281f, 0.297607f, 0.00463867f, 0.267578f,
+0.00976562f, 0.226562f, 0.00976562f, 0.128418f, 0.00976562f, 0.0761719f, -0.0373535f,
+0.0239258f, -0.0844727f, 0.0239258f, -0.172852f, 0.240723f, -0.0830078f, 0.257324f,
+-0.0830078f, 0.273438f, -0.0861816f, 0.289551f, -0.0893555f, 0.304199f, -0.0949707f,
+0.318848f, -0.100586f, 0.331543f, -0.107422f, 0.344238f, -0.114258f, 0.354004f, -0.121582f,
+0.337402f, -0.143555f, 0.322754f, -0.167725f, 0.308105f, -0.191895f, 0.295654f, -0.216064f,
+0.283203f, -0.240234f, 0.273438f, -0.263672f, 0.263672f, -0.287109f, 0.256348f, -0.308105f,
+0.236816f, -0.299316f, 0.217285f, -0.288086f, 0.197754f, -0.276855f, 0.182617f, -0.26123f,
+0.16748f, -0.245605f, 0.157959f, -0.224609f, 0.148438f, -0.203613f, 0.148438f, -0.175781f,
+0.148438f, -0.154785f, 0.155273f, -0.137451f, 0.162109f, -0.120117f, 0.174072f, -0.108154f,
+0.186035f, -0.0961914f, 0.203125f, -0.0895996f, 0.220215f, -0.0830078f, 0.240723f,
+-0.0830078f, 0.325684f, -0.508301f, 0.325684f, -0.486816f, 0.328125f, -0.469971f,
+0.330566f, -0.453125f, 0.335449f, -0.4375f, 0.366211f, -0.449219f, 0.392578f, -0.460449f,
+0.418945f, -0.47168f, 0.437988f, -0.485352f, 0.457031f, -0.499023f, 0.467773f, -0.516602f,
+0.478516f, -0.53418f, 0.478516f, -0.557617f, 0.478516f, -0.58252f, 0.462158f, -0.595703f,
+0.445801f, -0.608887f, 0.41748f, -0.608887f, 0.398438f, -0.608887f, 0.381592f, -0.602539f,
+0.364746f, -0.596191f, 0.352295f, -0.58374f, 0.339844f, -0.571289f, 0.332764f, -0.552246f,
+0.325684f, -0.533203f, 0.325684f, -0.508301f, 0.203613f, -0.438477f, 0.0966797f,
+-0.438477f, 0.132324f, -0.687988f, 0.265137f, -0.687988f, 0.426758f, -0.724609f,
+0.300781f, -0.604492f, 0.23584f, -0.45874f, 0.170898f, -0.312988f, 0.170898f, -0.136719f,
+0.170898f, -0.0415039f, 0.188477f, 0.0449219f, 0.206055f, 0.131348f, 0.242676f, 0.20752f,
+0.108398f, 0.20752f, 0.0727539f, 0.131348f, 0.0544434f, 0.0424805f, 0.0361328f, -0.0463867f,
+0.0361328f, -0.144531f, 0.0361328f, -0.231934f, 0.052002f, -0.312988f, 0.0678711f,
+-0.394043f, 0.0996094f, -0.467529f, 0.131348f, -0.541016f, 0.178955f, -0.605713f,
+0.226562f, -0.67041f, 0.289551f, -0.724609f, -0.0878906f, 0.20752f, 0.0380859f, 0.0844727f,
+0.103271f, -0.0649414f, 0.168457f, -0.214355f, 0.168457f, -0.39502f, 0.168457f, -0.433594f,
+0.163818f, -0.476318f, 0.15918f, -0.519043f, 0.149902f, -0.562256f, 0.140625f, -0.605469f,
+0.126953f, -0.646973f, 0.113281f, -0.688477f, 0.0957031f, -0.724609f, 0.225098f,
+-0.724609f, 0.261719f, -0.651855f, 0.282715f, -0.566406f, 0.303711f, -0.480957f,
+0.303711f, -0.387207f, 0.303711f, -0.297852f, 0.287842f, -0.214844f, 0.271973f, -0.131836f,
+0.23999f, -0.0563965f, 0.208008f, 0.019043f, 0.1604f, 0.0854492f, 0.112793f, 0.151855f,
+0.0493164f, 0.20752f, 0.280273f, -0.554199f, 0.39502f, -0.60498f, 0.428223f, -0.508789f,
+0.306152f, -0.479004f, 0.396973f, -0.375f, 0.307129f, -0.315918f, 0.23584f, -0.438965f,
+0.163086f, -0.315918f, 0.0722656f, -0.375977f, 0.165039f, -0.479004f, 0.0429688f,
+-0.508789f, 0.0761719f, -0.60498f, 0.192871f, -0.554199f, 0.184082f, -0.687988f,
+0.289062f, -0.687988f, 0.366211f, -0.277832f, 0.366211f, -0.0786133f, 0.255859f,
+-0.0786133f, 0.255859f, -0.277832f, 0.0610352f, -0.277832f, 0.0610352f, -0.387207f,
+0.255859f, -0.387207f, 0.255859f, -0.586426f, 0.366211f, -0.586426f, 0.366211f, -0.387207f,
+0.5625f, -0.387207f, 0.5625f, -0.277832f, 0.169434f, -0.0322266f, 0.163086f, 0.000488281f,
+0.154297f, 0.0273438f, 0.145508f, 0.0541992f, 0.134277f, 0.0769043f, 0.123047f, 0.0996094f,
+0.109619f, 0.118652f, 0.0961914f, 0.137695f, 0.0805664f, 0.154785f, -0.00976562f,
+0.154785f, 0.00732422f, 0.137695f, 0.0229492f, 0.118652f, 0.0385742f, 0.0996094f,
+0.0512695f, 0.0795898f, 0.0639648f, 0.0595703f, 0.0727539f, 0.0395508f, 0.081543f,
+0.0195312f, 0.0854492f, 0, 0.0224609f, 0, 0.0512695f, -0.148926f, 0.192383f, -0.148926f,
+0.0273438f, -0.199707f, 0.050293f, -0.318848f, 0.304199f, -0.318848f, 0.28125f, -0.199707f,
+0.0224609f, 0, 0.0512695f, -0.148926f, 0.192383f, -0.148926f, 0.163574f, 0, -0.0371094f,
+0.0200195f, 0.249512f, -0.724609f, 0.365723f, -0.724609f, 0.0810547f, 0.0200195f,
+0.353516f, -0.698242f, 0.394043f, -0.698242f, 0.429199f, -0.687256f, 0.464355f, -0.67627f,
+0.490234f, -0.649902f, 0.516113f, -0.623535f, 0.53125f, -0.579834f, 0.546387f, -0.536133f,
+0.546387f, -0.470703f, 0.546387f, -0.439941f, 0.541748f, -0.404785f, 0.537109f, -0.369629f,
+0.527832f, -0.324707f, 0.51416f, -0.259766f, 0.495605f, -0.209473f, 0.477051f, -0.15918f,
+0.454346f, -0.12207f, 0.431641f, -0.0849609f, 0.405762f, -0.0598145f, 0.379883f,
+-0.034668f, 0.351562f, -0.019043f, 0.323242f, -0.00341797f, 0.293457f, 0.00317383f,
+0.263672f, 0.00976562f, 0.233398f, 0.00976562f, 0.1875f, 0.00976562f, 0.151855f,
+-0.00317383f, 0.116211f, -0.0161133f, 0.0915527f, -0.0441895f, 0.0668945f, -0.0722656f,
+0.0541992f, -0.116211f, 0.0415039f, -0.160156f, 0.0415039f, -0.22168f, 0.0415039f,
+-0.251465f, 0.0456543f, -0.285645f, 0.0498047f, -0.319824f, 0.0581055f, -0.364258f,
+0.0712891f, -0.433105f, 0.090332f, -0.484863f, 0.109375f, -0.536621f, 0.132568f,
+-0.57373f, 0.155762f, -0.61084f, 0.182373f, -0.63501f, 0.208984f, -0.65918f, 0.237305f,
+-0.673096f, 0.265625f, -0.687012f, 0.295166f, -0.692627f, 0.324707f, -0.698242f,
+0.353516f, -0.698242f, 0.242676f, -0.0981445f, 0.269531f, -0.0981445f, 0.291748f,
+-0.109619f, 0.313965f, -0.121094f, 0.33252f, -0.148438f, 0.351074f, -0.175781f, 0.366211f,
+-0.221191f, 0.381348f, -0.266602f, 0.393555f, -0.334473f, 0.401855f, -0.380371f,
+0.407471f, -0.414307f, 0.413086f, -0.448242f, 0.413086f, -0.477051f, 0.413086f, -0.530762f,
+0.395264f, -0.560791f, 0.377441f, -0.59082f, 0.338867f, -0.59082f, 0.30957f, -0.59082f,
+0.287598f, -0.579346f, 0.265625f, -0.567871f, 0.248535f, -0.540771f, 0.231445f, -0.513672f,
+0.218262f, -0.468262f, 0.205078f, -0.422852f, 0.193359f, -0.354492f, 0.186035f, -0.312012f,
+0.18042f, -0.271729f, 0.174805f, -0.231445f, 0.174805f, -0.202637f, 0.174805f, -0.180664f,
+0.177979f, -0.161377f, 0.181152f, -0.14209f, 0.188965f, -0.128174f, 0.196777f, -0.114258f,
+0.209961f, -0.106201f, 0.223145f, -0.0981445f, 0.242676f, -0.0981445f, 0.0161133f,
+0, 0.0371094f, -0.112793f, 0.20752f, -0.112793f, 0.294922f, -0.5625f, 0.108887f,
+-0.458008f, 0.131836f, -0.576172f, 0.325195f, -0.687988f, 0.457031f, -0.687988f,
+0.344727f, -0.112793f, 0.502441f, -0.112793f, 0.480957f, 0, -0.015625f, 0, 0.00244141f,
+-0.0952148f, 0.0258789f, -0.135742f, 0.0556641f, -0.169189f, 0.0854492f, -0.202637f,
+0.118164f, -0.230957f, 0.150879f, -0.259277f, 0.184814f, -0.283691f, 0.21875f, -0.308105f,
+0.250732f, -0.330566f, 0.282715f, -0.353027f, 0.310791f, -0.374268f, 0.338867f, -0.395508f,
+0.359619f, -0.418213f, 0.380371f, -0.440918f, 0.392578f, -0.465576f, 0.404785f, -0.490234f,
+0.404785f, -0.519043f, 0.404785f, -0.538574f, 0.398926f, -0.552002f, 0.393066f, -0.56543f,
+0.382568f, -0.573486f, 0.37207f, -0.581543f, 0.357422f, -0.585205f, 0.342773f, -0.588867f,
+0.325684f, -0.588867f, 0.306641f, -0.588867f, 0.290039f, -0.584473f, 0.273438f, -0.580078f,
+0.259521f, -0.569824f, 0.245605f, -0.55957f, 0.234863f, -0.542236f, 0.224121f, -0.524902f,
+0.216797f, -0.499023f, 0.0869141f, -0.527832f, 0.0986328f, -0.567383f, 0.118652f,
+-0.598877f, 0.138672f, -0.630371f, 0.168945f, -0.652344f, 0.199219f, -0.674316f,
+0.240479f, -0.686279f, 0.281738f, -0.698242f, 0.335449f, -0.698242f, 0.390625f, -0.698242f,
+0.430176f, -0.686279f, 0.469727f, -0.674316f, 0.495605f, -0.652344f, 0.521484f, -0.630371f,
+0.533691f, -0.599121f, 0.545898f, -0.567871f, 0.545898f, -0.528809f, 0.545898f, -0.490723f,
+0.533691f, -0.458496f, 0.521484f, -0.42627f, 0.500488f, -0.398438f, 0.479492f, -0.370605f,
+0.451904f, -0.346191f, 0.424316f, -0.321777f, 0.393311f, -0.299316f, 0.362305f, -0.276855f,
+0.330078f, -0.255127f, 0.297852f, -0.233398f, 0.267822f, -0.210938f, 0.237793f, -0.188477f,
+0.211914f, -0.164307f, 0.186035f, -0.140137f, 0.16748f, -0.112793f, 0.486816f, -0.112793f,
+0.465332f, 0, 0.26123f, -0.404785f, 0.28418f, -0.404785f, 0.309814f, -0.408691f,
+0.335449f, -0.412598f, 0.356689f, -0.424316f, 0.37793f, -0.436035f, 0.391846f, -0.457275f,
+0.405762f, -0.478516f, 0.405762f, -0.513184f, 0.405762f, -0.54834f, 0.386963f, -0.568604f,
+0.368164f, -0.588867f, 0.329102f, -0.588867f, 0.284668f, -0.588867f, 0.255371f, -0.566895f,
+0.226074f, -0.544922f, 0.213379f, -0.499023f, 0.0830078f, -0.524414f, 0.0961914f,
+-0.570312f, 0.119141f, -0.603271f, 0.14209f, -0.63623f, 0.173828f, -0.657227f, 0.205566f,
+-0.678223f, 0.24585f, -0.688232f, 0.286133f, -0.698242f, 0.334473f, -0.698242f, 0.384277f,
+-0.698242f, 0.42334f, -0.686768f, 0.462402f, -0.675293f, 0.489502f, -0.653564f, 0.516602f,
+-0.631836f, 0.530762f, -0.60083f, 0.544922f, -0.569824f, 0.544922f, -0.530273f, 0.544922f,
+-0.493164f, 0.533203f, -0.462402f, 0.521484f, -0.431641f, 0.498779f, -0.408936f,
+0.476074f, -0.38623f, 0.443359f, -0.37207f, 0.410645f, -0.35791f, 0.368652f, -0.354004f,
+0.368164f, -0.352051f, 0.398926f, -0.347168f, 0.423828f, -0.335693f, 0.44873f, -0.324219f,
+0.466309f, -0.305664f, 0.483887f, -0.287109f, 0.493408f, -0.261719f, 0.50293f, -0.236328f,
+0.50293f, -0.204102f, 0.50293f, -0.161621f, 0.486328f, -0.122803f, 0.469727f, -0.0839844f,
+0.437744f, -0.0544434f, 0.405762f, -0.0249023f, 0.358398f, -0.00756836f, 0.311035f,
+0.00976562f, 0.249512f, 0.00976562f, 0.188965f, 0.00976562f, 0.144775f, -0.00341797f,
+0.100586f, -0.0166016f, 0.0712891f, -0.0402832f, 0.0419922f, -0.0639648f, 0.0266113f,
+-0.0964355f, 0.0112305f, -0.128906f, 0.0078125f, -0.16748f, 0.145508f, -0.186035f,
+0.148438f, -0.161621f, 0.156982f, -0.145264f, 0.165527f, -0.128906f, 0.179443f, -0.118896f,
+0.193359f, -0.108887f, 0.212646f, -0.104736f, 0.231934f, -0.100586f, 0.255859f, -0.100586f,
+0.283203f, -0.100586f, 0.303467f, -0.108398f, 0.32373f, -0.116211f, 0.337158f, -0.129883f,
+0.350586f, -0.143555f, 0.357178f, -0.162354f, 0.36377f, -0.181152f, 0.36377f, -0.203125f,
+0.36377f, -0.248535f, 0.337402f, -0.27124f, 0.311035f, -0.293945f, 0.256348f, -0.293945f,
+0.204102f, -0.293945f, 0.225586f, -0.404785f, 0.426758f, -0.139648f, 0.400391f, 0,
+0.269531f, 0, 0.295898f, -0.139648f, -0.0166016f, -0.139648f, 0.00341797f, -0.240723f,
+0.353516f, -0.687988f, 0.53418f, -0.687988f, 0.447266f, -0.242188f, 0.539062f, -0.242188f,
+0.518555f, -0.139648f, 0.366211f, -0.498047f, 0.367676f, -0.505371f, 0.370605f, -0.517578f,
+0.373535f, -0.529785f, 0.377197f, -0.543213f, 0.380859f, -0.556641f, 0.384521f, -0.569092f,
+0.388184f, -0.581543f, 0.390625f, -0.588867f, 0.387207f, -0.583008f, 0.380371f, -0.57251f,
+0.373535f, -0.562012f, 0.365479f, -0.550049f, 0.357422f, -0.538086f, 0.348877f, -0.526367f,
+0.340332f, -0.514648f, 0.333496f, -0.505859f, 0.126465f, -0.242188f, 0.316406f, -0.242188f,
+0.154297f, -0.687988f, 0.567871f, -0.687988f, 0.546875f, -0.575195f, 0.256836f, -0.575195f,
+0.214355f, -0.412109f, 0.223145f, -0.419922f, 0.235107f, -0.427734f, 0.24707f, -0.435547f,
+0.262207f, -0.441895f, 0.277344f, -0.448242f, 0.296387f, -0.452148f, 0.31543f, -0.456055f,
+0.338867f, -0.456055f, 0.376953f, -0.456055f, 0.409912f, -0.442871f, 0.442871f, -0.429688f,
+0.467285f, -0.403809f, 0.491699f, -0.37793f, 0.505615f, -0.340088f, 0.519531f, -0.302246f,
+0.519531f, -0.25293f, 0.519531f, -0.194824f, 0.500488f, -0.146484f, 0.481445f, -0.0981445f,
+0.445312f, -0.0634766f, 0.40918f, -0.0288086f, 0.356689f, -0.00952148f, 0.304199f,
+0.00976562f, 0.237305f, 0.00976562f, 0.182617f, 0.00976562f, 0.142578f, -0.00317383f,
+0.102539f, -0.0161133f, 0.0749512f, -0.0388184f, 0.0473633f, -0.0615234f, 0.0314941f,
+-0.0927734f, 0.015625f, -0.124023f, 0.00976562f, -0.160645f, 0.147949f, -0.182617f,
+0.151855f, -0.162109f, 0.158691f, -0.146729f, 0.165527f, -0.131348f, 0.177246f, -0.121094f,
+0.188965f, -0.11084f, 0.206543f, -0.105713f, 0.224121f, -0.100586f, 0.249023f, -0.100586f,
+0.281738f, -0.100586f, 0.306396f, -0.111328f, 0.331055f, -0.12207f, 0.347412f, -0.140869f,
+0.36377f, -0.159668f, 0.371826f, -0.18457f, 0.379883f, -0.209473f, 0.379883f, -0.237305f,
+0.379883f, -0.265625f, 0.372803f, -0.286133f, 0.365723f, -0.306641f, 0.353271f, -0.319824f,
+0.34082f, -0.333008f, 0.323975f, -0.339111f, 0.307129f, -0.345215f, 0.287598f, -0.345215f,
+0.255859f, -0.345215f, 0.231934f, -0.333984f, 0.208008f, -0.322754f, 0.188965f, -0.300781f,
+0.0551758f, -0.300781f, 0.260254f, 0.00976562f, 0.208008f, 0.00976562f, 0.168213f,
+-0.00708008f, 0.128418f, -0.0239258f, 0.101318f, -0.0559082f, 0.0742188f, -0.0878906f,
+0.0603027f, -0.133789f, 0.0463867f, -0.179688f, 0.0463867f, -0.237793f, 0.0463867f,
+-0.337402f, 0.0695801f, -0.421631f, 0.0927734f, -0.505859f, 0.134521f, -0.567383f,
+0.17627f, -0.628906f, 0.234863f, -0.663574f, 0.293457f, -0.698242f, 0.36377f, -0.698242f,
+0.397461f, -0.698242f, 0.430664f, -0.690918f, 0.463867f, -0.683594f, 0.491211f, -0.665527f,
+0.518555f, -0.647461f, 0.537354f, -0.616943f, 0.556152f, -0.586426f, 0.561523f, -0.540039f,
+0.431641f, -0.52002f, 0.424805f, -0.555664f, 0.406738f, -0.572754f, 0.388672f, -0.589844f,
+0.356445f, -0.589844f, 0.300293f, -0.589844f, 0.258789f, -0.533691f, 0.217285f, -0.477539f,
+0.198242f, -0.364258f, 0.224121f, -0.399414f, 0.263916f, -0.421143f, 0.303711f, -0.442871f,
+0.354004f, -0.442871f, 0.392578f, -0.442871f, 0.424316f, -0.430908f, 0.456055f, -0.418945f,
+0.47876f, -0.395752f, 0.501465f, -0.372559f, 0.513916f, -0.338623f, 0.526367f, -0.304688f,
+0.526367f, -0.260254f, 0.526367f, -0.206055f, 0.507568f, -0.157227f, 0.48877f, -0.108398f,
+0.454102f, -0.0712891f, 0.419434f, -0.0341797f, 0.370361f, -0.012207f, 0.321289f,
+0.00976562f, 0.260254f, 0.00976562f, 0.180176f, -0.209473f, 0.180176f, -0.158203f,
+0.204102f, -0.12793f, 0.228027f, -0.0976562f, 0.272461f, -0.0976562f, 0.297363f,
+-0.0976562f, 0.318359f, -0.107422f, 0.339355f, -0.117188f, 0.354492f, -0.135986f,
+0.369629f, -0.154785f, 0.378174f, -0.181885f, 0.386719f, -0.208984f, 0.386719f, -0.243652f,
+0.386719f, -0.269043f, 0.380127f, -0.287598f, 0.373535f, -0.306152f, 0.361816f, -0.318115f,
+0.350098f, -0.330078f, 0.334229f, -0.335938f, 0.318359f, -0.341797f, 0.299805f, -0.341797f,
+0.277832f, -0.341797f, 0.256348f, -0.333496f, 0.234863f, -0.325195f, 0.218018f, -0.308838f,
+0.201172f, -0.29248f, 0.190674f, -0.267578f, 0.180176f, -0.242676f, 0.180176f, -0.209473f,
+0.0917969f, -0.687988f, 0.595215f, -0.687988f, 0.57373f, -0.579102f, 0.532715f, -0.529297f,
+0.494629f, -0.484375f, 0.456543f, -0.439453f, 0.422607f, -0.395752f, 0.388672f, -0.352051f,
+0.359131f, -0.308105f, 0.32959f, -0.26416f, 0.305176f, -0.216309f, 0.280762f, -0.168457f,
+0.261963f, -0.115234f, 0.243164f, -0.0620117f, 0.230469f, 0, 0.0849609f, 0, 0.102051f,
+-0.0888672f, 0.135498f, -0.163818f, 0.168945f, -0.23877f, 0.2146f, -0.307129f, 0.260254f,
+-0.375488f, 0.31665f, -0.440674f, 0.373047f, -0.505859f, 0.436035f, -0.575195f, 0.0698242f,
+-0.575195f, 0.345215f, -0.697754f, 0.394531f, -0.697754f, 0.43335f, -0.686035f, 0.472168f,
+-0.674316f, 0.499023f, -0.652832f, 0.525879f, -0.631348f, 0.540283f, -0.60083f, 0.554688f,
+-0.570312f, 0.554688f, -0.532715f, 0.554688f, -0.5f, 0.544189f, -0.470947f, 0.533691f,
+-0.441895f, 0.513916f, -0.419678f, 0.494141f, -0.397461f, 0.465332f, -0.382568f,
+0.436523f, -0.367676f, 0.400391f, -0.362793f, 0.399902f, -0.36084f, 0.424805f, -0.353516f,
+0.445557f, -0.340332f, 0.466309f, -0.327148f, 0.480957f, -0.30835f, 0.495605f, -0.289551f,
+0.503906f, -0.265137f, 0.512207f, -0.240723f, 0.512207f, -0.210938f, 0.512207f, -0.163574f,
+0.495117f, -0.123291f, 0.478027f, -0.0830078f, 0.444092f, -0.0534668f, 0.410156f,
+-0.0239258f, 0.359375f, -0.00708008f, 0.308594f, 0.00976562f, 0.240723f, 0.00976562f,
+0.182617f, 0.00976562f, 0.139648f, -0.00415039f, 0.0966797f, -0.0180664f, 0.0686035f,
+-0.0429688f, 0.0405273f, -0.0678711f, 0.0268555f, -0.101807f, 0.0131836f, -0.135742f,
+0.0131836f, -0.175781f, 0.0131836f, -0.221191f, 0.029541f, -0.253174f, 0.0458984f,
+-0.285156f, 0.0715332f, -0.306885f, 0.097168f, -0.328613f, 0.128174f, -0.341309f,
+0.15918f, -0.354004f, 0.188477f, -0.359863f, 0.188477f, -0.361816f, 0.143555f, -0.381836f,
+0.120361f, -0.421143f, 0.097168f, -0.460449f, 0.097168f, -0.513672f, 0.097168f, -0.556152f,
+0.114014f, -0.590332f, 0.130859f, -0.624512f, 0.162842f, -0.648193f, 0.194824f, -0.671875f,
+0.240967f, -0.684814f, 0.287109f, -0.697754f, 0.345215f, -0.697754f, 0.316406f, -0.410156f,
+0.345703f, -0.410156f, 0.364746f, -0.420654f, 0.383789f, -0.431152f, 0.395264f, -0.447266f,
+0.406738f, -0.463379f, 0.411133f, -0.482666f, 0.415527f, -0.501953f, 0.415527f, -0.519531f,
+0.415527f, -0.558594f, 0.39502f, -0.580078f, 0.374512f, -0.601562f, 0.331543f, -0.601562f,
+0.310547f, -0.601562f, 0.29248f, -0.595459f, 0.274414f, -0.589355f, 0.260986f, -0.57666f,
+0.247559f, -0.563965f, 0.23999f, -0.544434f, 0.232422f, -0.524902f, 0.232422f, -0.498047f,
+0.232422f, -0.482422f, 0.236328f, -0.466553f, 0.240234f, -0.450684f, 0.249756f, -0.438232f,
+0.259277f, -0.425781f, 0.275391f, -0.417969f, 0.291504f, -0.410156f, 0.316406f, -0.410156f,
+0.273926f, -0.3125f, 0.244629f, -0.3125f, 0.222412f, -0.303223f, 0.200195f, -0.293945f,
+0.185303f, -0.2771f, 0.17041f, -0.260254f, 0.162598f, -0.236572f, 0.154785f, -0.212891f,
+0.154785f, -0.184082f, 0.154785f, -0.163086f, 0.160645f, -0.145264f, 0.166504f, -0.127441f,
+0.178711f, -0.114502f, 0.190918f, -0.101562f, 0.209717f, -0.0942383f, 0.228516f,
+-0.0869141f, 0.253906f, -0.0869141f, 0.27832f, -0.0869141f, 0.299561f, -0.0952148f,
+0.320801f, -0.103516f, 0.33667f, -0.119873f, 0.352539f, -0.13623f, 0.361816f, -0.1604f,
+0.371094f, -0.18457f, 0.371094f, -0.216797f, 0.371094f, -0.234863f, 0.366455f, -0.251953f,
+0.361816f, -0.269043f, 0.350342f, -0.282471f, 0.338867f, -0.295898f, 0.320312f, -0.304199f,
+0.301758f, -0.3125f, 0.273926f, -0.3125f, 0.398926f, -0.318848f, 0.383789f, -0.300781f,
+0.367432f, -0.287109f, 0.351074f, -0.273438f, 0.33252f, -0.26416f, 0.313965f, -0.254883f,
+0.292236f, -0.250244f, 0.270508f, -0.245605f, 0.244141f, -0.245605f, 0.204102f, -0.245605f,
+0.172119f, -0.259521f, 0.140137f, -0.273438f, 0.11792f, -0.298584f, 0.0957031f, -0.32373f,
+0.0837402f, -0.358887f, 0.0717773f, -0.394043f, 0.0717773f, -0.436035f, 0.0717773f,
+-0.491211f, 0.0915527f, -0.539062f, 0.111328f, -0.586914f, 0.146484f, -0.622314f,
+0.181641f, -0.657715f, 0.230469f, -0.677979f, 0.279297f, -0.698242f, 0.337891f, -0.698242f,
+0.384277f, -0.698242f, 0.42334f, -0.683105f, 0.462402f, -0.667969f, 0.490967f, -0.638428f,
+0.519531f, -0.608887f, 0.535645f, -0.565918f, 0.551758f, -0.522949f, 0.551758f, -0.467285f,
+0.551758f, -0.454102f, 0.550781f, -0.4375f, 0.549805f, -0.420898f, 0.548096f, -0.403076f,
+0.546387f, -0.385254f, 0.543701f, -0.366699f, 0.541016f, -0.348145f, 0.537598f, -0.331543f,
+0.519043f, -0.239746f, 0.487793f, -0.174805f, 0.456543f, -0.109863f, 0.416748f, -0.0688477f,
+0.376953f, -0.027832f, 0.330322f, -0.0090332f, 0.283691f, 0.00976562f, 0.233887f,
+0.00976562f, 0.192383f, 0.00976562f, 0.156738f, 0, 0.121094f, -0.00976562f, 0.09375f,
+-0.0300293f, 0.0664062f, -0.050293f, 0.0483398f, -0.0805664f, 0.0302734f, -0.11084f,
+0.0234375f, -0.151855f, 0.157227f, -0.175293f, 0.164062f, -0.138672f, 0.18457f, -0.118652f,
+0.205078f, -0.0986328f, 0.243164f, -0.0986328f, 0.264648f, -0.0986328f, 0.286865f,
+-0.108154f, 0.309082f, -0.117676f, 0.329834f, -0.142334f, 0.350586f, -0.166992f,
+0.368408f, -0.209717f, 0.38623f, -0.252441f, 0.398926f, -0.318848f, 0.41748f, -0.492676f,
+0.41748f, -0.513184f, 0.411377f, -0.531006f, 0.405273f, -0.548828f, 0.393799f, -0.562256f,
+0.382324f, -0.575684f, 0.366455f, -0.583252f, 0.350586f, -0.59082f, 0.331055f, -0.59082f,
+0.304688f, -0.59082f, 0.282715f, -0.581055f, 0.260742f, -0.571289f, 0.244873f, -0.552002f,
+0.229004f, -0.532715f, 0.219971f, -0.504395f, 0.210938f, -0.476074f, 0.210938f, -0.439453f,
+0.210938f, -0.41748f, 0.217529f, -0.400146f, 0.224121f, -0.382812f, 0.235596f, -0.37085f,
+0.24707f, -0.358887f, 0.263184f, -0.352783f, 0.279297f, -0.34668f, 0.29834f, -0.34668f,
+0.316895f, -0.34668f, 0.335205f, -0.351807f, 0.353516f, -0.356934f, 0.369141f, -0.369141f,
+0.384766f, -0.381348f, 0.396484f, -0.400879f, 0.408203f, -0.42041f, 0.413574f, -0.449219f,
+0.415527f, -0.460938f, 0.416504f, -0.47168f, 0.41748f, -0.482422f, 0.41748f, -0.492676f,
+0.114746f, -0.367188f, 0.141602f, -0.504883f, 0.282227f, -0.504883f, 0.255371f, -0.367188f,
+0.043457f, 0, 0.0703125f, -0.137207f, 0.210938f, -0.137207f, 0.184082f, 0, 0.114746f,
+-0.367188f, 0.141602f, -0.504883f, 0.282227f, -0.504883f, 0.255371f, -0.367188f,
+0.19043f, -0.0322266f, 0.184082f, 0.000488281f, 0.175293f, 0.0273438f, 0.166504f,
+0.0541992f, 0.155273f, 0.0769043f, 0.144043f, 0.0996094f, 0.130371f, 0.118652f, 0.116699f,
+0.137695f, 0.101074f, 0.154785f, 0.0112305f, 0.154785f, 0.0283203f, 0.137695f, 0.0439453f,
+0.118652f, 0.0595703f, 0.0996094f, 0.0722656f, 0.0795898f, 0.0849609f, 0.0595703f,
+0.09375f, 0.0395508f, 0.102539f, 0.0195312f, 0.106445f, 0, 0.043457f, 0, 0.0703125f,
+-0.137207f, 0.210938f, -0.137207f, 0.0605469f, -0.251953f, 0.0605469f, -0.40918f,
+0.562012f, -0.600098f, 0.562012f, -0.48877f, 0.155273f, -0.330078f, 0.562012f, -0.171875f,
+0.562012f, -0.0610352f, 0.0600586f, -0.411133f, 0.0600586f, -0.52002f, 0.561523f,
+-0.52002f, 0.561523f, -0.411133f, 0.0600586f, -0.14209f, 0.0600586f, -0.25f, 0.561523f,
+-0.25f, 0.561523f, -0.14209f, 0.0605469f, -0.0610352f, 0.0605469f, -0.171875f, 0.466797f,
+-0.330078f, 0.0605469f, -0.48877f, 0.0605469f, -0.600098f, 0.562012f, -0.40918f,
+0.562012f, -0.251953f, 0.36377f, -0.698242f, 0.414551f, -0.698242f, 0.456299f, -0.686768f,
+0.498047f, -0.675293f, 0.527832f, -0.65332f, 0.557617f, -0.631348f, 0.573975f, -0.599121f,
+0.590332f, -0.566895f, 0.590332f, -0.524902f, 0.590332f, -0.48291f, 0.574463f, -0.450928f,
+0.558594f, -0.418945f, 0.532959f, -0.393555f, 0.507324f, -0.368164f, 0.475342f, -0.348145f,
+0.443359f, -0.328125f, 0.410645f, -0.310059f, 0.394043f, -0.299316f, 0.379395f, -0.289062f,
+0.364746f, -0.278809f, 0.353516f, -0.26709f, 0.342285f, -0.255371f, 0.334961f, -0.241211f,
+0.327637f, -0.227051f, 0.325195f, -0.208008f, 0.194824f, -0.208008f, 0.201172f, -0.242188f,
+0.213623f, -0.267334f, 0.226074f, -0.29248f, 0.243896f, -0.312256f, 0.261719f, -0.332031f,
+0.285156f, -0.348633f, 0.308594f, -0.365234f, 0.336914f, -0.382812f, 0.370605f, -0.403809f,
+0.392822f, -0.419922f, 0.415039f, -0.436035f, 0.428223f, -0.450928f, 0.441406f, -0.46582f,
+0.446777f, -0.480957f, 0.452148f, -0.496094f, 0.452148f, -0.515137f, 0.452148f, -0.545898f,
+0.428711f, -0.566162f, 0.405273f, -0.586426f, 0.355957f, -0.586426f, 0.302246f, -0.586426f,
+0.267578f, -0.563721f, 0.23291f, -0.541016f, 0.219727f, -0.492188f, 0.0898438f, -0.511719f,
+0.103027f, -0.554688f, 0.125488f, -0.589111f, 0.147949f, -0.623535f, 0.181641f, -0.647705f,
+0.215332f, -0.671875f, 0.260498f, -0.685059f, 0.305664f, -0.698242f, 0.36377f, -0.698242f,
+0.150879f, 0, 0.17627f, -0.131836f, 0.317383f, -0.131836f, 0.291992f, 0, 0.933105f,
+-0.368652f, 0.933105f, -0.29834f, 0.914551f, -0.23999f, 0.895996f, -0.181641f, 0.864014f,
+-0.139648f, 0.832031f, -0.0976562f, 0.789307f, -0.0742188f, 0.746582f, -0.0507812f,
+0.698242f, -0.0507812f, 0.677734f, -0.0507812f, 0.6604f, -0.0559082f, 0.643066f,
+-0.0610352f, 0.630859f, -0.0715332f, 0.618652f, -0.0820312f, 0.611816f, -0.0979004f,
+0.60498f, -0.11377f, 0.60498f, -0.134766f, 0.60498f, -0.141602f, 0.605713f, -0.150879f,
+0.606445f, -0.160156f, 0.60791f, -0.16748f, 0.60498f, -0.16748f, 0.594727f, -0.145996f,
+0.577637f, -0.125f, 0.560547f, -0.104004f, 0.53833f, -0.0876465f, 0.516113f, -0.0712891f,
+0.489502f, -0.0610352f, 0.462891f, -0.0507812f, 0.434082f, -0.0507812f, 0.387695f,
+-0.0507812f, 0.356689f, -0.0673828f, 0.325684f, -0.0839844f, 0.307129f, -0.11084f,
+0.288574f, -0.137695f, 0.280762f, -0.171387f, 0.272949f, -0.205078f, 0.272949f, -0.23877f,
+0.272949f, -0.294922f, 0.289551f, -0.348633f, 0.306152f, -0.402344f, 0.337402f, -0.444336f,
+0.368652f, -0.486328f, 0.414062f, -0.511963f, 0.459473f, -0.537598f, 0.51709f, -0.537598f,
+0.566895f, -0.537598f, 0.598633f, -0.514893f, 0.630371f, -0.492188f, 0.645996f, -0.452637f,
+0.648926f, -0.452637f, 0.667969f, -0.526855f, 0.744141f, -0.526855f, 0.687012f, -0.279785f,
+0.678711f, -0.241211f, 0.673828f, -0.210938f, 0.668945f, -0.180664f, 0.668945f, -0.162598f,
+0.668945f, -0.138184f, 0.68042f, -0.12793f, 0.691895f, -0.117676f, 0.707031f, -0.117676f,
+0.73584f, -0.117676f, 0.762939f, -0.13623f, 0.790039f, -0.154785f, 0.811523f, -0.187988f,
+0.833008f, -0.221191f, 0.845947f, -0.26709f, 0.858887f, -0.312988f, 0.858887f, -0.367676f,
+0.858887f, -0.429199f, 0.838867f, -0.481934f, 0.818848f, -0.534668f, 0.779785f, -0.573242f,
+0.740723f, -0.611816f, 0.683105f, -0.633789f, 0.625488f, -0.655762f, 0.550293f, -0.655762f,
+0.485352f, -0.655762f, 0.430664f, -0.640381f, 0.375977f, -0.625f, 0.331787f, -0.597168f,
+0.287598f, -0.569336f, 0.25415f, -0.530762f, 0.220703f, -0.492188f, 0.197998f, -0.446045f,
+0.175293f, -0.399902f, 0.163818f, -0.347656f, 0.152344f, -0.29541f, 0.152344f, -0.239746f,
+0.152344f, -0.197266f, 0.160645f, -0.157471f, 0.168945f, -0.117676f, 0.185791f, -0.0830078f,
+0.202637f, -0.0483398f, 0.228271f, -0.0195312f, 0.253906f, 0.00927734f, 0.288574f,
+0.0297852f, 0.323242f, 0.050293f, 0.367432f, 0.0617676f, 0.411621f, 0.0732422f, 0.465332f,
+0.0732422f, 0.507324f, 0.0732422f, 0.546387f, 0.0673828f, 0.585449f, 0.0615234f,
+0.621338f, 0.0512695f, 0.657227f, 0.0410156f, 0.690186f, 0.0270996f, 0.723145f, 0.0131836f,
+0.75293f, -0.00244141f, 0.783203f, 0.0571289f, 0.753906f, 0.0737305f, 0.720215f,
+0.0893555f, 0.686523f, 0.10498f, 0.646973f, 0.116943f, 0.607422f, 0.128906f, 0.561523f,
+0.13623f, 0.515625f, 0.143555f, 0.461914f, 0.143555f, 0.398438f, 0.143555f, 0.344727f,
+0.129639f, 0.291016f, 0.115723f, 0.247803f, 0.0905762f, 0.20459f, 0.0654297f, 0.171875f,
+0.0302734f, 0.13916f, -0.00488281f, 0.117188f, -0.0473633f, 0.0952148f, -0.0898438f,
+0.0842285f, -0.138672f, 0.0732422f, -0.1875f, 0.0732422f, -0.239746f, 0.0732422f,
+-0.307617f, 0.088623f, -0.370117f, 0.104004f, -0.432617f, 0.133057f, -0.486328f,
+0.162109f, -0.540039f, 0.203857f, -0.583984f, 0.245605f, -0.62793f, 0.298584f, -0.65918f,
+0.351562f, -0.69043f, 0.414795f, -0.70752f, 0.478027f, -0.724609f, 0.549316f, -0.724609f,
+0.648438f, -0.724609f, 0.720947f, -0.695801f, 0.793457f, -0.666992f, 0.840576f, -0.618164f,
+0.887695f, -0.569336f, 0.9104f, -0.504883f, 0.933105f, -0.44043f, 0.933105f, -0.368652f,
+0.617188f, -0.366699f, 0.617188f, -0.389648f, 0.609619f, -0.408936f, 0.602051f, -0.428223f,
+0.588379f, -0.442139f, 0.574707f, -0.456055f, 0.555664f, -0.463867f, 0.536621f, -0.47168f,
+0.513184f, -0.47168f, 0.486328f, -0.47168f, 0.463867f, -0.46167f, 0.441406f, -0.45166f,
+0.423828f, -0.43457f, 0.40625f, -0.41748f, 0.393066f, -0.394775f, 0.379883f, -0.37207f,
+0.371338f, -0.346191f, 0.362793f, -0.320312f, 0.358398f, -0.292969f, 0.354004f, -0.265625f,
+0.354004f, -0.239746f, 0.354004f, -0.184082f, 0.377686f, -0.151855f, 0.401367f, -0.119629f,
+0.450195f, -0.119629f, 0.473633f, -0.119629f, 0.496826f, -0.130859f, 0.52002f, -0.14209f,
+0.540527f, -0.163818f, 0.561035f, -0.185547f, 0.577881f, -0.217529f, 0.594727f, -0.249512f,
+0.60498f, -0.290527f, 0.607422f, -0.299316f, 0.609619f, -0.309814f, 0.611816f, -0.320312f,
+0.613525f, -0.330566f, 0.615234f, -0.34082f, 0.616211f, -0.350098f, 0.617188f, -0.359375f,
+0.617188f, -0.366699f, 0.507324f, 0, 0.480469f, -0.175781f, 0.218262f, -0.175781f,
+0.123047f, 0, -0.0205078f, 0, 0.36377f, -0.687988f, 0.533691f, -0.687988f, 0.649902f,
+0, 0.436523f, -0.504883f, 0.435547f, -0.512207f, 0.434082f, -0.523193f, 0.432617f,
+-0.53418f, 0.431152f, -0.545654f, 0.429688f, -0.557129f, 0.428711f, -0.567139f, 0.427734f,
+-0.577148f, 0.427734f, -0.582031f, 0.425781f, -0.576172f, 0.420654f, -0.564209f,
+0.415527f, -0.552246f, 0.408936f, -0.537598f, 0.402344f, -0.522949f, 0.394531f, -0.507324f,
+0.386719f, -0.491699f, 0.379883f, -0.478516f, 0.276367f, -0.28418f, 0.469238f, -0.28418f,
+0.151367f, -0.687988f, 0.436523f, -0.687988f, 0.500488f, -0.687988f, 0.547119f, -0.677246f,
+0.59375f, -0.666504f, 0.624512f, -0.645996f, 0.655273f, -0.625488f, 0.670166f, -0.595947f,
+0.685059f, -0.566406f, 0.685059f, -0.528809f, 0.685059f, -0.493164f, 0.673828f, -0.465088f,
+0.662598f, -0.437012f, 0.641846f, -0.41626f, 0.621094f, -0.395508f, 0.591797f, -0.381592f,
+0.5625f, -0.367676f, 0.526855f, -0.360352f, 0.561523f, -0.354492f, 0.587891f, -0.34082f,
+0.614258f, -0.327148f, 0.63208f, -0.307373f, 0.649902f, -0.287598f, 0.658936f, -0.262939f,
+0.667969f, -0.238281f, 0.667969f, -0.210449f, 0.667969f, -0.149414f, 0.643311f, -0.108887f,
+0.618652f, -0.0683594f, 0.576904f, -0.0441895f, 0.535156f, -0.0200195f, 0.479492f,
+-0.0100098f, 0.423828f, 0, 0.361816f, 0, 0.0175781f, 0, 0.241211f, -0.410645f, 0.384766f,
+-0.410645f, 0.427246f, -0.410645f, 0.457275f, -0.416016f, 0.487305f, -0.421387f,
+0.506104f, -0.433105f, 0.524902f, -0.444824f, 0.533447f, -0.463135f, 0.541992f, -0.481445f,
+0.541992f, -0.506836f, 0.541992f, -0.52832f, 0.533936f, -0.542725f, 0.525879f, -0.557129f,
+0.510498f, -0.565674f, 0.495117f, -0.574219f, 0.472412f, -0.577637f, 0.449707f, -0.581055f,
+0.420898f, -0.581055f, 0.273926f, -0.581055f, 0.182129f, -0.106934f, 0.342285f, -0.106934f,
+0.388672f, -0.106934f, 0.422852f, -0.111816f, 0.457031f, -0.116699f, 0.479248f, -0.128906f,
+0.501465f, -0.141113f, 0.512451f, -0.161621f, 0.523438f, -0.182129f, 0.523438f, -0.213379f,
+0.523438f, -0.257324f, 0.490234f, -0.280762f, 0.457031f, -0.304199f, 0.381836f, -0.304199f,
+0.220703f, -0.304199f, 0.195801f, -0.279785f, 0.195801f, -0.23877f, 0.206055f, -0.206055f,
+0.216309f, -0.17334f, 0.236572f, -0.150391f, 0.256836f, -0.127441f, 0.286865f, -0.115234f,
+0.316895f, -0.103027f, 0.356934f, -0.103027f, 0.39502f, -0.103027f, 0.42627f, -0.113281f,
+0.45752f, -0.123535f, 0.482666f, -0.141113f, 0.507812f, -0.158691f, 0.5271f, -0.181396f,
+0.546387f, -0.204102f, 0.561035f, -0.229004f, 0.671875f, -0.171875f, 0.650879f, -0.134766f,
+0.621582f, -0.101562f, 0.592285f, -0.0683594f, 0.552734f, -0.0437012f, 0.513184f,
+-0.019043f, 0.462402f, -0.00463867f, 0.411621f, 0.00976562f, 0.347168f, 0.00976562f,
+0.270508f, 0.00976562f, 0.214111f, -0.0126953f, 0.157715f, -0.0351562f, 0.121094f,
+-0.0739746f, 0.0844727f, -0.112793f, 0.0666504f, -0.165283f, 0.0488281f, -0.217773f,
+0.0488281f, -0.277832f, 0.0488281f, -0.338379f, 0.0615234f, -0.393066f, 0.0742188f,
+-0.447754f, 0.0983887f, -0.494385f, 0.122559f, -0.541016f, 0.157715f, -0.578857f,
+0.192871f, -0.616699f, 0.237793f, -0.643066f, 0.282715f, -0.669434f, 0.33667f, -0.683838f,
+0.390625f, -0.698242f, 0.452637f, -0.698242f, 0.519531f, -0.698242f, 0.568115f, -0.682617f,
+0.616699f, -0.666992f, 0.650391f, -0.640625f, 0.684082f, -0.614258f, 0.704102f, -0.57959f,
+0.724121f, -0.544922f, 0.733887f, -0.506836f, 0.600098f, -0.472168f, 0.594238f, -0.493652f,
+0.582275f, -0.513916f, 0.570312f, -0.53418f, 0.551758f, -0.550049f, 0.533203f, -0.565918f,
+0.507324f, -0.575439f, 0.481445f, -0.584961f, 0.448242f, -0.584961f, 0.386719f, -0.584961f,
+0.3396f, -0.562744f, 0.29248f, -0.540527f, 0.260498f, -0.500244f, 0.228516f, -0.459961f,
+0.212158f, -0.403809f, 0.195801f, -0.347656f, 0.195801f, -0.279785f, 0.358398f, -0.687988f,
+0.437988f, -0.687988f, 0.500244f, -0.669434f, 0.5625f, -0.650879f, 0.605469f, -0.614014f,
+0.648438f, -0.577148f, 0.671143f, -0.522217f, 0.693848f, -0.467285f, 0.693848f, -0.394043f,
+0.693848f, -0.329102f, 0.678955f, -0.274658f, 0.664062f, -0.220215f, 0.637451f, -0.176514f,
+0.61084f, -0.132812f, 0.573975f, -0.0998535f, 0.537109f, -0.0668945f, 0.493408f,
+-0.0446777f, 0.449707f, -0.0224609f, 0.400391f, -0.0112305f, 0.351074f, 0, 0.299805f,
+0, 0.0175781f, 0, 0.151367f, -0.687988f, 0.183105f, -0.111328f, 0.29541f, -0.111328f,
+0.352051f, -0.111328f, 0.400391f, -0.129395f, 0.44873f, -0.147461f, 0.483887f, -0.182373f,
+0.519043f, -0.217285f, 0.539062f, -0.268799f, 0.559082f, -0.320312f, 0.559082f, -0.387695f,
+0.559082f, -0.435547f, 0.54541f, -0.470947f, 0.531738f, -0.506348f, 0.506104f, -0.529785f,
+0.480469f, -0.553223f, 0.443359f, -0.564941f, 0.40625f, -0.57666f, 0.359375f, -0.57666f,
+0.273438f, -0.57666f, 0.0175781f, 0, 0.150879f, -0.687988f, 0.691895f, -0.687988f,
+0.67041f, -0.57666f, 0.273438f, -0.57666f, 0.239746f, -0.403809f, 0.606934f, -0.403809f,
+0.585449f, -0.29248f, 0.218262f, -0.29248f, 0.183105f, -0.111328f, 0.600098f, -0.111328f,
+0.578125f, 0, 0.273438f, -0.57666f, 0.231934f, -0.36377f, 0.558105f, -0.36377f, 0.536621f,
+-0.252441f, 0.210449f, -0.252441f, 0.161133f, 0, 0.0175781f, 0, 0.150879f, -0.687988f,
+0.632324f, -0.687988f, 0.61084f, -0.57666f, 0.683594f, -0.0854492f, 0.650879f, -0.0629883f,
+0.616455f, -0.045166f, 0.582031f, -0.0273438f, 0.542969f, -0.0153809f, 0.503906f,
+-0.00341797f, 0.459229f, 0.00292969f, 0.414551f, 0.00927734f, 0.361328f, 0.00927734f,
+0.282227f, 0.00927734f, 0.223389f, -0.0129395f, 0.164551f, -0.0351562f, 0.125732f,
+-0.0742188f, 0.0869141f, -0.113281f, 0.0678711f, -0.167236f, 0.0488281f, -0.221191f,
+0.0488281f, -0.284668f, 0.0488281f, -0.376465f, 0.0776367f, -0.452637f, 0.106445f,
+-0.528809f, 0.159912f, -0.583496f, 0.213379f, -0.638184f, 0.289551f, -0.668213f,
+0.365723f, -0.698242f, 0.459961f, -0.698242f, 0.523926f, -0.698242f, 0.572754f, -0.682617f,
+0.621582f, -0.666992f, 0.656738f, -0.640625f, 0.691895f, -0.614258f, 0.714111f, -0.579834f,
+0.736328f, -0.54541f, 0.74707f, -0.507324f, 0.609375f, -0.469238f, 0.603516f, -0.491699f,
+0.591553f, -0.512695f, 0.57959f, -0.533691f, 0.560547f, -0.549805f, 0.541504f, -0.565918f,
+0.514648f, -0.575439f, 0.487793f, -0.584961f, 0.452148f, -0.584961f, 0.390137f, -0.584961f,
+0.342041f, -0.5625f, 0.293945f, -0.540039f, 0.26123f, -0.500488f, 0.228516f, -0.460938f,
+0.21167f, -0.406738f, 0.194824f, -0.352539f, 0.194824f, -0.289062f, 0.194824f, -0.251465f,
+0.204834f, -0.217773f, 0.214844f, -0.184082f, 0.236328f, -0.158447f, 0.257812f, -0.132812f,
+0.291748f, -0.11792f, 0.325684f, -0.103027f, 0.373047f, -0.103027f, 0.40332f, -0.103027f,
+0.430664f, -0.106934f, 0.458008f, -0.11084f, 0.481934f, -0.117432f, 0.505859f, -0.124023f,
+0.525635f, -0.132324f, 0.54541f, -0.140625f, 0.560547f, -0.149902f, 0.583008f, -0.26123f,
+0.416016f, -0.26123f, 0.435059f, -0.362793f, 0.734863f, -0.362793f, 0.466797f, 0,
+0.524414f, -0.294922f, 0.21875f, -0.294922f, 0.161133f, 0, 0.0175781f, 0, 0.150879f,
+-0.687988f, 0.294922f, -0.687988f, 0.241699f, -0.414062f, 0.547363f, -0.414062f,
+0.600586f, -0.687988f, 0.739258f, -0.687988f, 0.605469f, 0, 0.0175781f, 0, 0.150879f,
+-0.687988f, 0.294922f, -0.687988f, 0.161133f, 0, 0.234375f, 0.00976562f, 0.183105f,
+0.00976562f, 0.14502f, -0.00390625f, 0.106934f, -0.0175781f, 0.0800781f, -0.0427246f,
+0.0532227f, -0.0678711f, 0.0368652f, -0.104004f, 0.0205078f, -0.140137f, 0.012207f,
+-0.185059f, 0.142578f, -0.213379f, 0.147461f, -0.189453f, 0.155518f, -0.169189f,
+0.163574f, -0.148926f, 0.175537f, -0.134277f, 0.1875f, -0.119629f, 0.204346f, -0.111328f,
+0.221191f, -0.103027f, 0.243652f, -0.103027f, 0.268066f, -0.103027f, 0.28418f, -0.112305f,
+0.300293f, -0.121582f, 0.311035f, -0.136963f, 0.321777f, -0.152344f, 0.327881f, -0.172607f,
+0.333984f, -0.192871f, 0.338379f, -0.214844f, 0.408203f, -0.575195f, 0.270996f, -0.575195f,
+0.29248f, -0.687988f, 0.573242f, -0.687988f, 0.479004f, -0.206543f, 0.46875f, -0.15332f,
+0.450195f, -0.113037f, 0.431641f, -0.0727539f, 0.402344f, -0.0454102f, 0.373047f,
+-0.0180664f, 0.331787f, -0.00415039f, 0.290527f, 0.00976562f, 0.234375f, 0.00976562f,
+0.48584f, 0, 0.3125f, -0.3125f, 0.209473f, -0.252441f, 0.160156f, 0, 0.0175781f,
+0, 0.150879f, -0.687988f, 0.294922f, -0.687988f, 0.231445f, -0.375977f, 0.602539f,
+-0.687988f, 0.782715f, -0.687988f, 0.417969f, -0.387207f, 0.64502f, 0, 0.0175781f,
+0, 0.150879f, -0.687988f, 0.294922f, -0.687988f, 0.183105f, -0.111328f, 0.552246f,
+-0.111328f, 0.530273f, 0, 0.588867f, 0, 0.672852f, -0.431641f, 0.678223f, -0.458496f,
+0.68457f, -0.486084f, 0.690918f, -0.513672f, 0.696289f, -0.536621f, 0.702637f, -0.563477f,
+0.708984f, -0.588867f, 0.691406f, -0.550781f, 0.675293f, -0.515137f, 0.668457f, -0.5f,
+0.660889f, -0.483887f, 0.65332f, -0.467773f, 0.645996f, -0.452393f, 0.638672f, -0.437012f,
+0.63208f, -0.423096f, 0.625488f, -0.40918f, 0.619629f, -0.398438f, 0.418457f, 0,
+0.315918f, 0, 0.27002f, -0.399902f, 0.269043f, -0.40918f, 0.267578f, -0.422119f,
+0.266113f, -0.435059f, 0.264404f, -0.450195f, 0.262695f, -0.465332f, 0.260986f, -0.481445f,
+0.259277f, -0.497559f, 0.257812f, -0.512695f, 0.254395f, -0.548828f, 0.250488f, -0.588867f,
+0.24707f, -0.559082f, 0.243652f, -0.530273f, 0.242188f, -0.518066f, 0.240479f, -0.504883f,
+0.23877f, -0.491699f, 0.237061f, -0.479004f, 0.235352f, -0.466309f, 0.233398f, -0.45459f,
+0.231445f, -0.442871f, 0.229492f, -0.433105f, 0.145508f, 0, 0.0175781f, 0, 0.151367f,
+-0.687988f, 0.344238f, -0.687988f, 0.387207f, -0.303223f, 0.38916f, -0.288086f, 0.391113f,
+-0.265381f, 0.393066f, -0.242676f, 0.39502f, -0.220703f, 0.396973f, -0.195312f, 0.399414f,
+-0.168457f, 0.411621f, -0.195312f, 0.42334f, -0.220215f, 0.433105f, -0.241699f, 0.444092f,
+-0.263916f, 0.455078f, -0.286133f, 0.462402f, -0.300781f, 0.658691f, -0.687988f,
+0.850586f, -0.687988f, 0.716797f, 0, 0.431641f, 0, 0.249023f, -0.552246f, 0.246094f,
+-0.53125f, 0.243164f, -0.510742f, 0.240723f, -0.493164f, 0.237305f, -0.4729f, 0.233887f,
+-0.452637f, 0.230469f, -0.435547f, 0.145508f, 0, 0.0175781f, 0, 0.151367f, -0.687988f,
+0.322266f, -0.687988f, 0.506348f, -0.130859f, 0.509277f, -0.149902f, 0.512207f, -0.170898f,
+0.514648f, -0.188965f, 0.518311f, -0.211182f, 0.521973f, -0.233398f, 0.526367f, -0.255859f,
+0.611328f, -0.687988f, 0.739258f, -0.687988f, 0.605469f, 0, 0.453125f, -0.698242f,
+0.525391f, -0.698242f, 0.58252f, -0.678467f, 0.639648f, -0.658691f, 0.679443f, -0.621826f,
+0.719238f, -0.584961f, 0.740234f, -0.532715f, 0.76123f, -0.480469f, 0.76123f, -0.415527f,
+0.76123f, -0.391602f, 0.758789f, -0.365967f, 0.756348f, -0.340332f, 0.751465f, -0.316895f,
+0.736328f, -0.241699f, 0.701904f, -0.181396f, 0.66748f, -0.121094f, 0.616699f, -0.0786133f,
+0.565918f, -0.0361328f, 0.499756f, -0.0131836f, 0.433594f, 0.00976562f, 0.35498f,
+0.00976562f, 0.280273f, 0.00976562f, 0.223145f, -0.0114746f, 0.166016f, -0.0327148f,
+0.127197f, -0.0710449f, 0.0883789f, -0.109375f, 0.0686035f, -0.162598f, 0.0488281f,
+-0.21582f, 0.0488281f, -0.279785f, 0.0488281f, -0.302246f, 0.0510254f, -0.325684f,
+0.0532227f, -0.349121f, 0.0581055f, -0.373047f, 0.0732422f, -0.446289f, 0.106934f,
+-0.506348f, 0.140625f, -0.566406f, 0.190918f, -0.609131f, 0.241211f, -0.651855f,
+0.307373f, -0.675049f, 0.373535f, -0.698242f, 0.453125f, -0.698242f, 0.446289f, -0.584473f,
+0.394043f, -0.584473f, 0.353027f, -0.568848f, 0.312012f, -0.553223f, 0.281982f, -0.523926f,
+0.251953f, -0.494629f, 0.231934f, -0.451904f, 0.211914f, -0.40918f, 0.20166f, -0.35498f,
+0.198242f, -0.336914f, 0.196777f, -0.318604f, 0.195312f, -0.300293f, 0.195312f, -0.283691f,
+0.195312f, -0.193848f, 0.239258f, -0.148682f, 0.283203f, -0.103516f, 0.361816f, -0.103516f,
+0.414551f, -0.103516f, 0.455566f, -0.119385f, 0.496582f, -0.135254f, 0.526855f, -0.165039f,
+0.557129f, -0.194824f, 0.576904f, -0.237061f, 0.59668f, -0.279297f, 0.606934f, -0.332031f,
+0.610352f, -0.349609f, 0.611572f, -0.369629f, 0.612793f, -0.389648f, 0.612793f, -0.403809f,
+0.612793f, -0.449219f, 0.601074f, -0.48291f, 0.589355f, -0.516602f, 0.567871f, -0.539307f,
+0.546387f, -0.562012f, 0.515381f, -0.573242f, 0.484375f, -0.584473f, 0.446289f, -0.584473f,
+0.415039f, -0.687988f, 0.475586f, -0.687988f, 0.522705f, -0.673828f, 0.569824f, -0.659668f,
+0.602295f, -0.632812f, 0.634766f, -0.605957f, 0.651611f, -0.567871f, 0.668457f, -0.529785f,
+0.668457f, -0.481934f, 0.668457f, -0.42627f, 0.648682f, -0.381836f, 0.628906f, -0.337402f,
+0.592773f, -0.306396f, 0.556641f, -0.275391f, 0.505859f, -0.258789f, 0.455078f, -0.242188f,
+0.393066f, -0.242188f, 0.208984f, -0.242188f, 0.161133f, 0, 0.0175781f, 0, 0.150879f,
+-0.687988f, 0.22998f, -0.353027f, 0.371094f, -0.353027f, 0.446777f, -0.353027f, 0.484619f,
+-0.381348f, 0.522461f, -0.409668f, 0.522461f, -0.474121f, 0.522461f, -0.500977f,
+0.513672f, -0.520264f, 0.504883f, -0.539551f, 0.48877f, -0.552002f, 0.472656f, -0.564453f,
+0.450439f, -0.570312f, 0.428223f, -0.576172f, 0.401367f, -0.576172f, 0.273438f, -0.576172f,
+0.453125f, -0.698242f, 0.525391f, -0.698242f, 0.58252f, -0.678467f, 0.639648f, -0.658691f,
+0.679443f, -0.621826f, 0.719238f, -0.584961f, 0.740234f, -0.532715f, 0.76123f, -0.480469f,
+0.76123f, -0.415527f, 0.76123f, -0.391602f, 0.758789f, -0.365967f, 0.756348f, -0.340332f,
+0.751465f, -0.316895f, 0.738281f, -0.250977f, 0.710205f, -0.196533f, 0.682129f, -0.14209f,
+0.641113f, -0.10083f, 0.600098f, -0.0595703f, 0.547119f, -0.032959f, 0.494141f, -0.00634766f,
+0.430664f, 0.00390625f, 0.439941f, 0.0517578f, 0.462158f, 0.0732422f, 0.484375f,
+0.0947266f, 0.527832f, 0.0947266f, 0.536133f, 0.0947266f, 0.545898f, 0.0942383f,
+0.555664f, 0.09375f, 0.56543f, 0.0927734f, 0.575195f, 0.0917969f, 0.584473f, 0.0905762f,
+0.59375f, 0.0893555f, 0.601074f, 0.0878906f, 0.579102f, 0.183105f, 0.564941f, 0.187988f,
+0.542725f, 0.19165f, 0.520508f, 0.195312f, 0.496582f, 0.195312f, 0.442383f, 0.195312f,
+0.404297f, 0.181641f, 0.366211f, 0.167969f, 0.341309f, 0.142822f, 0.316406f, 0.117676f,
+0.303223f, 0.0825195f, 0.290039f, 0.0473633f, 0.285156f, 0.00439453f, 0.227539f,
+-0.00488281f, 0.18335f, -0.029541f, 0.13916f, -0.0541992f, 0.109131f, -0.0910645f,
+0.0791016f, -0.12793f, 0.0639648f, -0.175781f, 0.0488281f, -0.223633f, 0.0488281f,
+-0.279785f, 0.0488281f, -0.302246f, 0.0510254f, -0.325684f, 0.0532227f, -0.349121f,
+0.0581055f, -0.373047f, 0.0732422f, -0.446289f, 0.106934f, -0.506348f, 0.140625f,
+-0.566406f, 0.190918f, -0.609131f, 0.241211f, -0.651855f, 0.307373f, -0.675049f,
+0.373535f, -0.698242f, 0.453125f, -0.698242f, 0.446289f, -0.584473f, 0.394043f, -0.584473f,
+0.353027f, -0.568848f, 0.312012f, -0.553223f, 0.281982f, -0.523926f, 0.251953f, -0.494629f,
+0.231934f, -0.451904f, 0.211914f, -0.40918f, 0.20166f, -0.35498f, 0.198242f, -0.336914f,
+0.196777f, -0.318604f, 0.195312f, -0.300293f, 0.195312f, -0.283691f, 0.195312f, -0.193848f,
+0.239258f, -0.148682f, 0.283203f, -0.103516f, 0.361816f, -0.103516f, 0.414551f, -0.103516f,
+0.455566f, -0.119385f, 0.496582f, -0.135254f, 0.526855f, -0.165039f, 0.557129f, -0.194824f,
+0.576904f, -0.237061f, 0.59668f, -0.279297f, 0.606934f, -0.332031f, 0.610352f, -0.349609f,
+0.611572f, -0.369629f, 0.612793f, -0.389648f, 0.612793f, -0.403809f, 0.612793f, -0.449219f,
+0.601074f, -0.48291f, 0.589355f, -0.516602f, 0.567871f, -0.539307f, 0.546387f, -0.562012f,
+0.515381f, -0.573242f, 0.484375f, -0.584473f, 0.446289f, -0.584473f, 0.493164f, 0,
+0.380859f, -0.260742f, 0.211914f, -0.260742f, 0.161621f, 0, 0.0175781f, 0, 0.151367f,
+-0.687988f, 0.469238f, -0.687988f, 0.535156f, -0.687988f, 0.582031f, -0.671875f,
+0.628906f, -0.655762f, 0.658447f, -0.628662f, 0.687988f, -0.601562f, 0.70166f, -0.565918f,
+0.715332f, -0.530273f, 0.715332f, -0.491211f, 0.715332f, -0.445312f, 0.698975f, -0.409424f,
+0.682617f, -0.373535f, 0.655518f, -0.347656f, 0.628418f, -0.321777f, 0.592773f, -0.306152f,
+0.557129f, -0.290527f, 0.518555f, -0.284668f, 0.652344f, 0, 0.425781f, -0.373047f,
+0.458496f, -0.373047f, 0.484863f, -0.379395f, 0.51123f, -0.385742f, 0.530029f, -0.399414f,
+0.548828f, -0.413086f, 0.559082f, -0.433838f, 0.569336f, -0.45459f, 0.569336f, -0.48291f,
+0.569336f, -0.508301f, 0.560059f, -0.526123f, 0.550781f, -0.543945f, 0.534668f, -0.554932f,
+0.518555f, -0.565918f, 0.49707f, -0.571045f, 0.475586f, -0.576172f, 0.451172f, -0.576172f,
+0.273438f, -0.576172f, 0.233887f, -0.373047f, 0.292969f, 0.00976562f, 0.227051f,
+0.00976562f, 0.177246f, -0.00195312f, 0.127441f, -0.0136719f, 0.0930176f, -0.0373535f,
+0.0585938f, -0.0610352f, 0.0388184f, -0.0961914f, 0.019043f, -0.131348f, 0.012207f,
+-0.178223f, 0.15332f, -0.202148f, 0.158203f, -0.175781f, 0.168945f, -0.15625f, 0.179688f,
+-0.136719f, 0.197754f, -0.123779f, 0.21582f, -0.11084f, 0.241699f, -0.104492f, 0.267578f,
+-0.0981445f, 0.302734f, -0.0981445f, 0.339844f, -0.0981445f, 0.37085f, -0.103027f,
+0.401855f, -0.10791f, 0.424072f, -0.119385f, 0.446289f, -0.130859f, 0.45874f, -0.149414f,
+0.471191f, -0.167969f, 0.471191f, -0.195312f, 0.471191f, -0.218262f, 0.461914f, -0.234375f,
+0.452637f, -0.250488f, 0.434326f, -0.262207f, 0.416016f, -0.273926f, 0.388916f, -0.283203f,
+0.361816f, -0.29248f, 0.325684f, -0.301758f, 0.279785f, -0.313965f, 0.239502f, -0.329102f,
+0.199219f, -0.344238f, 0.169189f, -0.367432f, 0.13916f, -0.390625f, 0.121582f, -0.424072f,
+0.104004f, -0.45752f, 0.104004f, -0.506348f, 0.104004f, -0.552734f, 0.125977f, -0.588623f,
+0.147949f, -0.624512f, 0.185791f, -0.648926f, 0.223633f, -0.67334f, 0.274658f, -0.685791f,
+0.325684f, -0.698242f, 0.383789f, -0.698242f, 0.446777f, -0.698242f, 0.494385f, -0.686279f,
+0.541992f, -0.674316f, 0.575684f, -0.652588f, 0.609375f, -0.630859f, 0.629395f, -0.600342f,
+0.649414f, -0.569824f, 0.656738f, -0.532715f, 0.516113f, -0.5f, 0.505371f, -0.543945f,
+0.469482f, -0.570068f, 0.433594f, -0.596191f, 0.375977f, -0.596191f, 0.34375f, -0.596191f,
+0.31958f, -0.589844f, 0.29541f, -0.583496f, 0.279053f, -0.572266f, 0.262695f, -0.561035f,
+0.254395f, -0.54541f, 0.246094f, -0.529785f, 0.246094f, -0.51123f, 0.246094f, -0.489258f,
+0.25708f, -0.474365f, 0.268066f, -0.459473f, 0.287354f, -0.44873f, 0.306641f, -0.437988f,
+0.333496f, -0.429688f, 0.360352f, -0.421387f, 0.392578f, -0.412598f, 0.41748f, -0.405762f,
+0.443604f, -0.397705f, 0.469727f, -0.389648f, 0.494141f, -0.378662f, 0.518555f, -0.367676f,
+0.540039f, -0.352783f, 0.561523f, -0.337891f, 0.577637f, -0.317139f, 0.59375f, -0.296387f,
+0.603027f, -0.269287f, 0.612305f, -0.242188f, 0.612305f, -0.206543f, 0.612305f, -0.155273f,
+0.592773f, -0.115234f, 0.573242f, -0.0751953f, 0.533691f, -0.0473633f, 0.494141f,
+-0.0195312f, 0.434082f, -0.00488281f, 0.374023f, 0.00976562f, 0.292969f, 0.00976562f,
+0.437012f, -0.57666f, 0.324707f, 0, 0.180664f, 0, 0.292969f, -0.57666f, 0.0708008f,
+-0.57666f, 0.0922852f, -0.687988f, 0.681152f, -0.687988f, 0.659668f, -0.57666f, 0.335938f,
+-0.103027f, 0.374512f, -0.103027f, 0.404297f, -0.111328f, 0.434082f, -0.119629f,
+0.456299f, -0.138672f, 0.478516f, -0.157715f, 0.493164f, -0.188477f, 0.507812f, -0.219238f,
+0.516602f, -0.26416f, 0.598633f, -0.687988f, 0.742676f, -0.687988f, 0.65918f, -0.258789f,
+0.645508f, -0.189453f, 0.618652f, -0.138916f, 0.591797f, -0.0883789f, 0.551025f,
+-0.0554199f, 0.510254f, -0.0224609f, 0.454834f, -0.00634766f, 0.399414f, 0.00976562f,
+0.328125f, 0.00976562f, 0.265137f, 0.00976562f, 0.214844f, -0.00463867f, 0.164551f,
+-0.019043f, 0.129883f, -0.046875f, 0.0952148f, -0.074707f, 0.0766602f, -0.115967f,
+0.0581055f, -0.157227f, 0.0581055f, -0.210449f, 0.0581055f, -0.220703f, 0.059082f,
+-0.234131f, 0.0600586f, -0.247559f, 0.0617676f, -0.26123f, 0.0634766f, -0.274902f,
+0.0654297f, -0.287842f, 0.0673828f, -0.300781f, 0.0693359f, -0.310059f, 0.141602f,
+-0.687988f, 0.285645f, -0.687988f, 0.210938f, -0.29248f, 0.20752f, -0.275879f, 0.204834f,
+-0.252686f, 0.202148f, -0.229492f, 0.202148f, -0.208496f, 0.202148f, -0.182129f,
+0.211914f, -0.162354f, 0.22168f, -0.142578f, 0.239502f, -0.129395f, 0.257324f, -0.116211f,
+0.281982f, -0.109619f, 0.306641f, -0.103027f, 0.335938f, -0.103027f, 0.359863f, 0,
+0.194336f, 0, 0.0834961f, -0.687988f, 0.232422f, -0.687988f, 0.288086f, -0.246094f,
+0.290527f, -0.224121f, 0.29248f, -0.201172f, 0.294434f, -0.178223f, 0.295898f, -0.15918f,
+0.297852f, -0.136719f, 0.298828f, -0.116211f, 0.307617f, -0.13623f, 0.317383f, -0.158203f,
+0.325684f, -0.176758f, 0.33667f, -0.199951f, 0.347656f, -0.223145f, 0.359375f, -0.246094f,
+0.586426f, -0.687988f, 0.736816f, -0.687988f, 0.703613f, 0, 0.532715f, 0, 0.519531f,
+-0.396484f, 0.519531f, -0.401855f, 0.519043f, -0.419189f, 0.518555f, -0.436523f,
+0.518066f, -0.458496f, 0.517578f, -0.480469f, 0.517334f, -0.503906f, 0.51709f, -0.527344f,
+0.51709f, -0.544922f, 0.506348f, -0.516113f, 0.496094f, -0.48877f, 0.491699f, -0.477051f,
+0.486816f, -0.4646f, 0.481934f, -0.452148f, 0.477295f, -0.440186f, 0.472656f, -0.428223f,
+0.468262f, -0.41748f, 0.463867f, -0.406738f, 0.459961f, -0.397949f, 0.290039f, 0,
+0.116699f, 0, 0.0732422f, -0.687988f, 0.209961f, -0.687988f, 0.227539f, -0.290039f,
+0.228516f, -0.266602f, 0.229248f, -0.237549f, 0.22998f, -0.208496f, 0.230469f, -0.182129f,
+0.230957f, -0.151855f, 0.230957f, -0.121094f, 0.245117f, -0.157227f, 0.258789f, -0.191406f,
+0.264648f, -0.206055f, 0.270996f, -0.22168f, 0.277344f, -0.237305f, 0.283691f, -0.252441f,
+0.290039f, -0.267578f, 0.295654f, -0.281494f, 0.30127f, -0.29541f, 0.306152f, -0.306641f,
+0.469238f, -0.687988f, 0.623535f, -0.687988f, 0.63916f, -0.250977f, 0.640137f, -0.230469f,
+0.640869f, -0.208008f, 0.641602f, -0.185547f, 0.642578f, -0.166016f, 0.643555f, -0.143066f,
+0.644043f, -0.121094f, 0.654297f, -0.148926f, 0.665527f, -0.178223f, 0.675293f, -0.203125f,
+0.687012f, -0.23291f, 0.69873f, -0.262695f, 0.709961f, -0.290527f, 0.873047f, -0.687988f,
+1.01514f, -0.687988f, 0.107422f, -0.687988f, 0.258301f, -0.687988f, 0.367676f, -0.458008f,
+0.563965f, -0.687988f, 0.716797f, -0.687988f, 0.423828f, -0.357422f, 0.603027f, 0,
+0.453125f, 0, 0.32959f, -0.259766f, 0.107422f, 0, -0.0458984f, 0, 0.272461f, -0.359375f,
+0.408203f, -0.282227f, 0.353516f, 0, 0.209961f, 0, 0.264648f, -0.282227f, 0.0839844f,
+-0.687988f, 0.226562f, -0.687988f, 0.353027f, -0.392578f, 0.584473f, -0.687988f,
+0.742188f, -0.687988f, 0.52832f, 0, -0.0234375f, 0, -0.00390625f, -0.102051f, 0.44873f,
+-0.575195f, 0.125f, -0.575195f, 0.146973f, -0.687988f, 0.64209f, -0.687988f, 0.622559f,
+-0.587891f, 0.168457f, -0.112793f, 0.550293f, -0.112793f, -0.0263672f, 0.20752f,
+0.154297f, -0.724609f, 0.418945f, -0.724609f, 0.400879f, -0.631836f, 0.266113f, -0.631836f,
+0.121094f, 0.114258f, 0.255859f, 0.114258f, 0.237793f, 0.20752f, 0.141113f, 0.0200195f,
+0.0541992f, -0.725098f, 0.17041f, -0.725098f, 0.259766f, 0.0200195f, -0.0849609f,
+0.20752f, -0.0668945f, 0.114258f, 0.0683594f, 0.114258f, 0.213379f, -0.631836f, 0.0776367f,
+-0.631836f, 0.0957031f, -0.724609f, 0.360352f, -0.724609f, 0.179199f, 0.20752f, 0.469727f,
+-0.250977f, 0.310547f, -0.618164f, 0.152344f, -0.250977f, 0.0415039f, -0.250977f,
+0.232422f, -0.687988f, 0.389648f, -0.687988f, 0.581543f, -0.250977f, -0.0585938f,
+0.12207f, -0.0585938f, 0.0839844f, 0.516113f, 0.0839844f, 0.516113f, 0.12207f, 0.291016f,
+-0.577637f, 0.141113f, -0.712402f, 0.14502f, -0.733398f, 0.270996f, -0.733398f, 0.366211f,
+-0.592773f, 0.363281f, -0.577637f, 0.52002f, -0.00585938f, 0.499512f, 0.00195312f,
+0.478516f, 0.00341797f, 0.45752f, 0.00488281f, 0.435547f, 0.00488281f, 0.386719f,
+0.00488281f, 0.360352f, -0.015625f, 0.333984f, -0.0361328f, 0.333984f, -0.0698242f,
+0.333984f, -0.0771484f, 0.334473f, -0.0852051f, 0.334961f, -0.0932617f, 0.336426f,
+-0.101074f, 0.333496f, -0.101074f, 0.316895f, -0.0751953f, 0.299805f, -0.0546875f,
+0.282715f, -0.0341797f, 0.261963f, -0.0197754f, 0.241211f, -0.00537109f, 0.215332f,
+0.00219727f, 0.189453f, 0.00976562f, 0.154785f, 0.00976562f, 0.116699f, 0.00976562f,
+0.088623f, -0.00244141f, 0.0605469f, -0.0146484f, 0.0419922f, -0.0349121f, 0.0234375f,
+-0.0551758f, 0.0141602f, -0.081543f, 0.00488281f, -0.10791f, 0.00488281f, -0.135742f,
+0.00488281f, -0.175293f, 0.0158691f, -0.204102f, 0.0268555f, -0.23291f, 0.0458984f,
+-0.253418f, 0.0649414f, -0.273926f, 0.0905762f, -0.286865f, 0.116211f, -0.299805f,
+0.145508f, -0.307129f, 0.174805f, -0.314453f, 0.206543f, -0.317383f, 0.238281f, -0.320312f,
+0.269043f, -0.320801f, 0.362305f, -0.322266f, 0.366211f, -0.339844f, 0.369629f, -0.354492f,
+0.371094f, -0.365479f, 0.372559f, -0.376465f, 0.372559f, -0.38623f, 0.372559f, -0.418457f,
+0.355957f, -0.433594f, 0.339355f, -0.44873f, 0.310547f, -0.44873f, 0.296387f, -0.44873f,
+0.28125f, -0.446777f, 0.266113f, -0.444824f, 0.252686f, -0.437744f, 0.239258f, -0.430664f,
+0.228271f, -0.416748f, 0.217285f, -0.402832f, 0.211426f, -0.379395f, 0.0830078f,
+-0.394531f, 0.0908203f, -0.427246f, 0.108398f, -0.453613f, 0.125977f, -0.47998f,
+0.154297f, -0.498779f, 0.182617f, -0.517578f, 0.221924f, -0.527832f, 0.26123f, -0.538086f,
+0.312988f, -0.538086f, 0.414062f, -0.538086f, 0.461182f, -0.502441f, 0.508301f, -0.466797f,
+0.508301f, -0.394043f, 0.508301f, -0.378906f, 0.504395f, -0.35791f, 0.500488f, -0.336914f,
+0.496582f, -0.317383f, 0.461914f, -0.14502f, 0.460449f, -0.136719f, 0.459229f, -0.127197f,
+0.458008f, -0.117676f, 0.458008f, -0.109863f, 0.458008f, -0.0981445f, 0.462891f,
+-0.0917969f, 0.467773f, -0.0854492f, 0.474121f, -0.0825195f, 0.480469f, -0.0795898f,
+0.486816f, -0.0788574f, 0.493164f, -0.078125f, 0.496582f, -0.078125f, 0.503418f,
+-0.078125f, 0.509521f, -0.0786133f, 0.515625f, -0.0791016f, 0.526855f, -0.081543f,
+0.347168f, -0.245605f, 0.268066f, -0.245605f, 0.210938f, -0.244629f, 0.177979f, -0.222168f,
+0.14502f, -0.199707f, 0.14502f, -0.158691f, 0.14502f, -0.139648f, 0.150879f, -0.125732f,
+0.156738f, -0.111816f, 0.166504f, -0.103027f, 0.17627f, -0.0942383f, 0.189209f, -0.0900879f,
+0.202148f, -0.0859375f, 0.216309f, -0.0859375f, 0.230469f, -0.0859375f, 0.247803f,
+-0.0915527f, 0.265137f, -0.097168f, 0.281982f, -0.110352f, 0.298828f, -0.123535f,
+0.313477f, -0.145752f, 0.328125f, -0.167969f, 0.336426f, -0.200684f, 0.41748f, -0.538086f,
+0.457031f, -0.538086f, 0.487793f, -0.525879f, 0.518555f, -0.513672f, 0.539307f, -0.491211f,
+0.560059f, -0.46875f, 0.571045f, -0.436768f, 0.582031f, -0.404785f, 0.582031f, -0.365234f,
+0.582031f, -0.358398f, 0.582031f, -0.334961f, 0.57959f, -0.307617f, 0.577148f, -0.280273f,
+0.571777f, -0.251953f, 0.558105f, -0.182617f, 0.536621f, -0.133057f, 0.515137f, -0.0834961f,
+0.484619f, -0.0517578f, 0.454102f, -0.0200195f, 0.414795f, -0.00512695f, 0.375488f,
+0.00976562f, 0.32666f, 0.00976562f, 0.265625f, 0.00976562f, 0.227539f, -0.015625f,
+0.189453f, -0.0410156f, 0.173828f, -0.0869141f, 0.172852f, -0.0869141f, 0.169922f,
+-0.0742188f, 0.16626f, -0.0598145f, 0.162598f, -0.0454102f, 0.158936f, -0.0327148f,
+0.155273f, -0.0200195f, 0.152832f, -0.0109863f, 0.150391f, -0.00195312f, 0.149414f,
+0, 0.0170898f, 0, 0.0185547f, -0.00439453f, 0.0209961f, -0.0148926f, 0.0234375f,
+-0.0253906f, 0.0266113f, -0.0400391f, 0.0297852f, -0.0546875f, 0.0336914f, -0.0722656f,
+0.0375977f, -0.0898438f, 0.0410156f, -0.108887f, 0.161133f, -0.724609f, 0.29834f,
+-0.724609f, 0.257324f, -0.516113f, 0.250977f, -0.483887f, 0.246582f, -0.464844f,
+0.242188f, -0.445801f, 0.241699f, -0.445801f, 0.243652f, -0.445801f, 0.270996f, -0.486816f,
+0.314697f, -0.512451f, 0.358398f, -0.538086f, 0.41748f, -0.538086f, 0.358887f, -0.442871f,
+0.333496f, -0.442871f, 0.310059f, -0.434814f, 0.286621f, -0.426758f, 0.26709f, -0.407227f,
+0.247559f, -0.387695f, 0.232178f, -0.354492f, 0.216797f, -0.321289f, 0.207031f, -0.270508f,
+0.203125f, -0.249023f, 0.200928f, -0.230469f, 0.19873f, -0.211914f, 0.19873f, -0.195801f,
+0.19873f, -0.168457f, 0.205811f, -0.147705f, 0.212891f, -0.126953f, 0.22583f, -0.112793f,
+0.23877f, -0.0986328f, 0.256836f, -0.0915527f, 0.274902f, -0.0844727f, 0.296875f,
+-0.0844727f, 0.321777f, -0.0844727f, 0.341553f, -0.092041f, 0.361328f, -0.0996094f,
+0.377197f, -0.118408f, 0.393066f, -0.137207f, 0.405518f, -0.169678f, 0.417969f, -0.202148f,
+0.428223f, -0.251953f, 0.433594f, -0.276855f, 0.436279f, -0.298584f, 0.438965f, -0.320312f,
+0.438965f, -0.338867f, 0.438965f, -0.390137f, 0.421631f, -0.416504f, 0.404297f, -0.442871f,
+0.358887f, -0.442871f, 0.261719f, -0.0844727f, 0.302246f, -0.0844727f, 0.328613f,
+-0.110107f, 0.35498f, -0.135742f, 0.370605f, -0.186035f, 0.50293f, -0.161621f, 0.491211f,
+-0.123047f, 0.470947f, -0.0913086f, 0.450684f, -0.0595703f, 0.420654f, -0.0371094f,
+0.390625f, -0.0146484f, 0.349365f, -0.00244141f, 0.308105f, 0.00976562f, 0.253906f,
+0.00976562f, 0.197266f, 0.00976562f, 0.155273f, -0.00537109f, 0.113281f, -0.0205078f,
+0.0856934f, -0.0480957f, 0.0581055f, -0.0756836f, 0.0444336f, -0.11377f, 0.0307617f,
+-0.151855f, 0.0307617f, -0.197754f, 0.0307617f, -0.217285f, 0.0324707f, -0.240234f,
+0.0341797f, -0.263184f, 0.0395508f, -0.285156f, 0.0517578f, -0.339355f, 0.0705566f,
+-0.37915f, 0.0893555f, -0.418945f, 0.112549f, -0.447021f, 0.135742f, -0.475098f,
+0.162598f, -0.49292f, 0.189453f, -0.510742f, 0.217773f, -0.520752f, 0.246094f, -0.530762f,
+0.275146f, -0.534424f, 0.304199f, -0.538086f, 0.332031f, -0.538086f, 0.384277f, -0.538086f,
+0.422363f, -0.523926f, 0.460449f, -0.509766f, 0.486084f, -0.485596f, 0.511719f, -0.461426f,
+0.525146f, -0.429443f, 0.538574f, -0.397461f, 0.541504f, -0.361816f, 0.402832f, -0.350586f,
+0.400391f, -0.394531f, 0.380615f, -0.419189f, 0.36084f, -0.443848f, 0.321289f, -0.443848f,
+0.293945f, -0.443848f, 0.273682f, -0.434814f, 0.253418f, -0.425781f, 0.237793f, -0.406006f,
+0.222168f, -0.38623f, 0.209717f, -0.355225f, 0.197266f, -0.324219f, 0.186035f, -0.280762f,
+0.184082f, -0.270996f, 0.182129f, -0.26001f, 0.180176f, -0.249023f, 0.178467f, -0.238037f,
+0.176758f, -0.227051f, 0.175781f, -0.217041f, 0.174805f, -0.207031f, 0.174805f, -0.19873f,
+0.174805f, -0.139648f, 0.196777f, -0.112061f, 0.21875f, -0.0844727f, 0.261719f, -0.0844727f,
+0.365723f, -0.078125f, 0.348145f, -0.0551758f, 0.32959f, -0.0385742f, 0.311035f,
+-0.0219727f, 0.290283f, -0.0109863f, 0.269531f, 0, 0.245117f, 0.00512695f, 0.220703f,
+0.0102539f, 0.191406f, 0.0102539f, 0.152344f, 0.0102539f, 0.121826f, -0.00341797f,
+0.0913086f, -0.0170898f, 0.0705566f, -0.0415039f, 0.0498047f, -0.065918f, 0.0390625f,
+-0.0996094f, 0.0283203f, -0.133301f, 0.0283203f, -0.172852f, 0.0283203f, -0.194824f,
+0.0305176f, -0.220215f, 0.0327148f, -0.245605f, 0.0385742f, -0.276367f, 0.0522461f,
+-0.345703f, 0.0759277f, -0.395264f, 0.0996094f, -0.444824f, 0.131104f, -0.476562f,
+0.162598f, -0.508301f, 0.201172f, -0.523193f, 0.239746f, -0.538086f, 0.283203f, -0.538086f,
+0.318848f, -0.538086f, 0.344971f, -0.530518f, 0.371094f, -0.522949f, 0.389404f, -0.509766f,
+0.407715f, -0.496582f, 0.419189f, -0.479004f, 0.430664f, -0.461426f, 0.436523f, -0.441406f,
+0.438965f, -0.441406f, 0.439941f, -0.451172f, 0.442871f, -0.470703f, 0.445801f, -0.490234f,
+0.45166f, -0.520508f, 0.492676f, -0.724609f, 0.62793f, -0.724609f, 0.511719f, -0.112793f,
+0.506348f, -0.0830078f, 0.50293f, -0.0546875f, 0.499512f, -0.0263672f, 0.497559f,
+0, 0.360352f, 0, 0.360352f, -0.00390625f, 0.360596f, -0.0117188f, 0.36084f, -0.0195312f,
+0.361816f, -0.0302734f, 0.362793f, -0.0410156f, 0.364258f, -0.0532227f, 0.365723f,
+-0.0654297f, 0.367676f, -0.078125f, 0.251465f, -0.0839844f, 0.277344f, -0.0839844f,
+0.300537f, -0.092041f, 0.32373f, -0.100098f, 0.343262f, -0.119873f, 0.362793f, -0.139648f,
+0.37793f, -0.173096f, 0.393066f, -0.206543f, 0.402832f, -0.257324f, 0.406738f, -0.278809f,
+0.408936f, -0.297607f, 0.411133f, -0.316406f, 0.411133f, -0.33252f, 0.411133f, -0.391113f,
+0.388184f, -0.417725f, 0.365234f, -0.444336f, 0.319336f, -0.444336f, 0.296387f, -0.444336f,
+0.275391f, -0.436523f, 0.254395f, -0.428711f, 0.236816f, -0.409424f, 0.219238f, -0.390137f,
+0.205078f, -0.357666f, 0.190918f, -0.325195f, 0.182129f, -0.275879f, 0.177734f, -0.250977f,
+0.175537f, -0.230713f, 0.17334f, -0.210449f, 0.17334f, -0.191895f, 0.17334f, -0.140137f,
+0.191895f, -0.112061f, 0.210449f, -0.0839844f, 0.251465f, -0.0839844f, 0.174805f,
+-0.232422f, 0.172852f, -0.22168f, 0.172119f, -0.210938f, 0.171387f, -0.200195f, 0.171387f,
+-0.188965f, 0.171387f, -0.137207f, 0.194092f, -0.109619f, 0.216797f, -0.0820312f,
+0.26123f, -0.0820312f, 0.281738f, -0.0820312f, 0.297852f, -0.0883789f, 0.313965f,
+-0.0947266f, 0.32666f, -0.105713f, 0.339355f, -0.116699f, 0.348877f, -0.131836f,
+0.358398f, -0.146973f, 0.365234f, -0.164551f, 0.484863f, -0.128418f, 0.470215f, -0.097168f,
+0.45166f, -0.0715332f, 0.433105f, -0.0458984f, 0.40625f, -0.027832f, 0.379395f, -0.00976562f,
+0.341797f, 0, 0.304199f, 0.00976562f, 0.251953f, 0.00976562f, 0.198242f, 0.00976562f,
+0.156982f, -0.00537109f, 0.115723f, -0.0205078f, 0.0876465f, -0.0483398f, 0.0595703f,
+-0.0761719f, 0.045166f, -0.115723f, 0.0307617f, -0.155273f, 0.0307617f, -0.204102f,
+0.0307617f, -0.28418f, 0.052002f, -0.346191f, 0.0732422f, -0.408203f, 0.111084f,
+-0.450928f, 0.148926f, -0.493652f, 0.201172f, -0.515869f, 0.253418f, -0.538086f,
+0.31543f, -0.538086f, 0.370117f, -0.538086f, 0.410156f, -0.523438f, 0.450195f, -0.508789f,
+0.476562f, -0.482178f, 0.50293f, -0.455566f, 0.515625f, -0.418701f, 0.52832f, -0.381836f,
+0.52832f, -0.337402f, 0.52832f, -0.31543f, 0.525146f, -0.286865f, 0.521973f, -0.258301f,
+0.516602f, -0.232422f, 0.401367f, -0.32373f, 0.402344f, -0.331543f, 0.402588f, -0.337891f,
+0.402832f, -0.344238f, 0.402832f, -0.351074f, 0.402832f, -0.40332f, 0.378662f, -0.427246f,
+0.354492f, -0.451172f, 0.31543f, -0.451172f, 0.298828f, -0.451172f, 0.280273f, -0.445801f,
+0.261719f, -0.44043f, 0.244385f, -0.426025f, 0.227051f, -0.411621f, 0.213135f, -0.386963f,
+0.199219f, -0.362305f, 0.190918f, -0.32373f, 0.257812f, -0.435547f, 0.172852f, 0,
+0.0361328f, 0, 0.121094f, -0.435547f, 0.0439453f, -0.435547f, 0.0620117f, -0.52832f,
+0.13916f, -0.52832f, 0.149902f, -0.583496f, 0.15625f, -0.616699f, 0.169189f, -0.643066f,
+0.182129f, -0.669434f, 0.204834f, -0.6875f, 0.227539f, -0.705566f, 0.260742f, -0.715088f,
+0.293945f, -0.724609f, 0.34082f, -0.724609f, 0.362793f, -0.724609f, 0.382568f, -0.721924f,
+0.402344f, -0.719238f, 0.416504f, -0.716309f, 0.398926f, -0.62793f, 0.394531f, -0.628906f,
+0.388428f, -0.629639f, 0.382324f, -0.630371f, 0.375732f, -0.631104f, 0.369141f, -0.631836f,
+0.362793f, -0.632324f, 0.356445f, -0.632812f, 0.352051f, -0.632812f, 0.319336f, -0.632812f,
+0.304688f, -0.617188f, 0.290039f, -0.601562f, 0.283691f, -0.569824f, 0.275879f, -0.52832f,
+0.379883f, -0.52832f, 0.361816f, -0.435547f, 0.210449f, 0.20752f, 0.15918f, 0.20752f,
+0.121582f, 0.198486f, 0.0839844f, 0.189453f, 0.0581055f, 0.171875f, 0.0322266f, 0.154297f,
+0.017334f, 0.128662f, 0.00244141f, 0.103027f, -0.00341797f, 0.0693359f, 0.134766f,
+0.0546875f, 0.141602f, 0.0869141f, 0.164551f, 0.101807f, 0.1875f, 0.116699f, 0.226562f,
+0.116699f, 0.254883f, 0.116699f, 0.275879f, 0.109131f, 0.296875f, 0.101562f, 0.312256f,
+0.0856934f, 0.327637f, 0.0698242f, 0.338135f, 0.045166f, 0.348633f, 0.0205078f, 0.356445f,
+-0.0131836f, 0.359375f, -0.0273438f, 0.362061f, -0.0422363f, 0.364746f, -0.0571289f,
+0.367188f, -0.0698242f, 0.369629f, -0.0844727f, 0.371582f, -0.0981445f, 0.370605f,
+-0.0981445f, 0.356934f, -0.0786133f, 0.341553f, -0.0600586f, 0.326172f, -0.0415039f,
+0.305908f, -0.0273438f, 0.285645f, -0.0131836f, 0.259277f, -0.00463867f, 0.23291f,
+0.00390625f, 0.197754f, 0.00390625f, 0.15918f, 0.00390625f, 0.128174f, -0.00927734f,
+0.097168f, -0.0224609f, 0.0759277f, -0.0458984f, 0.0546875f, -0.0693359f, 0.0432129f,
+-0.102051f, 0.0317383f, -0.134766f, 0.0317383f, -0.173828f, 0.0317383f, -0.197754f,
+0.0339355f, -0.225098f, 0.0361328f, -0.252441f, 0.0419922f, -0.283203f, 0.0668945f,
+-0.410645f, 0.125732f, -0.474121f, 0.18457f, -0.537598f, 0.286133f, -0.537598f, 0.313965f,
+-0.537598f, 0.339111f, -0.530762f, 0.364258f, -0.523926f, 0.384277f, -0.510986f,
+0.404297f, -0.498047f, 0.418701f, -0.479248f, 0.433105f, -0.460449f, 0.439941f, -0.436035f,
+0.440918f, -0.436035f, 0.443359f, -0.44873f, 0.447021f, -0.463867f, 0.450684f, -0.479004f,
+0.454102f, -0.49292f, 0.45752f, -0.506836f, 0.460449f, -0.516846f, 0.463379f, -0.526855f,
+0.464355f, -0.52832f, 0.59375f, -0.52832f, 0.592773f, -0.523926f, 0.590332f, -0.513184f,
+0.587891f, -0.502441f, 0.584473f, -0.487549f, 0.581055f, -0.472656f, 0.577393f, -0.454346f,
+0.57373f, -0.436035f, 0.569824f, -0.416504f, 0.489258f, -0.00488281f, 0.478516f,
+0.0478516f, 0.458496f, 0.0876465f, 0.438477f, 0.127441f, 0.405518f, 0.154053f, 0.372559f,
+0.180664f, 0.324707f, 0.194092f, 0.276855f, 0.20752f, 0.210449f, 0.20752f, 0.406738f,
+-0.267578f, 0.410156f, -0.284668f, 0.411621f, -0.303223f, 0.413086f, -0.321777f,
+0.413086f, -0.334961f, 0.413086f, -0.362793f, 0.405762f, -0.383057f, 0.398438f, -0.40332f,
+0.385498f, -0.416992f, 0.372559f, -0.430664f, 0.354736f, -0.437256f, 0.336914f, -0.443848f,
+0.316406f, -0.443848f, 0.291504f, -0.443848f, 0.27124f, -0.436279f, 0.250977f, -0.428711f,
+0.235107f, -0.4104f, 0.219238f, -0.39209f, 0.207031f, -0.361084f, 0.194824f, -0.330078f,
+0.186035f, -0.283691f, 0.181641f, -0.259277f, 0.178467f, -0.235352f, 0.175293f, -0.211426f,
+0.175293f, -0.193359f, 0.175293f, -0.143066f, 0.197021f, -0.119629f, 0.21875f, -0.0961914f,
+0.259766f, -0.0961914f, 0.28125f, -0.0961914f, 0.303711f, -0.105713f, 0.326172f,
+-0.115234f, 0.346191f, -0.135986f, 0.366211f, -0.156738f, 0.38208f, -0.189209f, 0.397949f,
+-0.22168f, 0.406738f, -0.267578f, 0.293457f, -0.724609f, 0.254883f, -0.526855f, 0.25293f,
+-0.516602f, 0.250488f, -0.504639f, 0.248047f, -0.492676f, 0.245361f, -0.480957f,
+0.242676f, -0.469238f, 0.240234f, -0.458008f, 0.237793f, -0.446777f, 0.23584f, -0.437988f,
+0.237305f, -0.437988f, 0.251953f, -0.458496f, 0.269775f, -0.476562f, 0.287598f, -0.494629f,
+0.30957f, -0.508301f, 0.331543f, -0.521973f, 0.358643f, -0.529785f, 0.385742f, -0.537598f,
+0.419434f, -0.537598f, 0.493652f, -0.537598f, 0.53125f, -0.501953f, 0.568848f, -0.466309f,
+0.568848f, -0.398926f, 0.568848f, -0.390137f, 0.567627f, -0.378906f, 0.566406f, -0.367676f,
+0.564941f, -0.356689f, 0.563477f, -0.345703f, 0.561768f, -0.335693f, 0.560059f, -0.325684f,
+0.558594f, -0.318848f, 0.496582f, 0, 0.360352f, 0, 0.417969f, -0.290527f, 0.419922f,
+-0.299805f, 0.422119f, -0.311035f, 0.424316f, -0.322266f, 0.42627f, -0.333496f, 0.428223f,
+-0.344727f, 0.429443f, -0.354736f, 0.430664f, -0.364746f, 0.430664f, -0.371094f,
+0.430664f, -0.401855f, 0.411865f, -0.417969f, 0.393066f, -0.434082f, 0.356445f, -0.434082f,
+0.333496f, -0.434082f, 0.310547f, -0.424316f, 0.287598f, -0.414551f, 0.267822f, -0.396484f,
+0.248047f, -0.378418f, 0.233154f, -0.352783f, 0.218262f, -0.327148f, 0.212402f, -0.295898f,
+0.154785f, 0, 0.0170898f, 0, 0.156738f, -0.724609f, 0.137695f, -0.623535f, 0.157715f,
+-0.724609f, 0.294922f, -0.724609f, 0.274902f, -0.623535f, 0.0170898f, 0, 0.119629f,
+-0.52832f, 0.256836f, -0.52832f, 0.153809f, 0, 0.138184f, -0.623535f, 0.157715f,
+-0.724609f, 0.294922f, -0.724609f, 0.275391f, -0.623535f, -0.0263672f, 0.20752f,
+-0.0507812f, 0.20752f, -0.0717773f, 0.204834f, -0.0927734f, 0.202148f, -0.107422f,
+0.198242f, -0.0898438f, 0.106445f, -0.0834961f, 0.107422f, -0.0754395f, 0.10791f,
+-0.0673828f, 0.108398f, -0.0615234f, 0.108398f, -0.0449219f, 0.108398f, -0.0332031f,
+0.104492f, -0.0214844f, 0.100586f, -0.0131836f, 0.0913086f, -0.00488281f, 0.0820312f,
+0.000732422f, 0.0668945f, 0.00634766f, 0.0517578f, 0.0107422f, 0.0292969f, 0.119629f,
+-0.52832f, 0.256836f, -0.52832f, 0.141602f, 0.0625f, 0.135254f, 0.0942383f, 0.122314f,
+0.120605f, 0.109375f, 0.146973f, 0.0888672f, 0.166504f, 0.0683594f, 0.186035f, 0.0397949f,
+0.196777f, 0.0112305f, 0.20752f, -0.0263672f, 0.20752f, 0.355469f, 0, 0.263672f,
+-0.242676f, 0.195312f, -0.206055f, 0.153809f, 0, 0.0170898f, 0, 0.157715f, -0.724609f,
+0.294922f, -0.724609f, 0.213379f, -0.30957f, 0.44043f, -0.52832f, 0.597656f, -0.52832f,
+0.366699f, -0.322266f, 0.500977f, 0, 0.0170898f, 0, 0.157715f, -0.724609f, 0.294922f,
+-0.724609f, 0.153809f, 0, 0.645508f, -0.435547f, 0.623535f, -0.435547f, 0.60376f,
+-0.425781f, 0.583984f, -0.416016f, 0.568115f, -0.397705f, 0.552246f, -0.379395f,
+0.540771f, -0.35376f, 0.529297f, -0.328125f, 0.522949f, -0.296387f, 0.464844f, 0,
+0.328613f, 0, 0.388672f, -0.310059f, 0.390137f, -0.317871f, 0.391602f, -0.326904f,
+0.393066f, -0.335938f, 0.394287f, -0.345215f, 0.395508f, -0.354492f, 0.39624f, -0.362549f,
+0.396973f, -0.370605f, 0.396973f, -0.376465f, 0.396973f, -0.435547f, 0.335449f, -0.435547f,
+0.312988f, -0.435547f, 0.293457f, -0.425537f, 0.273926f, -0.415527f, 0.257812f, -0.397217f,
+0.241699f, -0.378906f, 0.230225f, -0.352783f, 0.21875f, -0.32666f, 0.212402f, -0.294922f,
+0.154785f, 0, 0.0170898f, 0, 0.0981445f, -0.415527f, 0.101562f, -0.432129f, 0.104736f,
+-0.450439f, 0.10791f, -0.46875f, 0.110596f, -0.485107f, 0.113281f, -0.501465f, 0.11499f,
+-0.513184f, 0.116699f, -0.524902f, 0.117188f, -0.52832f, 0.25f, -0.52832f, 0.25f,
+-0.525879f, 0.248535f, -0.515137f, 0.24707f, -0.504395f, 0.244873f, -0.490479f, 0.242676f,
+-0.476562f, 0.240479f, -0.462158f, 0.238281f, -0.447754f, 0.236328f, -0.437988f,
+0.237793f, -0.437988f, 0.25293f, -0.460938f, 0.268799f, -0.479492f, 0.284668f, -0.498047f,
+0.303467f, -0.510986f, 0.322266f, -0.523926f, 0.345459f, -0.530762f, 0.368652f, -0.537598f,
+0.397949f, -0.537598f, 0.458496f, -0.537598f, 0.493652f, -0.508545f, 0.528809f, -0.479492f,
+0.535645f, -0.424316f, 0.55127f, -0.44873f, 0.568359f, -0.469238f, 0.585449f, -0.489746f,
+0.605957f, -0.505127f, 0.626465f, -0.520508f, 0.651611f, -0.529053f, 0.676758f, -0.537598f,
+0.708496f, -0.537598f, 0.775879f, -0.537598f, 0.811768f, -0.501953f, 0.847656f, -0.466309f,
+0.847656f, -0.398926f, 0.847656f, -0.381348f, 0.844482f, -0.359375f, 0.841309f, -0.337402f,
+0.837402f, -0.318848f, 0.774902f, 0, 0.638672f, 0, 0.698242f, -0.306152f, 0.699707f,
+-0.313477f, 0.701172f, -0.32251f, 0.702637f, -0.331543f, 0.704102f, -0.340576f, 0.705566f,
+-0.349609f, 0.706299f, -0.358398f, 0.707031f, -0.367188f, 0.707031f, -0.374023f,
+0.707031f, -0.376465f, 0.705566f, -0.435547f, 0.645508f, -0.435547f, 0.360352f, 0,
+0.417969f, -0.290527f, 0.419922f, -0.299805f, 0.422119f, -0.311035f, 0.424316f, -0.322266f,
+0.42627f, -0.333496f, 0.428223f, -0.344727f, 0.429443f, -0.354736f, 0.430664f, -0.364746f,
+0.430664f, -0.371094f, 0.430664f, -0.401855f, 0.412109f, -0.417969f, 0.393555f, -0.434082f,
+0.356445f, -0.434082f, 0.333496f, -0.434082f, 0.310547f, -0.424316f, 0.287598f, -0.414551f,
+0.267822f, -0.396484f, 0.248047f, -0.378418f, 0.233154f, -0.352783f, 0.218262f, -0.327148f,
+0.212402f, -0.295898f, 0.154785f, 0, 0.0170898f, 0, 0.0981445f, -0.415527f, 0.101562f,
+-0.432129f, 0.104736f, -0.450439f, 0.10791f, -0.46875f, 0.110352f, -0.485107f, 0.112793f,
+-0.501465f, 0.114502f, -0.513184f, 0.116211f, -0.524902f, 0.116699f, -0.52832f, 0.247559f,
+-0.52832f, 0.247559f, -0.525879f, 0.246338f, -0.515137f, 0.245117f, -0.504395f, 0.243408f,
+-0.490479f, 0.241699f, -0.476562f, 0.239746f, -0.462158f, 0.237793f, -0.447754f,
+0.23584f, -0.437988f, 0.237305f, -0.437988f, 0.251953f, -0.458496f, 0.269775f, -0.476562f,
+0.287598f, -0.494629f, 0.30957f, -0.508301f, 0.331543f, -0.521973f, 0.358643f, -0.529785f,
+0.385742f, -0.537598f, 0.419434f, -0.537598f, 0.493652f, -0.537598f, 0.53125f, -0.501953f,
+0.568848f, -0.466309f, 0.568848f, -0.398926f, 0.568848f, -0.390137f, 0.567627f, -0.378906f,
+0.566406f, -0.367676f, 0.564941f, -0.356689f, 0.563477f, -0.345703f, 0.561768f, -0.335693f,
+0.560059f, -0.325684f, 0.558594f, -0.318848f, 0.496582f, 0, 0.578613f, -0.333496f,
+0.578613f, -0.253906f, 0.554688f, -0.190186f, 0.530762f, -0.126465f, 0.488281f, -0.0820312f,
+0.445801f, -0.0375977f, 0.387695f, -0.013916f, 0.32959f, 0.00976562f, 0.26123f, 0.00976562f,
+0.208984f, 0.00976562f, 0.166504f, -0.00463867f, 0.124023f, -0.019043f, 0.09375f,
+-0.0466309f, 0.0634766f, -0.0742188f, 0.0471191f, -0.114014f, 0.0307617f, -0.153809f,
+0.0307617f, -0.20459f, 0.0307617f, -0.280273f, 0.0534668f, -0.341797f, 0.0761719f,
+-0.40332f, 0.117676f, -0.446777f, 0.15918f, -0.490234f, 0.216797f, -0.513916f, 0.274414f,
+-0.537598f, 0.34375f, -0.537598f, 0.401367f, -0.537598f, 0.445312f, -0.523926f, 0.489258f,
+-0.510254f, 0.518799f, -0.483887f, 0.54834f, -0.45752f, 0.563477f, -0.419678f, 0.578613f,
+-0.381836f, 0.578613f, -0.333496f, 0.435059f, -0.323242f, 0.435059f, -0.355469f,
+0.427979f, -0.378418f, 0.420898f, -0.401367f, 0.407715f, -0.415771f, 0.394531f, -0.430176f,
+0.375732f, -0.437012f, 0.356934f, -0.443848f, 0.333496f, -0.443848f, 0.312012f, -0.443848f,
+0.290039f, -0.438721f, 0.268066f, -0.433594f, 0.248291f, -0.41748f, 0.228516f, -0.401367f,
+0.212158f, -0.371582f, 0.195801f, -0.341797f, 0.18457f, -0.292969f, 0.179199f, -0.269531f,
+0.177002f, -0.248779f, 0.174805f, -0.228027f, 0.174805f, -0.210449f, 0.174805f, -0.175293f,
+0.182373f, -0.151367f, 0.189941f, -0.127441f, 0.203613f, -0.112305f, 0.217285f, -0.097168f,
+0.23584f, -0.0905762f, 0.254395f, -0.0839844f, 0.276367f, -0.0839844f, 0.29834f,
+-0.0839844f, 0.319824f, -0.0888672f, 0.341309f, -0.09375f, 0.36084f, -0.109619f,
+0.380371f, -0.125488f, 0.396484f, -0.155029f, 0.412598f, -0.18457f, 0.423828f, -0.234375f,
+0.429199f, -0.259766f, 0.431641f, -0.281006f, 0.434082f, -0.302246f, 0.435059f, -0.323242f,
+0.355469f, -0.442871f, 0.330078f, -0.442871f, 0.306641f, -0.434814f, 0.283203f, -0.426758f,
+0.263672f, -0.407227f, 0.244141f, -0.387695f, 0.22876f, -0.354492f, 0.213379f, -0.321289f,
+0.203613f, -0.270508f, 0.199707f, -0.249023f, 0.19751f, -0.230469f, 0.195312f, -0.211914f,
+0.195312f, -0.195801f, 0.195312f, -0.168457f, 0.202393f, -0.147705f, 0.209473f, -0.126953f,
+0.222412f, -0.112793f, 0.235352f, -0.0986328f, 0.253418f, -0.0915527f, 0.271484f,
+-0.0844727f, 0.293457f, -0.0844727f, 0.318359f, -0.0844727f, 0.338623f, -0.0922852f,
+0.358887f, -0.100098f, 0.375f, -0.119141f, 0.391113f, -0.138184f, 0.403564f, -0.170654f,
+0.416016f, -0.203125f, 0.424805f, -0.251953f, 0.429199f, -0.276855f, 0.431641f, -0.298584f,
+0.434082f, -0.320312f, 0.434082f, -0.338867f, 0.434082f, -0.390625f, 0.415283f, -0.416748f,
+0.396484f, -0.442871f, 0.355469f, -0.442871f, 0.240723f, -0.445801f, 0.257812f, -0.469727f,
+0.275879f, -0.487061f, 0.293945f, -0.504395f, 0.314941f, -0.515869f, 0.335938f, -0.527344f,
+0.360352f, -0.532715f, 0.384766f, -0.538086f, 0.414062f, -0.538086f, 0.453613f, -0.538086f,
+0.484375f, -0.525879f, 0.515137f, -0.513672f, 0.535889f, -0.491211f, 0.556641f, -0.46875f,
+0.567627f, -0.436768f, 0.578613f, -0.404785f, 0.578613f, -0.365234f, 0.578613f, -0.336426f,
+0.576172f, -0.30835f, 0.57373f, -0.280273f, 0.568359f, -0.251953f, 0.554688f, -0.182617f,
+0.533203f, -0.133057f, 0.511719f, -0.0834961f, 0.481201f, -0.0517578f, 0.450684f,
+-0.0200195f, 0.411377f, -0.00512695f, 0.37207f, 0.00976562f, 0.323242f, 0.00976562f,
+0.262207f, 0.00976562f, 0.224121f, -0.015625f, 0.186035f, -0.0410156f, 0.17041f,
+-0.0869141f, 0.169434f, -0.0869141f, 0.166992f, -0.0664062f, 0.162598f, -0.0419922f,
+0.158203f, -0.0175781f, 0.153809f, 0.00488281f, 0.114746f, 0.20752f, -0.0219727f,
+0.20752f, 0.0966797f, -0.406738f, 0.100098f, -0.423828f, 0.102295f, -0.435791f, 0.104492f,
+-0.447754f, 0.106201f, -0.460205f, 0.10791f, -0.472656f, 0.110107f, -0.488281f, 0.112305f,
+-0.503906f, 0.115723f, -0.52832f, 0.25f, -0.52832f, 0.25f, -0.525391f, 0.249023f,
+-0.515625f, 0.248047f, -0.505859f, 0.246582f, -0.493408f, 0.245117f, -0.480957f,
+0.243164f, -0.468018f, 0.241211f, -0.455078f, 0.23877f, -0.445801f, 0.438477f, -0.440918f,
+0.440918f, -0.453125f, 0.444092f, -0.466553f, 0.447266f, -0.47998f, 0.450439f, -0.491943f,
+0.453613f, -0.503906f, 0.456543f, -0.513672f, 0.459473f, -0.523438f, 0.461426f, -0.52832f,
+0.593262f, -0.52832f, 0.59082f, -0.52002f, 0.583252f, -0.485352f, 0.575684f, -0.450684f,
+0.563477f, -0.388184f, 0.448242f, 0.20752f, 0.311035f, 0.20752f, 0.352539f, -0.00341797f,
+0.355957f, -0.0195312f, 0.360352f, -0.0385742f, 0.364746f, -0.0576172f, 0.370117f,
+-0.0795898f, 0.368164f, -0.0795898f, 0.350586f, -0.0566406f, 0.332031f, -0.0397949f,
+0.313477f, -0.0229492f, 0.292236f, -0.0117188f, 0.270996f, -0.000488281f, 0.246338f,
+0.00488281f, 0.22168f, 0.0102539f, 0.192383f, 0.0102539f, 0.152832f, 0.0102539f,
+0.122559f, -0.00317383f, 0.0922852f, -0.0166016f, 0.0712891f, -0.0402832f, 0.050293f,
+-0.0639648f, 0.0395508f, -0.097168f, 0.0288086f, -0.130371f, 0.0288086f, -0.169922f,
+0.0288086f, -0.191895f, 0.0310059f, -0.218506f, 0.0332031f, -0.245117f, 0.0390625f,
+-0.275879f, 0.0527344f, -0.345703f, 0.0766602f, -0.395508f, 0.100586f, -0.445312f,
+0.132324f, -0.477051f, 0.164062f, -0.508789f, 0.202393f, -0.523438f, 0.240723f, -0.538086f,
+0.283203f, -0.538086f, 0.31543f, -0.538086f, 0.3396f, -0.532715f, 0.36377f, -0.527344f,
+0.381836f, -0.515625f, 0.399902f, -0.503906f, 0.413086f, -0.485352f, 0.42627f, -0.466797f,
+0.436035f, -0.440918f, 0.25293f, -0.0839844f, 0.278809f, -0.0839844f, 0.302002f,
+-0.092041f, 0.325195f, -0.100098f, 0.344727f, -0.119873f, 0.364258f, -0.139648f,
+0.379395f, -0.173096f, 0.394531f, -0.206543f, 0.403809f, -0.257324f, 0.407715f, -0.278809f,
+0.409668f, -0.297363f, 0.411621f, -0.315918f, 0.411621f, -0.332031f, 0.411621f, -0.386719f,
+0.391357f, -0.415527f, 0.371094f, -0.444336f, 0.32666f, -0.444336f, 0.300781f, -0.444336f,
+0.278564f, -0.436768f, 0.256348f, -0.429199f, 0.238037f, -0.410156f, 0.219727f, -0.391113f,
+0.205811f, -0.358643f, 0.191895f, -0.326172f, 0.182617f, -0.275879f, 0.177734f, -0.250488f,
+0.175781f, -0.22876f, 0.173828f, -0.207031f, 0.173828f, -0.188477f, 0.173828f, -0.164551f,
+0.178467f, -0.145264f, 0.183105f, -0.125977f, 0.192627f, -0.112305f, 0.202148f, -0.0986328f,
+0.217041f, -0.0913086f, 0.231934f, -0.0839844f, 0.25293f, -0.0839844f, 0.412109f,
+-0.416504f, 0.400879f, -0.418945f, 0.388184f, -0.421387f, 0.375488f, -0.423828f,
+0.356445f, -0.423828f, 0.296387f, -0.423828f, 0.258545f, -0.381348f, 0.220703f, -0.338867f,
+0.203613f, -0.250977f, 0.154297f, 0, 0.0170898f, 0, 0.0957031f, -0.405273f, 0.0991211f,
+-0.422363f, 0.102051f, -0.439453f, 0.10498f, -0.456543f, 0.107666f, -0.472656f, 0.110352f,
+-0.48877f, 0.112549f, -0.503174f, 0.114746f, -0.517578f, 0.116211f, -0.52832f, 0.24707f,
+-0.52832f, 0.245605f, -0.517578f, 0.243896f, -0.50293f, 0.242188f, -0.488281f, 0.240234f,
+-0.473145f, 0.238281f, -0.458008f, 0.236084f, -0.444092f, 0.233887f, -0.430176f,
+0.232422f, -0.42041f, 0.234375f, -0.42041f, 0.250977f, -0.450684f, 0.267334f, -0.4729f,
+0.283691f, -0.495117f, 0.301514f, -0.509521f, 0.319336f, -0.523926f, 0.3396f, -0.531006f,
+0.359863f, -0.538086f, 0.384277f, -0.538086f, 0.390137f, -0.538086f, 0.397217f, -0.537354f,
+0.404297f, -0.536621f, 0.411377f, -0.535645f, 0.418457f, -0.534668f, 0.424561f, -0.533447f,
+0.430664f, -0.532227f, 0.43457f, -0.53125f, 0.488281f, -0.163086f, 0.488281f, -0.119629f,
+0.471924f, -0.0871582f, 0.455566f, -0.0546875f, 0.424072f, -0.0332031f, 0.392578f,
+-0.0117188f, 0.346924f, -0.000976562f, 0.30127f, 0.00976562f, 0.242676f, 0.00976562f,
+0.144531f, 0.00976562f, 0.0878906f, -0.0249023f, 0.03125f, -0.0595703f, 0.0112305f,
+-0.132324f, 0.133789f, -0.149902f, 0.138672f, -0.132324f, 0.147461f, -0.119385f,
+0.15625f, -0.106445f, 0.17041f, -0.0979004f, 0.18457f, -0.0893555f, 0.204834f, -0.0852051f,
+0.225098f, -0.0810547f, 0.252441f, -0.0810547f, 0.276367f, -0.0810547f, 0.296143f,
+-0.0847168f, 0.315918f, -0.0883789f, 0.330322f, -0.0964355f, 0.344727f, -0.104492f,
+0.352783f, -0.117188f, 0.36084f, -0.129883f, 0.36084f, -0.147461f, 0.36084f, -0.163086f,
+0.354248f, -0.173096f, 0.347656f, -0.183105f, 0.334229f, -0.190186f, 0.320801f, -0.197266f,
+0.300049f, -0.202881f, 0.279297f, -0.208496f, 0.251465f, -0.214355f, 0.212891f, -0.223145f,
+0.18042f, -0.235352f, 0.147949f, -0.247559f, 0.124512f, -0.266357f, 0.101074f, -0.285156f,
+0.0878906f, -0.311768f, 0.074707f, -0.338379f, 0.074707f, -0.375488f, 0.074707f,
+-0.419434f, 0.0930176f, -0.449951f, 0.111328f, -0.480469f, 0.143311f, -0.499756f,
+0.175293f, -0.519043f, 0.218262f, -0.527832f, 0.26123f, -0.536621f, 0.311035f, -0.536621f,
+0.356445f, -0.536621f, 0.392822f, -0.529541f, 0.429199f, -0.522461f, 0.455566f, -0.505859f,
+0.481934f, -0.489258f, 0.498779f, -0.462402f, 0.515625f, -0.435547f, 0.521973f, -0.395996f,
+0.399414f, -0.381836f, 0.391113f, -0.415527f, 0.367188f, -0.430664f, 0.343262f, -0.445801f,
+0.301758f, -0.445801f, 0.280762f, -0.445801f, 0.262451f, -0.443115f, 0.244141f, -0.44043f,
+0.230713f, -0.433594f, 0.217285f, -0.426758f, 0.209473f, -0.415527f, 0.20166f, -0.404297f,
+0.20166f, -0.387207f, 0.20166f, -0.371582f, 0.210938f, -0.361084f, 0.220215f, -0.350586f,
+0.236816f, -0.343018f, 0.253418f, -0.335449f, 0.276367f, -0.329834f, 0.299316f, -0.324219f,
+0.326172f, -0.317871f, 0.360352f, -0.310059f, 0.389893f, -0.298828f, 0.419434f, -0.287598f,
+0.441406f, -0.269775f, 0.463379f, -0.251953f, 0.47583f, -0.226074f, 0.488281f, -0.200195f,
+0.488281f, -0.163086f, 0.273438f, -0.00390625f, 0.255371f, 0.00146484f, 0.232422f,
+0.00463867f, 0.209473f, 0.0078125f, 0.183594f, 0.0078125f, 0.154785f, 0.0078125f,
+0.131348f, 0.000976562f, 0.10791f, -0.00585938f, 0.0913086f, -0.0195312f, 0.074707f,
+-0.0332031f, 0.0656738f, -0.0539551f, 0.0566406f, -0.074707f, 0.0566406f, -0.102051f,
+0.0566406f, -0.124023f, 0.0593262f, -0.144775f, 0.0620117f, -0.165527f, 0.0644531f,
+-0.178711f, 0.114258f, -0.435547f, 0.0419922f, -0.435547f, 0.0600586f, -0.52832f,
+0.13916f, -0.52832f, 0.206055f, -0.652344f, 0.291992f, -0.652344f, 0.268555f, -0.52832f,
+0.367188f, -0.52832f, 0.350098f, -0.435547f, 0.25f, -0.435547f, 0.199219f, -0.174316f,
+0.197266f, -0.164551f, 0.195312f, -0.150635f, 0.193359f, -0.136719f, 0.193848f, -0.126953f,
+0.194824f, -0.106445f, 0.206299f, -0.0964355f, 0.217773f, -0.0864258f, 0.236328f,
+-0.0864258f, 0.248047f, -0.0864258f, 0.26001f, -0.0881348f, 0.271973f, -0.0898438f,
+0.289062f, -0.0927734f, 0.25f, -0.52832f, 0.192383f, -0.237793f, 0.19043f, -0.228516f,
+0.188232f, -0.217285f, 0.186035f, -0.206055f, 0.184082f, -0.194824f, 0.182129f, -0.183594f,
+0.180908f, -0.173828f, 0.179688f, -0.164062f, 0.179688f, -0.157227f, 0.179688f, -0.126465f,
+0.198242f, -0.110352f, 0.216797f, -0.0942383f, 0.253906f, -0.0942383f, 0.276855f,
+-0.0942383f, 0.300049f, -0.104004f, 0.323242f, -0.11377f, 0.343018f, -0.131836f,
+0.362793f, -0.149902f, 0.377441f, -0.175537f, 0.39209f, -0.201172f, 0.397949f, -0.232422f,
+0.455566f, -0.52832f, 0.593262f, -0.52832f, 0.512207f, -0.112793f, 0.508789f, -0.0961914f,
+0.505615f, -0.0778809f, 0.502441f, -0.0595703f, 0.5f, -0.0432129f, 0.497559f, -0.0268555f,
+0.49585f, -0.0151367f, 0.494141f, -0.00341797f, 0.493652f, 0, 0.362793f, 0, 0.362793f,
+-0.00244141f, 0.364014f, -0.0131836f, 0.365234f, -0.0239258f, 0.366943f, -0.0378418f,
+0.368652f, -0.0517578f, 0.370605f, -0.0661621f, 0.372559f, -0.0805664f, 0.374512f,
+-0.090332f, 0.373047f, -0.090332f, 0.358398f, -0.0698242f, 0.34082f, -0.0517578f,
+0.323242f, -0.0336914f, 0.30127f, -0.0200195f, 0.279297f, -0.00634766f, 0.251953f,
+0.00146484f, 0.224609f, 0.00927734f, 0.190918f, 0.00927734f, 0.116699f, 0.00927734f,
+0.0791016f, -0.0263672f, 0.0415039f, -0.0620117f, 0.0415039f, -0.129395f, 0.0415039f,
+-0.138184f, 0.0427246f, -0.149414f, 0.0439453f, -0.160645f, 0.0454102f, -0.171631f,
+0.046875f, -0.182617f, 0.048584f, -0.192871f, 0.050293f, -0.203125f, 0.0517578f,
+-0.209473f, 0.11377f, -0.52832f, 0.303711f, 0, 0.139648f, 0, 0.0537109f, -0.52832f,
+0.194824f, -0.52832f, 0.229492f, -0.23291f, 0.231445f, -0.218262f, 0.23291f, -0.200684f,
+0.234375f, -0.183105f, 0.23584f, -0.165527f, 0.237305f, -0.147949f, 0.238525f, -0.131348f,
+0.239746f, -0.114746f, 0.240234f, -0.101562f, 0.245605f, -0.114258f, 0.252686f, -0.130859f,
+0.259766f, -0.147461f, 0.267822f, -0.165039f, 0.275879f, -0.182617f, 0.28418f, -0.199707f,
+0.29248f, -0.216797f, 0.299805f, -0.231445f, 0.454102f, -0.52832f, 0.601562f, -0.52832f,
+0.589355f, 0, 0.444336f, 0, 0.42334f, -0.322266f, 0.422363f, -0.337402f, 0.422119f,
+-0.356934f, 0.421875f, -0.376465f, 0.421387f, -0.393555f, 0.420898f, -0.413574f,
+0.420898f, -0.43457f, 0.413086f, -0.413574f, 0.404785f, -0.393555f, 0.397949f, -0.376465f,
+0.389893f, -0.356689f, 0.381836f, -0.336914f, 0.374512f, -0.321289f, 0.227051f, 0,
+0.0820312f, 0, 0.0483398f, -0.52832f, 0.174316f, -0.52832f, 0.180664f, -0.217773f,
+0.181152f, -0.20459f, 0.181152f, -0.188232f, 0.181152f, -0.171875f, 0.181152f, -0.157715f,
+0.181152f, -0.124512f, 0.1875f, -0.141113f, 0.194336f, -0.157715f, 0.200195f, -0.171875f,
+0.206787f, -0.188232f, 0.213379f, -0.20459f, 0.219727f, -0.217773f, 0.363281f, -0.52832f,
+0.510254f, -0.52832f, 0.530762f, -0.217773f, 0.531738f, -0.205078f, 0.531982f, -0.188965f,
+0.532227f, -0.172852f, 0.532715f, -0.158691f, 0.533203f, -0.14209f, 0.533203f, -0.124512f,
+0.540039f, -0.14209f, 0.546875f, -0.158691f, 0.552734f, -0.172852f, 0.559082f, -0.188965f,
+0.56543f, -0.205078f, 0.570801f, -0.217773f, 0.701172f, -0.52832f, 0.831055f, -0.52832f,
+0.353516f, 0, 0.262695f, -0.187012f, 0.103027f, 0, -0.0439453f, 0, 0.204102f, -0.274414f,
+0.0678711f, -0.52832f, 0.210449f, -0.52832f, 0.294922f, -0.358887f, 0.439453f, -0.52832f,
+0.589844f, -0.52832f, 0.354004f, -0.271973f, 0.497559f, 0, 0.27832f, 0.027832f, 0.250977f,
+0.0703125f, 0.226318f, 0.103516f, 0.20166f, 0.136719f, 0.174561f, 0.159912f, 0.147461f,
+0.183105f, 0.115723f, 0.195312f, 0.0839844f, 0.20752f, 0.0429688f, 0.20752f, 0.0175781f,
+0.20752f, -0.00268555f, 0.205322f, -0.0229492f, 0.203125f, -0.0415039f, 0.19873f,
+-0.0229492f, 0.103027f, -0.0141602f, 0.10498f, -0.00219727f, 0.106201f, 0.00976562f,
+0.107422f, 0.0195312f, 0.107422f, 0.0380859f, 0.107422f, 0.0539551f, 0.102539f, 0.0698242f,
+0.0976562f, 0.0849609f, 0.0864258f, 0.100098f, 0.0751953f, 0.114746f, 0.0568848f,
+0.129395f, 0.0385742f, 0.144531f, 0.0117188f, 0.158203f, -0.0117188f, 0.0546875f,
+-0.52832f, 0.196777f, -0.52832f, 0.231445f, -0.285645f, 0.232422f, -0.280273f, 0.234131f,
+-0.267578f, 0.23584f, -0.254883f, 0.237549f, -0.238525f, 0.239258f, -0.222168f, 0.241211f,
+-0.204102f, 0.243164f, -0.186035f, 0.244629f, -0.169678f, 0.246094f, -0.15332f, 0.247314f,
+-0.140625f, 0.248535f, -0.12793f, 0.248535f, -0.122559f, 0.250977f, -0.12793f, 0.256592f,
+-0.140381f, 0.262207f, -0.152832f, 0.269775f, -0.168701f, 0.277344f, -0.18457f, 0.285645f,
+-0.202148f, 0.293945f, -0.219727f, 0.301514f, -0.23584f, 0.309082f, -0.251953f, 0.31543f,
+-0.264893f, 0.321777f, -0.277832f, 0.324707f, -0.283691f, 0.451172f, -0.52832f, 0.597656f,
+-0.52832f, -0.0170898f, 0, 0.00146484f, -0.097168f, 0.320312f, -0.429199f, 0.0859375f,
+-0.429199f, 0.105469f, -0.52832f, 0.500488f, -0.52832f, 0.481445f, -0.430176f, 0.164062f,
+-0.100098f, 0.440918f, -0.100098f, 0.421387f, 0, 0.189453f, 0.20752f, 0.160645f,
+0.20752f, 0.137451f, 0.199951f, 0.114258f, 0.192383f, 0.0981445f, 0.178223f, 0.0820312f,
+0.164062f, 0.0732422f, 0.143799f, 0.0644531f, 0.123535f, 0.0644531f, 0.0986328f,
+0.0644531f, 0.090332f, 0.065918f, 0.0761719f, 0.0673828f, 0.0620117f, 0.0698242f,
+0.0493164f, 0.0996094f, -0.101074f, 0.103027f, -0.118164f, 0.103027f, -0.134277f,
+0.103027f, -0.154785f, 0.0964355f, -0.169434f, 0.0898438f, -0.184082f, 0.0776367f,
+-0.193115f, 0.0654297f, -0.202148f, 0.0480957f, -0.206543f, 0.0307617f, -0.210938f,
+0.00927734f, -0.211426f, 0.027832f, -0.305176f, 0.0537109f, -0.305664f, 0.0756836f,
+-0.311768f, 0.0976562f, -0.317871f, 0.114746f, -0.331055f, 0.131836f, -0.344238f,
+0.143799f, -0.36499f, 0.155762f, -0.385742f, 0.161621f, -0.416016f, 0.194336f, -0.581055f,
+0.208496f, -0.652344f, 0.249268f, -0.688477f, 0.290039f, -0.724609f, 0.365234f, -0.724609f,
+0.459961f, -0.724609f, 0.441895f, -0.631836f, 0.404785f, -0.631836f, 0.382812f, -0.631836f,
+0.367432f, -0.625488f, 0.352051f, -0.619141f, 0.341553f, -0.606689f, 0.331055f, -0.594238f,
+0.323975f, -0.575439f, 0.316895f, -0.556641f, 0.312012f, -0.531738f, 0.282715f, -0.380371f,
+0.277832f, -0.355957f, 0.265869f, -0.335693f, 0.253906f, -0.31543f, 0.237061f, -0.300049f,
+0.220215f, -0.284668f, 0.199707f, -0.274414f, 0.179199f, -0.26416f, 0.157715f, -0.259766f,
+0.157227f, -0.257812f, 0.174805f, -0.253418f, 0.189209f, -0.245117f, 0.203613f, -0.236816f,
+0.214355f, -0.224854f, 0.225098f, -0.212891f, 0.230957f, -0.197266f, 0.236816f, -0.181641f,
+0.236816f, -0.162598f, 0.236816f, -0.15625f, 0.236328f, -0.150146f, 0.23584f, -0.144043f,
+0.234375f, -0.137207f, 0.202637f, 0.0258789f, 0.201172f, 0.0327148f, 0.199707f, 0.0437012f,
+0.198242f, 0.0546875f, 0.198242f, 0.0629883f, 0.198242f, 0.0888672f, 0.214355f, 0.101562f,
+0.230469f, 0.114258f, 0.257812f, 0.114258f, 0.296875f, 0.114258f, 0.278809f, 0.20752f,
+0.0932617f, 0.20752f, 0.0932617f, -0.724609f, 0.221191f, -0.724609f, 0.221191f, 0.20752f,
+0.194824f, -0.725098f, 0.223633f, -0.725098f, 0.246826f, -0.717529f, 0.27002f, -0.709961f,
+0.286133f, -0.695801f, 0.302246f, -0.681641f, 0.311035f, -0.661377f, 0.319824f, -0.641113f,
+0.319824f, -0.616211f, 0.319824f, -0.60791f, 0.318359f, -0.593506f, 0.316895f, -0.579102f,
+0.314453f, -0.566895f, 0.284668f, -0.416504f, 0.282715f, -0.407227f, 0.281982f, -0.398926f,
+0.28125f, -0.390625f, 0.28125f, -0.383301f, 0.28125f, -0.362305f, 0.287842f, -0.3479f,
+0.294434f, -0.333496f, 0.306641f, -0.324219f, 0.318848f, -0.314941f, 0.336182f, -0.310791f,
+0.353516f, -0.306641f, 0.375f, -0.306152f, 0.356445f, -0.212402f, 0.330566f, -0.211914f,
+0.308594f, -0.205811f, 0.286621f, -0.199707f, 0.269531f, -0.186523f, 0.252441f, -0.17334f,
+0.240479f, -0.152344f, 0.228516f, -0.131348f, 0.222656f, -0.101074f, 0.189941f, 0.0634766f,
+0.182617f, 0.0996094f, 0.169189f, 0.126465f, 0.155762f, 0.15332f, 0.13501f, 0.171387f,
+0.114258f, 0.189453f, 0.0854492f, 0.198486f, 0.0566406f, 0.20752f, 0.019043f, 0.20752f,
+-0.0756836f, 0.20752f, -0.0576172f, 0.114746f, -0.0205078f, 0.114746f, 0.00146484f,
+0.114746f, 0.0168457f, 0.108398f, 0.0322266f, 0.102051f, 0.0427246f, 0.0895996f,
+0.0532227f, 0.0771484f, 0.0603027f, 0.0583496f, 0.0673828f, 0.0395508f, 0.0722656f,
+0.0146484f, 0.101562f, -0.136719f, 0.106445f, -0.161133f, 0.118408f, -0.181641f,
+0.130371f, -0.202148f, 0.147217f, -0.217529f, 0.164062f, -0.23291f, 0.18457f, -0.243164f,
+0.205078f, -0.253418f, 0.226562f, -0.257812f, 0.227051f, -0.259277f, 0.209473f, -0.263672f,
+0.195068f, -0.271973f, 0.180664f, -0.280273f, 0.169922f, -0.29248f, 0.15918f, -0.304688f,
+0.15332f, -0.320312f, 0.147461f, -0.335938f, 0.147461f, -0.35498f, 0.147461f, -0.36084f,
+0.147949f, -0.367188f, 0.148438f, -0.373535f, 0.149902f, -0.380371f, 0.181641f, -0.542969f,
+0.183105f, -0.550293f, 0.18457f, -0.561279f, 0.186035f, -0.572266f, 0.186035f, -0.580566f,
+0.186035f, -0.606445f, 0.169922f, -0.619141f, 0.153809f, -0.631836f, 0.126465f, -0.631836f,
+0.0874023f, -0.631836f, 0.105469f, -0.725098f, 0.434082f, -0.251953f, 0.397461f,
+-0.251953f, 0.362061f, -0.262207f, 0.32666f, -0.272461f, 0.290039f, -0.285156f, 0.257812f,
+-0.296387f, 0.231201f, -0.302246f, 0.20459f, -0.308105f, 0.182129f, -0.308105f, 0.163086f,
+-0.308105f, 0.146729f, -0.305176f, 0.130371f, -0.302246f, 0.115479f, -0.296631f,
+0.100586f, -0.291016f, 0.0864258f, -0.283203f, 0.0722656f, -0.275391f, 0.0576172f,
+-0.265137f, 0.0576172f, -0.369141f, 0.0825195f, -0.387695f, 0.115723f, -0.398926f,
+0.148926f, -0.410156f, 0.189941f, -0.410156f, 0.229004f, -0.410156f, 0.266357f, -0.399414f,
+0.303711f, -0.388672f, 0.339844f, -0.375977f, 0.366211f, -0.366699f, 0.393066f, -0.359863f,
+0.419922f, -0.353027f, 0.443359f, -0.353027f, 0.476562f, -0.353027f, 0.507812f, -0.365234f,
+0.539062f, -0.377441f, 0.564453f, -0.397949f, 0.564453f, -0.291016f, 0.548828f, -0.280273f,
+0.533936f, -0.272705f, 0.519043f, -0.265137f, 0.503662f, -0.260498f, 0.488281f, -0.255859f,
+0.471191f, -0.253906f, 0.454102f, -0.251953f, 0.434082f, -0.251953f
+};
+
+const unsigned char LiberationSansBoldItalicVerbs[] = {
+6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 1, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5,
+0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 1, 2, 2, 2, 2,
+2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6,
+0, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 1, 2, 2, 2, 2,
+2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6,
+0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSansBoldItalicCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationSansBoldItalicWidths[] = {
+0x0000c000, 0x00004720, 0x00005540, 0x00007960, 0x00008e60, 0x00008e60, 0x0000e3a0,
+0x0000b8e0, 0x00003ce0, 0x00005540, 0x00005540, 0x000063a0, 0x00009580, 0x00004720,
+0x00005540, 0x00004720, 0x00004720, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60,
+0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00005540,
+0x00005540, 0x00009580, 0x00009580, 0x00009580, 0x00009c60, 0x0000f9a0, 0x0000b8e0,
+0x0000b8e0, 0x0000b8e0, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000c720, 0x0000b8e0,
+0x00004720, 0x00008e60, 0x0000b8e0, 0x00009c60, 0x0000d540, 0x0000b8e0, 0x0000c720,
+0x0000aac0, 0x0000c720, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000b8e0, 0x0000aac0,
+0x0000f1a0, 0x0000aac0, 0x0000aac0, 0x00009c60, 0x00005540, 0x00004720, 0x00005540,
+0x00009580, 0x00008e60, 0x00005540, 0x00008e60, 0x00009c60, 0x00008e60, 0x00009c60,
+0x00008e60, 0x00005540, 0x00009c60, 0x00009c60, 0x00004720, 0x00004720, 0x00008e60,
+0x00004720, 0x0000e3a0, 0x00009c60, 0x00009c60, 0x00009c60, 0x00009c60, 0x000063a0,
+0x00008e60, 0x00005540, 0x00009c60, 0x00008e60, 0x0000c720, 0x00008e60, 0x00008e60,
+0x00008000, 0x000063a0, 0x000047a0, 0x000063a0, 0x00009580
+};
+
+const int LiberationSansBoldItalicCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSansBoldItalicCharCodes);
+
+const SkPaint::FontMetrics LiberationSansBoldItalicMetrics = {
+0x30307833, -1.02979f, -0.905273f, 0.211914f, 0.303223f, 0.0327148f, 1.3374f, 0.0208969f,
+-0.208984f, 1.12842f, 0.537598f, 0.0109024f, 0.10498f, 0.105957f
+};
--- /dev/null
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+// Auto-generated by create_test_font.cpp
+
+const SkScalar LiberationSerifNormalPoints[] = {
+0.225098f, -0.0449219f, 0.225098f, -0.0327148f, 0.220459f, -0.0219727f, 0.21582f,
+-0.0112305f, 0.208008f, -0.00317383f, 0.200195f, 0.00488281f, 0.189209f, 0.00952148f,
+0.178223f, 0.0141602f, 0.166016f, 0.0141602f, 0.15332f, 0.0141602f, 0.142578f, 0.00952148f,
+0.131836f, 0.00488281f, 0.124023f, -0.00317383f, 0.116211f, -0.0112305f, 0.111572f,
+-0.0219727f, 0.106934f, -0.0327148f, 0.106934f, -0.0449219f, 0.106934f, -0.0571289f,
+0.111572f, -0.0681152f, 0.116211f, -0.0791016f, 0.124023f, -0.0869141f, 0.131836f,
+-0.0947266f, 0.142578f, -0.0993652f, 0.15332f, -0.104004f, 0.166016f, -0.104004f,
+0.178223f, -0.104004f, 0.189209f, -0.0993652f, 0.200195f, -0.0947266f, 0.208008f,
+-0.0869141f, 0.21582f, -0.0791016f, 0.220459f, -0.0681152f, 0.225098f, -0.0571289f,
+0.225098f, -0.0449219f, 0.112793f, -0.654785f, 0.219238f, -0.654785f, 0.188965f,
+-0.189941f, 0.143066f, -0.189941f, 0.25f, -0.654785f, 0.346191f, -0.654785f, 0.315918f,
+-0.419922f, 0.279785f, -0.419922f, 0.0620117f, -0.654785f, 0.158203f, -0.654785f,
+0.12793f, -0.419922f, 0.0917969f, -0.419922f, 0.481934f, -0.255859f, 0.481934f, -0.206055f,
+0.35498f, -0.206055f, 0.316895f, 0, 0.266113f, 0, 0.304199f, -0.206055f, 0.152832f,
+-0.206055f, 0.115234f, 0, 0.0639648f, 0, 0.102051f, -0.206055f, 0.0180664f, -0.206055f,
+0.0180664f, -0.255859f, 0.111816f, -0.255859f, 0.140137f, -0.405762f, 0.0180664f,
+-0.405762f, 0.0180664f, -0.456055f, 0.148926f, -0.456055f, 0.186035f, -0.654785f,
+0.236816f, -0.654785f, 0.200195f, -0.456055f, 0.351074f, -0.456055f, 0.388184f, -0.654785f,
+0.438965f, -0.654785f, 0.401855f, -0.456055f, 0.481934f, -0.456055f, 0.481934f, -0.405762f,
+0.393066f, -0.405762f, 0.365234f, -0.255859f, 0.163086f, -0.255859f, 0.313965f, -0.255859f,
+0.341797f, -0.405762f, 0.190918f, -0.405762f, 0.234863f, 0.00976562f, 0.20752f, 0.00927734f,
+0.179443f, 0.00610352f, 0.151367f, 0.00292969f, 0.125732f, -0.00195312f, 0.100098f,
+-0.00683594f, 0.0786133f, -0.0126953f, 0.0571289f, -0.0185547f, 0.0429688f, -0.0249023f,
+0.0429688f, -0.181152f, 0.0751953f, -0.181152f, 0.0917969f, -0.0878906f, 0.100098f,
+-0.0766602f, 0.116211f, -0.0666504f, 0.132324f, -0.0566406f, 0.1521f, -0.048584f,
+0.171875f, -0.0405273f, 0.193604f, -0.0356445f, 0.215332f, -0.0307617f, 0.234863f,
+-0.0297852f, 0.234863f, -0.306152f, 0.212402f, -0.313965f, 0.19043f, -0.322021f,
+0.168457f, -0.330078f, 0.147949f, -0.340576f, 0.127441f, -0.351074f, 0.109863f, -0.364502f,
+0.0922852f, -0.37793f, 0.0793457f, -0.396484f, 0.0664062f, -0.415039f, 0.059082f,
+-0.439209f, 0.0517578f, -0.463379f, 0.0517578f, -0.495117f, 0.0517578f, -0.530762f,
+0.0649414f, -0.559814f, 0.078125f, -0.588867f, 0.102051f, -0.610107f, 0.125977f,
+-0.631348f, 0.159912f, -0.644531f, 0.193848f, -0.657715f, 0.234863f, -0.661133f,
+0.234863f, -0.724121f, 0.274902f, -0.724121f, 0.274902f, -0.662109f, 0.314453f, -0.660645f,
+0.354492f, -0.654541f, 0.394531f, -0.648438f, 0.424805f, -0.641113f, 0.424805f, -0.504883f,
+0.393066f, -0.504883f, 0.378906f, -0.584961f, 0.371094f, -0.592285f, 0.359375f, -0.598389f,
+0.347656f, -0.604492f, 0.333984f, -0.609131f, 0.320312f, -0.61377f, 0.305176f, -0.616943f,
+0.290039f, -0.620117f, 0.274902f, -0.621094f, 0.274902f, -0.388184f, 0.297852f, -0.379883f,
+0.321045f, -0.371338f, 0.344238f, -0.362793f, 0.365967f, -0.351807f, 0.387695f, -0.34082f,
+0.406494f, -0.32666f, 0.425293f, -0.3125f, 0.439209f, -0.292969f, 0.453125f, -0.273438f,
+0.461182f, -0.248047f, 0.469238f, -0.222656f, 0.469238f, -0.188965f, 0.469238f, -0.146973f,
+0.456055f, -0.112305f, 0.442871f, -0.0776367f, 0.417969f, -0.0522461f, 0.393066f,
+-0.0268555f, 0.356934f, -0.0112305f, 0.320801f, 0.00439453f, 0.274902f, 0.0078125f,
+0.274902f, 0.0761719f, 0.234863f, 0.0761719f, 0.38623f, -0.161133f, 0.38623f, -0.190918f,
+0.377441f, -0.211426f, 0.368652f, -0.231934f, 0.353516f, -0.246582f, 0.338379f, -0.26123f,
+0.318115f, -0.271729f, 0.297852f, -0.282227f, 0.274902f, -0.291016f, 0.274902f, -0.0322266f,
+0.328613f, -0.0405273f, 0.357422f, -0.0727539f, 0.38623f, -0.10498f, 0.38623f, -0.161133f,
+0.133789f, -0.520996f, 0.133789f, -0.494141f, 0.141602f, -0.475586f, 0.149414f, -0.457031f,
+0.163086f, -0.443604f, 0.176758f, -0.430176f, 0.195068f, -0.420898f, 0.213379f, -0.411621f,
+0.234863f, -0.402832f, 0.234863f, -0.619141f, 0.186035f, -0.612793f, 0.159912f, -0.586914f,
+0.133789f, -0.561035f, 0.133789f, -0.520996f, 0.214844f, 0.00976562f, 0.161133f,
+0.00976562f, 0.624023f, -0.665039f, 0.678223f, -0.665039f, 0.352051f, -0.48584f,
+0.352051f, -0.398438f, 0.312744f, -0.351318f, 0.273438f, -0.304199f, 0.190918f, -0.304199f,
+0.112305f, -0.304199f, 0.0732422f, -0.350586f, 0.0341797f, -0.396973f, 0.0341797f,
+-0.48584f, 0.0341797f, -0.572754f, 0.0734863f, -0.618896f, 0.112793f, -0.665039f,
+0.193848f, -0.665039f, 0.271484f, -0.665039f, 0.311768f, -0.620117f, 0.352051f, -0.575195f,
+0.352051f, -0.48584f, 0.275879f, -0.48584f, 0.275879f, -0.52002f, 0.271484f, -0.546631f,
+0.26709f, -0.573242f, 0.257324f, -0.591553f, 0.247559f, -0.609863f, 0.231201f, -0.619385f,
+0.214844f, -0.628906f, 0.190918f, -0.628906f, 0.166992f, -0.628906f, 0.151367f, -0.619385f,
+0.135742f, -0.609863f, 0.126465f, -0.591553f, 0.117188f, -0.573242f, 0.113525f, -0.546631f,
+0.109863f, -0.52002f, 0.109863f, -0.48584f, 0.109863f, -0.451172f, 0.113525f, -0.424072f,
+0.117188f, -0.396973f, 0.126465f, -0.378418f, 0.135742f, -0.359863f, 0.151367f, -0.349854f,
+0.166992f, -0.339844f, 0.190918f, -0.339844f, 0.214844f, -0.339844f, 0.231201f, -0.349854f,
+0.247559f, -0.359863f, 0.257324f, -0.378418f, 0.26709f, -0.396973f, 0.271484f, -0.424072f,
+0.275879f, -0.451172f, 0.275879f, -0.48584f, 0.798828f, -0.168945f, 0.798828f, -0.0810547f,
+0.759766f, -0.0339355f, 0.720703f, 0.0131836f, 0.638184f, 0.0131836f, 0.55957f, 0.0131836f,
+0.520264f, -0.0332031f, 0.480957f, -0.0795898f, 0.480957f, -0.168945f, 0.480957f,
+-0.255859f, 0.520508f, -0.302002f, 0.560059f, -0.348145f, 0.641113f, -0.348145f,
+0.71875f, -0.348145f, 0.758789f, -0.303223f, 0.798828f, -0.258301f, 0.798828f, -0.168945f,
+0.723145f, -0.168945f, 0.723145f, -0.203125f, 0.71875f, -0.229736f, 0.714355f, -0.256348f,
+0.70459f, -0.274658f, 0.694824f, -0.292969f, 0.678467f, -0.30249f, 0.662109f, -0.312012f,
+0.638184f, -0.312012f, 0.614258f, -0.312012f, 0.598633f, -0.30249f, 0.583008f, -0.292969f,
+0.57373f, -0.274658f, 0.564453f, -0.256348f, 0.560791f, -0.229736f, 0.557129f, -0.203125f,
+0.557129f, -0.168945f, 0.557129f, -0.134277f, 0.560791f, -0.107178f, 0.564453f, -0.0800781f,
+0.57373f, -0.0615234f, 0.583008f, -0.0429688f, 0.598633f, -0.032959f, 0.614258f,
+-0.0229492f, 0.638184f, -0.0229492f, 0.662109f, -0.0229492f, 0.678467f, -0.032959f,
+0.694824f, -0.0429688f, 0.70459f, -0.0615234f, 0.714355f, -0.0800781f, 0.71875f,
+-0.107178f, 0.723145f, -0.134277f, 0.723145f, -0.168945f, 0.48291f, -0.528809f, 0.48291f,
+-0.492676f, 0.468994f, -0.467285f, 0.455078f, -0.441895f, 0.432373f, -0.423096f,
+0.409668f, -0.404297f, 0.380371f, -0.390625f, 0.351074f, -0.376953f, 0.320801f, -0.365234f,
+0.526855f, -0.177734f, 0.549316f, -0.223633f, 0.5625f, -0.268799f, 0.575684f, -0.313965f,
+0.577148f, -0.35498f, 0.507812f, -0.368164f, 0.507812f, -0.394043f, 0.730957f, -0.394043f,
+0.730957f, -0.368164f, 0.663086f, -0.35498f, 0.657227f, -0.334473f, 0.648682f, -0.309326f,
+0.640137f, -0.28418f, 0.628662f, -0.256104f, 0.617188f, -0.228027f, 0.602295f, -0.198242f,
+0.587402f, -0.168457f, 0.567871f, -0.139648f, 0.679199f, -0.0380859f, 0.759766f,
+-0.0258789f, 0.759766f, 0, 0.591797f, 0, 0.508301f, -0.0756836f, 0.489258f, -0.0585938f,
+0.466553f, -0.0429688f, 0.443848f, -0.0273438f, 0.416016f, -0.015625f, 0.388184f,
+-0.00390625f, 0.354736f, 0.00292969f, 0.321289f, 0.00976562f, 0.280762f, 0.00976562f,
+0.159668f, 0.00976562f, 0.098877f, -0.0373535f, 0.0380859f, -0.0844727f, 0.0380859f,
+-0.173828f, 0.0380859f, -0.219238f, 0.0532227f, -0.250732f, 0.0683594f, -0.282227f,
+0.0917969f, -0.303711f, 0.115234f, -0.325195f, 0.143799f, -0.338867f, 0.172363f,
+-0.352539f, 0.199219f, -0.362793f, 0.185547f, -0.375977f, 0.172363f, -0.392334f,
+0.15918f, -0.408691f, 0.148682f, -0.428467f, 0.138184f, -0.448242f, 0.131836f, -0.47168f,
+0.125488f, -0.495117f, 0.125488f, -0.522461f, 0.125488f, -0.553223f, 0.135498f, -0.579346f,
+0.145508f, -0.605469f, 0.16748f, -0.624512f, 0.189453f, -0.643555f, 0.224121f, -0.654297f,
+0.258789f, -0.665039f, 0.308105f, -0.665039f, 0.355957f, -0.665039f, 0.389404f, -0.654541f,
+0.422852f, -0.644043f, 0.443604f, -0.625732f, 0.464355f, -0.607422f, 0.473633f, -0.58252f,
+0.48291f, -0.557617f, 0.48291f, -0.528809f, 0.293945f, -0.0322266f, 0.325195f, -0.0322266f,
+0.351807f, -0.0380859f, 0.378418f, -0.0439453f, 0.400391f, -0.0541992f, 0.422363f,
+-0.0644531f, 0.440674f, -0.0778809f, 0.458984f, -0.0913086f, 0.474609f, -0.106934f,
+0.230957f, -0.330078f, 0.212891f, -0.322266f, 0.195557f, -0.310791f, 0.178223f, -0.299316f,
+0.164551f, -0.281738f, 0.150879f, -0.26416f, 0.142334f, -0.239258f, 0.133789f, -0.214355f,
+0.133789f, -0.179199f, 0.133789f, -0.14209f, 0.14502f, -0.114502f, 0.15625f, -0.0869141f,
+0.177002f, -0.0686035f, 0.197754f, -0.050293f, 0.227295f, -0.0412598f, 0.256836f,
+-0.0322266f, 0.293945f, -0.0322266f, 0.211914f, -0.532227f, 0.211914f, -0.505859f,
+0.219238f, -0.484619f, 0.226562f, -0.463379f, 0.237549f, -0.446777f, 0.248535f, -0.430176f,
+0.261963f, -0.41748f, 0.275391f, -0.404785f, 0.287109f, -0.395996f, 0.312012f, -0.405273f,
+0.33252f, -0.415771f, 0.353027f, -0.42627f, 0.367188f, -0.441406f, 0.381348f, -0.456543f,
+0.38916f, -0.478271f, 0.396973f, -0.5f, 0.396973f, -0.532227f, 0.396973f, -0.625977f,
+0.308105f, -0.625977f, 0.256836f, -0.625977f, 0.234375f, -0.602539f, 0.211914f, -0.579102f,
+0.211914f, -0.532227f, 0.0419922f, -0.654785f, 0.138184f, -0.654785f, 0.10791f, -0.419922f,
+0.0717773f, -0.419922f, 0.138184f, -0.241211f, 0.138184f, -0.200195f, 0.140137f,
+-0.159424f, 0.14209f, -0.118652f, 0.147705f, -0.079834f, 0.15332f, -0.0410156f, 0.164307f,
+-0.00463867f, 0.175293f, 0.0317383f, 0.193359f, 0.0637207f, 0.211426f, 0.0957031f,
+0.237793f, 0.123291f, 0.26416f, 0.150879f, 0.300781f, 0.171875f, 0.300781f, 0.212891f,
+0.235352f, 0.178223f, 0.187256f, 0.137451f, 0.13916f, 0.0966797f, 0.107178f, 0.0432129f,
+0.0751953f, -0.0102539f, 0.0595703f, -0.0795898f, 0.0439453f, -0.148926f, 0.0439453f,
+-0.241211f, 0.0439453f, -0.333496f, 0.0595703f, -0.402588f, 0.0751953f, -0.47168f,
+0.107178f, -0.524902f, 0.13916f, -0.578125f, 0.187256f, -0.618652f, 0.235352f, -0.65918f,
+0.300781f, -0.693848f, 0.300781f, -0.652832f, 0.245605f, -0.621094f, 0.213379f, -0.575928f,
+0.181152f, -0.530762f, 0.164307f, -0.476807f, 0.147461f, -0.422852f, 0.142822f, -0.362793f,
+0.138184f, -0.302734f, 0.138184f, -0.241211f, 0.0322266f, 0.212891f, 0.0322266f,
+0.171875f, 0.0688477f, 0.150879f, 0.0952148f, 0.123291f, 0.121582f, 0.0957031f, 0.139648f,
+0.0637207f, 0.157715f, 0.0317383f, 0.168701f, -0.00463867f, 0.179688f, -0.0410156f,
+0.185303f, -0.079834f, 0.190918f, -0.118652f, 0.192871f, -0.159424f, 0.194824f, -0.200195f,
+0.194824f, -0.241211f, 0.194824f, -0.302734f, 0.190186f, -0.362793f, 0.185547f, -0.422852f,
+0.168701f, -0.476807f, 0.151855f, -0.530762f, 0.119629f, -0.575928f, 0.0874023f,
+-0.621094f, 0.0322266f, -0.652832f, 0.0322266f, -0.693848f, 0.097168f, -0.65918f,
+0.145508f, -0.618652f, 0.193848f, -0.578125f, 0.22583f, -0.524902f, 0.257812f, -0.47168f,
+0.273438f, -0.402588f, 0.289062f, -0.333496f, 0.289062f, -0.241211f, 0.289062f, -0.148926f,
+0.273438f, -0.0795898f, 0.257812f, -0.0102539f, 0.22583f, 0.0432129f, 0.193848f,
+0.0966797f, 0.145508f, 0.137451f, 0.097168f, 0.178223f, 0.0322266f, 0.212891f, 0.0488281f,
+-0.52002f, 0.0800781f, -0.589844f, 0.233887f, -0.495117f, 0.212891f, -0.654785f,
+0.289062f, -0.654785f, 0.266113f, -0.495117f, 0.420898f, -0.587891f, 0.452148f, -0.519043f,
+0.290039f, -0.471191f, 0.452148f, -0.423828f, 0.420898f, -0.35498f, 0.266113f, -0.446777f,
+0.289062f, -0.288086f, 0.212891f, -0.288086f, 0.233887f, -0.448242f, 0.0800781f,
+-0.353027f, 0.0488281f, -0.422852f, 0.208984f, -0.471191f, 0.307129f, -0.307129f,
+0.307129f, -0.0991211f, 0.256836f, -0.0991211f, 0.256836f, -0.307129f, 0.0498047f,
+-0.307129f, 0.0498047f, -0.356934f, 0.256836f, -0.356934f, 0.256836f, -0.564941f,
+0.307129f, -0.564941f, 0.307129f, -0.356934f, 0.515137f, -0.356934f, 0.515137f, -0.307129f,
+0.187012f, -0.0239258f, 0.187012f, 0.00488281f, 0.178955f, 0.0319824f, 0.170898f,
+0.059082f, 0.153076f, 0.0820312f, 0.135254f, 0.10498f, 0.106934f, 0.123535f, 0.0786133f,
+0.14209f, 0.0380859f, 0.153809f, 0.0380859f, 0.116211f, 0.0825195f, 0.102051f, 0.103271f,
+0.081543f, 0.124023f, 0.0610352f, 0.124023f, 0.0341797f, 0.124023f, 0.0253906f, 0.119141f,
+0.0192871f, 0.114258f, 0.0131836f, 0.106934f, 0.00854492f, 0.0996094f, 0.00390625f,
+0.0910645f, -0.000488281f, 0.0825195f, -0.00488281f, 0.0751953f, -0.0109863f, 0.0678711f,
+-0.0170898f, 0.0629883f, -0.026123f, 0.0581055f, -0.0351562f, 0.0581055f, -0.0488281f,
+0.0581055f, -0.0751953f, 0.074707f, -0.0891113f, 0.0913086f, -0.103027f, 0.117188f,
+-0.103027f, 0.130859f, -0.103027f, 0.143555f, -0.0979004f, 0.15625f, -0.0927734f,
+0.165771f, -0.0827637f, 0.175293f, -0.0727539f, 0.181152f, -0.0578613f, 0.187012f,
+-0.0429688f, 0.187012f, -0.0239258f, 0.0371094f, -0.198242f, 0.0371094f, -0.272949f,
+0.296875f, -0.272949f, 0.296875f, -0.198242f, 0.184082f, -0.0449219f, 0.184082f,
+-0.0327148f, 0.179443f, -0.0219727f, 0.174805f, -0.0112305f, 0.166992f, -0.00317383f,
+0.15918f, 0.00488281f, 0.148193f, 0.00952148f, 0.137207f, 0.0141602f, 0.125f, 0.0141602f,
+0.112305f, 0.0141602f, 0.101562f, 0.00952148f, 0.0908203f, 0.00488281f, 0.0830078f,
+-0.00317383f, 0.0751953f, -0.0112305f, 0.0705566f, -0.0219727f, 0.065918f, -0.0327148f,
+0.065918f, -0.0449219f, 0.065918f, -0.0571289f, 0.0705566f, -0.0681152f, 0.0751953f,
+-0.0791016f, 0.0830078f, -0.0869141f, 0.0908203f, -0.0947266f, 0.101562f, -0.0993652f,
+0.112305f, -0.104004f, 0.125f, -0.104004f, 0.137207f, -0.104004f, 0.148193f, -0.0993652f,
+0.15918f, -0.0947266f, 0.166992f, -0.0869141f, 0.174805f, -0.0791016f, 0.179443f,
+-0.0681152f, 0.184082f, -0.0571289f, 0.184082f, -0.0449219f, 0.0488281f, 0.00976562f,
+0, 0.00976562f, 0.22998f, -0.65918f, 0.277832f, -0.65918f, 0.461914f, -0.330078f,
+0.461914f, -0.248047f, 0.448975f, -0.18457f, 0.436035f, -0.121094f, 0.409668f, -0.0778809f,
+0.383301f, -0.034668f, 0.342773f, -0.0124512f, 0.302246f, 0.00976562f, 0.24707f,
+0.00976562f, 0.143555f, 0.00976562f, 0.0908203f, -0.0771484f, 0.0380859f, -0.164062f,
+0.0380859f, -0.330078f, 0.0380859f, -0.492676f, 0.0908203f, -0.578857f, 0.143555f,
+-0.665039f, 0.250977f, -0.665039f, 0.354492f, -0.665039f, 0.408203f, -0.579834f,
+0.461914f, -0.494629f, 0.461914f, -0.330078f, 0.37207f, -0.330078f, 0.37207f, -0.400391f,
+0.365967f, -0.455566f, 0.359863f, -0.510742f, 0.345459f, -0.548584f, 0.331055f, -0.586426f,
+0.306885f, -0.606201f, 0.282715f, -0.625977f, 0.24707f, -0.625977f, 0.210938f, -0.625977f,
+0.187744f, -0.606201f, 0.164551f, -0.586426f, 0.151367f, -0.548584f, 0.138184f, -0.510742f,
+0.133057f, -0.455566f, 0.12793f, -0.400391f, 0.12793f, -0.330078f, 0.12793f, -0.259766f,
+0.133057f, -0.203857f, 0.138184f, -0.147949f, 0.151367f, -0.109131f, 0.164551f, -0.0703125f,
+0.187744f, -0.0495605f, 0.210938f, -0.0288086f, 0.24707f, -0.0288086f, 0.282715f,
+-0.0288086f, 0.306885f, -0.0495605f, 0.331055f, -0.0703125f, 0.345459f, -0.109131f,
+0.359863f, -0.147949f, 0.365967f, -0.203857f, 0.37207f, -0.259766f, 0.37207f, -0.330078f,
+0.306152f, -0.0390625f, 0.439941f, -0.0258789f, 0.439941f, 0, 0.0878906f, 0, 0.0878906f,
+-0.0258789f, 0.222168f, -0.0390625f, 0.222168f, -0.573242f, 0.0898438f, -0.525879f,
+0.0898438f, -0.551758f, 0.280762f, -0.660156f, 0.306152f, -0.660156f, 0.444824f,
+0, 0.0439453f, 0, 0.0439453f, -0.0717773f, 0.0932617f, -0.117676f, 0.134521f, -0.154053f,
+0.175781f, -0.19043f, 0.20874f, -0.221924f, 0.241699f, -0.253418f, 0.266357f, -0.282227f,
+0.291016f, -0.311035f, 0.307373f, -0.342285f, 0.32373f, -0.373535f, 0.331787f, -0.409668f,
+0.339844f, -0.445801f, 0.339844f, -0.491211f, 0.339844f, -0.554688f, 0.311035f, -0.587891f,
+0.282227f, -0.621094f, 0.216797f, -0.621094f, 0.202148f, -0.621094f, 0.187744f, -0.618896f,
+0.17334f, -0.616699f, 0.160156f, -0.613037f, 0.146973f, -0.609375f, 0.135498f, -0.604736f,
+0.124023f, -0.600098f, 0.115234f, -0.595215f, 0.0981445f, -0.515137f, 0.065918f,
+-0.515137f, 0.065918f, -0.641113f, 0.103027f, -0.649902f, 0.138916f, -0.656006f,
+0.174805f, -0.662109f, 0.216797f, -0.662109f, 0.324219f, -0.662109f, 0.378174f, -0.617432f,
+0.432129f, -0.572754f, 0.432129f, -0.491211f, 0.432129f, -0.451172f, 0.421631f, -0.416992f,
+0.411133f, -0.382812f, 0.391602f, -0.351318f, 0.37207f, -0.319824f, 0.34375f, -0.289307f,
+0.31543f, -0.258789f, 0.279297f, -0.226074f, 0.243164f, -0.193359f, 0.199951f, -0.156494f,
+0.156738f, -0.119629f, 0.10791f, -0.0751953f, 0.444824f, -0.0751953f, 0.460938f,
+-0.178223f, 0.460938f, -0.133789f, 0.445312f, -0.098877f, 0.429688f, -0.0639648f,
+0.400146f, -0.0397949f, 0.370605f, -0.015625f, 0.327393f, -0.00292969f, 0.28418f,
+0.00976562f, 0.229004f, 0.00976562f, 0.180664f, 0.00976562f, 0.135254f, 0.00390625f,
+0.0898438f, -0.00195312f, 0.0532227f, -0.0112305f, 0.0478516f, -0.148926f, 0.0800781f,
+-0.148926f, 0.102051f, -0.0571289f, 0.11084f, -0.0522461f, 0.125f, -0.0473633f, 0.13916f,
+-0.0424805f, 0.155518f, -0.0388184f, 0.171875f, -0.0351562f, 0.189209f, -0.032959f,
+0.206543f, -0.0307617f, 0.221191f, -0.0307617f, 0.266602f, -0.0307617f, 0.295654f,
+-0.0419922f, 0.324707f, -0.0532227f, 0.341553f, -0.0734863f, 0.358398f, -0.09375f,
+0.364746f, -0.121826f, 0.371094f, -0.149902f, 0.371094f, -0.183105f, 0.371094f, -0.221191f,
+0.360352f, -0.246338f, 0.349609f, -0.271484f, 0.330811f, -0.286865f, 0.312012f, -0.302246f,
+0.286865f, -0.309326f, 0.261719f, -0.316406f, 0.23291f, -0.317871f, 0.163086f, -0.321777f,
+0.163086f, -0.361816f, 0.23291f, -0.366211f, 0.288086f, -0.369141f, 0.314453f, -0.400391f,
+0.34082f, -0.431641f, 0.34082f, -0.495117f, 0.34082f, -0.526855f, 0.334229f, -0.550537f,
+0.327637f, -0.574219f, 0.313477f, -0.589844f, 0.299316f, -0.605469f, 0.276611f, -0.613281f,
+0.253906f, -0.621094f, 0.221191f, -0.621094f, 0.206543f, -0.621094f, 0.19165f, -0.618896f,
+0.176758f, -0.616699f, 0.163086f, -0.613037f, 0.149414f, -0.609375f, 0.137695f, -0.604736f,
+0.125977f, -0.600098f, 0.117188f, -0.595215f, 0.100098f, -0.515137f, 0.0678711f,
+-0.515137f, 0.0678711f, -0.641113f, 0.0849609f, -0.645508f, 0.102051f, -0.649414f,
+0.119141f, -0.65332f, 0.137695f, -0.656006f, 0.15625f, -0.658691f, 0.176758f, -0.6604f,
+0.197266f, -0.662109f, 0.221191f, -0.662109f, 0.324219f, -0.662109f, 0.377686f, -0.622559f,
+0.431152f, -0.583008f, 0.431152f, -0.500977f, 0.431152f, -0.470215f, 0.422852f, -0.443604f,
+0.414551f, -0.416992f, 0.396973f, -0.396484f, 0.379395f, -0.375977f, 0.352295f, -0.362061f,
+0.325195f, -0.348145f, 0.288086f, -0.342773f, 0.376953f, -0.33252f, 0.418945f, -0.291748f,
+0.460938f, -0.250977f, 0.460938f, -0.178223f, 0.395508f, -0.144043f, 0.395508f, 0,
+0.311523f, 0, 0.311523f, -0.144043f, 0.0195312f, -0.144043f, 0.0195312f, -0.208984f,
+0.339355f, -0.658203f, 0.395508f, -0.658203f, 0.395508f, -0.213867f, 0.484375f, -0.213867f,
+0.484375f, -0.144043f, 0.311523f, -0.543457f, 0.309082f, -0.543457f, 0.074707f, -0.213867f,
+0.311523f, -0.213867f, 0.236816f, -0.382812f, 0.291504f, -0.382812f, 0.333496f, -0.371826f,
+0.375488f, -0.36084f, 0.403809f, -0.337891f, 0.432129f, -0.314941f, 0.446533f, -0.279541f,
+0.460938f, -0.244141f, 0.460938f, -0.194824f, 0.460938f, -0.148438f, 0.447021f, -0.11084f,
+0.433105f, -0.0732422f, 0.404297f, -0.0463867f, 0.375488f, -0.0195312f, 0.331787f,
+-0.00488281f, 0.288086f, 0.00976562f, 0.229004f, 0.00976562f, 0.183105f, 0.00976562f,
+0.141846f, 0.00463867f, 0.100586f, -0.000488281f, 0.0634766f, -0.0112305f, 0.0581055f,
+-0.148926f, 0.090332f, -0.148926f, 0.112305f, -0.0571289f, 0.121094f, -0.0522461f,
+0.133545f, -0.0473633f, 0.145996f, -0.0424805f, 0.160645f, -0.0388184f, 0.175293f,
+-0.0351562f, 0.190918f, -0.032959f, 0.206543f, -0.0307617f, 0.221191f, -0.0307617f,
+0.266602f, -0.0307617f, 0.295654f, -0.0422363f, 0.324707f, -0.0537109f, 0.341553f,
+-0.074707f, 0.358398f, -0.0957031f, 0.364746f, -0.125f, 0.371094f, -0.154297f, 0.371094f,
+-0.189941f, 0.371094f, -0.228027f, 0.364502f, -0.256348f, 0.35791f, -0.284668f, 0.340332f,
+-0.303711f, 0.322754f, -0.322754f, 0.292236f, -0.332275f, 0.261719f, -0.341797f,
+0.213867f, -0.341797f, 0.185059f, -0.341797f, 0.163086f, -0.337891f, 0.141113f, -0.333984f,
+0.126953f, -0.330078f, 0.0800781f, -0.330078f, 0.0800781f, -0.654785f, 0.412109f,
+-0.654785f, 0.412109f, -0.580078f, 0.124023f, -0.580078f, 0.124023f, -0.371094f,
+0.132812f, -0.373047f, 0.143799f, -0.375f, 0.154785f, -0.376953f, 0.168213f, -0.378662f,
+0.181641f, -0.380371f, 0.198486f, -0.381592f, 0.215332f, -0.382812f, 0.236816f, -0.382812f,
+0.470215f, -0.203125f, 0.470215f, -0.152344f, 0.457275f, -0.112793f, 0.444336f, -0.0732422f,
+0.418945f, -0.0458984f, 0.393555f, -0.0185547f, 0.356201f, -0.00439453f, 0.318848f,
+0.00976562f, 0.27002f, 0.00976562f, 0.216309f, 0.00976562f, 0.174072f, -0.0112305f,
+0.131836f, -0.0322266f, 0.102783f, -0.0739746f, 0.0737305f, -0.115723f, 0.0583496f,
+-0.177979f, 0.0429688f, -0.240234f, 0.0429688f, -0.323242f, 0.0429688f, -0.412109f,
+0.0632324f, -0.476074f, 0.0834961f, -0.540039f, 0.117432f, -0.581543f, 0.151367f,
+-0.623047f, 0.195801f, -0.642578f, 0.240234f, -0.662109f, 0.288086f, -0.662109f,
+0.324707f, -0.662109f, 0.362305f, -0.657227f, 0.399902f, -0.652344f, 0.430176f, -0.64502f,
+0.430176f, -0.532227f, 0.397949f, -0.532227f, 0.380859f, -0.599121f, 0.37207f, -0.604004f,
+0.360596f, -0.60791f, 0.349121f, -0.611816f, 0.33667f, -0.614746f, 0.324219f, -0.617676f,
+0.311768f, -0.619385f, 0.299316f, -0.621094f, 0.288086f, -0.621094f, 0.253418f, -0.621094f,
+0.22583f, -0.604492f, 0.198242f, -0.587891f, 0.178223f, -0.554199f, 0.158203f, -0.520508f,
+0.146729f, -0.469727f, 0.135254f, -0.418945f, 0.133301f, -0.350098f, 0.168457f, -0.368652f,
+0.210205f, -0.380371f, 0.251953f, -0.39209f, 0.292969f, -0.39209f, 0.333984f, -0.39209f,
+0.366943f, -0.380615f, 0.399902f, -0.369141f, 0.422852f, -0.345703f, 0.445801f, -0.322266f,
+0.458008f, -0.286621f, 0.470215f, -0.250977f, 0.470215f, -0.203125f, 0.268066f, -0.0288086f,
+0.299316f, -0.0288086f, 0.320801f, -0.0390625f, 0.342285f, -0.0493164f, 0.355469f,
+-0.0700684f, 0.368652f, -0.0908203f, 0.374268f, -0.121826f, 0.379883f, -0.152832f,
+0.379883f, -0.193848f, 0.379883f, -0.273926f, 0.354736f, -0.30957f, 0.32959f, -0.345215f,
+0.274902f, -0.345215f, 0.241699f, -0.345215f, 0.205322f, -0.338867f, 0.168945f, -0.33252f,
+0.132812f, -0.320801f, 0.132812f, -0.250488f, 0.140381f, -0.196289f, 0.147949f, -0.14209f,
+0.164551f, -0.104736f, 0.181152f, -0.0673828f, 0.206543f, -0.0480957f, 0.231934f,
+-0.0288086f, 0.268066f, -0.0288086f, 0.0981445f, -0.5f, 0.065918f, -0.5f, 0.065918f,
+-0.654785f, 0.471191f, -0.654785f, 0.471191f, -0.617188f, 0.179199f, 0, 0.116211f,
+0, 0.402832f, -0.580078f, 0.115234f, -0.580078f, 0.441895f, -0.495117f, 0.441895f,
+-0.441406f, 0.415771f, -0.404053f, 0.389648f, -0.366699f, 0.345215f, -0.347168f,
+0.371582f, -0.337402f, 0.393066f, -0.321777f, 0.414551f, -0.306152f, 0.429932f, -0.284912f,
+0.445312f, -0.263672f, 0.453613f, -0.236572f, 0.461914f, -0.209473f, 0.461914f, -0.176758f,
+0.461914f, -0.0839844f, 0.409668f, -0.0371094f, 0.357422f, 0.00976562f, 0.24707f,
+0.00976562f, 0.142578f, 0.00976562f, 0.090332f, -0.036377f, 0.0380859f, -0.0825195f,
+0.0380859f, -0.176758f, 0.0380859f, -0.241699f, 0.0693359f, -0.284424f, 0.100586f,
+-0.327148f, 0.153809f, -0.347168f, 0.111328f, -0.366699f, 0.0847168f, -0.403809f,
+0.0581055f, -0.440918f, 0.0581055f, -0.495117f, 0.0581055f, -0.533691f, 0.0700684f,
+-0.565186f, 0.0820312f, -0.59668f, 0.105957f, -0.618896f, 0.129883f, -0.641113f,
+0.166016f, -0.653076f, 0.202148f, -0.665039f, 0.250977f, -0.665039f, 0.297852f, -0.665039f,
+0.333496f, -0.65332f, 0.369141f, -0.641602f, 0.393311f, -0.619629f, 0.41748f, -0.597656f,
+0.429688f, -0.566162f, 0.441895f, -0.534668f, 0.441895f, -0.495117f, 0.374023f, -0.176758f,
+0.374023f, -0.212402f, 0.367676f, -0.23999f, 0.361328f, -0.267578f, 0.346436f, -0.286621f,
+0.331543f, -0.305664f, 0.307129f, -0.31543f, 0.282715f, -0.325195f, 0.24707f, -0.325195f,
+0.210938f, -0.325195f, 0.1875f, -0.31543f, 0.164062f, -0.305664f, 0.150391f, -0.286621f,
+0.136719f, -0.267578f, 0.131348f, -0.23999f, 0.125977f, -0.212402f, 0.125977f, -0.176758f,
+0.125977f, -0.140625f, 0.131348f, -0.113037f, 0.136719f, -0.0854492f, 0.150391f,
+-0.0668945f, 0.164062f, -0.0483398f, 0.1875f, -0.0385742f, 0.210938f, -0.0288086f,
+0.24707f, -0.0288086f, 0.282715f, -0.0288086f, 0.307129f, -0.0385742f, 0.331543f,
+-0.0483398f, 0.346436f, -0.0668945f, 0.361328f, -0.0854492f, 0.367676f, -0.113037f,
+0.374023f, -0.140625f, 0.374023f, -0.176758f, 0.354004f, -0.495117f, 0.354004f, -0.523926f,
+0.348877f, -0.547852f, 0.34375f, -0.571777f, 0.331543f, -0.589111f, 0.319336f, -0.606445f,
+0.298828f, -0.616211f, 0.27832f, -0.625977f, 0.248047f, -0.625977f, 0.217773f, -0.625977f,
+0.197998f, -0.616211f, 0.178223f, -0.606445f, 0.166748f, -0.589111f, 0.155273f, -0.571777f,
+0.150635f, -0.547852f, 0.145996f, -0.523926f, 0.145996f, -0.495117f, 0.145996f, -0.46582f,
+0.150635f, -0.442383f, 0.155273f, -0.418945f, 0.166748f, -0.402344f, 0.178223f, -0.385742f,
+0.197998f, -0.376953f, 0.217773f, -0.368164f, 0.248047f, -0.368164f, 0.27832f, -0.368164f,
+0.298828f, -0.376953f, 0.319336f, -0.385742f, 0.331543f, -0.402344f, 0.34375f, -0.418945f,
+0.348877f, -0.442383f, 0.354004f, -0.46582f, 0.354004f, -0.495117f, 0.0322266f, -0.455078f,
+0.0322266f, -0.505371f, 0.046875f, -0.544189f, 0.0615234f, -0.583008f, 0.0888672f,
+-0.609131f, 0.116211f, -0.635254f, 0.155273f, -0.648682f, 0.194336f, -0.662109f,
+0.243164f, -0.662109f, 0.298828f, -0.662109f, 0.339355f, -0.642578f, 0.379883f, -0.623047f,
+0.406494f, -0.582275f, 0.433105f, -0.541504f, 0.446045f, -0.478516f, 0.458984f, -0.415527f,
+0.458984f, -0.329102f, 0.458984f, -0.266113f, 0.449463f, -0.216553f, 0.439941f, -0.166992f,
+0.422852f, -0.129395f, 0.405762f, -0.0917969f, 0.38208f, -0.0651855f, 0.358398f,
+-0.0385742f, 0.330078f, -0.0219727f, 0.301758f, -0.00537109f, 0.269775f, 0.00219727f,
+0.237793f, 0.00976562f, 0.204102f, 0.00976562f, 0.161133f, 0.00976562f, 0.126221f,
+0.00561523f, 0.0913086f, 0.00146484f, 0.0581055f, -0.00683594f, 0.0581055f, -0.120117f,
+0.0898438f, -0.120117f, 0.106934f, -0.0498047f, 0.116211f, -0.0454102f, 0.127686f,
+-0.0419922f, 0.13916f, -0.0385742f, 0.151611f, -0.0358887f, 0.164062f, -0.0332031f,
+0.177002f, -0.0319824f, 0.189941f, -0.0307617f, 0.202148f, -0.0307617f, 0.236328f,
+-0.0307617f, 0.265869f, -0.045166f, 0.29541f, -0.0595703f, 0.317383f, -0.0917969f,
+0.339355f, -0.124023f, 0.352783f, -0.175537f, 0.366211f, -0.227051f, 0.368652f, -0.30127f,
+0.336426f, -0.283203f, 0.298828f, -0.271484f, 0.26123f, -0.259766f, 0.217773f, -0.259766f,
+0.176758f, -0.259766f, 0.142578f, -0.272217f, 0.108398f, -0.284668f, 0.0837402f,
+-0.309326f, 0.059082f, -0.333984f, 0.0456543f, -0.370605f, 0.0322266f, -0.407227f,
+0.0322266f, -0.455078f, 0.244141f, -0.623047f, 0.181152f, -0.623047f, 0.151611f,
+-0.579346f, 0.12207f, -0.535645f, 0.12207f, -0.453125f, 0.12207f, -0.413086f, 0.130127f,
+-0.385254f, 0.138184f, -0.357422f, 0.153564f, -0.340088f, 0.168945f, -0.322754f,
+0.191162f, -0.314941f, 0.213379f, -0.307129f, 0.242188f, -0.307129f, 0.274414f, -0.307129f,
+0.306641f, -0.313965f, 0.338867f, -0.320801f, 0.369141f, -0.333008f, 0.369141f, -0.404785f,
+0.362305f, -0.459229f, 0.355469f, -0.513672f, 0.34082f, -0.550049f, 0.326172f, -0.586426f,
+0.302246f, -0.604736f, 0.27832f, -0.623047f, 0.244141f, -0.623047f, 0.196777f, -0.0449219f,
+0.196777f, -0.0327148f, 0.192139f, -0.0219727f, 0.1875f, -0.0112305f, 0.179688f,
+-0.00317383f, 0.171875f, 0.00488281f, 0.161133f, 0.00952148f, 0.150391f, 0.0141602f,
+0.138184f, 0.0141602f, 0.125488f, 0.0141602f, 0.114746f, 0.00952148f, 0.104004f,
+0.00488281f, 0.0961914f, -0.00317383f, 0.0883789f, -0.0112305f, 0.0837402f, -0.0219727f,
+0.0791016f, -0.0327148f, 0.0791016f, -0.0449219f, 0.0791016f, -0.0571289f, 0.0837402f,
+-0.0681152f, 0.0883789f, -0.0791016f, 0.0961914f, -0.0869141f, 0.104004f, -0.0947266f,
+0.114746f, -0.0993652f, 0.125488f, -0.104004f, 0.138184f, -0.104004f, 0.150391f,
+-0.104004f, 0.161133f, -0.0993652f, 0.171875f, -0.0947266f, 0.179688f, -0.0869141f,
+0.1875f, -0.0791016f, 0.192139f, -0.0681152f, 0.196777f, -0.0571289f, 0.196777f,
+-0.0449219f, 0.196777f, -0.410156f, 0.196777f, -0.397461f, 0.192139f, -0.386719f,
+0.1875f, -0.375977f, 0.179688f, -0.368164f, 0.171875f, -0.360352f, 0.161133f, -0.355713f,
+0.150391f, -0.351074f, 0.138184f, -0.351074f, 0.125488f, -0.351074f, 0.114746f, -0.355713f,
+0.104004f, -0.360352f, 0.0961914f, -0.368164f, 0.0883789f, -0.375977f, 0.0837402f,
+-0.386719f, 0.0791016f, -0.397461f, 0.0791016f, -0.410156f, 0.0791016f, -0.422363f,
+0.0837402f, -0.433105f, 0.0883789f, -0.443848f, 0.0961914f, -0.451904f, 0.104004f,
+-0.459961f, 0.114746f, -0.4646f, 0.125488f, -0.469238f, 0.138184f, -0.469238f, 0.150391f,
+-0.469238f, 0.161133f, -0.4646f, 0.171875f, -0.459961f, 0.179688f, -0.451904f, 0.1875f,
+-0.443848f, 0.192139f, -0.433105f, 0.196777f, -0.422363f, 0.196777f, -0.410156f,
+0.196777f, -0.410156f, 0.196777f, -0.397461f, 0.192139f, -0.386719f, 0.1875f, -0.375977f,
+0.179688f, -0.368164f, 0.171875f, -0.360352f, 0.161133f, -0.355713f, 0.150391f, -0.351074f,
+0.138184f, -0.351074f, 0.125488f, -0.351074f, 0.114746f, -0.355713f, 0.104004f, -0.360352f,
+0.0961914f, -0.368164f, 0.0883789f, -0.375977f, 0.0837402f, -0.386719f, 0.0791016f,
+-0.397461f, 0.0791016f, -0.410156f, 0.0791016f, -0.422363f, 0.0837402f, -0.433105f,
+0.0883789f, -0.443848f, 0.0961914f, -0.451904f, 0.104004f, -0.459961f, 0.114746f,
+-0.4646f, 0.125488f, -0.469238f, 0.138184f, -0.469238f, 0.150391f, -0.469238f, 0.161133f,
+-0.4646f, 0.171875f, -0.459961f, 0.179688f, -0.451904f, 0.1875f, -0.443848f, 0.192139f,
+-0.433105f, 0.196777f, -0.422363f, 0.196777f, -0.410156f, 0.201172f, -0.0239258f,
+0.201172f, 0.00488281f, 0.193115f, 0.0319824f, 0.185059f, 0.059082f, 0.167236f, 0.0820312f,
+0.149414f, 0.10498f, 0.12085f, 0.123535f, 0.0922852f, 0.14209f, 0.0517578f, 0.153809f,
+0.0517578f, 0.116211f, 0.0961914f, 0.102051f, 0.117188f, 0.081543f, 0.138184f, 0.0610352f,
+0.138184f, 0.0341797f, 0.138184f, 0.0253906f, 0.133301f, 0.0192871f, 0.128418f, 0.0131836f,
+0.121094f, 0.00854492f, 0.11377f, 0.00390625f, 0.10498f, -0.000488281f, 0.0961914f,
+-0.00488281f, 0.0888672f, -0.0109863f, 0.081543f, -0.0170898f, 0.0766602f, -0.026123f,
+0.0717773f, -0.0351562f, 0.0717773f, -0.0488281f, 0.0717773f, -0.0751953f, 0.088623f,
+-0.0891113f, 0.105469f, -0.103027f, 0.130859f, -0.103027f, 0.144531f, -0.103027f,
+0.157471f, -0.0979004f, 0.17041f, -0.0927734f, 0.179932f, -0.0827637f, 0.189453f,
+-0.0727539f, 0.195312f, -0.0578613f, 0.201172f, -0.0429688f, 0.201172f, -0.0239258f,
+0.0498047f, -0.319824f, 0.0498047f, -0.344238f, 0.515137f, -0.573242f, 0.515137f,
+-0.522949f, 0.120117f, -0.332031f, 0.515137f, -0.141113f, 0.515137f, -0.0908203f,
+0.515137f, -0.256836f, 0.515137f, -0.207031f, 0.0498047f, -0.207031f, 0.0498047f,
+-0.256836f, 0.515137f, -0.457031f, 0.515137f, -0.407227f, 0.0498047f, -0.407227f,
+0.0498047f, -0.457031f, 0.0507812f, -0.0908203f, 0.0507812f, -0.141113f, 0.445801f,
+-0.332031f, 0.0507812f, -0.522949f, 0.0507812f, -0.573242f, 0.516113f, -0.344238f,
+0.516113f, -0.319824f, 0.214844f, -0.170898f, 0.175781f, -0.170898f, 0.163086f, -0.333984f,
+0.23291f, -0.348145f, 0.250488f, -0.351562f, 0.265137f, -0.360107f, 0.279785f, -0.368652f,
+0.290527f, -0.38501f, 0.30127f, -0.401367f, 0.307129f, -0.427002f, 0.312988f, -0.452637f,
+0.312988f, -0.490234f, 0.312988f, -0.525879f, 0.306885f, -0.550781f, 0.300781f, -0.575684f,
+0.287109f, -0.591309f, 0.273438f, -0.606934f, 0.250977f, -0.614014f, 0.228516f, -0.621094f,
+0.195801f, -0.621094f, 0.166504f, -0.621094f, 0.142334f, -0.614258f, 0.118164f, -0.607422f,
+0.101074f, -0.597168f, 0.0839844f, -0.51709f, 0.0517578f, -0.51709f, 0.0517578f,
+-0.641113f, 0.0859375f, -0.650391f, 0.120361f, -0.65625f, 0.154785f, -0.662109f,
+0.195801f, -0.662109f, 0.299316f, -0.662109f, 0.351074f, -0.620117f, 0.402832f, -0.578125f,
+0.402832f, -0.496094f, 0.402832f, -0.461914f, 0.394775f, -0.430908f, 0.386719f, -0.399902f,
+0.368408f, -0.374756f, 0.350098f, -0.349609f, 0.320801f, -0.331299f, 0.291504f, -0.312988f,
+0.249023f, -0.304199f, 0.221191f, -0.297852f, 0.258789f, -0.0449219f, 0.258789f,
+-0.0327148f, 0.25415f, -0.0219727f, 0.249512f, -0.0112305f, 0.241699f, -0.00317383f,
+0.233887f, 0.00488281f, 0.223145f, 0.00952148f, 0.212402f, 0.0141602f, 0.200195f,
+0.0141602f, 0.1875f, 0.0141602f, 0.176758f, 0.00952148f, 0.166016f, 0.00488281f,
+0.158203f, -0.00317383f, 0.150391f, -0.0112305f, 0.145752f, -0.0219727f, 0.141113f,
+-0.0327148f, 0.141113f, -0.0449219f, 0.141113f, -0.0571289f, 0.145752f, -0.0681152f,
+0.150391f, -0.0791016f, 0.158203f, -0.0869141f, 0.166016f, -0.0947266f, 0.176758f,
+-0.0993652f, 0.1875f, -0.104004f, 0.200195f, -0.104004f, 0.212402f, -0.104004f, 0.223145f,
+-0.0993652f, 0.233887f, -0.0947266f, 0.241699f, -0.0869141f, 0.249512f, -0.0791016f,
+0.25415f, -0.0681152f, 0.258789f, -0.0571289f, 0.258789f, -0.0449219f, 0.711914f,
+0.0898438f, 0.685547f, 0.110352f, 0.656006f, 0.128418f, 0.626465f, 0.146484f, 0.591064f,
+0.160156f, 0.555664f, 0.173828f, 0.513916f, 0.181885f, 0.472168f, 0.189941f, 0.421875f,
+0.189941f, 0.333496f, 0.189941f, 0.264893f, 0.161377f, 0.196289f, 0.132812f, 0.14917f,
+0.0830078f, 0.102051f, 0.0332031f, 0.0776367f, -0.0336914f, 0.0532227f, -0.100586f,
+0.0532227f, -0.176758f, 0.0532227f, -0.246582f, 0.0690918f, -0.310059f, 0.0849609f,
+-0.373535f, 0.114502f, -0.427734f, 0.144043f, -0.481934f, 0.186279f, -0.526123f,
+0.228516f, -0.570312f, 0.280762f, -0.601318f, 0.333008f, -0.632324f, 0.394287f, -0.64917f,
+0.455566f, -0.666016f, 0.523926f, -0.666016f, 0.609375f, -0.666016f, 0.673828f, -0.644775f,
+0.738281f, -0.623535f, 0.781494f, -0.584473f, 0.824707f, -0.54541f, 0.846436f, -0.490234f,
+0.868164f, -0.435059f, 0.868164f, -0.367188f, 0.868164f, -0.316895f, 0.854492f, -0.270996f,
+0.84082f, -0.225098f, 0.816895f, -0.185791f, 0.792969f, -0.146484f, 0.760254f, -0.114258f,
+0.727539f, -0.0820312f, 0.689453f, -0.0593262f, 0.651367f, -0.0366211f, 0.609375f,
+-0.0244141f, 0.567383f, -0.012207f, 0.524902f, -0.012207f, 0.519043f, -0.012207f,
+0.513428f, -0.0131836f, 0.507812f, -0.0141602f, 0.503418f, -0.0170898f, 0.499023f,
+-0.0200195f, 0.496094f, -0.0249023f, 0.493164f, -0.0297852f, 0.493164f, -0.0371094f,
+0.493164f, -0.0507812f, 0.494385f, -0.067627f, 0.495605f, -0.0844727f, 0.49707f,
+-0.0981445f, 0.483887f, -0.0849609f, 0.466064f, -0.0698242f, 0.448242f, -0.0546875f,
+0.427734f, -0.0419922f, 0.407227f, -0.0292969f, 0.384766f, -0.020752f, 0.362305f,
+-0.012207f, 0.339844f, -0.012207f, 0.304688f, -0.012207f, 0.2854f, -0.0388184f, 0.266113f,
+-0.0654297f, 0.266113f, -0.109863f, 0.266113f, -0.150391f, 0.273438f, -0.190186f,
+0.280762f, -0.22998f, 0.294922f, -0.266113f, 0.309082f, -0.302246f, 0.330566f, -0.333008f,
+0.352051f, -0.36377f, 0.379883f, -0.38623f, 0.40332f, -0.404785f, 0.424805f, -0.416748f,
+0.446289f, -0.428711f, 0.468994f, -0.435303f, 0.491699f, -0.441895f, 0.51709f, -0.444336f,
+0.54248f, -0.446777f, 0.573242f, -0.446777f, 0.583008f, -0.446777f, 0.590576f, -0.446777f,
+0.598145f, -0.446777f, 0.60498f, -0.446533f, 0.611816f, -0.446289f, 0.618408f, -0.445557f,
+0.625f, -0.444824f, 0.632812f, -0.443848f, 0.577148f, -0.185059f, 0.574707f, -0.174805f,
+0.572754f, -0.162598f, 0.570801f, -0.150391f, 0.569336f, -0.138916f, 0.567871f, -0.127441f,
+0.566895f, -0.117188f, 0.565918f, -0.106934f, 0.565918f, -0.100098f, 0.565918f, -0.0942383f,
+0.566895f, -0.088623f, 0.567871f, -0.0830078f, 0.571533f, -0.0788574f, 0.575195f,
+-0.074707f, 0.582275f, -0.0722656f, 0.589355f, -0.0698242f, 0.602051f, -0.0698242f,
+0.633789f, -0.0698242f, 0.661621f, -0.0820312f, 0.689453f, -0.0942383f, 0.712158f,
+-0.115479f, 0.734863f, -0.136719f, 0.752686f, -0.165527f, 0.770508f, -0.194336f,
+0.782471f, -0.227295f, 0.794434f, -0.260254f, 0.800781f, -0.295654f, 0.807129f, -0.331055f,
+0.807129f, -0.366211f, 0.807129f, -0.429199f, 0.787109f, -0.477539f, 0.76709f, -0.525879f,
+0.729736f, -0.558838f, 0.692383f, -0.591797f, 0.639404f, -0.608887f, 0.586426f, -0.625977f,
+0.520996f, -0.625977f, 0.458496f, -0.625977f, 0.404541f, -0.609619f, 0.350586f, -0.593262f,
+0.305908f, -0.563965f, 0.26123f, -0.534668f, 0.226807f, -0.493408f, 0.192383f, -0.452148f,
+0.168701f, -0.402588f, 0.14502f, -0.353027f, 0.132568f, -0.296143f, 0.120117f, -0.239258f,
+0.120117f, -0.178223f, 0.120117f, -0.11377f, 0.13916f, -0.0546875f, 0.158203f, 0.00439453f,
+0.19751f, 0.0495605f, 0.236816f, 0.0947266f, 0.296387f, 0.121826f, 0.355957f, 0.148926f,
+0.437012f, 0.148926f, 0.483398f, 0.148926f, 0.520752f, 0.14209f, 0.558105f, 0.135254f,
+0.588867f, 0.123779f, 0.619629f, 0.112305f, 0.645752f, 0.097168f, 0.671875f, 0.0820312f,
+0.695801f, 0.0649414f, 0.556152f, -0.394043f, 0.55127f, -0.394531f, 0.546875f, -0.39502f,
+0.542969f, -0.395508f, 0.539062f, -0.395752f, 0.535156f, -0.395996f, 0.532227f, -0.395996f,
+0.518066f, -0.395996f, 0.501221f, -0.394531f, 0.484375f, -0.393066f, 0.467041f, -0.388916f,
+0.449707f, -0.384766f, 0.432617f, -0.377441f, 0.415527f, -0.370117f, 0.401855f, -0.35791f,
+0.387695f, -0.345215f, 0.375f, -0.323975f, 0.362305f, -0.302734f, 0.352783f, -0.275391f,
+0.343262f, -0.248047f, 0.337646f, -0.216309f, 0.332031f, -0.18457f, 0.332031f, -0.150879f,
+0.332031f, -0.116211f, 0.341797f, -0.097168f, 0.351562f, -0.078125f, 0.371094f, -0.078125f,
+0.388672f, -0.078125f, 0.406982f, -0.0834961f, 0.425293f, -0.0888672f, 0.442627f,
+-0.0969238f, 0.459961f, -0.10498f, 0.474854f, -0.11499f, 0.489746f, -0.125f, 0.5f,
+-0.133789f, 0.225098f, -0.0258789f, 0.225098f, 0, 0.00976562f, 0, 0.00976562f, -0.0258789f,
+0.0839844f, -0.0390625f, 0.307129f, -0.660156f, 0.399902f, -0.660156f, 0.631836f,
+-0.0390625f, 0.714844f, -0.0258789f, 0.714844f, 0, 0.437988f, 0, 0.437988f, -0.0258789f,
+0.525879f, -0.0390625f, 0.460938f, -0.228027f, 0.203125f, -0.228027f, 0.137207f,
+-0.0390625f, 0.330078f, -0.589844f, 0.217773f, -0.271973f, 0.445801f, -0.271973f,
+0.467773f, -0.496094f, 0.467773f, -0.524902f, 0.459229f, -0.546387f, 0.450684f, -0.567871f,
+0.431641f, -0.582275f, 0.412598f, -0.59668f, 0.382324f, -0.60376f, 0.352051f, -0.61084f,
+0.308105f, -0.61084f, 0.207031f, -0.61084f, 0.207031f, -0.363281f, 0.313965f, -0.363281f,
+0.359375f, -0.363281f, 0.38916f, -0.372803f, 0.418945f, -0.382324f, 0.436279f, -0.399658f,
+0.453613f, -0.416992f, 0.460693f, -0.441406f, 0.467773f, -0.46582f, 0.467773f, -0.496094f,
+0.51709f, -0.186523f, 0.51709f, -0.220703f, 0.506104f, -0.245605f, 0.495117f, -0.270508f,
+0.471924f, -0.286865f, 0.44873f, -0.303223f, 0.412109f, -0.311279f, 0.375488f, -0.319336f,
+0.324219f, -0.319336f, 0.207031f, -0.319336f, 0.207031f, -0.0439453f, 0.229492f,
+-0.0429688f, 0.253906f, -0.0424805f, 0.274902f, -0.0415039f, 0.300293f, -0.0412598f,
+0.325684f, -0.0410156f, 0.350586f, -0.0410156f, 0.396484f, -0.0410156f, 0.428223f,
+-0.0512695f, 0.459961f, -0.0615234f, 0.479736f, -0.0803223f, 0.499512f, -0.0991211f,
+0.508301f, -0.125977f, 0.51709f, -0.152832f, 0.51709f, -0.186523f, 0.0288086f, 0,
+0.0288086f, -0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f, 0.0288086f,
+-0.628906f, 0.0288086f, -0.654785f, 0.328125f, -0.654785f, 0.396973f, -0.654785f,
+0.442871f, -0.644287f, 0.48877f, -0.633789f, 0.516602f, -0.61377f, 0.544434f, -0.59375f,
+0.556152f, -0.565186f, 0.567871f, -0.536621f, 0.567871f, -0.500977f, 0.567871f, -0.470215f,
+0.557861f, -0.444824f, 0.547852f, -0.419434f, 0.530029f, -0.400146f, 0.512207f, -0.380859f,
+0.487305f, -0.36792f, 0.462402f, -0.35498f, 0.433105f, -0.348633f, 0.475586f, -0.344238f,
+0.51001f, -0.331543f, 0.544434f, -0.318848f, 0.568359f, -0.298584f, 0.592285f, -0.27832f,
+0.605225f, -0.250488f, 0.618164f, -0.222656f, 0.618164f, -0.188477f, 0.618164f, -0.145996f,
+0.60376f, -0.110596f, 0.589355f, -0.0751953f, 0.558594f, -0.0500488f, 0.527832f,
+-0.0249023f, 0.479492f, -0.0109863f, 0.431152f, 0.00292969f, 0.362793f, 0.00292969f,
+0.308105f, 0.00292969f, 0.253906f, 0.00146484f, 0.199707f, 0, 0.153809f, 0, 0.37793f,
+0.00976562f, 0.297852f, 0.00976562f, 0.235107f, -0.0126953f, 0.172363f, -0.0351562f,
+0.12915f, -0.0776367f, 0.0859375f, -0.120117f, 0.0634766f, -0.181396f, 0.0410156f,
+-0.242676f, 0.0410156f, -0.319824f, 0.0410156f, -0.407715f, 0.0637207f, -0.472168f,
+0.0864258f, -0.536621f, 0.129639f, -0.578857f, 0.172852f, -0.621094f, 0.23584f, -0.641602f,
+0.298828f, -0.662109f, 0.379883f, -0.662109f, 0.413574f, -0.662109f, 0.443359f, -0.659912f,
+0.473145f, -0.657715f, 0.500244f, -0.654297f, 0.527344f, -0.650879f, 0.551758f, -0.646484f,
+0.576172f, -0.64209f, 0.599121f, -0.637207f, 0.602051f, -0.494141f, 0.569824f, -0.494141f,
+0.555176f, -0.579102f, 0.520996f, -0.600098f, 0.47583f, -0.611572f, 0.430664f, -0.623047f,
+0.383789f, -0.623047f, 0.32666f, -0.623047f, 0.281982f, -0.607422f, 0.237305f, -0.591797f,
+0.206543f, -0.556396f, 0.175781f, -0.520996f, 0.159424f, -0.463135f, 0.143066f, -0.405273f,
+0.143066f, -0.320801f, 0.143066f, -0.246582f, 0.15918f, -0.19165f, 0.175293f, -0.136719f,
+0.205566f, -0.100342f, 0.23584f, -0.0639648f, 0.279541f, -0.0458984f, 0.323242f,
+-0.027832f, 0.378906f, -0.027832f, 0.40918f, -0.027832f, 0.436768f, -0.0317383f,
+0.464355f, -0.0356445f, 0.488037f, -0.0424805f, 0.511719f, -0.0493164f, 0.530518f,
+-0.0583496f, 0.549316f, -0.0673828f, 0.562012f, -0.0771484f, 0.580078f, -0.174805f,
+0.611816f, -0.174805f, 0.608887f, -0.0209961f, 0.588379f, -0.0151367f, 0.562012f,
+-0.00952148f, 0.535645f, -0.00390625f, 0.505859f, 0.000488281f, 0.476074f, 0.00488281f,
+0.443359f, 0.00732422f, 0.410645f, 0.00976562f, 0.37793f, 0.00976562f, 0.580078f,
+-0.332031f, 0.580078f, -0.404297f, 0.560059f, -0.456787f, 0.540039f, -0.509277f,
+0.502686f, -0.543457f, 0.465332f, -0.577637f, 0.412598f, -0.594238f, 0.359863f, -0.61084f,
+0.294922f, -0.61084f, 0.207031f, -0.61084f, 0.207031f, -0.0458984f, 0.22168f, -0.0449219f,
+0.23877f, -0.0444336f, 0.255859f, -0.0439453f, 0.273926f, -0.0432129f, 0.291992f,
+-0.0424805f, 0.310303f, -0.0422363f, 0.328613f, -0.0419922f, 0.346191f, -0.0419922f,
+0.408203f, -0.0419922f, 0.452393f, -0.0603027f, 0.496582f, -0.0786133f, 0.524902f,
+-0.11499f, 0.553223f, -0.151367f, 0.56665f, -0.205566f, 0.580078f, -0.259766f, 0.580078f,
+-0.332031f, 0.326172f, -0.654785f, 0.407715f, -0.654785f, 0.473389f, -0.637695f,
+0.539062f, -0.620605f, 0.585449f, -0.582031f, 0.631836f, -0.543457f, 0.656982f, -0.481934f,
+0.682129f, -0.42041f, 0.682129f, -0.331055f, 0.682129f, -0.250977f, 0.661621f, -0.188965f,
+0.641113f, -0.126953f, 0.599609f, -0.0844727f, 0.558105f, -0.0419922f, 0.494873f,
+-0.0200195f, 0.431641f, 0.00195312f, 0.346191f, 0.00195312f, 0.318359f, 0.00195312f,
+0.2854f, 0.00170898f, 0.252441f, 0.00146484f, 0.220703f, 0.000976562f, 0.188965f,
+0.000488281f, 0.1604f, 0.000244141f, 0.131836f, 0, 0.112793f, 0, 0.0288086f, 0, 0.0288086f,
+-0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f, 0.0288086f, -0.628906f,
+0.0288086f, -0.654785f, 0.0288086f, -0.0258789f, 0.112793f, -0.0390625f, 0.112793f,
+-0.616211f, 0.0288086f, -0.628906f, 0.0288086f, -0.654785f, 0.52002f, -0.654785f,
+0.52002f, -0.498047f, 0.487793f, -0.498047f, 0.472168f, -0.604004f, 0.456543f, -0.605957f,
+0.434326f, -0.607422f, 0.412109f, -0.608887f, 0.38916f, -0.609619f, 0.366211f, -0.610352f,
+0.345703f, -0.610596f, 0.325195f, -0.61084f, 0.313965f, -0.61084f, 0.207031f, -0.61084f,
+0.207031f, -0.35498f, 0.383789f, -0.35498f, 0.398926f, -0.433105f, 0.430176f, -0.433105f,
+0.430176f, -0.231934f, 0.398926f, -0.231934f, 0.383789f, -0.311035f, 0.207031f, -0.311035f,
+0.207031f, -0.0439453f, 0.335938f, -0.0439453f, 0.366211f, -0.0439453f, 0.393066f,
+-0.0446777f, 0.419922f, -0.0454102f, 0.441406f, -0.0463867f, 0.462891f, -0.0473633f,
+0.478271f, -0.0488281f, 0.493652f, -0.050293f, 0.500977f, -0.0517578f, 0.528809f,
+-0.172852f, 0.561035f, -0.172852f, 0.551758f, 0, 0.0288086f, 0, 0.207031f, -0.293945f,
+0.207031f, -0.0390625f, 0.315918f, -0.0258789f, 0.315918f, 0, 0.0351562f, 0, 0.0351562f,
+-0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f, 0.0288086f, -0.628906f,
+0.0288086f, -0.654785f, 0.52002f, -0.654785f, 0.52002f, -0.498047f, 0.487793f, -0.498047f,
+0.472168f, -0.604004f, 0.456543f, -0.605957f, 0.434326f, -0.607422f, 0.412109f, -0.608887f,
+0.38916f, -0.609619f, 0.366211f, -0.610352f, 0.345703f, -0.610596f, 0.325195f, -0.61084f,
+0.313965f, -0.61084f, 0.207031f, -0.61084f, 0.207031f, -0.337891f, 0.399902f, -0.337891f,
+0.415039f, -0.416016f, 0.444824f, -0.416016f, 0.444824f, -0.214844f, 0.415039f, -0.214844f,
+0.399902f, -0.293945f, 0.626953f, -0.0341797f, 0.570312f, -0.015625f, 0.509277f,
+-0.00292969f, 0.448242f, 0.00976562f, 0.37793f, 0.00976562f, 0.300293f, 0.00976562f,
+0.238037f, -0.0114746f, 0.175781f, -0.0327148f, 0.131836f, -0.0744629f, 0.0878906f,
+-0.116211f, 0.0644531f, -0.177734f, 0.0410156f, -0.239258f, 0.0410156f, -0.319824f,
+0.0410156f, -0.491699f, 0.127197f, -0.576904f, 0.213379f, -0.662109f, 0.379883f,
+-0.662109f, 0.443359f, -0.662109f, 0.500732f, -0.654297f, 0.558105f, -0.646484f,
+0.609863f, -0.632812f, 0.609863f, -0.492188f, 0.577148f, -0.492188f, 0.563965f, -0.573242f,
+0.530273f, -0.597168f, 0.483154f, -0.610107f, 0.436035f, -0.623047f, 0.383789f, -0.623047f,
+0.32666f, -0.623047f, 0.281982f, -0.607178f, 0.237305f, -0.591309f, 0.206543f, -0.555664f,
+0.175781f, -0.52002f, 0.159424f, -0.462158f, 0.143066f, -0.404297f, 0.143066f, -0.320801f,
+0.143066f, -0.236328f, 0.162109f, -0.179932f, 0.181152f, -0.123535f, 0.213623f, -0.0898438f,
+0.246094f, -0.0561523f, 0.288818f, -0.0419922f, 0.331543f, -0.027832f, 0.378906f,
+-0.027832f, 0.402832f, -0.027832f, 0.426514f, -0.0310059f, 0.450195f, -0.0341797f,
+0.470947f, -0.0390625f, 0.491699f, -0.0439453f, 0.507812f, -0.0498047f, 0.523926f,
+-0.0556641f, 0.533203f, -0.0610352f, 0.533203f, -0.24707f, 0.449219f, -0.259766f,
+0.449219f, -0.286133f, 0.690918f, -0.286133f, 0.690918f, -0.259766f, 0.626953f, -0.24707f,
+0.0288086f, 0, 0.0288086f, -0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f,
+0.0288086f, -0.628906f, 0.0288086f, -0.654785f, 0.291016f, -0.654785f, 0.291016f,
+-0.628906f, 0.207031f, -0.616211f, 0.207031f, -0.358887f, 0.515137f, -0.358887f,
+0.515137f, -0.616211f, 0.431152f, -0.628906f, 0.431152f, -0.654785f, 0.692871f, -0.654785f,
+0.692871f, -0.628906f, 0.608887f, -0.616211f, 0.608887f, -0.0390625f, 0.692871f,
+-0.0258789f, 0.692871f, 0, 0.431152f, 0, 0.431152f, -0.0258789f, 0.515137f, -0.0390625f,
+0.515137f, -0.314941f, 0.207031f, -0.314941f, 0.207031f, -0.0390625f, 0.291016f,
+-0.0258789f, 0.291016f, 0, 0.213867f, -0.0390625f, 0.297852f, -0.0258789f, 0.297852f,
+0, 0.0361328f, 0, 0.0361328f, -0.0258789f, 0.120117f, -0.0390625f, 0.120117f, -0.616211f,
+0.0361328f, -0.628906f, 0.0361328f, -0.654785f, 0.297852f, -0.654785f, 0.297852f,
+-0.628906f, 0.213867f, -0.616211f, 0.200195f, -0.616211f, 0.116211f, -0.628906f,
+0.116211f, -0.654785f, 0.368164f, -0.654785f, 0.368164f, -0.628906f, 0.293945f, -0.616211f,
+0.293945f, -0.210938f, 0.293945f, -0.166504f, 0.285645f, -0.132812f, 0.277344f, -0.0991211f,
+0.263672f, -0.074707f, 0.25f, -0.050293f, 0.232178f, -0.0339355f, 0.214355f, -0.0175781f,
+0.195312f, -0.0078125f, 0.17627f, 0.00195312f, 0.157227f, 0.00585938f, 0.138184f,
+0.00976562f, 0.12207f, 0.00976562f, 0.090332f, 0.00976562f, 0.0646973f, 0.00585938f,
+0.0390625f, 0.00195312f, 0.0209961f, -0.00488281f, 0.0209961f, -0.124023f, 0.0532227f,
+-0.124023f, 0.0678711f, -0.0561523f, 0.0771484f, -0.0449219f, 0.0942383f, -0.0385742f,
+0.111328f, -0.0322266f, 0.131836f, -0.0322266f, 0.200195f, -0.0322266f, 0.200195f,
+-0.125f, 0.660645f, -0.654785f, 0.660645f, -0.628906f, 0.584961f, -0.616211f, 0.361328f,
+-0.397461f, 0.641113f, -0.0390625f, 0.711914f, -0.0258789f, 0.711914f, 0, 0.551758f,
+0, 0.29541f, -0.331055f, 0.207031f, -0.260254f, 0.207031f, -0.0390625f, 0.300781f,
+-0.0258789f, 0.300781f, 0, 0.0288086f, 0, 0.0288086f, -0.0258789f, 0.112793f, -0.0390625f,
+0.112793f, -0.616211f, 0.0288086f, -0.628906f, 0.0288086f, -0.654785f, 0.291016f,
+-0.654785f, 0.291016f, -0.628906f, 0.207031f, -0.616211f, 0.207031f, -0.307617f,
+0.520508f, -0.616211f, 0.455566f, -0.628906f, 0.455566f, -0.654785f, 0.308105f, -0.628906f,
+0.207031f, -0.616211f, 0.207031f, -0.0419922f, 0.335938f, -0.0419922f, 0.396973f,
+-0.0419922f, 0.435547f, -0.0454102f, 0.474121f, -0.0488281f, 0.48877f, -0.0517578f,
+0.519043f, -0.187988f, 0.550781f, -0.187988f, 0.541992f, 0, 0.0288086f, 0, 0.0288086f,
+-0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f, 0.0288086f, -0.628906f,
+0.0288086f, -0.654785f, 0.308105f, -0.654785f, 0.420898f, 0, 0.403809f, 0, 0.164062f,
+-0.562988f, 0.164062f, -0.0390625f, 0.251953f, -0.0258789f, 0.251953f, 0, 0.0288086f,
+0, 0.0288086f, -0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f, 0.0288086f,
+-0.628906f, 0.0288086f, -0.654785f, 0.227051f, -0.654785f, 0.439941f, -0.156738f,
+0.672363f, -0.654785f, 0.859863f, -0.654785f, 0.859863f, -0.628906f, 0.775879f, -0.616211f,
+0.775879f, -0.0390625f, 0.859863f, -0.0258789f, 0.859863f, 0, 0.594238f, 0, 0.594238f,
+-0.0258789f, 0.682129f, -0.0390625f, 0.682129f, -0.562988f, 0.563965f, -0.616211f,
+0.476074f, -0.628906f, 0.476074f, -0.654785f, 0.699219f, -0.654785f, 0.699219f, -0.628906f,
+0.615234f, -0.616211f, 0.615234f, 0, 0.567871f, 0, 0.164062f, -0.588867f, 0.164062f,
+-0.0390625f, 0.251953f, -0.0258789f, 0.251953f, 0, 0.0288086f, 0, 0.0288086f, -0.0258789f,
+0.112793f, -0.0390625f, 0.112793f, -0.616211f, 0.0288086f, -0.628906f, 0.0288086f,
+-0.654785f, 0.227051f, -0.654785f, 0.563965f, -0.169922f, 0.143066f, -0.328125f,
+0.143066f, -0.259766f, 0.15332f, -0.20459f, 0.163574f, -0.149414f, 0.188477f, -0.110352f,
+0.213379f, -0.0712891f, 0.255371f, -0.0500488f, 0.297363f, -0.0288086f, 0.36084f,
+-0.0288086f, 0.424316f, -0.0288086f, 0.466309f, -0.0500488f, 0.508301f, -0.0712891f,
+0.533447f, -0.110352f, 0.558594f, -0.149414f, 0.568848f, -0.20459f, 0.579102f, -0.259766f,
+0.579102f, -0.328125f, 0.579102f, -0.395996f, 0.568848f, -0.450684f, 0.558594f, -0.505371f,
+0.533447f, -0.543701f, 0.508301f, -0.582031f, 0.466309f, -0.602539f, 0.424316f, -0.623047f,
+0.36084f, -0.623047f, 0.297363f, -0.623047f, 0.255371f, -0.602539f, 0.213379f, -0.582031f,
+0.188477f, -0.543701f, 0.163574f, -0.505371f, 0.15332f, -0.450684f, 0.143066f, -0.395996f,
+0.143066f, -0.328125f, 0.0410156f, -0.328125f, 0.0410156f, -0.415039f, 0.0622559f,
+-0.478027f, 0.0834961f, -0.541016f, 0.124023f, -0.582031f, 0.164551f, -0.623047f,
+0.224121f, -0.642578f, 0.283691f, -0.662109f, 0.36084f, -0.662109f, 0.435547f, -0.662109f,
+0.494873f, -0.642578f, 0.554199f, -0.623047f, 0.595703f, -0.582031f, 0.637207f, -0.541016f,
+0.65918f, -0.478027f, 0.681152f, -0.415039f, 0.681152f, -0.328125f, 0.681152f, -0.241211f,
+0.65918f, -0.17749f, 0.637207f, -0.11377f, 0.595703f, -0.0722656f, 0.554199f, -0.0307617f,
+0.494873f, -0.010498f, 0.435547f, 0.00976562f, 0.36084f, 0.00976562f, 0.286133f,
+0.00976562f, 0.227051f, -0.010498f, 0.167969f, -0.0307617f, 0.126465f, -0.0722656f,
+0.0849609f, -0.11377f, 0.0629883f, -0.17749f, 0.0410156f, -0.241211f, 0.0410156f,
+-0.328125f, 0.418945f, -0.460938f, 0.418945f, -0.5f, 0.4104f, -0.52832f, 0.401855f,
+-0.556641f, 0.382568f, -0.574951f, 0.363281f, -0.593262f, 0.332031f, -0.602051f,
+0.300781f, -0.61084f, 0.254883f, -0.61084f, 0.207031f, -0.61084f, 0.207031f, -0.300781f,
+0.257812f, -0.300781f, 0.303711f, -0.300781f, 0.334717f, -0.311768f, 0.365723f, -0.322754f,
+0.384521f, -0.343262f, 0.40332f, -0.36377f, 0.411133f, -0.393555f, 0.418945f, -0.42334f,
+0.418945f, -0.460938f, 0.207031f, -0.256836f, 0.207031f, -0.0390625f, 0.311035f,
+-0.0258789f, 0.311035f, 0, 0.0351562f, 0, 0.0351562f, -0.0258789f, 0.112793f, -0.0390625f,
+0.112793f, -0.616211f, 0.0288086f, -0.628906f, 0.0288086f, -0.654785f, 0.275879f,
+-0.654785f, 0.344727f, -0.654785f, 0.390869f, -0.639893f, 0.437012f, -0.625f, 0.464844f,
+-0.598877f, 0.492676f, -0.572754f, 0.504395f, -0.537598f, 0.516113f, -0.502441f,
+0.516113f, -0.461914f, 0.516113f, -0.421875f, 0.504639f, -0.384766f, 0.493164f, -0.347656f,
+0.466064f, -0.319336f, 0.438965f, -0.291016f, 0.393555f, -0.273926f, 0.348145f, -0.256836f,
+0.280762f, -0.256836f, 0.143066f, -0.327148f, 0.143066f, -0.258789f, 0.15332f, -0.203613f,
+0.163574f, -0.148438f, 0.188477f, -0.109619f, 0.213379f, -0.0708008f, 0.255371f,
+-0.0498047f, 0.297363f, -0.0288086f, 0.36084f, -0.0288086f, 0.424316f, -0.0288086f,
+0.466309f, -0.0498047f, 0.508301f, -0.0708008f, 0.533447f, -0.109619f, 0.558594f,
+-0.148438f, 0.568848f, -0.203613f, 0.579102f, -0.258789f, 0.579102f, -0.327148f,
+0.579102f, -0.39502f, 0.568848f, -0.449951f, 0.558594f, -0.504883f, 0.533447f, -0.543213f,
+0.508301f, -0.581543f, 0.466309f, -0.602295f, 0.424316f, -0.623047f, 0.36084f, -0.623047f,
+0.297363f, -0.623047f, 0.255371f, -0.602295f, 0.213379f, -0.581543f, 0.188477f, -0.543213f,
+0.163574f, -0.504883f, 0.15332f, -0.449951f, 0.143066f, -0.39502f, 0.143066f, -0.327148f,
+0.0410156f, -0.327148f, 0.0410156f, -0.414062f, 0.0622559f, -0.477295f, 0.0834961f,
+-0.540527f, 0.124023f, -0.581543f, 0.164551f, -0.622559f, 0.224121f, -0.642334f,
+0.283691f, -0.662109f, 0.36084f, -0.662109f, 0.435547f, -0.662109f, 0.494873f, -0.642334f,
+0.554199f, -0.622559f, 0.595703f, -0.581543f, 0.637207f, -0.540527f, 0.65918f, -0.477295f,
+0.681152f, -0.414062f, 0.681152f, -0.327148f, 0.681152f, -0.264648f, 0.669678f, -0.2146f,
+0.658203f, -0.164551f, 0.635986f, -0.126221f, 0.61377f, -0.0878906f, 0.581543f, -0.0605469f,
+0.549316f, -0.0332031f, 0.507812f, -0.0161133f, 0.532227f, 0.0141602f, 0.553223f,
+0.0405273f, 0.571289f, 0.0595703f, 0.589355f, 0.0786133f, 0.605225f, 0.0905762f,
+0.621094f, 0.102539f, 0.635742f, 0.108154f, 0.650391f, 0.11377f, 0.665039f, 0.11377f,
+0.668457f, 0.11377f, 0.674316f, 0.113525f, 0.680176f, 0.113281f, 0.686035f, 0.113037f,
+0.691895f, 0.112793f, 0.697266f, 0.112549f, 0.702637f, 0.112305f, 0.705078f, 0.111816f,
+0.705078f, 0.144043f, 0.699707f, 0.146484f, 0.688965f, 0.149414f, 0.678223f, 0.152344f,
+0.664795f, 0.155273f, 0.651367f, 0.158203f, 0.636719f, 0.160156f, 0.62207f, 0.162109f,
+0.608887f, 0.162109f, 0.581055f, 0.162109f, 0.558838f, 0.155029f, 0.536621f, 0.147949f,
+0.515381f, 0.132568f, 0.494141f, 0.117188f, 0.471924f, 0.0925293f, 0.449707f, 0.0678711f,
+0.421875f, 0.0332031f, 0.401855f, 0.0078125f, 0.393066f, 0.00878906f, 0.383057f,
+0.00927734f, 0.373047f, 0.00976562f, 0.36084f, 0.00976562f, 0.286133f, 0.00976562f,
+0.227051f, -0.0102539f, 0.167969f, -0.0302734f, 0.126465f, -0.0717773f, 0.0849609f,
+-0.113281f, 0.0629883f, -0.176758f, 0.0410156f, -0.240234f, 0.0410156f, -0.327148f,
+0.207031f, -0.287109f, 0.207031f, -0.0390625f, 0.306152f, -0.0258789f, 0.306152f,
+0, 0.0351562f, 0, 0.0351562f, -0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f,
+0.0288086f, -0.628906f, 0.0288086f, -0.654785f, 0.311523f, -0.654785f, 0.380371f,
+-0.654785f, 0.426514f, -0.642578f, 0.472656f, -0.630371f, 0.500488f, -0.607666f,
+0.52832f, -0.584961f, 0.540039f, -0.552734f, 0.551758f, -0.520508f, 0.551758f, -0.47998f,
+0.551758f, -0.442383f, 0.540771f, -0.412842f, 0.529785f, -0.383301f, 0.51123f, -0.36084f,
+0.492676f, -0.338379f, 0.468262f, -0.323486f, 0.443848f, -0.308594f, 0.41748f, -0.300781f,
+0.594727f, -0.0390625f, 0.665527f, -0.0258789f, 0.665527f, 0, 0.508789f, 0, 0.324707f,
+-0.287109f, 0.45459f, -0.473145f, 0.45459f, -0.512207f, 0.445312f, -0.538574f, 0.436035f,
+-0.564941f, 0.41626f, -0.581055f, 0.396484f, -0.597168f, 0.365479f, -0.604004f, 0.334473f,
+-0.61084f, 0.290527f, -0.61084f, 0.207031f, -0.61084f, 0.207031f, -0.331055f, 0.293457f,
+-0.331055f, 0.338379f, -0.331055f, 0.369141f, -0.339111f, 0.399902f, -0.347168f,
+0.418945f, -0.364502f, 0.437988f, -0.381836f, 0.446289f, -0.408691f, 0.45459f, -0.435547f,
+0.45459f, -0.473145f, 0.0678711f, -0.17627f, 0.0996094f, -0.17627f, 0.116699f, -0.0878906f,
+0.125977f, -0.0761719f, 0.142578f, -0.0656738f, 0.15918f, -0.0551758f, 0.179443f,
+-0.0471191f, 0.199707f, -0.0390625f, 0.222168f, -0.0344238f, 0.244629f, -0.0297852f,
+0.266113f, -0.0297852f, 0.303223f, -0.0297852f, 0.330566f, -0.0397949f, 0.35791f,
+-0.0498047f, 0.375732f, -0.0673828f, 0.393555f, -0.0849609f, 0.402344f, -0.108887f,
+0.411133f, -0.132812f, 0.411133f, -0.161133f, 0.411133f, -0.196289f, 0.39624f, -0.219238f,
+0.381348f, -0.242188f, 0.357178f, -0.258057f, 0.333008f, -0.273926f, 0.302246f, -0.284912f,
+0.271484f, -0.295898f, 0.239014f, -0.307129f, 0.206543f, -0.318359f, 0.175781f, -0.332031f,
+0.14502f, -0.345703f, 0.12085f, -0.366699f, 0.0966797f, -0.387695f, 0.0817871f, -0.418701f,
+0.0668945f, -0.449707f, 0.0668945f, -0.495117f, 0.0668945f, -0.533203f, 0.081543f,
+-0.564209f, 0.0961914f, -0.595215f, 0.124512f, -0.616943f, 0.152832f, -0.638672f,
+0.194092f, -0.650391f, 0.235352f, -0.662109f, 0.288086f, -0.662109f, 0.336426f, -0.662109f,
+0.379883f, -0.655762f, 0.42334f, -0.649414f, 0.459961f, -0.641113f, 0.459961f, -0.504883f,
+0.428223f, -0.504883f, 0.411133f, -0.584961f, 0.389648f, -0.600586f, 0.358398f, -0.61084f,
+0.327148f, -0.621094f, 0.288086f, -0.621094f, 0.251953f, -0.621094f, 0.22583f, -0.613281f,
+0.199707f, -0.605469f, 0.182617f, -0.592041f, 0.165527f, -0.578613f, 0.157227f, -0.560303f,
+0.148926f, -0.541992f, 0.148926f, -0.520996f, 0.148926f, -0.489258f, 0.163818f, -0.468262f,
+0.178711f, -0.447266f, 0.202881f, -0.432373f, 0.227051f, -0.41748f, 0.258057f, -0.406738f,
+0.289062f, -0.395996f, 0.321533f, -0.384521f, 0.354004f, -0.373047f, 0.38501f, -0.358643f,
+0.416016f, -0.344238f, 0.440186f, -0.322021f, 0.464355f, -0.299805f, 0.479248f, -0.267822f,
+0.494141f, -0.23584f, 0.494141f, -0.188965f, 0.494141f, -0.143555f, 0.480225f, -0.106934f,
+0.466309f, -0.0703125f, 0.438232f, -0.0441895f, 0.410156f, -0.0180664f, 0.36792f,
+-0.00415039f, 0.325684f, 0.00976562f, 0.268555f, 0.00976562f, 0.238281f, 0.00976562f,
+0.208984f, 0.00683594f, 0.179688f, 0.00390625f, 0.153809f, -0.000976562f, 0.12793f,
+-0.00585938f, 0.105957f, -0.012207f, 0.0839844f, -0.0185547f, 0.0678711f, -0.0249023f,
+0.153809f, 0, 0.153809f, -0.0258789f, 0.257812f, -0.0390625f, 0.257812f, -0.612793f,
+0.23291f, -0.612793f, 0.168945f, -0.612793f, 0.125488f, -0.609863f, 0.0820312f, -0.606934f,
+0.0639648f, -0.603027f, 0.0507812f, -0.500977f, 0.0180664f, -0.500977f, 0.0180664f,
+-0.654785f, 0.594238f, -0.654785f, 0.594238f, -0.500977f, 0.561035f, -0.500977f,
+0.547852f, -0.603027f, 0.539062f, -0.60498f, 0.521729f, -0.606445f, 0.504395f, -0.60791f,
+0.481445f, -0.609131f, 0.458496f, -0.610352f, 0.431396f, -0.611084f, 0.404297f, -0.611816f,
+0.375977f, -0.611816f, 0.352051f, -0.611816f, 0.352051f, -0.0390625f, 0.456055f,
+-0.0258789f, 0.456055f, 0, 0.565918f, -0.616211f, 0.478027f, -0.628906f, 0.478027f,
+-0.654785f, 0.701172f, -0.654785f, 0.701172f, -0.628906f, 0.617188f, -0.616211f,
+0.617188f, -0.225098f, 0.617188f, -0.180176f, 0.605957f, -0.137939f, 0.594727f, -0.0957031f,
+0.566406f, -0.0629883f, 0.538086f, -0.0302734f, 0.489014f, -0.0102539f, 0.439941f,
+0.00976562f, 0.364746f, 0.00976562f, 0.234375f, 0.00976562f, 0.169678f, -0.0490723f,
+0.10498f, -0.10791f, 0.10498f, -0.21582f, 0.10498f, -0.616211f, 0.0209961f, -0.628906f,
+0.0209961f, -0.654785f, 0.282715f, -0.654785f, 0.282715f, -0.628906f, 0.19873f, -0.616211f,
+0.19873f, -0.223145f, 0.19873f, -0.183105f, 0.208252f, -0.150146f, 0.217773f, -0.117188f,
+0.238525f, -0.09375f, 0.259277f, -0.0703125f, 0.292236f, -0.0576172f, 0.325195f,
+-0.0449219f, 0.37207f, -0.0449219f, 0.42334f, -0.0449219f, 0.459961f, -0.0576172f,
+0.496582f, -0.0703125f, 0.520264f, -0.0932617f, 0.543945f, -0.116211f, 0.554932f,
+-0.148926f, 0.565918f, -0.181641f, 0.565918f, -0.221191f, 0.710938f, -0.654785f,
+0.710938f, -0.628906f, 0.63916f, -0.616211f, 0.375977f, 0.0151367f, 0.351074f, 0.0151367f,
+0.0849609f, -0.616211f, 0.0112305f, -0.628906f, 0.0112305f, -0.654785f, 0.275879f,
+-0.654785f, 0.275879f, -0.628906f, 0.187988f, -0.616211f, 0.38623f, -0.134277f, 0.583984f,
+-0.616211f, 0.498047f, -0.628906f, 0.498047f, -0.654785f, 0.884766f, -0.616211f,
+0.670898f, 0.0151367f, 0.64502f, 0.0151367f, 0.475098f, -0.436035f, 0.300781f, 0.0151367f,
+0.274902f, 0.0151367f, 0.0581055f, -0.616211f, 0.000976562f, -0.628906f, 0.000976562f,
+-0.654785f, 0.250977f, -0.654785f, 0.250977f, -0.628906f, 0.154785f, -0.616211f,
+0.310547f, -0.154785f, 0.486816f, -0.608887f, 0.508789f, -0.608887f, 0.678711f, -0.154785f,
+0.827148f, -0.616211f, 0.725098f, -0.628906f, 0.725098f, -0.654785f, 0.941895f, -0.654785f,
+0.941895f, -0.628906f, 0.154785f, -0.0390625f, 0.23584f, -0.0258789f, 0.23584f, 0,
+0.0219727f, 0, 0.0219727f, -0.0258789f, 0.0942383f, -0.0390625f, 0.316895f, -0.334961f,
+0.126953f, -0.616211f, 0.0532227f, -0.628906f, 0.0532227f, -0.654785f, 0.323242f,
+-0.654785f, 0.323242f, -0.628906f, 0.240234f, -0.616211f, 0.375977f, -0.414062f,
+0.527832f, -0.616211f, 0.446777f, -0.628906f, 0.446777f, -0.654785f, 0.661133f, -0.654785f,
+0.661133f, -0.628906f, 0.588867f, -0.616211f, 0.404785f, -0.371094f, 0.629883f, -0.0390625f,
+0.704102f, -0.0258789f, 0.704102f, 0, 0.434082f, 0, 0.434082f, -0.0258789f, 0.51709f,
+-0.0390625f, 0.345215f, -0.292969f, 0.40918f, -0.257812f, 0.40918f, -0.0390625f,
+0.513184f, -0.0258789f, 0.513184f, 0, 0.210938f, 0, 0.210938f, -0.0258789f, 0.314941f,
+-0.0390625f, 0.314941f, -0.254883f, 0.0849609f, -0.616211f, 0.0112305f, -0.628906f,
+0.0112305f, -0.654785f, 0.288086f, -0.654785f, 0.288086f, -0.628906f, 0.200195f,
+-0.616211f, 0.388184f, -0.313965f, 0.566895f, -0.616211f, 0.483887f, -0.628906f,
+0.483887f, -0.654785f, 0.696777f, -0.654785f, 0.696777f, -0.628906f, 0.625f, -0.616211f,
+0.0478516f, -0.0458984f, 0.415039f, -0.612793f, 0.292969f, -0.612793f, 0.229004f,
+-0.612793f, 0.187012f, -0.609863f, 0.14502f, -0.606934f, 0.126953f, -0.603027f, 0.111816f,
+-0.5f, 0.078125f, -0.5f, 0.078125f, -0.654785f, 0.523926f, -0.654785f, 0.523926f,
+-0.612793f, 0.154297f, -0.0410156f, 0.295898f, -0.0410156f, 0.327637f, -0.0410156f,
+0.359131f, -0.0427246f, 0.390625f, -0.0444336f, 0.41748f, -0.0471191f, 0.444336f,
+-0.0498047f, 0.464355f, -0.0524902f, 0.484375f, -0.0551758f, 0.493164f, -0.0571289f,
+0.521973f, -0.182129f, 0.556152f, -0.182129f, 0.542969f, 0, 0.0478516f, 0, 0.0742188f,
+0.133789f, 0.0742188f, -0.693848f, 0.296875f, -0.693848f, 0.296875f, -0.670898f,
+0.151855f, -0.650879f, 0.151855f, 0.0908203f, 0.296875f, 0.11084f, 0.296875f, 0.133789f,
+0, -0.65918f, 0.0478516f, -0.65918f, 0.277832f, 0.00976562f, 0.229004f, 0.00976562f,
+0.0361328f, 0.133789f, 0.0361328f, 0.11084f, 0.181152f, 0.0908203f, 0.181152f, -0.650879f,
+0.0361328f, -0.670898f, 0.0361328f, -0.693848f, 0.258789f, -0.693848f, 0.258789f,
+0.133789f, 0.223145f, -0.654785f, 0.24707f, -0.654785f, 0.456055f, -0.189941f, 0.405762f,
+-0.189941f, 0.234863f, -0.584961f, 0.0639648f, -0.189941f, 0.0141602f, -0.189941f,
+-0.0078125f, 0.128906f, -0.0078125f, 0.0791016f, 0.507812f, 0.0791016f, 0.507812f,
+0.128906f, 0.230957f, -0.546387f, 0.0581055f, -0.677246f, 0.0581055f, -0.695312f,
+0.162109f, -0.695312f, 0.257812f, -0.5625f, 0.257812f, -0.546387f, 0.227051f, -0.469238f,
+0.258301f, -0.469238f, 0.285156f, -0.463379f, 0.312012f, -0.45752f, 0.331543f, -0.443359f,
+0.351074f, -0.429199f, 0.362061f, -0.405029f, 0.373047f, -0.380859f, 0.373047f, -0.344238f,
+0.373047f, -0.0341797f, 0.430176f, -0.0219727f, 0.430176f, 0, 0.304199f, 0, 0.294922f,
+-0.0458984f, 0.287598f, -0.0385742f, 0.275146f, -0.0288086f, 0.262695f, -0.019043f,
+0.245117f, -0.010498f, 0.227539f, -0.00195312f, 0.204346f, 0.00390625f, 0.181152f,
+0.00976562f, 0.152832f, 0.00976562f, 0.119629f, 0.00976562f, 0.0969238f, -0.000488281f,
+0.0742188f, -0.0107422f, 0.0605469f, -0.0290527f, 0.046875f, -0.0473633f, 0.0410156f,
+-0.0725098f, 0.0351562f, -0.0976562f, 0.0351562f, -0.126953f, 0.0351562f, -0.157227f,
+0.0424805f, -0.179443f, 0.0498047f, -0.20166f, 0.0629883f, -0.216797f, 0.0761719f,
+-0.231934f, 0.0939941f, -0.241455f, 0.111816f, -0.250977f, 0.132568f, -0.256348f,
+0.15332f, -0.261719f, 0.176514f, -0.263672f, 0.199707f, -0.265625f, 0.223145f, -0.266113f,
+0.291992f, -0.268066f, 0.291992f, -0.339844f, 0.291992f, -0.360352f, 0.288574f, -0.377197f,
+0.285156f, -0.394043f, 0.2771f, -0.40625f, 0.269043f, -0.418457f, 0.255371f, -0.425293f,
+0.241699f, -0.432129f, 0.221191f, -0.432129f, 0.197754f, -0.432129f, 0.173828f, -0.425781f,
+0.149902f, -0.419434f, 0.131836f, -0.40918f, 0.115234f, -0.352051f, 0.0878906f, -0.352051f,
+0.0878906f, -0.452148f, 0.119629f, -0.458984f, 0.153564f, -0.464111f, 0.1875f, -0.469238f,
+0.227051f, -0.469238f, 0.291992f, -0.233887f, 0.228027f, -0.231934f, 0.199219f, -0.230957f,
+0.178223f, -0.226318f, 0.157227f, -0.22168f, 0.143555f, -0.210449f, 0.129883f, -0.199219f,
+0.123047f, -0.179688f, 0.116211f, -0.160156f, 0.116211f, -0.129883f, 0.116211f, -0.0439453f,
+0.186035f, -0.0439453f, 0.219238f, -0.0439453f, 0.243408f, -0.0515137f, 0.267578f,
+-0.059082f, 0.291992f, -0.0708008f, 0.374023f, -0.242188f, 0.374023f, -0.291992f,
+0.36499f, -0.325928f, 0.355957f, -0.359863f, 0.339111f, -0.380859f, 0.322266f, -0.401855f,
+0.298584f, -0.410889f, 0.274902f, -0.419922f, 0.246094f, -0.419922f, 0.234375f, -0.419922f,
+0.220947f, -0.418945f, 0.20752f, -0.417969f, 0.194336f, -0.415771f, 0.181152f, -0.413574f,
+0.168945f, -0.410645f, 0.156738f, -0.407715f, 0.147949f, -0.403809f, 0.147949f, -0.0400391f,
+0.168457f, -0.0361328f, 0.194824f, -0.0341797f, 0.221191f, -0.0322266f, 0.246094f,
+-0.0322266f, 0.313477f, -0.0322266f, 0.34375f, -0.0849609f, 0.374023f, -0.137695f,
+0.374023f, -0.242188f, 0.0668945f, -0.660156f, 0, -0.671875f, 0, -0.693848f, 0.147949f,
+-0.693848f, 0.147949f, -0.529785f, 0.147949f, -0.520508f, 0.147705f, -0.508545f,
+0.147461f, -0.496582f, 0.147217f, -0.483643f, 0.146973f, -0.470703f, 0.14624f, -0.457764f,
+0.145508f, -0.444824f, 0.14502f, -0.433105f, 0.166992f, -0.450195f, 0.198486f, -0.460693f,
+0.22998f, -0.471191f, 0.268066f, -0.471191f, 0.361816f, -0.471191f, 0.411865f, -0.414307f,
+0.461914f, -0.357422f, 0.461914f, -0.242188f, 0.461914f, -0.184082f, 0.449219f, -0.137451f,
+0.436523f, -0.0908203f, 0.410156f, -0.0581055f, 0.383789f, -0.0253906f, 0.343506f,
+-0.0078125f, 0.303223f, 0.00976562f, 0.248047f, 0.00976562f, 0.224609f, 0.00976562f,
+0.200439f, 0.00708008f, 0.17627f, 0.00439453f, 0.152832f, 0, 0.129395f, -0.00439453f,
+0.107422f, -0.010498f, 0.0854492f, -0.0166016f, 0.0668945f, -0.0239258f, 0.413086f,
+-0.027832f, 0.400391f, -0.0185547f, 0.382812f, -0.0114746f, 0.365234f, -0.00439453f,
+0.345215f, 0.000244141f, 0.325195f, 0.00488281f, 0.303467f, 0.00732422f, 0.281738f,
+0.00976562f, 0.26123f, 0.00976562f, 0.20166f, 0.00976562f, 0.159424f, -0.0065918f,
+0.117188f, -0.0229492f, 0.090332f, -0.0541992f, 0.0634766f, -0.0854492f, 0.0507812f,
+-0.130615f, 0.0380859f, -0.175781f, 0.0380859f, -0.23291f, 0.0380859f, -0.29541f,
+0.0544434f, -0.340576f, 0.0708008f, -0.385742f, 0.100098f, -0.414795f, 0.129395f,
+-0.443848f, 0.169678f, -0.45752f, 0.209961f, -0.471191f, 0.257812f, -0.471191f, 0.297363f,
+-0.471191f, 0.334473f, -0.466553f, 0.371582f, -0.461914f, 0.401855f, -0.456055f,
+0.401855f, -0.328125f, 0.375f, -0.328125f, 0.354004f, -0.40918f, 0.335938f, -0.419434f,
+0.310303f, -0.425781f, 0.284668f, -0.432129f, 0.256836f, -0.432129f, 0.225098f, -0.432129f,
+0.200928f, -0.420654f, 0.176758f, -0.40918f, 0.159912f, -0.384766f, 0.143066f, -0.360352f,
+0.134521f, -0.322754f, 0.125977f, -0.285156f, 0.125977f, -0.23291f, 0.125977f, -0.188965f,
+0.133301f, -0.153564f, 0.140625f, -0.118164f, 0.15918f, -0.0932617f, 0.177734f, -0.0683594f,
+0.209229f, -0.0546875f, 0.240723f, -0.0410156f, 0.289062f, -0.0410156f, 0.305664f,
+-0.0410156f, 0.322998f, -0.0422363f, 0.340332f, -0.043457f, 0.356689f, -0.0456543f,
+0.373047f, -0.0478516f, 0.387451f, -0.0507812f, 0.401855f, -0.0537109f, 0.413086f,
+-0.0571289f, 0.353027f, -0.0341797f, 0.331543f, -0.0170898f, 0.299561f, -0.00366211f,
+0.267578f, 0.00976562f, 0.224121f, 0.00976562f, 0.0361328f, 0.00976562f, 0.0361328f,
+-0.225098f, 0.0361328f, -0.282227f, 0.048584f, -0.327881f, 0.0610352f, -0.373535f,
+0.0869141f, -0.405518f, 0.112793f, -0.4375f, 0.152344f, -0.454346f, 0.191895f, -0.471191f,
+0.246094f, -0.471191f, 0.270996f, -0.471191f, 0.299072f, -0.468262f, 0.327148f, -0.465332f,
+0.353027f, -0.459961f, 0.352051f, -0.465332f, 0.351562f, -0.47583f, 0.351074f, -0.486328f,
+0.35083f, -0.498291f, 0.350586f, -0.510254f, 0.350342f, -0.521973f, 0.350098f, -0.533691f,
+0.350098f, -0.541016f, 0.350098f, -0.660156f, 0.272949f, -0.671875f, 0.272949f, -0.693848f,
+0.431152f, -0.693848f, 0.431152f, -0.0341797f, 0.487793f, -0.0219727f, 0.487793f,
+0, 0.358887f, 0, 0.124023f, -0.225098f, 0.124023f, -0.173828f, 0.133057f, -0.138672f,
+0.14209f, -0.103516f, 0.158691f, -0.0817871f, 0.175293f, -0.0600586f, 0.19873f, -0.0505371f,
+0.222168f, -0.0410156f, 0.250977f, -0.0410156f, 0.280273f, -0.0410156f, 0.306152f,
+-0.0466309f, 0.332031f, -0.0522461f, 0.350098f, -0.0600586f, 0.350098f, -0.422852f,
+0.32959f, -0.426758f, 0.302734f, -0.428955f, 0.275879f, -0.431152f, 0.250977f, -0.431152f,
+0.186035f, -0.431152f, 0.155029f, -0.378906f, 0.124023f, -0.32666f, 0.124023f, -0.225098f,
+0.126953f, -0.230957f, 0.126953f, -0.222168f, 0.126953f, -0.186523f, 0.13208f, -0.153809f,
+0.137207f, -0.121094f, 0.152588f, -0.0959473f, 0.167969f, -0.0708008f, 0.195801f,
+-0.0559082f, 0.223633f, -0.0410156f, 0.269043f, -0.0410156f, 0.283691f, -0.0410156f,
+0.299805f, -0.0422363f, 0.315918f, -0.043457f, 0.332031f, -0.0454102f, 0.348145f,
+-0.0473633f, 0.363281f, -0.0498047f, 0.378418f, -0.0522461f, 0.391113f, -0.0551758f,
+0.391113f, -0.027832f, 0.379883f, -0.0205078f, 0.364014f, -0.013916f, 0.348145f,
+-0.00732422f, 0.329102f, -0.00195312f, 0.310059f, 0.00341797f, 0.288574f, 0.0065918f,
+0.26709f, 0.00976562f, 0.245117f, 0.00976562f, 0.187988f, 0.00976562f, 0.148682f,
+-0.00585938f, 0.109375f, -0.0214844f, 0.0849609f, -0.0522461f, 0.0605469f, -0.0830078f,
+0.0498047f, -0.128418f, 0.0390625f, -0.173828f, 0.0390625f, -0.23291f, 0.0390625f,
+-0.353027f, 0.0893555f, -0.412109f, 0.139648f, -0.471191f, 0.23291f, -0.471191f,
+0.269531f, -0.471191f, 0.301514f, -0.461426f, 0.333496f, -0.45166f, 0.357422f, -0.428711f,
+0.381348f, -0.405762f, 0.395264f, -0.367188f, 0.40918f, -0.328613f, 0.40918f, -0.270996f,
+0.40918f, -0.230957f, 0.23291f, -0.432129f, 0.205566f, -0.432129f, 0.185791f, -0.420654f,
+0.166016f, -0.40918f, 0.153076f, -0.388184f, 0.140137f, -0.367188f, 0.134033f, -0.337158f,
+0.12793f, -0.307129f, 0.12793f, -0.27002f, 0.324219f, -0.27002f, 0.324219f, -0.307129f,
+0.320068f, -0.337158f, 0.315918f, -0.367188f, 0.30542f, -0.388184f, 0.294922f, -0.40918f,
+0.277344f, -0.420654f, 0.259766f, -0.432129f, 0.23291f, -0.432129f, 0.109863f, -0.417969f,
+0.0307617f, -0.417969f, 0.0307617f, -0.441895f, 0.109863f, -0.460938f, 0.109863f,
+-0.493164f, 0.109863f, -0.544922f, 0.120361f, -0.584229f, 0.130859f, -0.623535f,
+0.150635f, -0.650146f, 0.17041f, -0.676758f, 0.198975f, -0.69043f, 0.227539f, -0.704102f,
+0.263184f, -0.704102f, 0.285156f, -0.704102f, 0.302246f, -0.701416f, 0.319336f, -0.69873f,
+0.333008f, -0.694824f, 0.333008f, -0.594727f, 0.309082f, -0.594727f, 0.287109f, -0.654785f,
+0.279297f, -0.659668f, 0.27002f, -0.662354f, 0.260742f, -0.665039f, 0.24707f, -0.665039f,
+0.22998f, -0.665039f, 0.219238f, -0.657471f, 0.208496f, -0.649902f, 0.202148f, -0.634033f,
+0.195801f, -0.618164f, 0.193359f, -0.59375f, 0.190918f, -0.569336f, 0.190918f, -0.535156f,
+0.190918f, -0.458984f, 0.312988f, -0.458984f, 0.312988f, -0.417969f, 0.190918f, -0.417969f,
+0.190918f, -0.0380859f, 0.290039f, -0.0219727f, 0.290039f, 0, 0.0419922f, 0, 0.0419922f,
+-0.0219727f, 0.109863f, -0.0380859f, 0.424805f, -0.313965f, 0.424805f, -0.234863f,
+0.377441f, -0.194336f, 0.330078f, -0.153809f, 0.241211f, -0.153809f, 0.221191f, -0.153809f,
+0.200928f, -0.156006f, 0.180664f, -0.158203f, 0.166992f, -0.161133f, 0.13623f, -0.097168f,
+0.137695f, -0.0888672f, 0.155273f, -0.081543f, 0.172852f, -0.0742188f, 0.199219f,
+-0.0742188f, 0.334961f, -0.0742188f, 0.40918f, -0.0742188f, 0.445068f, -0.0419922f,
+0.480957f, -0.00976562f, 0.480957f, 0.046875f, 0.480957f, 0.0786133f, 0.468018f,
+0.109131f, 0.455078f, 0.139648f, 0.426025f, 0.16333f, 0.396973f, 0.187012f, 0.350098f,
+0.201416f, 0.303223f, 0.21582f, 0.234863f, 0.21582f, 0.182617f, 0.21582f, 0.145996f,
+0.207275f, 0.109375f, 0.19873f, 0.0864258f, 0.183594f, 0.0634766f, 0.168457f, 0.0532227f,
+0.148438f, 0.0429688f, 0.128418f, 0.0429688f, 0.10498f, 0.0429688f, 0.0888672f, 0.0490723f,
+0.0744629f, 0.0551758f, 0.0600586f, 0.0661621f, 0.0466309f, 0.0771484f, 0.0332031f,
+0.0922852f, 0.0205078f, 0.107422f, 0.0078125f, 0.125f, -0.00488281f, 0.116211f, -0.0078125f,
+0.104736f, -0.0144043f, 0.0932617f, -0.0209961f, 0.0830078f, -0.03125f, 0.0727539f,
+-0.0415039f, 0.065918f, -0.0549316f, 0.059082f, -0.0683594f, 0.059082f, -0.0849609f,
+0.13623f, -0.171875f, 0.059082f, -0.208008f, 0.059082f, -0.313965f, 0.059082f, -0.352539f,
+0.0717773f, -0.38208f, 0.0844727f, -0.411621f, 0.108154f, -0.431396f, 0.131836f,
+-0.451172f, 0.166504f, -0.461182f, 0.201172f, -0.471191f, 0.245117f, -0.471191f,
+0.258789f, -0.471191f, 0.272949f, -0.469727f, 0.287109f, -0.468262f, 0.299561f, -0.466553f,
+0.312012f, -0.464844f, 0.321289f, -0.462646f, 0.330566f, -0.460449f, 0.334961f, -0.458984f,
+0.442871f, -0.513184f, 0.459961f, -0.492188f, 0.39209f, -0.421875f, 0.408691f, -0.40332f,
+0.416748f, -0.375244f, 0.424805f, -0.347168f, 0.424805f, -0.313965f, 0.404785f, 0.0620117f,
+0.404785f, 0.0341797f, 0.387695f, 0.0185547f, 0.370605f, 0.00292969f, 0.335938f,
+0.00292969f, 0.158203f, 0.00292969f, 0.147949f, 0.0117188f, 0.139404f, 0.0231934f,
+0.130859f, 0.034668f, 0.124756f, 0.0473633f, 0.118652f, 0.0600586f, 0.115234f, 0.072998f,
+0.111816f, 0.0859375f, 0.111816f, 0.0981445f, 0.111816f, 0.115723f, 0.117432f, 0.130127f,
+0.123047f, 0.144531f, 0.136963f, 0.154785f, 0.150879f, 0.165039f, 0.174805f, 0.170898f,
+0.19873f, 0.176758f, 0.234863f, 0.176758f, 0.278809f, 0.176758f, 0.310791f, 0.168213f,
+0.342773f, 0.159668f, 0.36377f, 0.144287f, 0.384766f, 0.128906f, 0.394775f, 0.10791f,
+0.404785f, 0.0869141f, 0.404785f, 0.0620117f, 0.242188f, -0.190918f, 0.29541f, -0.190918f,
+0.317627f, -0.221436f, 0.339844f, -0.251953f, 0.339844f, -0.313965f, 0.339844f, -0.344727f,
+0.334717f, -0.367432f, 0.32959f, -0.390137f, 0.318115f, -0.404785f, 0.306641f, -0.419434f,
+0.288086f, -0.426758f, 0.269531f, -0.434082f, 0.243164f, -0.434082f, 0.216309f, -0.434082f,
+0.19751f, -0.426758f, 0.178711f, -0.419434f, 0.166748f, -0.404785f, 0.154785f, -0.390137f,
+0.149414f, -0.367432f, 0.144043f, -0.344727f, 0.144043f, -0.313965f, 0.144043f, -0.283203f,
+0.149414f, -0.26001f, 0.154785f, -0.236816f, 0.166504f, -0.221436f, 0.178223f, -0.206055f,
+0.196777f, -0.198486f, 0.215332f, -0.190918f, 0.242188f, -0.190918f, 0.15918f, -0.495117f,
+0.15918f, -0.488281f, 0.158936f, -0.478516f, 0.158691f, -0.46875f, 0.158447f, -0.458252f,
+0.158203f, -0.447754f, 0.157471f, -0.437988f, 0.156738f, -0.428223f, 0.155762f, -0.421875f,
+0.169434f, -0.429688f, 0.188965f, -0.438477f, 0.208496f, -0.447266f, 0.229736f, -0.45459f,
+0.250977f, -0.461914f, 0.272217f, -0.466553f, 0.293457f, -0.471191f, 0.311035f, -0.471191f,
+0.337402f, -0.471191f, 0.359375f, -0.463867f, 0.381348f, -0.456543f, 0.397217f, -0.44043f,
+0.413086f, -0.424316f, 0.422119f, -0.398438f, 0.431152f, -0.372559f, 0.431152f, -0.335938f,
+0.431152f, -0.0341797f, 0.486816f, -0.0219727f, 0.486816f, 0, 0.289062f, 0, 0.289062f,
+-0.0219727f, 0.350098f, -0.0341797f, 0.350098f, -0.330078f, 0.350098f, -0.370605f,
+0.330322f, -0.392334f, 0.310547f, -0.414062f, 0.269043f, -0.414062f, 0.255371f, -0.414062f,
+0.23999f, -0.412598f, 0.224609f, -0.411133f, 0.209473f, -0.40918f, 0.194336f, -0.407227f,
+0.181152f, -0.404541f, 0.167969f, -0.401855f, 0.15918f, -0.399902f, 0.15918f, -0.0341797f,
+0.221191f, -0.0219727f, 0.221191f, 0, 0.0200195f, 0, 0.0200195f, -0.0219727f, 0.078125f,
+-0.0341797f, 0.078125f, -0.660156f, 0.00976562f, -0.671875f, 0.00976562f, -0.693848f,
+0.15918f, -0.693848f, 0.185059f, -0.608887f, 0.185059f, -0.598145f, 0.180908f, -0.588623f,
+0.176758f, -0.579102f, 0.169434f, -0.571777f, 0.162109f, -0.564453f, 0.152344f, -0.560303f,
+0.142578f, -0.556152f, 0.131836f, -0.556152f, 0.121094f, -0.556152f, 0.111572f, -0.560303f,
+0.102051f, -0.564453f, 0.0947266f, -0.571777f, 0.0874023f, -0.579102f, 0.083252f,
+-0.588623f, 0.0791016f, -0.598145f, 0.0791016f, -0.608887f, 0.0791016f, -0.619629f,
+0.083252f, -0.629395f, 0.0874023f, -0.63916f, 0.0947266f, -0.646484f, 0.102051f,
+-0.653809f, 0.111572f, -0.657959f, 0.121094f, -0.662109f, 0.131836f, -0.662109f,
+0.142578f, -0.662109f, 0.152344f, -0.657959f, 0.162109f, -0.653809f, 0.169434f, -0.646484f,
+0.176758f, -0.63916f, 0.180908f, -0.629395f, 0.185059f, -0.619629f, 0.185059f, -0.608887f,
+0.180176f, -0.0341797f, 0.258789f, -0.0219727f, 0.258789f, 0, 0.0209961f, 0, 0.0209961f,
+-0.0219727f, 0.0991211f, -0.0341797f, 0.0991211f, -0.424805f, 0.0341797f, -0.437012f,
+0.0341797f, -0.458984f, 0.180176f, -0.458984f, 0.191895f, -0.608887f, 0.191895f,
+-0.598145f, 0.187744f, -0.588623f, 0.183594f, -0.579102f, 0.17627f, -0.571777f, 0.168945f,
+-0.564453f, 0.159424f, -0.560303f, 0.149902f, -0.556152f, 0.13916f, -0.556152f, 0.12793f,
+-0.556152f, 0.118408f, -0.560303f, 0.108887f, -0.564453f, 0.101562f, -0.571777f,
+0.0942383f, -0.579102f, 0.0900879f, -0.588623f, 0.0859375f, -0.598145f, 0.0859375f,
+-0.608887f, 0.0859375f, -0.619629f, 0.0900879f, -0.629395f, 0.0942383f, -0.63916f,
+0.101562f, -0.646484f, 0.108887f, -0.653809f, 0.118408f, -0.657959f, 0.12793f, -0.662109f,
+0.13916f, -0.662109f, 0.149902f, -0.662109f, 0.159424f, -0.657959f, 0.168945f, -0.653809f,
+0.17627f, -0.646484f, 0.183594f, -0.63916f, 0.187744f, -0.629395f, 0.191895f, -0.619629f,
+0.191895f, -0.608887f, 0.187012f, 0.019043f, 0.187012f, 0.0708008f, 0.176514f, 0.107666f,
+0.166016f, 0.144531f, 0.146729f, 0.167969f, 0.127441f, 0.191406f, 0.10083f, 0.202148f,
+0.0742188f, 0.212891f, 0.0419922f, 0.212891f, 0.0205078f, 0.212891f, 0.00488281f,
+0.210449f, -0.0107422f, 0.208008f, -0.0288086f, 0.204102f, -0.0288086f, 0.106934f,
+-0.00585938f, 0.106934f, 0.00732422f, 0.160156f, 0.0234375f, 0.173828f, 0.0478516f,
+0.173828f, 0.0766602f, 0.173828f, 0.0913086f, 0.143066f, 0.105957f, 0.112305f, 0.105957f,
+0.0439453f, 0.105957f, -0.424805f, 0.0371094f, -0.437012f, 0.0371094f, -0.458984f,
+0.187012f, -0.458984f, 0.167969f, -0.221191f, 0.355957f, -0.423828f, 0.308105f, -0.437012f,
+0.308105f, -0.458984f, 0.470215f, -0.458984f, 0.470215f, -0.437012f, 0.413086f, -0.425781f,
+0.282227f, -0.291992f, 0.450195f, -0.0332031f, 0.5f, -0.0219727f, 0.5f, 0, 0.312012f,
+0, 0.312012f, -0.0219727f, 0.354004f, -0.0341797f, 0.228027f, -0.231934f, 0.167969f,
+-0.166016f, 0.167969f, -0.0341797f, 0.216797f, -0.0219727f, 0.216797f, 0, 0.0288086f,
+0, 0.0288086f, -0.0219727f, 0.0869141f, -0.0341797f, 0.0869141f, -0.660156f, 0.019043f,
+-0.671875f, 0.019043f, -0.693848f, 0.167969f, -0.693848f, 0.179199f, -0.0341797f,
+0.257812f, -0.0219727f, 0.257812f, 0, 0.0200195f, 0, 0.0200195f, -0.0219727f, 0.0981445f,
+-0.0341797f, 0.0981445f, -0.660156f, 0.0200195f, -0.671875f, 0.0200195f, -0.693848f,
+0.179199f, -0.693848f, 0.15918f, -0.421875f, 0.172852f, -0.429688f, 0.19165f, -0.438477f,
+0.210449f, -0.447266f, 0.230469f, -0.45459f, 0.250488f, -0.461914f, 0.270996f, -0.466553f,
+0.291504f, -0.471191f, 0.309082f, -0.471191f, 0.342773f, -0.471191f, 0.371338f, -0.458496f,
+0.399902f, -0.445801f, 0.414062f, -0.417969f, 0.429688f, -0.426758f, 0.45166f, -0.436279f,
+0.473633f, -0.445801f, 0.497314f, -0.453613f, 0.520996f, -0.461426f, 0.544189f, -0.466309f,
+0.567383f, -0.471191f, 0.585938f, -0.471191f, 0.612305f, -0.471191f, 0.633789f, -0.463867f,
+0.655273f, -0.456543f, 0.670654f, -0.44043f, 0.686035f, -0.424316f, 0.69458f, -0.398438f,
+0.703125f, -0.372559f, 0.703125f, -0.335938f, 0.703125f, -0.0341797f, 0.762207f,
+-0.0219727f, 0.762207f, 0, 0.553711f, 0, 0.553711f, -0.0219727f, 0.62207f, -0.0341797f,
+0.62207f, -0.327148f, 0.62207f, -0.367676f, 0.60376f, -0.389404f, 0.585449f, -0.411133f,
+0.543945f, -0.411133f, 0.53125f, -0.411133f, 0.514404f, -0.40918f, 0.497559f, -0.407227f,
+0.480713f, -0.404785f, 0.463867f, -0.402344f, 0.448486f, -0.39917f, 0.433105f, -0.395996f,
+0.422852f, -0.394043f, 0.431152f, -0.367676f, 0.431152f, -0.335938f, 0.431152f, -0.0341797f,
+0.5f, -0.0219727f, 0.5f, 0, 0.282227f, 0, 0.282227f, -0.0219727f, 0.350098f, -0.0341797f,
+0.350098f, -0.327148f, 0.350098f, -0.367676f, 0.329346f, -0.389404f, 0.308594f, -0.411133f,
+0.26709f, -0.411133f, 0.253418f, -0.411133f, 0.238525f, -0.409668f, 0.223633f, -0.408203f,
+0.209229f, -0.40625f, 0.194824f, -0.404297f, 0.181885f, -0.401611f, 0.168945f, -0.398926f,
+0.160156f, -0.396973f, 0.160156f, -0.0341797f, 0.229004f, -0.0219727f, 0.229004f,
+0, 0.0209961f, 0, 0.0209961f, -0.0219727f, 0.0791016f, -0.0341797f, 0.0791016f, -0.424805f,
+0.0209961f, -0.437012f, 0.0209961f, -0.458984f, 0.155273f, -0.458984f, 0.158203f,
+-0.421875f, 0.171875f, -0.429688f, 0.190674f, -0.438477f, 0.209473f, -0.447266f,
+0.22998f, -0.45459f, 0.250488f, -0.461914f, 0.270996f, -0.466553f, 0.291504f, -0.471191f,
+0.309082f, -0.471191f, 0.335449f, -0.471191f, 0.357422f, -0.463867f, 0.379395f, -0.456543f,
+0.395264f, -0.44043f, 0.411133f, -0.424316f, 0.420166f, -0.398438f, 0.429199f, -0.372559f,
+0.429199f, -0.335938f, 0.429199f, -0.0341797f, 0.484863f, -0.0219727f, 0.484863f,
+0, 0.287109f, 0, 0.287109f, -0.0219727f, 0.348145f, -0.0341797f, 0.348145f, -0.327148f,
+0.348145f, -0.367676f, 0.328369f, -0.390869f, 0.308594f, -0.414062f, 0.26709f, -0.414062f,
+0.253418f, -0.414062f, 0.238281f, -0.412598f, 0.223145f, -0.411133f, 0.208496f, -0.40918f,
+0.193848f, -0.407227f, 0.180908f, -0.404541f, 0.167969f, -0.401855f, 0.15918f, -0.399902f,
+0.15918f, -0.0341797f, 0.221191f, -0.0219727f, 0.221191f, 0, 0.0229492f, 0, 0.0229492f,
+-0.0219727f, 0.078125f, -0.0341797f, 0.078125f, -0.424805f, 0.0229492f, -0.437012f,
+0.0229492f, -0.458984f, 0.153809f, -0.458984f, 0.461914f, -0.231934f, 0.461914f,
+-0.115234f, 0.409668f, -0.0527344f, 0.357422f, 0.00976562f, 0.24707f, 0.00976562f,
+0.143555f, 0.00976562f, 0.0908203f, -0.0522461f, 0.0380859f, -0.114258f, 0.0380859f,
+-0.231934f, 0.0380859f, -0.348145f, 0.0908203f, -0.409668f, 0.143555f, -0.471191f,
+0.250977f, -0.471191f, 0.355469f, -0.471191f, 0.408691f, -0.410889f, 0.461914f, -0.350586f,
+0.461914f, -0.231934f, 0.374023f, -0.231934f, 0.374023f, -0.279297f, 0.367676f, -0.31665f,
+0.361328f, -0.354004f, 0.346436f, -0.379639f, 0.331543f, -0.405273f, 0.307129f, -0.418701f,
+0.282715f, -0.432129f, 0.24707f, -0.432129f, 0.210938f, -0.432129f, 0.1875f, -0.418701f,
+0.164062f, -0.405273f, 0.150391f, -0.379639f, 0.136719f, -0.354004f, 0.131348f, -0.31665f,
+0.125977f, -0.279297f, 0.125977f, -0.231934f, 0.125977f, -0.184082f, 0.131348f, -0.146484f,
+0.136719f, -0.108887f, 0.150391f, -0.0827637f, 0.164062f, -0.0566406f, 0.1875f, -0.0427246f,
+0.210938f, -0.0288086f, 0.24707f, -0.0288086f, 0.282715f, -0.0288086f, 0.307129f,
+-0.0427246f, 0.331543f, -0.0566406f, 0.346436f, -0.0827637f, 0.361328f, -0.108887f,
+0.367676f, -0.146484f, 0.374023f, -0.184082f, 0.374023f, -0.231934f, 0.0742188f,
+-0.424805f, 0.0219727f, -0.437012f, 0.0219727f, -0.458984f, 0.150879f, -0.458984f,
+0.151855f, -0.432129f, 0.162109f, -0.440918f, 0.176025f, -0.447998f, 0.189941f, -0.455078f,
+0.206055f, -0.460205f, 0.222168f, -0.465332f, 0.240234f, -0.468262f, 0.258301f, -0.471191f,
+0.276855f, -0.471191f, 0.319824f, -0.471191f, 0.354004f, -0.456055f, 0.388184f, -0.440918f,
+0.412109f, -0.410889f, 0.436035f, -0.380859f, 0.448486f, -0.33667f, 0.460938f, -0.29248f,
+0.460938f, -0.234863f, 0.460938f, -0.178711f, 0.448242f, -0.133545f, 0.435547f, -0.0883789f,
+0.410156f, -0.0563965f, 0.384766f, -0.0244141f, 0.346436f, -0.00732422f, 0.308105f,
+0.00976562f, 0.256836f, 0.00976562f, 0.231934f, 0.00976562f, 0.204346f, 0.00708008f,
+0.176758f, 0.00439453f, 0.151855f, -0.000976562f, 0.152344f, 0.00488281f, 0.153076f,
+0.0124512f, 0.153809f, 0.0200195f, 0.154053f, 0.0280762f, 0.154297f, 0.0361328f,
+0.154541f, 0.0429688f, 0.154785f, 0.0498047f, 0.154785f, 0.0541992f, 0.154785f, 0.178223f,
+0.234863f, 0.189941f, 0.234863f, 0.212891f, 0.0161133f, 0.212891f, 0.0161133f, 0.189941f,
+0.0742188f, 0.178223f, 0.373047f, -0.234863f, 0.373047f, -0.284668f, 0.364746f, -0.319824f,
+0.356445f, -0.35498f, 0.340576f, -0.377197f, 0.324707f, -0.399414f, 0.301758f, -0.409668f,
+0.278809f, -0.419922f, 0.25f, -0.419922f, 0.226562f, -0.419922f, 0.199951f, -0.415771f,
+0.17334f, -0.411621f, 0.154785f, -0.403809f, 0.154785f, -0.0371094f, 0.175293f, -0.0332031f,
+0.200195f, -0.0310059f, 0.225098f, -0.0288086f, 0.25f, -0.0288086f, 0.314453f, -0.0288086f,
+0.34375f, -0.0822754f, 0.373047f, -0.135742f, 0.373047f, -0.234863f, 0.396973f, -0.480957f,
+0.431152f, -0.480957f, 0.431152f, 0.178223f, 0.481934f, 0.189941f, 0.481934f, 0.212891f,
+0.287109f, 0.212891f, 0.287109f, 0.189941f, 0.350098f, 0.178223f, 0.350098f, 0.0507812f,
+0.350098f, 0.0322266f, 0.351074f, 0.0109863f, 0.352051f, -0.0102539f, 0.35498f, -0.0307617f,
+0.333008f, -0.0136719f, 0.300537f, -0.00195312f, 0.268066f, 0.00976562f, 0.224121f,
+0.00976562f, 0.12793f, 0.00976562f, 0.0820312f, -0.0515137f, 0.0361328f, -0.112793f,
+0.0361328f, -0.228027f, 0.0361328f, -0.28418f, 0.0488281f, -0.329346f, 0.0615234f,
+-0.374512f, 0.0871582f, -0.406006f, 0.112793f, -0.4375f, 0.1521f, -0.454346f, 0.191406f,
+-0.471191f, 0.244141f, -0.471191f, 0.269043f, -0.471191f, 0.298096f, -0.468262f,
+0.327148f, -0.465332f, 0.353027f, -0.459961f, 0.124023f, -0.228027f, 0.124023f, -0.178223f,
+0.132568f, -0.142822f, 0.141113f, -0.107422f, 0.157227f, -0.0847168f, 0.17334f, -0.0620117f,
+0.197021f, -0.0515137f, 0.220703f, -0.0410156f, 0.250977f, -0.0410156f, 0.262695f,
+-0.0410156f, 0.276367f, -0.0419922f, 0.290039f, -0.0429688f, 0.303467f, -0.045166f,
+0.316895f, -0.0473633f, 0.329102f, -0.050293f, 0.341309f, -0.0532227f, 0.350098f,
+-0.0571289f, 0.350098f, -0.422852f, 0.32959f, -0.426758f, 0.302734f, -0.428955f,
+0.275879f, -0.431152f, 0.250977f, -0.431152f, 0.186523f, -0.431152f, 0.155273f, -0.378906f,
+0.124023f, -0.32666f, 0.124023f, -0.228027f, 0.324219f, -0.471191f, 0.324219f, -0.347168f,
+0.303223f, -0.347168f, 0.274902f, -0.400879f, 0.26123f, -0.400879f, 0.245605f, -0.398926f,
+0.22998f, -0.396973f, 0.214355f, -0.393799f, 0.19873f, -0.390625f, 0.184326f, -0.38623f,
+0.169922f, -0.381836f, 0.15918f, -0.376953f, 0.15918f, -0.0341797f, 0.237793f, -0.0219727f,
+0.237793f, 0, 0.0200195f, 0, 0.0200195f, -0.0219727f, 0.078125f, -0.0341797f, 0.078125f,
+-0.424805f, 0.0200195f, -0.437012f, 0.0200195f, -0.458984f, 0.153809f, -0.458984f,
+0.158203f, -0.401855f, 0.169434f, -0.411133f, 0.188965f, -0.423096f, 0.208496f, -0.435059f,
+0.231201f, -0.445801f, 0.253906f, -0.456543f, 0.276611f, -0.463867f, 0.299316f, -0.471191f,
+0.316895f, -0.471191f, 0.353027f, -0.128906f, 0.353027f, -0.0981445f, 0.343506f,
+-0.0725098f, 0.333984f, -0.046875f, 0.313477f, -0.0285645f, 0.292969f, -0.0102539f,
+0.260498f, -0.000244141f, 0.228027f, 0.00976562f, 0.182129f, 0.00976562f, 0.15918f,
+0.00976562f, 0.136963f, 0.00708008f, 0.114746f, 0.00439453f, 0.0957031f, 0.000732422f,
+0.0766602f, -0.00292969f, 0.0625f, -0.00683594f, 0.0483398f, -0.0107422f, 0.0419922f,
+-0.0131836f, 0.0419922f, -0.125977f, 0.0639648f, -0.125977f, 0.0878906f, -0.0620117f,
+0.103027f, -0.0483398f, 0.126953f, -0.0385742f, 0.150879f, -0.0288086f, 0.183105f,
+-0.0288086f, 0.228516f, -0.0288086f, 0.253174f, -0.048584f, 0.277832f, -0.0683594f,
+0.277832f, -0.109863f, 0.277832f, -0.134277f, 0.267578f, -0.150146f, 0.257324f, -0.166016f,
+0.240723f, -0.176758f, 0.224121f, -0.1875f, 0.202881f, -0.19458f, 0.181641f, -0.20166f,
+0.159424f, -0.208984f, 0.137207f, -0.216309f, 0.115967f, -0.225586f, 0.0947266f,
+-0.234863f, 0.078125f, -0.249512f, 0.0615234f, -0.26416f, 0.0512695f, -0.286133f,
+0.0410156f, -0.308105f, 0.0410156f, -0.34082f, 0.0410156f, -0.37207f, 0.0522461f,
+-0.396484f, 0.0634766f, -0.420898f, 0.0837402f, -0.4375f, 0.104004f, -0.454102f,
+0.13208f, -0.462646f, 0.160156f, -0.471191f, 0.193848f, -0.471191f, 0.227051f, -0.471191f,
+0.258789f, -0.466553f, 0.290527f, -0.461914f, 0.319824f, -0.456055f, 0.319824f, -0.355957f,
+0.296875f, -0.355957f, 0.276367f, -0.40918f, 0.263672f, -0.42041f, 0.241699f, -0.42627f,
+0.219727f, -0.432129f, 0.194824f, -0.432129f, 0.155273f, -0.432129f, 0.134521f, -0.412598f,
+0.11377f, -0.393066f, 0.11377f, -0.359863f, 0.11377f, -0.337402f, 0.124023f, -0.322998f,
+0.134277f, -0.308594f, 0.151123f, -0.298584f, 0.167969f, -0.288574f, 0.189453f, -0.28125f,
+0.210938f, -0.273926f, 0.233398f, -0.266113f, 0.255859f, -0.258301f, 0.277344f, -0.248291f,
+0.298828f, -0.238281f, 0.315674f, -0.222656f, 0.33252f, -0.207031f, 0.342773f, -0.18457f,
+0.353027f, -0.162109f, 0.353027f, -0.128906f, 0.163086f, 0.00976562f, 0.116211f,
+0.00976562f, 0.0930176f, -0.0180664f, 0.0698242f, -0.0458984f, 0.0698242f, -0.0961914f,
+0.0698242f, -0.417969f, 0.00976562f, -0.417969f, 0.00976562f, -0.439941f, 0.0708008f,
+-0.458984f, 0.120117f, -0.562988f, 0.150879f, -0.562988f, 0.150879f, -0.458984f,
+0.255859f, -0.458984f, 0.255859f, -0.417969f, 0.150879f, -0.417969f, 0.150879f, -0.10498f,
+0.150879f, -0.0732422f, 0.165283f, -0.0571289f, 0.179688f, -0.0410156f, 0.203125f,
+-0.0410156f, 0.221191f, -0.0410156f, 0.239014f, -0.043457f, 0.256836f, -0.0458984f,
+0.271973f, -0.0488281f, 0.271973f, -0.0170898f, 0.264648f, -0.012207f, 0.252686f,
+-0.00732422f, 0.240723f, -0.00244141f, 0.226318f, 0.0012207f, 0.211914f, 0.00488281f,
+0.195801f, 0.00732422f, 0.179688f, 0.00976562f, 0.163086f, 0.00976562f, 0.152832f,
+-0.130859f, 0.152832f, -0.090332f, 0.171143f, -0.0686035f, 0.189453f, -0.046875f,
+0.230957f, -0.046875f, 0.258301f, -0.046875f, 0.287598f, -0.0505371f, 0.316895f,
+-0.0541992f, 0.344238f, -0.0620117f, 0.344238f, -0.424805f, 0.274902f, -0.437012f,
+0.274902f, -0.458984f, 0.424805f, -0.458984f, 0.424805f, -0.0341797f, 0.48291f, -0.0219727f,
+0.48291f, 0, 0.349121f, 0, 0.345215f, -0.0371094f, 0.331055f, -0.0292969f, 0.311523f,
+-0.0209961f, 0.291992f, -0.0126953f, 0.270752f, -0.00585938f, 0.249512f, 0.000976562f,
+0.228027f, 0.00537109f, 0.206543f, 0.00976562f, 0.188965f, 0.00976562f, 0.162598f,
+0.00976562f, 0.141113f, 0.00244141f, 0.119629f, -0.00488281f, 0.104248f, -0.0209961f,
+0.0888672f, -0.0371094f, 0.0803223f, -0.0627441f, 0.0717773f, -0.0883789f, 0.0717773f,
+-0.125f, 0.0717773f, -0.424805f, 0.0131836f, -0.437012f, 0.0131836f, -0.458984f,
+0.152832f, -0.458984f, 0.456055f, -0.426758f, 0.271973f, 0.00976562f, 0.23584f, 0.00976562f,
+0.046875f, -0.424805f, 0, -0.437012f, 0, -0.458984f, 0.213867f, -0.458984f, 0.213867f,
+-0.437012f, 0.141113f, -0.423828f, 0.274902f, -0.106934f, 0.402832f, -0.424805f,
+0.330078f, -0.437012f, 0.330078f, -0.458984f, 0.5f, -0.458984f, 0.5f, -0.437012f,
+0.666992f, -0.426758f, 0.513184f, 0.00976562f, 0.475098f, 0.00976562f, 0.361816f,
+-0.292969f, 0.25f, 0.00976562f, 0.213867f, 0.00976562f, 0.0551758f, -0.424805f, 0.000976562f,
+-0.437012f, 0.000976562f, -0.458984f, 0.219238f, -0.458984f, 0.219238f, -0.437012f,
+0.143066f, -0.423828f, 0.251953f, -0.11377f, 0.362793f, -0.413086f, 0.403809f, -0.413086f,
+0.51416f, -0.111816f, 0.618164f, -0.424805f, 0.542969f, -0.437012f, 0.542969f, -0.458984f,
+0.717773f, -0.458984f, 0.717773f, -0.437012f, 0.434082f, -0.0322266f, 0.487793f,
+-0.0219727f, 0.487793f, 0, 0.279785f, 0, 0.279785f, -0.0219727f, 0.34082f, -0.0332031f,
+0.234863f, -0.195801f, 0.11084f, -0.0322266f, 0.173828f, -0.0219727f, 0.173828f,
+0, 0.00878906f, 0, 0.00878906f, -0.0219727f, 0.0620117f, -0.0297852f, 0.212891f,
+-0.229004f, 0.0800781f, -0.424805f, 0.0258789f, -0.437012f, 0.0258789f, -0.458984f,
+0.233887f, -0.458984f, 0.233887f, -0.437012f, 0.172852f, -0.423828f, 0.26123f, -0.291992f,
+0.362793f, -0.424805f, 0.299805f, -0.437012f, 0.299805f, -0.458984f, 0.464844f, -0.458984f,
+0.464844f, -0.437012f, 0.412109f, -0.426758f, 0.283203f, -0.259766f, 0.448242f, -0.426758f,
+0.269043f, 0.0288086f, 0.253418f, 0.0683594f, 0.237305f, 0.102539f, 0.221191f, 0.136719f,
+0.201416f, 0.161865f, 0.181641f, 0.187012f, 0.15625f, 0.201416f, 0.130859f, 0.21582f,
+0.097168f, 0.21582f, 0.0844727f, 0.21582f, 0.0749512f, 0.215332f, 0.0654297f, 0.214844f,
+0.0571289f, 0.213623f, 0.0488281f, 0.212402f, 0.0405273f, 0.210938f, 0.0322266f,
+0.209473f, 0.0219727f, 0.207031f, 0.0219727f, 0.10791f, 0.0449219f, 0.10791f, 0.0610352f,
+0.154785f, 0.0761719f, 0.166016f, 0.103027f, 0.166016f, 0.124023f, 0.166016f, 0.141113f,
+0.156738f, 0.158203f, 0.147461f, 0.172607f, 0.130615f, 0.187012f, 0.11377f, 0.19873f,
+0.0908203f, 0.210449f, 0.0678711f, 0.221191f, 0.0400391f, 0.233887f, 0.00488281f,
+0.059082f, -0.424805f, 0.012207f, -0.437012f, 0.012207f, -0.458984f, 0.225098f, -0.458984f,
+0.225098f, -0.437012f, 0.152832f, -0.423828f, 0.276855f, -0.103027f, 0.396973f, -0.424805f,
+0.325195f, -0.437012f, 0.325195f, -0.458984f, 0.496094f, -0.458984f, 0.496094f, -0.437012f,
+0.0268555f, 0, 0.0268555f, -0.0219727f, 0.278809f, -0.419922f, 0.170898f, -0.419922f,
+0.157227f, -0.419922f, 0.143799f, -0.418701f, 0.130371f, -0.41748f, 0.118408f, -0.415283f,
+0.106445f, -0.413086f, 0.097168f, -0.409912f, 0.0878906f, -0.406738f, 0.0830078f,
+-0.402832f, 0.0678711f, -0.336914f, 0.0449219f, -0.336914f, 0.0449219f, -0.458984f,
+0.383789f, -0.458984f, 0.383789f, -0.435059f, 0.131836f, -0.0390625f, 0.266113f,
+-0.0390625f, 0.279297f, -0.0390625f, 0.294189f, -0.0407715f, 0.309082f, -0.0424805f,
+0.322998f, -0.0454102f, 0.336914f, -0.0483398f, 0.348877f, -0.0524902f, 0.36084f,
+-0.0566406f, 0.368164f, -0.0620117f, 0.393066f, -0.158203f, 0.416016f, -0.158203f,
+0.403809f, 0, 0.323242f, 0.133789f, 0.291504f, 0.133789f, 0.267578f, 0.123779f, 0.243652f,
+0.11377f, 0.227783f, 0.0949707f, 0.211914f, 0.0761719f, 0.203857f, 0.0498047f, 0.195801f,
+0.0234375f, 0.195801f, -0.00976562f, 0.195801f, -0.153809f, 0.195801f, -0.18457f,
+0.188721f, -0.206055f, 0.181641f, -0.227539f, 0.168213f, -0.241455f, 0.154785f, -0.255371f,
+0.135254f, -0.262207f, 0.115723f, -0.269043f, 0.0908203f, -0.27002f, 0.0908203f,
+-0.291992f, 0.115723f, -0.29248f, 0.135254f, -0.299316f, 0.154785f, -0.306152f, 0.168213f,
+-0.320068f, 0.181641f, -0.333984f, 0.188721f, -0.355469f, 0.195801f, -0.376953f,
+0.195801f, -0.407227f, 0.195801f, -0.550781f, 0.195801f, -0.619629f, 0.227539f, -0.656738f,
+0.259277f, -0.693848f, 0.323242f, -0.693848f, 0.38916f, -0.693848f, 0.38916f, -0.670898f,
+0.358887f, -0.670898f, 0.314453f, -0.670898f, 0.295654f, -0.644287f, 0.276855f, -0.617676f,
+0.276855f, -0.565918f, 0.276855f, -0.404785f, 0.276855f, -0.380371f, 0.269775f, -0.359863f,
+0.262695f, -0.339355f, 0.250244f, -0.323486f, 0.237793f, -0.307617f, 0.220459f, -0.297119f,
+0.203125f, -0.286621f, 0.183105f, -0.282227f, 0.183105f, -0.280762f, 0.204102f, -0.275879f,
+0.221191f, -0.265381f, 0.238281f, -0.254883f, 0.250732f, -0.239014f, 0.263184f, -0.223145f,
+0.27002f, -0.202637f, 0.276855f, -0.182129f, 0.276855f, -0.157227f, 0.276855f, 0.00585938f,
+0.276855f, 0.0576172f, 0.295654f, 0.0842285f, 0.314453f, 0.11084f, 0.358887f, 0.11084f,
+0.38916f, 0.11084f, 0.38916f, 0.133789f, 0.0751953f, 0.21582f, 0.0751953f, -0.693848f,
+0.125f, -0.693848f, 0.125f, 0.21582f, 0.0908203f, 0.133789f, 0.0908203f, 0.11084f,
+0.121094f, 0.11084f, 0.165527f, 0.11084f, 0.184326f, 0.0842285f, 0.203125f, 0.0576172f,
+0.203125f, 0.00585938f, 0.203125f, -0.157227f, 0.203125f, -0.182129f, 0.209961f,
+-0.202637f, 0.216797f, -0.223145f, 0.229248f, -0.239014f, 0.241699f, -0.254883f,
+0.258789f, -0.265381f, 0.275879f, -0.275879f, 0.296875f, -0.280762f, 0.296875f, -0.282227f,
+0.276855f, -0.286621f, 0.259521f, -0.297119f, 0.242188f, -0.307617f, 0.229736f, -0.323486f,
+0.217285f, -0.339355f, 0.210205f, -0.359863f, 0.203125f, -0.380371f, 0.203125f, -0.404785f,
+0.203125f, -0.565918f, 0.203125f, -0.617676f, 0.184326f, -0.644287f, 0.165527f, -0.670898f,
+0.121094f, -0.670898f, 0.0908203f, -0.670898f, 0.0908203f, -0.693848f, 0.157227f,
+-0.693848f, 0.220703f, -0.693848f, 0.252441f, -0.656738f, 0.28418f, -0.619629f, 0.28418f,
+-0.550781f, 0.28418f, -0.407227f, 0.28418f, -0.376953f, 0.29126f, -0.355469f, 0.29834f,
+-0.333984f, 0.312012f, -0.320068f, 0.325684f, -0.306152f, 0.344971f, -0.299316f,
+0.364258f, -0.29248f, 0.38916f, -0.291992f, 0.38916f, -0.27002f, 0.364258f, -0.269043f,
+0.344971f, -0.262207f, 0.325684f, -0.255371f, 0.312012f, -0.241455f, 0.29834f, -0.227539f,
+0.29126f, -0.206055f, 0.28418f, -0.18457f, 0.28418f, -0.153809f, 0.28418f, -0.00976562f,
+0.28418f, 0.0234375f, 0.276123f, 0.0498047f, 0.268066f, 0.0761719f, 0.252197f, 0.0949707f,
+0.236328f, 0.11377f, 0.212402f, 0.123779f, 0.188477f, 0.133789f, 0.157227f, 0.133789f,
+0.380859f, -0.245117f, 0.358398f, -0.245117f, 0.337891f, -0.253906f, 0.317383f, -0.262695f,
+0.298096f, -0.275635f, 0.278809f, -0.288574f, 0.260986f, -0.303955f, 0.243164f, -0.319336f,
+0.226074f, -0.332275f, 0.208984f, -0.345215f, 0.192383f, -0.354004f, 0.175781f, -0.362793f,
+0.15918f, -0.362793f, 0.13916f, -0.362793f, 0.125f, -0.355713f, 0.11084f, -0.348633f,
+0.101074f, -0.333984f, 0.0913086f, -0.319336f, 0.0856934f, -0.297119f, 0.0800781f,
+-0.274902f, 0.0771484f, -0.245117f, 0.027832f, -0.245117f, 0.0307617f, -0.274902f,
+0.0373535f, -0.304932f, 0.0439453f, -0.334961f, 0.0581055f, -0.359131f, 0.0722656f,
+-0.383301f, 0.0964355f, -0.398193f, 0.120605f, -0.413086f, 0.15918f, -0.413086f,
+0.182617f, -0.413086f, 0.203613f, -0.404297f, 0.224609f, -0.395508f, 0.243896f, -0.382324f,
+0.263184f, -0.369141f, 0.28125f, -0.354004f, 0.299316f, -0.338867f, 0.316162f, -0.325684f,
+0.333008f, -0.3125f, 0.349121f, -0.303711f, 0.365234f, -0.294922f, 0.380859f, -0.294922f,
+0.400391f, -0.294922f, 0.414062f, -0.302734f, 0.427734f, -0.310547f, 0.437256f, -0.325684f,
+0.446777f, -0.34082f, 0.452393f, -0.362793f, 0.458008f, -0.384766f, 0.461914f, -0.413086f,
+0.512207f, -0.413086f, 0.508301f, -0.383301f, 0.501221f, -0.353516f, 0.494141f, -0.32373f,
+0.479736f, -0.299561f, 0.465332f, -0.275391f, 0.44165f, -0.260254f, 0.417969f, -0.245117f,
+0.380859f, -0.245117f
+};
+
+const unsigned char LiberationSerifNormalVerbs[] = {
+6, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2,
+1, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2,
+2, 2, 5, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 5, 0,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 2,
+2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 1, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSerifNormalCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationSerifNormalWidths[] = {
+0x0000c720, 0x00004000, 0x00005540, 0x00006880, 0x00008000, 0x00008000, 0x0000d540,
+0x0000c720, 0x00002e20, 0x00005540, 0x00005540, 0x00008000, 0x00009060, 0x00004000,
+0x00005540, 0x00004000, 0x00004720, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00004720,
+0x00004720, 0x00009060, 0x00009060, 0x00009060, 0x000071a0, 0x0000ebc0, 0x0000b8e0,
+0x0000aac0, 0x0000aac0, 0x0000b8e0, 0x00009c60, 0x00008e60, 0x0000b8e0, 0x0000b8e0,
+0x00005540, 0x000063a0, 0x0000b8e0, 0x00009c60, 0x0000e3a0, 0x0000b8e0, 0x0000b8e0,
+0x00008e60, 0x0000b8e0, 0x0000aac0, 0x00008e60, 0x00009c60, 0x0000b8e0, 0x0000b8e0,
+0x0000f1a0, 0x0000b8e0, 0x0000b8e0, 0x00009c60, 0x00005540, 0x00004720, 0x00005540,
+0x00007820, 0x00008000, 0x00005540, 0x000071a0, 0x00008000, 0x000071a0, 0x00008000,
+0x000071a0, 0x00005540, 0x00008000, 0x00008000, 0x00004720, 0x00004720, 0x00008000,
+0x00004720, 0x0000c720, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00005540,
+0x000063a0, 0x00004720, 0x00008000, 0x00008000, 0x0000b8e0, 0x00008000, 0x00008000,
+0x000071a0, 0x00007ae0, 0x00003340, 0x00007ae0, 0x00008a80
+};
+
+const int LiberationSerifNormalCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSerifNormalCharCodes);
+
+const SkPaint::FontMetrics LiberationSerifNormalMetrics = {
+0x30307833, -0.981445f, -0.891113f, 0.216309f, 0.303223f, 0.0424805f, 1.18359f, 0.0184937f,
+-0.176758f, 1.00684f, 0.469727f, 0.0103607f, 0.0488281f, 0.108887f
+};
+
+const SkScalar LiberationSerifBoldPoints[] = {
+0.193848f, -0.205078f, 0.137695f, -0.205078f, 0.0927734f, -0.654785f, 0.23877f, -0.654785f,
+0.166016f, 0.0141602f, 0.148926f, 0.0141602f, 0.134277f, 0.0078125f, 0.119629f, 0.00146484f,
+0.108643f, -0.00952148f, 0.0976562f, -0.0205078f, 0.0913086f, -0.0351562f, 0.0849609f,
+-0.0498047f, 0.0849609f, -0.0668945f, 0.0849609f, -0.0834961f, 0.0913086f, -0.0983887f,
+0.0976562f, -0.113281f, 0.108643f, -0.124268f, 0.119629f, -0.135254f, 0.134277f,
+-0.141602f, 0.148926f, -0.147949f, 0.166016f, -0.147949f, 0.182617f, -0.147949f,
+0.19751f, -0.141602f, 0.212402f, -0.135254f, 0.223389f, -0.124268f, 0.234375f, -0.113281f,
+0.240723f, -0.0983887f, 0.24707f, -0.0834961f, 0.24707f, -0.0668945f, 0.24707f, -0.0498047f,
+0.240723f, -0.0351562f, 0.234375f, -0.0205078f, 0.223389f, -0.00952148f, 0.212402f,
+0.00146484f, 0.19751f, 0.0078125f, 0.182617f, 0.0141602f, 0.166016f, 0.0141602f,
+0.318848f, -0.654785f, 0.444824f, -0.654785f, 0.406738f, -0.419922f, 0.355957f, -0.419922f,
+0.11084f, -0.654785f, 0.236816f, -0.654785f, 0.19873f, -0.419922f, 0.147949f, -0.419922f,
+0.361816f, -0.200684f, 0.324707f, 0, 0.254883f, 0, 0.291992f, -0.200684f, 0.160156f,
+-0.200684f, 0.124023f, 0, 0.0527344f, 0, 0.0898438f, -0.200684f, 0.0131836f, -0.200684f,
+0.0131836f, -0.260742f, 0.102051f, -0.260742f, 0.12793f, -0.400879f, 0.0131836f,
+-0.400879f, 0.0131836f, -0.460938f, 0.13916f, -0.460938f, 0.174805f, -0.654785f,
+0.245117f, -0.654785f, 0.208984f, -0.460938f, 0.34082f, -0.460938f, 0.376953f, -0.654785f,
+0.446777f, -0.654785f, 0.410645f, -0.460938f, 0.486816f, -0.460938f, 0.486816f, -0.400879f,
+0.399902f, -0.400879f, 0.375f, -0.260742f, 0.486816f, -0.260742f, 0.486816f, -0.200684f,
+0.197754f, -0.400879f, 0.171875f, -0.260742f, 0.303711f, -0.260742f, 0.330078f, -0.400879f,
+0.227539f, 0.00976562f, 0.200195f, 0.00927734f, 0.172119f, 0.00610352f, 0.144043f,
+0.00292969f, 0.118408f, -0.00195312f, 0.0927734f, -0.00683594f, 0.0712891f, -0.0126953f,
+0.0498047f, -0.0185547f, 0.0356445f, -0.0249023f, 0.0356445f, -0.181152f, 0.0810547f,
+-0.181152f, 0.0986328f, -0.090332f, 0.105957f, -0.0805664f, 0.120361f, -0.0715332f,
+0.134766f, -0.0625f, 0.152832f, -0.0554199f, 0.170898f, -0.0483398f, 0.19043f, -0.043457f,
+0.209961f, -0.0385742f, 0.227539f, -0.0380859f, 0.227539f, -0.276367f, 0.193848f,
+-0.289551f, 0.160889f, -0.304932f, 0.12793f, -0.320312f, 0.101807f, -0.343994f, 0.0756836f,
+-0.367676f, 0.0595703f, -0.403809f, 0.043457f, -0.439941f, 0.043457f, -0.495117f,
+0.043457f, -0.530762f, 0.0566406f, -0.559814f, 0.0698242f, -0.588867f, 0.0939941f,
+-0.610107f, 0.118164f, -0.631348f, 0.1521f, -0.644531f, 0.186035f, -0.657715f, 0.227539f,
+-0.661133f, 0.227539f, -0.724121f, 0.277344f, -0.724121f, 0.277344f, -0.662109f,
+0.316895f, -0.660645f, 0.356689f, -0.654541f, 0.396484f, -0.648438f, 0.426758f, -0.641113f,
+0.426758f, -0.504883f, 0.382324f, -0.504883f, 0.366699f, -0.574707f, 0.352539f, -0.588867f,
+0.328125f, -0.599854f, 0.303711f, -0.61084f, 0.277344f, -0.613281f, 0.277344f, -0.410645f,
+0.300293f, -0.401367f, 0.323486f, -0.391602f, 0.34668f, -0.381836f, 0.368408f, -0.369873f,
+0.390137f, -0.35791f, 0.408936f, -0.342041f, 0.427734f, -0.326172f, 0.44165f, -0.304688f,
+0.455566f, -0.283203f, 0.463623f, -0.254639f, 0.47168f, -0.226074f, 0.47168f, -0.188965f,
+0.47168f, -0.146973f, 0.458496f, -0.112305f, 0.445312f, -0.0776367f, 0.42041f, -0.0522461f,
+0.395508f, -0.0268555f, 0.359375f, -0.0112305f, 0.323242f, 0.00439453f, 0.277344f,
+0.0078125f, 0.277344f, 0.0761719f, 0.227539f, 0.0761719f, 0.367188f, -0.161133f,
+0.367188f, -0.183105f, 0.360107f, -0.198486f, 0.353027f, -0.213867f, 0.34082f, -0.224854f,
+0.328613f, -0.23584f, 0.312256f, -0.243408f, 0.295898f, -0.250977f, 0.277344f, -0.257812f,
+0.277344f, -0.0375977f, 0.320801f, -0.0454102f, 0.343994f, -0.076416f, 0.367188f,
+-0.107422f, 0.367188f, -0.161133f, 0.147949f, -0.520996f, 0.147949f, -0.5f, 0.154053f,
+-0.485596f, 0.160156f, -0.471191f, 0.170898f, -0.460938f, 0.181641f, -0.450684f,
+0.196289f, -0.443359f, 0.210938f, -0.436035f, 0.227539f, -0.429199f, 0.227539f, -0.612305f,
+0.188965f, -0.606445f, 0.168457f, -0.582275f, 0.147949f, -0.558105f, 0.147949f, -0.520996f,
+0.3125f, 0.00976562f, 0.239258f, 0.00976562f, 0.702148f, -0.665039f, 0.775879f, -0.665039f,
+0.42041f, -0.48584f, 0.42041f, -0.398438f, 0.381104f, -0.351318f, 0.341797f, -0.304199f,
+0.259277f, -0.304199f, 0.180664f, -0.304199f, 0.141602f, -0.350586f, 0.102539f, -0.396973f,
+0.102539f, -0.48584f, 0.102539f, -0.572754f, 0.141846f, -0.618896f, 0.181152f, -0.665039f,
+0.262207f, -0.665039f, 0.339844f, -0.665039f, 0.380127f, -0.620117f, 0.42041f, -0.575195f,
+0.42041f, -0.48584f, 0.314941f, -0.48584f, 0.314941f, -0.517578f, 0.312256f, -0.54248f,
+0.30957f, -0.567383f, 0.302979f, -0.584473f, 0.296387f, -0.601562f, 0.285645f, -0.610352f,
+0.274902f, -0.619141f, 0.259277f, -0.619141f, 0.243652f, -0.619141f, 0.233643f, -0.610352f,
+0.223633f, -0.601562f, 0.217773f, -0.584473f, 0.211914f, -0.567383f, 0.209717f, -0.54248f,
+0.20752f, -0.517578f, 0.20752f, -0.48584f, 0.20752f, -0.453613f, 0.209717f, -0.428467f,
+0.211914f, -0.40332f, 0.217773f, -0.385742f, 0.223633f, -0.368164f, 0.233643f, -0.358887f,
+0.243652f, -0.349609f, 0.259277f, -0.349609f, 0.274902f, -0.349609f, 0.285645f, -0.358887f,
+0.296387f, -0.368164f, 0.302979f, -0.385742f, 0.30957f, -0.40332f, 0.312256f, -0.428467f,
+0.314941f, -0.453613f, 0.314941f, -0.48584f, 0.90625f, -0.168945f, 0.90625f, -0.0810547f,
+0.867188f, -0.0339355f, 0.828125f, 0.0131836f, 0.745605f, 0.0131836f, 0.666992f,
+0.0131836f, 0.627686f, -0.0332031f, 0.588379f, -0.0795898f, 0.588379f, -0.168945f,
+0.588379f, -0.255859f, 0.62793f, -0.302002f, 0.66748f, -0.348145f, 0.748535f, -0.348145f,
+0.826172f, -0.348145f, 0.866211f, -0.303223f, 0.90625f, -0.258301f, 0.90625f, -0.168945f,
+0.80127f, -0.168945f, 0.80127f, -0.200684f, 0.798584f, -0.225586f, 0.795898f, -0.250488f,
+0.789307f, -0.267578f, 0.782715f, -0.284668f, 0.771973f, -0.293457f, 0.76123f, -0.302246f,
+0.745605f, -0.302246f, 0.72998f, -0.302246f, 0.719971f, -0.293457f, 0.709961f, -0.284668f,
+0.704102f, -0.267578f, 0.698242f, -0.250488f, 0.696045f, -0.225586f, 0.693848f, -0.200684f,
+0.693848f, -0.168945f, 0.693848f, -0.136719f, 0.696045f, -0.111572f, 0.698242f, -0.0864258f,
+0.704102f, -0.0688477f, 0.709961f, -0.0512695f, 0.719971f, -0.0419922f, 0.72998f,
+-0.0327148f, 0.745605f, -0.0327148f, 0.76123f, -0.0327148f, 0.771973f, -0.0419922f,
+0.782715f, -0.0512695f, 0.789307f, -0.0688477f, 0.795898f, -0.0864258f, 0.798584f,
+-0.111572f, 0.80127f, -0.136719f, 0.80127f, -0.168945f, 0.509277f, -0.523926f, 0.509277f,
+-0.489746f, 0.497559f, -0.465332f, 0.48584f, -0.440918f, 0.466309f, -0.422852f, 0.446777f,
+-0.404785f, 0.421143f, -0.391846f, 0.395508f, -0.378906f, 0.367188f, -0.367676f,
+0.552734f, -0.200195f, 0.567871f, -0.23877f, 0.573975f, -0.277832f, 0.580078f, -0.316895f,
+0.581543f, -0.350098f, 0.527344f, -0.362793f, 0.527344f, -0.394043f, 0.760254f, -0.394043f,
+0.760254f, -0.362793f, 0.706543f, -0.350098f, 0.700684f, -0.330566f, 0.693359f, -0.305664f,
+0.686035f, -0.280762f, 0.676025f, -0.253174f, 0.666016f, -0.225586f, 0.652344f, -0.196533f,
+0.638672f, -0.16748f, 0.620117f, -0.139648f, 0.727539f, -0.0429688f, 0.78418f, -0.0307617f,
+0.78418f, 0, 0.59668f, 0, 0.538574f, -0.0537109f, 0.499512f, -0.0249023f, 0.446289f,
+-0.00756836f, 0.393066f, 0.00976562f, 0.322266f, 0.00976562f, 0.25293f, 0.00976562f,
+0.202881f, -0.00219727f, 0.152832f, -0.0141602f, 0.120605f, -0.0375977f, 0.0883789f,
+-0.0610352f, 0.072998f, -0.0952148f, 0.0576172f, -0.129395f, 0.0576172f, -0.173828f,
+0.0576172f, -0.217773f, 0.0715332f, -0.249023f, 0.0854492f, -0.280273f, 0.107422f,
+-0.30249f, 0.129395f, -0.324707f, 0.156494f, -0.339111f, 0.183594f, -0.353516f, 0.209961f,
+-0.36377f, 0.196777f, -0.378906f, 0.185547f, -0.395996f, 0.174316f, -0.413086f, 0.166016f,
+-0.432373f, 0.157715f, -0.45166f, 0.153076f, -0.473633f, 0.148438f, -0.495605f, 0.148438f,
+-0.520996f, 0.148438f, -0.549316f, 0.158203f, -0.575439f, 0.167969f, -0.601562f,
+0.189941f, -0.621582f, 0.211914f, -0.641602f, 0.246826f, -0.65332f, 0.281738f, -0.665039f,
+0.33252f, -0.665039f, 0.381836f, -0.665039f, 0.415527f, -0.653809f, 0.449219f, -0.642578f,
+0.470215f, -0.623291f, 0.491211f, -0.604004f, 0.500244f, -0.578369f, 0.509277f, -0.552734f,
+0.509277f, -0.523926f, 0.322266f, -0.0419922f, 0.37793f, -0.0419922f, 0.418457f,
+-0.0581055f, 0.458984f, -0.0742188f, 0.487793f, -0.100586f, 0.254883f, -0.317383f,
+0.242676f, -0.309082f, 0.231445f, -0.297852f, 0.220215f, -0.286621f, 0.211426f, -0.270264f,
+0.202637f, -0.253906f, 0.19751f, -0.231689f, 0.192383f, -0.209473f, 0.192383f, -0.179199f,
+0.192383f, -0.109375f, 0.227051f, -0.0756836f, 0.261719f, -0.0419922f, 0.322266f,
+-0.0419922f, 0.270508f, -0.531738f, 0.270508f, -0.51123f, 0.274414f, -0.494629f,
+0.27832f, -0.478027f, 0.285156f, -0.463623f, 0.291992f, -0.449219f, 0.301758f, -0.436768f,
+0.311523f, -0.424316f, 0.322754f, -0.412109f, 0.337402f, -0.419922f, 0.349365f, -0.429199f,
+0.361328f, -0.438477f, 0.369873f, -0.452148f, 0.378418f, -0.46582f, 0.382812f, -0.484863f,
+0.387207f, -0.503906f, 0.387207f, -0.531738f, 0.387207f, -0.616211f, 0.33252f, -0.616211f,
+0.299316f, -0.616211f, 0.284912f, -0.594971f, 0.270508f, -0.57373f, 0.270508f, -0.531738f,
+0.0761719f, -0.654785f, 0.202148f, -0.654785f, 0.164062f, -0.419922f, 0.113281f,
+-0.419922f, 0.177246f, -0.241211f, 0.177246f, -0.181641f, 0.181396f, -0.123291f,
+0.185547f, -0.0649414f, 0.19873f, -0.0129395f, 0.211914f, 0.0390625f, 0.236084f,
+0.0827637f, 0.260254f, 0.126465f, 0.300781f, 0.157227f, 0.300781f, 0.212891f, 0.235352f,
+0.178223f, 0.187256f, 0.137451f, 0.13916f, 0.0966797f, 0.107178f, 0.0432129f, 0.0751953f,
+-0.0102539f, 0.0595703f, -0.079834f, 0.0439453f, -0.149414f, 0.0439453f, -0.241699f,
+0.0439453f, -0.333496f, 0.0595703f, -0.402588f, 0.0751953f, -0.47168f, 0.107178f,
+-0.524902f, 0.13916f, -0.578125f, 0.187256f, -0.618652f, 0.235352f, -0.65918f, 0.300781f,
+-0.693848f, 0.300781f, -0.638184f, 0.260254f, -0.607422f, 0.236084f, -0.563965f,
+0.211914f, -0.520508f, 0.19873f, -0.468506f, 0.185547f, -0.416504f, 0.181396f, -0.358643f,
+0.177246f, -0.300781f, 0.177246f, -0.241211f, 0.0322266f, 0.212891f, 0.0322266f,
+0.157227f, 0.0722656f, 0.126465f, 0.0966797f, 0.0827637f, 0.121094f, 0.0390625f,
+0.134277f, -0.0129395f, 0.147461f, -0.0649414f, 0.151611f, -0.123291f, 0.155762f,
+-0.181641f, 0.155762f, -0.241211f, 0.155762f, -0.300781f, 0.151611f, -0.358643f,
+0.147461f, -0.416504f, 0.134277f, -0.468506f, 0.121094f, -0.520508f, 0.0966797f,
+-0.563965f, 0.0722656f, -0.607422f, 0.0322266f, -0.638184f, 0.0322266f, -0.693848f,
+0.097168f, -0.65918f, 0.145508f, -0.618652f, 0.193848f, -0.578125f, 0.22583f, -0.524902f,
+0.257812f, -0.47168f, 0.273438f, -0.402588f, 0.289062f, -0.333496f, 0.289062f, -0.241699f,
+0.289062f, -0.149414f, 0.273438f, -0.079834f, 0.257812f, -0.0102539f, 0.22583f, 0.0432129f,
+0.193848f, 0.0966797f, 0.145508f, 0.137451f, 0.097168f, 0.178223f, 0.0322266f, 0.212891f,
+0.271484f, -0.437012f, 0.307129f, -0.282715f, 0.193359f, -0.282715f, 0.227539f, -0.438965f,
+0.0874023f, -0.32373f, 0.0415039f, -0.427734f, 0.191406f, -0.470703f, 0.0415039f,
+-0.514648f, 0.0874023f, -0.618652f, 0.227539f, -0.504883f, 0.193359f, -0.659668f,
+0.307129f, -0.659668f, 0.271484f, -0.504883f, 0.412109f, -0.615723f, 0.458496f, -0.513672f,
+0.306152f, -0.470703f, 0.458496f, -0.428711f, 0.412109f, -0.325684f, 0.319824f, -0.296875f,
+0.319824f, -0.0991211f, 0.25f, -0.0991211f, 0.25f, -0.296875f, 0.0527344f, -0.296875f,
+0.0527344f, -0.366699f, 0.25f, -0.366699f, 0.25f, -0.564941f, 0.319824f, -0.564941f,
+0.319824f, -0.366699f, 0.517578f, -0.366699f, 0.517578f, -0.296875f, 0.211914f, -0.0517578f,
+0.211914f, -0.0170898f, 0.200928f, 0.013916f, 0.189941f, 0.0449219f, 0.166016f, 0.0715332f,
+0.14209f, 0.0981445f, 0.104248f, 0.119385f, 0.0664062f, 0.140625f, 0.0131836f, 0.154785f,
+0.0131836f, 0.109863f, 0.0410156f, 0.101562f, 0.0598145f, 0.0895996f, 0.0786133f,
+0.0776367f, 0.0900879f, 0.0646973f, 0.101562f, 0.0517578f, 0.106689f, 0.0390625f,
+0.111816f, 0.0263672f, 0.111816f, 0.0170898f, 0.111816f, 0.00732422f, 0.106445f,
+0.000732422f, 0.101074f, -0.00585938f, 0.0927734f, -0.0109863f, 0.0844727f, -0.0161133f,
+0.0749512f, -0.0212402f, 0.0654297f, -0.0263672f, 0.0571289f, -0.0341797f, 0.0488281f,
+-0.0419922f, 0.043457f, -0.0532227f, 0.0380859f, -0.0644531f, 0.0380859f, -0.0820312f,
+0.0380859f, -0.11377f, 0.0600586f, -0.130371f, 0.0820312f, -0.146973f, 0.115723f,
+-0.146973f, 0.134277f, -0.146973f, 0.151611f, -0.140869f, 0.168945f, -0.134766f,
+0.182373f, -0.122559f, 0.195801f, -0.110352f, 0.203857f, -0.0927734f, 0.211914f,
+-0.0751953f, 0.211914f, -0.0517578f, 0.0366211f, -0.192871f, 0.0366211f, -0.277832f,
+0.296387f, -0.277832f, 0.296387f, -0.192871f, 0.125f, 0.0141602f, 0.10791f, 0.0141602f,
+0.0932617f, 0.0078125f, 0.0786133f, 0.00146484f, 0.067627f, -0.00952148f, 0.0566406f,
+-0.0205078f, 0.050293f, -0.0351562f, 0.0439453f, -0.0498047f, 0.0439453f, -0.0668945f,
+0.0439453f, -0.0834961f, 0.050293f, -0.0983887f, 0.0566406f, -0.113281f, 0.067627f,
+-0.124268f, 0.0786133f, -0.135254f, 0.0932617f, -0.141602f, 0.10791f, -0.147949f,
+0.125f, -0.147949f, 0.141602f, -0.147949f, 0.156494f, -0.141602f, 0.171387f, -0.135254f,
+0.182373f, -0.124268f, 0.193359f, -0.113281f, 0.199707f, -0.0983887f, 0.206055f,
+-0.0834961f, 0.206055f, -0.0668945f, 0.206055f, -0.0498047f, 0.199707f, -0.0351562f,
+0.193359f, -0.0205078f, 0.182373f, -0.00952148f, 0.171387f, 0.00146484f, 0.156494f,
+0.0078125f, 0.141602f, 0.0141602f, 0.125f, 0.0141602f, 0.059082f, 0.00976562f, -0.00976562f,
+0.00976562f, 0.219727f, -0.658691f, 0.288086f, -0.658691f, 0.461914f, -0.330078f,
+0.461914f, -0.248047f, 0.448975f, -0.18457f, 0.436035f, -0.121094f, 0.409668f, -0.0778809f,
+0.383301f, -0.034668f, 0.342773f, -0.0124512f, 0.302246f, 0.00976562f, 0.24707f,
+0.00976562f, 0.143555f, 0.00976562f, 0.0908203f, -0.0771484f, 0.0380859f, -0.164062f,
+0.0380859f, -0.330078f, 0.0380859f, -0.492676f, 0.0908203f, -0.578857f, 0.143555f,
+-0.665039f, 0.250977f, -0.665039f, 0.354492f, -0.665039f, 0.408203f, -0.579834f,
+0.461914f, -0.494629f, 0.461914f, -0.330078f, 0.318848f, -0.330078f, 0.318848f, -0.397949f,
+0.31543f, -0.451172f, 0.312012f, -0.504395f, 0.303711f, -0.541016f, 0.29541f, -0.577637f,
+0.281982f, -0.59668f, 0.268555f, -0.615723f, 0.248047f, -0.615723f, 0.227539f, -0.615723f,
+0.2146f, -0.59668f, 0.20166f, -0.577637f, 0.194336f, -0.541016f, 0.187012f, -0.504395f,
+0.184082f, -0.451172f, 0.181152f, -0.397949f, 0.181152f, -0.330078f, 0.181152f, -0.261719f,
+0.184082f, -0.207764f, 0.187012f, -0.153809f, 0.194336f, -0.116455f, 0.20166f, -0.0791016f,
+0.2146f, -0.059082f, 0.227539f, -0.0390625f, 0.248047f, -0.0390625f, 0.268555f, -0.0390625f,
+0.281982f, -0.059082f, 0.29541f, -0.0791016f, 0.303711f, -0.116455f, 0.312012f, -0.153809f,
+0.31543f, -0.207764f, 0.318848f, -0.261719f, 0.318848f, -0.330078f, 0.334473f, -0.0537109f,
+0.448242f, -0.0419922f, 0.448242f, 0, 0.0800781f, 0, 0.0800781f, -0.0419922f, 0.193359f,
+-0.0537109f, 0.193359f, -0.547363f, 0.0805664f, -0.510254f, 0.0805664f, -0.551758f,
+0.265137f, -0.660156f, 0.334473f, -0.660156f, 0.457031f, 0, 0.0419922f, 0, 0.0419922f,
+-0.0922852f, 0.0839844f, -0.137207f, 0.119629f, -0.172607f, 0.155273f, -0.208008f,
+0.184326f, -0.238525f, 0.213379f, -0.269043f, 0.23584f, -0.296631f, 0.258301f, -0.324219f,
+0.273193f, -0.35376f, 0.288086f, -0.383301f, 0.295898f, -0.416992f, 0.303711f, -0.450684f,
+0.303711f, -0.493652f, 0.303711f, -0.523438f, 0.295898f, -0.545654f, 0.288086f, -0.567871f,
+0.275146f, -0.582764f, 0.262207f, -0.597656f, 0.245117f, -0.60498f, 0.228027f, -0.612305f,
+0.208984f, -0.612305f, 0.178711f, -0.612305f, 0.160645f, -0.605957f, 0.142578f, -0.599609f,
+0.127441f, -0.586914f, 0.106445f, -0.492188f, 0.0639648f, -0.492188f, 0.0639648f,
+-0.641113f, 0.103027f, -0.649902f, 0.140381f, -0.656006f, 0.177734f, -0.662109f,
+0.22168f, -0.662109f, 0.32959f, -0.662109f, 0.386963f, -0.617676f, 0.444336f, -0.573242f,
+0.444336f, -0.491211f, 0.444336f, -0.452148f, 0.435059f, -0.420654f, 0.425781f, -0.38916f,
+0.407959f, -0.361328f, 0.390137f, -0.333496f, 0.36377f, -0.307129f, 0.337402f, -0.280762f,
+0.302979f, -0.251465f, 0.268555f, -0.222168f, 0.226562f, -0.187988f, 0.18457f, -0.153809f,
+0.135742f, -0.110352f, 0.457031f, -0.110352f, 0.46582f, -0.178223f, 0.46582f, -0.133789f,
+0.449707f, -0.098877f, 0.433594f, -0.0639648f, 0.402588f, -0.0397949f, 0.371582f,
+-0.015625f, 0.32666f, -0.00292969f, 0.281738f, 0.00976562f, 0.224121f, 0.00976562f,
+0.174316f, 0.00976562f, 0.12793f, 0.00415039f, 0.081543f, -0.00146484f, 0.043457f,
+-0.00976562f, 0.0375977f, -0.168457f, 0.0825195f, -0.168457f, 0.10791f, -0.0634766f,
+0.123535f, -0.0546875f, 0.146729f, -0.0471191f, 0.169922f, -0.0395508f, 0.196777f,
+-0.0395508f, 0.229004f, -0.0395508f, 0.252441f, -0.050293f, 0.275879f, -0.0610352f,
+0.291504f, -0.0800781f, 0.307129f, -0.0991211f, 0.314697f, -0.125488f, 0.322266f,
+-0.151855f, 0.322266f, -0.183105f, 0.322266f, -0.218262f, 0.313477f, -0.241943f,
+0.304688f, -0.265625f, 0.289551f, -0.280029f, 0.274414f, -0.294434f, 0.253662f, -0.301025f,
+0.23291f, -0.307617f, 0.209473f, -0.309082f, 0.152832f, -0.3125f, 0.152832f, -0.371582f,
+0.20752f, -0.375488f, 0.250977f, -0.378418f, 0.271729f, -0.407471f, 0.29248f, -0.436523f,
+0.29248f, -0.495117f, 0.29248f, -0.524902f, 0.2854f, -0.546875f, 0.27832f, -0.568848f,
+0.265869f, -0.583496f, 0.253418f, -0.598145f, 0.23584f, -0.605225f, 0.218262f, -0.612305f,
+0.197754f, -0.612305f, 0.171387f, -0.612305f, 0.154541f, -0.604248f, 0.137695f, -0.596191f,
+0.122559f, -0.586914f, 0.101562f, -0.492188f, 0.059082f, -0.492188f, 0.059082f, -0.641113f,
+0.0766602f, -0.645508f, 0.0942383f, -0.649414f, 0.111816f, -0.65332f, 0.130859f,
+-0.656006f, 0.149902f, -0.658691f, 0.170898f, -0.6604f, 0.191895f, -0.662109f, 0.216309f,
+-0.662109f, 0.324219f, -0.662109f, 0.380371f, -0.622559f, 0.436523f, -0.583008f,
+0.436523f, -0.500977f, 0.436523f, -0.470215f, 0.428467f, -0.443604f, 0.42041f, -0.416992f,
+0.403809f, -0.396484f, 0.387207f, -0.375977f, 0.361572f, -0.362061f, 0.335938f, -0.348145f,
+0.300781f, -0.342773f, 0.384766f, -0.33252f, 0.425293f, -0.291504f, 0.46582f, -0.250488f,
+0.46582f, -0.178223f, 0.416016f, -0.129395f, 0.416016f, 0, 0.284668f, 0, 0.284668f,
+-0.129395f, 0.0136719f, -0.129395f, 0.0136719f, -0.208984f, 0.308594f, -0.658203f,
+0.416016f, -0.658203f, 0.416016f, -0.229492f, 0.481445f, -0.229492f, 0.481445f, -0.129395f,
+0.284668f, -0.42334f, 0.284668f, -0.436035f, 0.285156f, -0.450195f, 0.285645f, -0.464355f,
+0.286377f, -0.478271f, 0.287109f, -0.492188f, 0.287842f, -0.504639f, 0.288574f, -0.51709f,
+0.289551f, -0.526855f, 0.0947266f, -0.229492f, 0.284668f, -0.229492f, 0.234375f,
+-0.387207f, 0.290527f, -0.387207f, 0.333252f, -0.375977f, 0.375977f, -0.364746f,
+0.404785f, -0.341309f, 0.433594f, -0.317871f, 0.448486f, -0.281494f, 0.463379f, -0.245117f,
+0.463379f, -0.194824f, 0.463379f, -0.148438f, 0.449219f, -0.11084f, 0.435059f, -0.0732422f,
+0.405762f, -0.0463867f, 0.376465f, -0.0195312f, 0.331787f, -0.00488281f, 0.287109f,
+0.00976562f, 0.226562f, 0.00976562f, 0.176758f, 0.00976562f, 0.130371f, 0.00415039f,
+0.0839844f, -0.00146484f, 0.0458984f, -0.00976562f, 0.0400391f, -0.168457f, 0.0849609f,
+-0.168457f, 0.110352f, -0.0634766f, 0.118164f, -0.059082f, 0.129395f, -0.0546875f,
+0.140625f, -0.050293f, 0.153564f, -0.0471191f, 0.166504f, -0.0439453f, 0.18042f,
+-0.041748f, 0.194336f, -0.0395508f, 0.20752f, -0.0395508f, 0.238281f, -0.0395508f,
+0.259521f, -0.0505371f, 0.280762f, -0.0615234f, 0.294189f, -0.0812988f, 0.307617f,
+-0.101074f, 0.313721f, -0.128662f, 0.319824f, -0.15625f, 0.319824f, -0.189941f, 0.319824f,
+-0.226562f, 0.313477f, -0.254395f, 0.307129f, -0.282227f, 0.292969f, -0.300781f,
+0.278809f, -0.319336f, 0.256104f, -0.328613f, 0.233398f, -0.337891f, 0.200195f, -0.337891f,
+0.185547f, -0.337891f, 0.174072f, -0.336182f, 0.162598f, -0.334473f, 0.153564f, -0.331543f,
+0.144531f, -0.328613f, 0.136719f, -0.325195f, 0.128906f, -0.321777f, 0.121582f, -0.318848f,
+0.0727539f, -0.318848f, 0.0727539f, -0.654785f, 0.414551f, -0.654785f, 0.414551f,
+-0.545898f, 0.126953f, -0.545898f, 0.126953f, -0.374023f, 0.135742f, -0.375977f,
+0.145996f, -0.378174f, 0.15625f, -0.380371f, 0.169189f, -0.382324f, 0.182129f, -0.384277f,
+0.198242f, -0.385742f, 0.214355f, -0.387207f, 0.234375f, -0.387207f, 0.470703f, -0.203125f,
+0.470703f, -0.152344f, 0.45752f, -0.112793f, 0.444336f, -0.0732422f, 0.418213f, -0.0458984f,
+0.39209f, -0.0185547f, 0.354004f, -0.00439453f, 0.315918f, 0.00976562f, 0.266113f,
+0.00976562f, 0.211426f, 0.00976562f, 0.168213f, -0.0112305f, 0.125f, -0.0322266f,
+0.0952148f, -0.0739746f, 0.0654297f, -0.115723f, 0.0498047f, -0.177979f, 0.0341797f,
+-0.240234f, 0.0341797f, -0.323242f, 0.0341797f, -0.412109f, 0.0549316f, -0.476074f,
+0.0756836f, -0.540039f, 0.110352f, -0.581543f, 0.14502f, -0.623047f, 0.190186f, -0.642578f,
+0.235352f, -0.662109f, 0.28418f, -0.662109f, 0.322266f, -0.662109f, 0.361084f, -0.65625f,
+0.399902f, -0.650391f, 0.431152f, -0.641113f, 0.431152f, -0.492188f, 0.388672f, -0.492188f,
+0.367676f, -0.586914f, 0.352051f, -0.598633f, 0.333252f, -0.605469f, 0.314453f, -0.612305f,
+0.293945f, -0.612305f, 0.271484f, -0.612305f, 0.251709f, -0.597656f, 0.231934f, -0.583008f,
+0.216797f, -0.553711f, 0.20166f, -0.524414f, 0.19165f, -0.479736f, 0.181641f, -0.435059f,
+0.178711f, -0.375f, 0.203613f, -0.385742f, 0.229248f, -0.391846f, 0.254883f, -0.397949f,
+0.28418f, -0.397949f, 0.32666f, -0.397949f, 0.361084f, -0.385986f, 0.395508f, -0.374023f,
+0.419922f, -0.349854f, 0.444336f, -0.325684f, 0.45752f, -0.289062f, 0.470703f, -0.252441f,
+0.470703f, -0.203125f, 0.26416f, -0.0395508f, 0.299805f, -0.0395508f, 0.313477f,
+-0.078125f, 0.327148f, -0.116699f, 0.327148f, -0.193848f, 0.327148f, -0.235352f,
+0.320801f, -0.262939f, 0.314453f, -0.290527f, 0.303955f, -0.307129f, 0.293457f, -0.32373f,
+0.279785f, -0.330322f, 0.266113f, -0.336914f, 0.251465f, -0.336914f, 0.229004f, -0.336914f,
+0.212402f, -0.333984f, 0.195801f, -0.331055f, 0.177734f, -0.325684f, 0.177734f, -0.323242f,
+0.177734f, -0.254883f, 0.182617f, -0.202148f, 0.1875f, -0.149414f, 0.197998f, -0.113281f,
+0.208496f, -0.0771484f, 0.224854f, -0.0583496f, 0.241211f, -0.0395508f, 0.26416f,
+-0.0395508f, 0.0996094f, -0.467773f, 0.0571289f, -0.467773f, 0.0571289f, -0.654785f,
+0.475586f, -0.654785f, 0.475586f, -0.616211f, 0.221191f, 0, 0.104492f, 0, 0.380371f,
+-0.545898f, 0.12207f, -0.545898f, 0.45166f, -0.493652f, 0.45166f, -0.439941f, 0.425293f,
+-0.4021f, 0.398926f, -0.364258f, 0.351074f, -0.347168f, 0.376953f, -0.337402f, 0.398438f,
+-0.321777f, 0.419922f, -0.306152f, 0.435059f, -0.284912f, 0.450195f, -0.263672f,
+0.458496f, -0.236572f, 0.466797f, -0.209473f, 0.466797f, -0.176758f, 0.466797f, -0.0839844f,
+0.41333f, -0.0371094f, 0.359863f, 0.00976562f, 0.24707f, 0.00976562f, 0.140137f,
+0.00976562f, 0.0866699f, -0.036377f, 0.0332031f, -0.0825195f, 0.0332031f, -0.176758f,
+0.0332031f, -0.208984f, 0.0412598f, -0.236084f, 0.0493164f, -0.263184f, 0.064209f,
+-0.284424f, 0.0791016f, -0.305664f, 0.100098f, -0.321533f, 0.121094f, -0.337402f,
+0.147461f, -0.347168f, 0.100098f, -0.365234f, 0.0742188f, -0.402832f, 0.0483398f,
+-0.44043f, 0.0483398f, -0.495117f, 0.0483398f, -0.533691f, 0.0612793f, -0.565186f,
+0.0742188f, -0.59668f, 0.0996094f, -0.618896f, 0.125f, -0.641113f, 0.163086f, -0.653076f,
+0.201172f, -0.665039f, 0.250977f, -0.665039f, 0.299316f, -0.665039f, 0.33667f, -0.653076f,
+0.374023f, -0.641113f, 0.399658f, -0.618652f, 0.425293f, -0.596191f, 0.438477f, -0.564697f,
+0.45166f, -0.533203f, 0.45166f, -0.493652f, 0.328125f, -0.176758f, 0.328125f, -0.211426f,
+0.323975f, -0.238037f, 0.319824f, -0.264648f, 0.310303f, -0.282959f, 0.300781f, -0.30127f,
+0.2854f, -0.310791f, 0.27002f, -0.320312f, 0.24707f, -0.320312f, 0.224609f, -0.320312f,
+0.210205f, -0.310791f, 0.195801f, -0.30127f, 0.187256f, -0.282959f, 0.178711f, -0.264648f,
+0.175293f, -0.238037f, 0.171875f, -0.211426f, 0.171875f, -0.176758f, 0.171875f, -0.143555f,
+0.175293f, -0.11792f, 0.178711f, -0.0922852f, 0.187256f, -0.0749512f, 0.195801f,
+-0.0576172f, 0.210205f, -0.048584f, 0.224609f, -0.0395508f, 0.24707f, -0.0395508f,
+0.27002f, -0.0395508f, 0.2854f, -0.048584f, 0.300781f, -0.0576172f, 0.310303f, -0.0749512f,
+0.319824f, -0.0922852f, 0.323975f, -0.11792f, 0.328125f, -0.143555f, 0.328125f, -0.176758f,
+0.312988f, -0.493652f, 0.312988f, -0.52002f, 0.310059f, -0.54248f, 0.307129f, -0.564941f,
+0.299561f, -0.581299f, 0.291992f, -0.597656f, 0.279541f, -0.606689f, 0.26709f, -0.615723f,
+0.248047f, -0.615723f, 0.229492f, -0.615723f, 0.217773f, -0.606689f, 0.206055f, -0.597656f,
+0.199219f, -0.581299f, 0.192383f, -0.564941f, 0.189697f, -0.54248f, 0.187012f, -0.52002f,
+0.187012f, -0.493652f, 0.187012f, -0.465332f, 0.189697f, -0.442871f, 0.192383f, -0.42041f,
+0.199219f, -0.404785f, 0.206055f, -0.38916f, 0.217773f, -0.380859f, 0.229492f, -0.372559f,
+0.248047f, -0.372559f, 0.26709f, -0.372559f, 0.279541f, -0.380859f, 0.291992f, -0.38916f,
+0.299561f, -0.404785f, 0.307129f, -0.42041f, 0.310059f, -0.442871f, 0.312988f, -0.465332f,
+0.312988f, -0.493652f, 0.0273438f, -0.455078f, 0.0273438f, -0.505371f, 0.0422363f,
+-0.544189f, 0.0571289f, -0.583008f, 0.0852051f, -0.609131f, 0.113281f, -0.635254f,
+0.15332f, -0.648682f, 0.193359f, -0.662109f, 0.243164f, -0.662109f, 0.299805f, -0.662109f,
+0.341553f, -0.642578f, 0.383301f, -0.623047f, 0.4104f, -0.582275f, 0.4375f, -0.541504f,
+0.450684f, -0.478516f, 0.463867f, -0.415527f, 0.463867f, -0.329102f, 0.463867f, -0.234375f,
+0.442627f, -0.169678f, 0.421387f, -0.10498f, 0.385498f, -0.0651855f, 0.349609f, -0.0253906f,
+0.30249f, -0.0078125f, 0.255371f, 0.00976562f, 0.204102f, 0.00976562f, 0.15918f,
+0.00976562f, 0.123047f, 0.00439453f, 0.0869141f, -0.000976562f, 0.0522461f, -0.0112305f,
+0.0522461f, -0.160156f, 0.0947266f, -0.160156f, 0.115723f, -0.0654297f, 0.132812f,
+-0.0532227f, 0.156494f, -0.0463867f, 0.180176f, -0.0395508f, 0.202148f, -0.0395508f,
+0.225098f, -0.0395508f, 0.245117f, -0.052002f, 0.265137f, -0.0644531f, 0.280518f,
+-0.0922852f, 0.295898f, -0.120117f, 0.305908f, -0.164307f, 0.315918f, -0.208496f,
+0.318848f, -0.272461f, 0.29541f, -0.26416f, 0.270508f, -0.259277f, 0.245605f, -0.254395f,
+0.217773f, -0.254395f, 0.175293f, -0.254395f, 0.140381f, -0.267334f, 0.105469f, -0.280273f,
+0.0803223f, -0.30542f, 0.0551758f, -0.330566f, 0.0412598f, -0.368164f, 0.0273438f,
+-0.405762f, 0.0273438f, -0.455078f, 0.170898f, -0.453125f, 0.170898f, -0.415039f,
+0.176514f, -0.388428f, 0.182129f, -0.361816f, 0.192139f, -0.345215f, 0.202148f, -0.328613f,
+0.216064f, -0.321045f, 0.22998f, -0.313477f, 0.24707f, -0.313477f, 0.28418f, -0.313477f,
+0.320312f, -0.322266f, 0.320312f, -0.329102f, 0.320312f, -0.470215f, 0.303467f, -0.541504f,
+0.286621f, -0.612793f, 0.244141f, -0.612793f, 0.206055f, -0.612793f, 0.188477f, -0.571777f,
+0.170898f, -0.530762f, 0.170898f, -0.453125f, 0.162598f, 0.0141602f, 0.145508f, 0.0141602f,
+0.130615f, 0.0078125f, 0.115723f, 0.00146484f, 0.10498f, -0.00952148f, 0.0942383f,
+-0.0205078f, 0.0881348f, -0.0351562f, 0.0820312f, -0.0498047f, 0.0820312f, -0.0668945f,
+0.0820312f, -0.0834961f, 0.0881348f, -0.0983887f, 0.0942383f, -0.113281f, 0.10498f,
+-0.124268f, 0.115723f, -0.135254f, 0.130615f, -0.141602f, 0.145508f, -0.147949f,
+0.162598f, -0.147949f, 0.179688f, -0.147949f, 0.194336f, -0.141602f, 0.208984f, -0.135254f,
+0.219971f, -0.124268f, 0.230957f, -0.113281f, 0.237305f, -0.0983887f, 0.243652f,
+-0.0834961f, 0.243652f, -0.0668945f, 0.243652f, -0.0498047f, 0.237305f, -0.0351562f,
+0.230957f, -0.0205078f, 0.219971f, -0.00952148f, 0.208984f, 0.00146484f, 0.194336f,
+0.0078125f, 0.179688f, 0.0141602f, 0.162598f, 0.0141602f, 0.162598f, -0.306641f,
+0.145508f, -0.306641f, 0.130615f, -0.312988f, 0.115723f, -0.319336f, 0.10498f, -0.330322f,
+0.0942383f, -0.341309f, 0.0881348f, -0.355957f, 0.0820312f, -0.370605f, 0.0820312f,
+-0.387695f, 0.0820312f, -0.404785f, 0.0881348f, -0.419678f, 0.0942383f, -0.43457f,
+0.10498f, -0.445557f, 0.115723f, -0.456543f, 0.130615f, -0.462646f, 0.145508f, -0.46875f,
+0.162598f, -0.46875f, 0.179688f, -0.46875f, 0.194336f, -0.462646f, 0.208984f, -0.456543f,
+0.219971f, -0.445557f, 0.230957f, -0.43457f, 0.237305f, -0.419678f, 0.243652f, -0.404785f,
+0.243652f, -0.387695f, 0.243652f, -0.370605f, 0.237305f, -0.355957f, 0.230957f, -0.341309f,
+0.219971f, -0.330322f, 0.208984f, -0.319336f, 0.194336f, -0.312988f, 0.179688f, -0.306641f,
+0.162598f, -0.306641f, 0.163574f, -0.306641f, 0.146484f, -0.306641f, 0.131592f, -0.312988f,
+0.116699f, -0.319336f, 0.105957f, -0.330322f, 0.0952148f, -0.341309f, 0.0891113f,
+-0.355957f, 0.0830078f, -0.370605f, 0.0830078f, -0.387695f, 0.0830078f, -0.404785f,
+0.0891113f, -0.419678f, 0.0952148f, -0.43457f, 0.105957f, -0.445557f, 0.116699f,
+-0.456543f, 0.131592f, -0.462646f, 0.146484f, -0.46875f, 0.163574f, -0.46875f, 0.180664f,
+-0.46875f, 0.195312f, -0.462646f, 0.209961f, -0.456543f, 0.220947f, -0.445557f, 0.231934f,
+-0.43457f, 0.238281f, -0.419678f, 0.244629f, -0.404785f, 0.244629f, -0.387695f, 0.244629f,
+-0.370605f, 0.238281f, -0.355957f, 0.231934f, -0.341309f, 0.220947f, -0.330322f,
+0.209961f, -0.319336f, 0.195312f, -0.312988f, 0.180664f, -0.306641f, 0.163574f, -0.306641f,
+0.250977f, -0.0517578f, 0.250977f, -0.0170898f, 0.23999f, 0.013916f, 0.229004f, 0.0449219f,
+0.205078f, 0.0715332f, 0.181152f, 0.0981445f, 0.143311f, 0.119385f, 0.105469f, 0.140625f,
+0.0517578f, 0.154785f, 0.0517578f, 0.109863f, 0.0795898f, 0.101562f, 0.0986328f,
+0.0895996f, 0.117676f, 0.0776367f, 0.12915f, 0.0646973f, 0.140625f, 0.0517578f, 0.145752f,
+0.0390625f, 0.150879f, 0.0263672f, 0.150879f, 0.0170898f, 0.150879f, 0.00732422f,
+0.145264f, 0.000732422f, 0.139648f, -0.00585938f, 0.131348f, -0.0109863f, 0.123047f,
+-0.0161133f, 0.113281f, -0.0212402f, 0.103516f, -0.0263672f, 0.0952148f, -0.0341797f,
+0.0869141f, -0.0419922f, 0.0812988f, -0.0532227f, 0.0756836f, -0.0644531f, 0.0756836f,
+-0.0820312f, 0.0756836f, -0.0976562f, 0.0817871f, -0.109863f, 0.0878906f, -0.12207f,
+0.0983887f, -0.130371f, 0.108887f, -0.138672f, 0.123291f, -0.142822f, 0.137695f,
+-0.146973f, 0.154785f, -0.146973f, 0.172852f, -0.146973f, 0.189941f, -0.140869f,
+0.207031f, -0.134766f, 0.220703f, -0.122559f, 0.234375f, -0.110352f, 0.242676f, -0.0927734f,
+0.250977f, -0.0751953f, 0.250977f, -0.0517578f, 0.0498047f, -0.310059f, 0.0498047f,
+-0.354004f, 0.514648f, -0.58252f, 0.514648f, -0.512695f, 0.140137f, -0.332031f, 0.514648f,
+-0.150879f, 0.514648f, -0.0810547f, 0.514648f, -0.26709f, 0.514648f, -0.196777f,
+0.0498047f, -0.196777f, 0.0498047f, -0.26709f, 0.514648f, -0.466797f, 0.514648f,
+-0.396973f, 0.0498047f, -0.396973f, 0.0498047f, -0.466797f, 0.0507812f, -0.0810547f,
+0.0507812f, -0.150879f, 0.425781f, -0.332031f, 0.0507812f, -0.512695f, 0.0507812f,
+-0.58252f, 0.515625f, -0.354004f, 0.515625f, -0.310059f, 0.217285f, 0.0141602f, 0.200195f,
+0.0141602f, 0.185303f, 0.0078125f, 0.17041f, 0.00146484f, 0.159668f, -0.00952148f,
+0.148926f, -0.0205078f, 0.142822f, -0.0351562f, 0.136719f, -0.0498047f, 0.136719f,
+-0.0668945f, 0.136719f, -0.0834961f, 0.142822f, -0.0983887f, 0.148926f, -0.113281f,
+0.159668f, -0.124268f, 0.17041f, -0.135254f, 0.185303f, -0.141602f, 0.200195f, -0.147949f,
+0.217285f, -0.147949f, 0.234375f, -0.147949f, 0.249023f, -0.141602f, 0.263672f, -0.135254f,
+0.274658f, -0.124268f, 0.285645f, -0.113281f, 0.291992f, -0.0983887f, 0.29834f, -0.0834961f,
+0.29834f, -0.0668945f, 0.29834f, -0.0498047f, 0.291992f, -0.0351562f, 0.285645f,
+-0.0205078f, 0.274658f, -0.00952148f, 0.263672f, 0.00146484f, 0.249023f, 0.0078125f,
+0.234375f, 0.0141602f, 0.217285f, 0.0141602f, 0.239746f, -0.19043f, 0.189453f, -0.19043f,
+0.161621f, -0.343262f, 0.208008f, -0.355469f, 0.226562f, -0.360352f, 0.243164f, -0.368408f,
+0.259766f, -0.376465f, 0.272217f, -0.391113f, 0.284668f, -0.405762f, 0.291992f, -0.428467f,
+0.299316f, -0.451172f, 0.299316f, -0.485352f, 0.299316f, -0.519531f, 0.293457f, -0.543701f,
+0.287598f, -0.567871f, 0.275146f, -0.583252f, 0.262695f, -0.598633f, 0.243652f, -0.605469f,
+0.224609f, -0.612305f, 0.197754f, -0.612305f, 0.174316f, -0.612305f, 0.156494f, -0.606445f,
+0.138672f, -0.600586f, 0.125f, -0.591797f, 0.104004f, -0.49707f, 0.0605469f, -0.49707f,
+0.0605469f, -0.641113f, 0.0981445f, -0.650879f, 0.135986f, -0.656494f, 0.173828f,
+-0.662109f, 0.21875f, -0.662109f, 0.328613f, -0.662109f, 0.384521f, -0.618896f, 0.44043f,
+-0.575684f, 0.44043f, -0.48877f, 0.44043f, -0.456055f, 0.431641f, -0.42627f, 0.422852f,
+-0.396484f, 0.404785f, -0.37207f, 0.386719f, -0.347656f, 0.359375f, -0.329346f, 0.332031f,
+-0.311035f, 0.29541f, -0.300781f, 0.25293f, -0.289062f, 0.87793f, -0.367188f, 0.87793f,
+-0.316895f, 0.864014f, -0.270996f, 0.850098f, -0.225098f, 0.825928f, -0.185791f,
+0.801758f, -0.146484f, 0.768555f, -0.114258f, 0.735352f, -0.0820312f, 0.696777f,
+-0.0593262f, 0.658203f, -0.0366211f, 0.615479f, -0.0244141f, 0.572754f, -0.012207f,
+0.529785f, -0.012207f, 0.498047f, -0.012207f, 0.483154f, -0.0288086f, 0.468262f,
+-0.0454102f, 0.467285f, -0.0732422f, 0.455078f, -0.0629883f, 0.44165f, -0.052002f,
+0.428223f, -0.0410156f, 0.412109f, -0.0322266f, 0.395996f, -0.0234375f, 0.377197f,
+-0.0178223f, 0.358398f, -0.012207f, 0.334961f, -0.012207f, 0.313965f, -0.012207f,
+0.297119f, -0.0209961f, 0.280273f, -0.0297852f, 0.268555f, -0.0461426f, 0.256836f,
+-0.0625f, 0.250488f, -0.0856934f, 0.244141f, -0.108887f, 0.244141f, -0.138184f, 0.244141f,
+-0.172363f, 0.252197f, -0.208008f, 0.260254f, -0.243652f, 0.276367f, -0.2771f, 0.29248f,
+-0.310547f, 0.31665f, -0.340332f, 0.34082f, -0.370117f, 0.373047f, -0.393066f, 0.397949f,
+-0.411133f, 0.421631f, -0.422363f, 0.445312f, -0.433594f, 0.469971f, -0.439941f,
+0.494629f, -0.446289f, 0.52124f, -0.44873f, 0.547852f, -0.451172f, 0.578125f, -0.451172f,
+0.601562f, -0.451172f, 0.625977f, -0.449463f, 0.650391f, -0.447754f, 0.66748f, -0.445801f,
+0.608398f, -0.181641f, 0.605957f, -0.171875f, 0.604004f, -0.161133f, 0.602051f, -0.150391f,
+0.600586f, -0.139893f, 0.599121f, -0.129395f, 0.598145f, -0.120117f, 0.597168f, -0.11084f,
+0.597168f, -0.10498f, 0.597168f, -0.09375f, 0.601318f, -0.0856934f, 0.605469f, -0.0776367f,
+0.621582f, -0.0776367f, 0.647461f, -0.0776367f, 0.669922f, -0.0895996f, 0.692383f,
+-0.101562f, 0.710938f, -0.122314f, 0.729492f, -0.143066f, 0.743896f, -0.170898f,
+0.758301f, -0.19873f, 0.768066f, -0.230957f, 0.777832f, -0.263184f, 0.782959f, -0.297852f,
+0.788086f, -0.33252f, 0.788086f, -0.366699f, 0.788086f, -0.427246f, 0.769775f, -0.473877f,
+0.751465f, -0.520508f, 0.717285f, -0.552246f, 0.683105f, -0.583984f, 0.63501f, -0.600342f,
+0.586914f, -0.616699f, 0.526855f, -0.616699f, 0.466797f, -0.616699f, 0.415039f, -0.60083f,
+0.363281f, -0.584961f, 0.320312f, -0.555908f, 0.277344f, -0.526855f, 0.244385f, -0.486572f,
+0.211426f, -0.446289f, 0.188477f, -0.397461f, 0.165527f, -0.348633f, 0.153809f, -0.292725f,
+0.14209f, -0.236816f, 0.14209f, -0.177246f, 0.14209f, -0.114746f, 0.159912f, -0.0576172f,
+0.177734f, -0.000488281f, 0.214355f, 0.0432129f, 0.250977f, 0.0869141f, 0.306396f,
+0.112793f, 0.361816f, 0.138672f, 0.437012f, 0.138672f, 0.481445f, 0.138672f, 0.519287f,
+0.131836f, 0.557129f, 0.125f, 0.589355f, 0.113281f, 0.621582f, 0.101562f, 0.64917f,
+0.0859375f, 0.676758f, 0.0703125f, 0.701172f, 0.0532227f, 0.722656f, 0.0844727f,
+0.695312f, 0.106445f, 0.664551f, 0.125488f, 0.633789f, 0.144531f, 0.597168f, 0.158936f,
+0.560547f, 0.17334f, 0.51709f, 0.181641f, 0.473633f, 0.189941f, 0.421875f, 0.189941f,
+0.332031f, 0.189941f, 0.262939f, 0.161377f, 0.193848f, 0.132812f, 0.146973f, 0.0830078f,
+0.100098f, 0.0332031f, 0.0761719f, -0.0336914f, 0.0522461f, -0.100586f, 0.0522461f,
+-0.176758f, 0.0522461f, -0.246582f, 0.0683594f, -0.310059f, 0.0844727f, -0.373535f,
+0.114502f, -0.427734f, 0.144531f, -0.481934f, 0.187012f, -0.526123f, 0.229492f, -0.570312f,
+0.282471f, -0.601318f, 0.335449f, -0.632324f, 0.397461f, -0.64917f, 0.459473f, -0.666016f,
+0.528809f, -0.666016f, 0.615723f, -0.666016f, 0.681152f, -0.644775f, 0.746582f, -0.623535f,
+0.790283f, -0.584473f, 0.833984f, -0.54541f, 0.855957f, -0.490234f, 0.87793f, -0.435059f,
+0.87793f, -0.367188f, 0.361328f, -0.154297f, 0.361328f, -0.119141f, 0.371826f, -0.10083f,
+0.382324f, -0.0825195f, 0.395996f, -0.0825195f, 0.405762f, -0.0825195f, 0.416504f,
+-0.0856934f, 0.427246f, -0.0888672f, 0.4375f, -0.09375f, 0.447754f, -0.0986328f,
+0.456543f, -0.104492f, 0.465332f, -0.110352f, 0.471191f, -0.115723f, 0.529785f, -0.389648f,
+0.526367f, -0.390625f, 0.516846f, -0.391357f, 0.507324f, -0.39209f, 0.5f, -0.39209f,
+0.476074f, -0.39209f, 0.454834f, -0.385498f, 0.433594f, -0.378906f, 0.416016f, -0.35791f,
+0.40625f, -0.346191f, 0.396484f, -0.325195f, 0.386719f, -0.304199f, 0.378906f, -0.2771f,
+0.371094f, -0.25f, 0.366211f, -0.218506f, 0.361328f, -0.187012f, 0.361328f, -0.154297f,
+0.208984f, -0.0356445f, 0.208984f, 0, 0.00976562f, 0, 0.00976562f, -0.0356445f, 0.0585938f,
+-0.0488281f, 0.291504f, -0.660156f, 0.433105f, -0.660156f, 0.665039f, -0.0488281f,
+0.714844f, -0.0356445f, 0.714844f, 0, 0.42334f, 0, 0.42334f, -0.0356445f, 0.499023f,
+-0.0488281f, 0.436523f, -0.218262f, 0.185059f, -0.218262f, 0.125f, -0.0488281f, 0.312988f,
+-0.561523f, 0.205078f, -0.271973f, 0.417969f, -0.271973f, 0.428711f, -0.493164f,
+0.428711f, -0.520996f, 0.423096f, -0.54126f, 0.41748f, -0.561523f, 0.404785f, -0.574951f,
+0.39209f, -0.588379f, 0.371826f, -0.594727f, 0.351562f, -0.601074f, 0.322754f, -0.601074f,
+0.254883f, -0.601074f, 0.254883f, -0.373047f, 0.32666f, -0.373047f, 0.356445f, -0.373047f,
+0.376221f, -0.381348f, 0.395996f, -0.389648f, 0.407715f, -0.405029f, 0.419434f, -0.42041f,
+0.424072f, -0.442627f, 0.428711f, -0.464844f, 0.428711f, -0.493164f, 0.478027f, -0.190918f,
+0.478027f, -0.255859f, 0.445557f, -0.287598f, 0.413086f, -0.319336f, 0.339355f, -0.319336f,
+0.254883f, -0.319336f, 0.254883f, -0.0537109f, 0.27832f, -0.0527344f, 0.299805f,
+-0.0522461f, 0.317871f, -0.0512695f, 0.336426f, -0.0510254f, 0.35498f, -0.0507812f,
+0.365723f, -0.0507812f, 0.396484f, -0.0507812f, 0.417969f, -0.0605469f, 0.439453f,
+-0.0703125f, 0.452637f, -0.0883789f, 0.46582f, -0.106445f, 0.471924f, -0.132324f,
+0.478027f, -0.158203f, 0.478027f, -0.190918f, 0.0166016f, 0, 0.0166016f, -0.0356445f,
+0.101074f, -0.0488281f, 0.101074f, -0.606445f, 0.0166016f, -0.619141f, 0.0166016f,
+-0.654785f, 0.334473f, -0.654785f, 0.407227f, -0.654785f, 0.456055f, -0.644531f,
+0.504883f, -0.634277f, 0.534424f, -0.615234f, 0.563965f, -0.596191f, 0.576416f, -0.568848f,
+0.588867f, -0.541504f, 0.588867f, -0.506836f, 0.588867f, -0.474121f, 0.577881f, -0.447754f,
+0.566895f, -0.421387f, 0.54834f, -0.401611f, 0.529785f, -0.381836f, 0.505371f, -0.368896f,
+0.480957f, -0.355957f, 0.454102f, -0.350098f, 0.502441f, -0.345215f, 0.537354f, -0.332031f,
+0.572266f, -0.318848f, 0.594971f, -0.29834f, 0.617676f, -0.277832f, 0.628418f, -0.250732f,
+0.63916f, -0.223633f, 0.63916f, -0.190918f, 0.63916f, -0.148438f, 0.624023f, -0.112793f,
+0.608887f, -0.0771484f, 0.575928f, -0.0515137f, 0.542969f, -0.0258789f, 0.491455f,
+-0.0114746f, 0.439941f, 0.00292969f, 0.367188f, 0.00292969f, 0.308594f, 0.00292969f,
+0.250977f, 0.00146484f, 0.193359f, 0, 0.144531f, 0, 0.397949f, 0.00976562f, 0.31543f,
+0.00976562f, 0.250732f, -0.0126953f, 0.186035f, -0.0351562f, 0.141113f, -0.0776367f,
+0.0961914f, -0.120117f, 0.0725098f, -0.181396f, 0.0488281f, -0.242676f, 0.0488281f,
+-0.319824f, 0.0488281f, -0.407715f, 0.0725098f, -0.472168f, 0.0961914f, -0.536621f,
+0.140869f, -0.578857f, 0.185547f, -0.621094f, 0.250244f, -0.641602f, 0.314941f, -0.662109f,
+0.397461f, -0.662109f, 0.467285f, -0.662109f, 0.526611f, -0.6521f, 0.585938f, -0.64209f,
+0.633301f, -0.629395f, 0.63623f, -0.472168f, 0.592285f, -0.472168f, 0.578613f, -0.566895f,
+0.547852f, -0.587891f, 0.509277f, -0.599365f, 0.470703f, -0.61084f, 0.428711f, -0.61084f,
+0.377441f, -0.61084f, 0.336914f, -0.595947f, 0.296387f, -0.581055f, 0.268311f, -0.546875f,
+0.240234f, -0.512695f, 0.225586f, -0.45752f, 0.210938f, -0.402344f, 0.210938f, -0.321289f,
+0.210938f, -0.25f, 0.225586f, -0.197266f, 0.240234f, -0.144531f, 0.267578f, -0.109863f,
+0.294922f, -0.0751953f, 0.334717f, -0.0578613f, 0.374512f, -0.0405273f, 0.424805f,
+-0.0405273f, 0.47998f, -0.0405273f, 0.52124f, -0.0551758f, 0.5625f, -0.0698242f,
+0.585938f, -0.0898438f, 0.601562f, -0.197266f, 0.645996f, -0.197266f, 0.643066f,
+-0.03125f, 0.62207f, -0.0229492f, 0.593506f, -0.015625f, 0.564941f, -0.00830078f,
+0.532471f, -0.00268555f, 0.5f, 0.00292969f, 0.465332f, 0.00634766f, 0.430664f, 0.00976562f,
+0.397949f, 0.00976562f, 0.51123f, -0.327148f, 0.51123f, -0.403809f, 0.496826f, -0.456299f,
+0.482422f, -0.508789f, 0.45459f, -0.541016f, 0.426758f, -0.573242f, 0.385742f, -0.587158f,
+0.344727f, -0.601074f, 0.291016f, -0.601074f, 0.254883f, -0.601074f, 0.254883f, -0.0556641f,
+0.266602f, -0.0546875f, 0.276123f, -0.0541992f, 0.285645f, -0.0537109f, 0.295166f,
+-0.0529785f, 0.304688f, -0.0522461f, 0.315186f, -0.052002f, 0.325684f, -0.0517578f,
+0.339844f, -0.0517578f, 0.388672f, -0.0517578f, 0.421387f, -0.067627f, 0.454102f,
+-0.0834961f, 0.474121f, -0.117188f, 0.494141f, -0.150879f, 0.502686f, -0.202881f,
+0.51123f, -0.254883f, 0.51123f, -0.327148f, 0.328613f, -0.654785f, 0.407715f, -0.654785f,
+0.471436f, -0.637939f, 0.535156f, -0.621094f, 0.580078f, -0.583008f, 0.625f, -0.544922f,
+0.64917f, -0.483154f, 0.67334f, -0.421387f, 0.67334f, -0.331055f, 0.67334f, -0.250977f,
+0.654785f, -0.188965f, 0.63623f, -0.126953f, 0.59668f, -0.0844727f, 0.557129f, -0.0419922f,
+0.49585f, -0.0200195f, 0.43457f, 0.00195312f, 0.349121f, 0.00195312f, 0.321289f,
+0.00195312f, 0.290527f, 0.00170898f, 0.259766f, 0.00146484f, 0.230469f, 0.000976562f,
+0.201172f, 0.000488281f, 0.175049f, 0.000244141f, 0.148926f, 0, 0.129883f, 0, 0.0175781f,
+0, 0.0175781f, -0.0356445f, 0.101562f, -0.0488281f, 0.101562f, -0.606445f, 0.0175781f,
+-0.619141f, 0.0175781f, -0.654785f, 0.0170898f, -0.0356445f, 0.101074f, -0.0488281f,
+0.101074f, -0.606445f, 0.0170898f, -0.619141f, 0.0170898f, -0.654785f, 0.574707f,
+-0.654785f, 0.574707f, -0.488281f, 0.530273f, -0.488281f, 0.514648f, -0.594238f,
+0.499023f, -0.596191f, 0.476807f, -0.597656f, 0.45459f, -0.599121f, 0.431641f, -0.599854f,
+0.408691f, -0.600586f, 0.388184f, -0.60083f, 0.367676f, -0.601074f, 0.356445f, -0.601074f,
+0.254883f, -0.601074f, 0.254883f, -0.36084f, 0.42627f, -0.36084f, 0.441406f, -0.433105f,
+0.484863f, -0.433105f, 0.484863f, -0.231934f, 0.441406f, -0.231934f, 0.42627f, -0.306152f,
+0.254883f, -0.306152f, 0.254883f, -0.0537109f, 0.378418f, -0.0537109f, 0.408691f,
+-0.0537109f, 0.435547f, -0.0544434f, 0.462402f, -0.0551758f, 0.483887f, -0.0561523f,
+0.505371f, -0.0571289f, 0.520752f, -0.0585938f, 0.536133f, -0.0600586f, 0.543457f,
+-0.0615234f, 0.571289f, -0.182617f, 0.615723f, -0.182617f, 0.606445f, 0, 0.0170898f,
+0, 0.254883f, -0.279297f, 0.254883f, -0.0488281f, 0.36377f, -0.0356445f, 0.36377f,
+0, 0.0234375f, 0, 0.0234375f, -0.0356445f, 0.101074f, -0.0488281f, 0.101074f, -0.606445f,
+0.0170898f, -0.619141f, 0.0170898f, -0.654785f, 0.562988f, -0.654785f, 0.562988f,
+-0.478516f, 0.51709f, -0.478516f, 0.501465f, -0.594238f, 0.491211f, -0.595703f, 0.475342f,
+-0.59668f, 0.459473f, -0.597656f, 0.441162f, -0.598633f, 0.422852f, -0.599609f, 0.403564f,
+-0.599854f, 0.384277f, -0.600098f, 0.366943f, -0.600586f, 0.349609f, -0.601074f,
+0.335449f, -0.601074f, 0.321289f, -0.601074f, 0.313965f, -0.601074f, 0.254883f, -0.601074f,
+0.254883f, -0.333008f, 0.414551f, -0.333008f, 0.429688f, -0.416016f, 0.473145f, -0.416016f,
+0.473145f, -0.195312f, 0.429688f, -0.195312f, 0.414551f, -0.279297f, 0.686523f, -0.0341797f,
+0.658203f, -0.0249023f, 0.623291f, -0.0168457f, 0.588379f, -0.00878906f, 0.550781f,
+-0.00292969f, 0.513184f, 0.00292969f, 0.475098f, 0.00634766f, 0.437012f, 0.00976562f,
+0.401855f, 0.00976562f, 0.324219f, 0.00976562f, 0.259277f, -0.0114746f, 0.194336f,
+-0.0327148f, 0.147705f, -0.0744629f, 0.101074f, -0.116211f, 0.0749512f, -0.177734f,
+0.0488281f, -0.239258f, 0.0488281f, -0.319824f, 0.0488281f, -0.405762f, 0.0742188f,
+-0.469971f, 0.0996094f, -0.53418f, 0.146729f, -0.576904f, 0.193848f, -0.619629f,
+0.260986f, -0.640869f, 0.328125f, -0.662109f, 0.411133f, -0.662109f, 0.453613f, -0.662109f,
+0.488525f, -0.658691f, 0.523438f, -0.655273f, 0.553711f, -0.649414f, 0.583984f, -0.643555f,
+0.61084f, -0.635986f, 0.637695f, -0.628418f, 0.665039f, -0.620605f, 0.665039f, -0.470215f,
+0.621094f, -0.470215f, 0.609375f, -0.555176f, 0.592285f, -0.566895f, 0.571777f, -0.577148f,
+0.55127f, -0.587402f, 0.528076f, -0.594971f, 0.504883f, -0.602539f, 0.479736f, -0.606689f,
+0.45459f, -0.61084f, 0.428711f, -0.61084f, 0.378906f, -0.61084f, 0.338867f, -0.596924f,
+0.298828f, -0.583008f, 0.270264f, -0.549561f, 0.241699f, -0.516113f, 0.226318f, -0.460205f,
+0.210938f, -0.404297f, 0.210938f, -0.320801f, 0.210938f, -0.26416f, 0.219727f, -0.22168f,
+0.228516f, -0.179199f, 0.243652f, -0.147949f, 0.258789f, -0.116699f, 0.279541f, -0.0959473f,
+0.300293f, -0.0751953f, 0.323975f, -0.0629883f, 0.347656f, -0.0507812f, 0.373535f,
+-0.0456543f, 0.399414f, -0.0405273f, 0.424805f, -0.0405273f, 0.452637f, -0.0405273f,
+0.480957f, -0.045166f, 0.509277f, -0.0498047f, 0.532715f, -0.0576172f, 0.532715f,
+-0.24707f, 0.44873f, -0.259766f, 0.44873f, -0.295898f, 0.750488f, -0.295898f, 0.750488f,
+-0.259766f, 0.686523f, -0.24707f, 0.0170898f, 0, 0.0170898f, -0.0361328f, 0.101074f,
+-0.0488281f, 0.101074f, -0.605957f, 0.0170898f, -0.619141f, 0.0170898f, -0.654785f,
+0.338867f, -0.654785f, 0.338867f, -0.619141f, 0.254883f, -0.605957f, 0.254883f, -0.36377f,
+0.522461f, -0.36377f, 0.522461f, -0.605957f, 0.438477f, -0.619141f, 0.438477f, -0.654785f,
+0.76123f, -0.654785f, 0.76123f, -0.619141f, 0.676758f, -0.605957f, 0.676758f, -0.0488281f,
+0.76123f, -0.0361328f, 0.76123f, 0, 0.438477f, 0, 0.438477f, -0.0361328f, 0.522461f,
+-0.0488281f, 0.522461f, -0.310059f, 0.254883f, -0.310059f, 0.254883f, -0.0488281f,
+0.338867f, -0.0361328f, 0.338867f, 0, 0.271484f, -0.0488281f, 0.355469f, -0.0361328f,
+0.355469f, 0, 0.0336914f, 0, 0.0336914f, -0.0361328f, 0.117676f, -0.0488281f, 0.117676f,
+-0.605957f, 0.0336914f, -0.619141f, 0.0336914f, -0.654785f, 0.355469f, -0.654785f,
+0.355469f, -0.619141f, 0.271484f, -0.605957f, 0.244629f, -0.606445f, 0.160645f, -0.619141f,
+0.160645f, -0.654785f, 0.472656f, -0.654785f, 0.472656f, -0.619141f, 0.398438f, -0.606445f,
+0.398438f, -0.210938f, 0.398438f, -0.166504f, 0.388672f, -0.132812f, 0.378906f, -0.0991211f,
+0.362305f, -0.074707f, 0.345703f, -0.050293f, 0.32373f, -0.0339355f, 0.301758f, -0.0175781f,
+0.276611f, -0.0078125f, 0.251465f, 0.00195312f, 0.224854f, 0.00585938f, 0.198242f,
+0.00976562f, 0.172852f, 0.00976562f, 0.15625f, 0.00976562f, 0.138428f, 0.00878906f,
+0.120605f, 0.0078125f, 0.103516f, 0.00585938f, 0.0864258f, 0.00390625f, 0.0710449f,
+0.0012207f, 0.0556641f, -0.00146484f, 0.0444336f, -0.00488281f, 0.0444336f, -0.15332f,
+0.0878906f, -0.15332f, 0.102539f, -0.065918f, 0.111816f, -0.0546875f, 0.128906f,
+-0.0483398f, 0.145996f, -0.0419922f, 0.166504f, -0.0419922f, 0.200195f, -0.0419922f,
+0.222412f, -0.0654297f, 0.244629f, -0.0888672f, 0.244629f, -0.134766f, 0.717285f,
+-0.654785f, 0.717285f, -0.619141f, 0.637207f, -0.606445f, 0.420898f, -0.415527f,
+0.708984f, -0.0488281f, 0.77002f, -0.0356445f, 0.77002f, 0, 0.556152f, 0, 0.311523f,
+-0.31543f, 0.254883f, -0.266602f, 0.254883f, -0.0488281f, 0.349121f, -0.0356445f,
+0.349121f, 0, 0.0170898f, 0, 0.0170898f, -0.0356445f, 0.101074f, -0.0488281f, 0.101074f,
+-0.606445f, 0.0170898f, -0.619141f, 0.0170898f, -0.654785f, 0.339355f, -0.654785f,
+0.339355f, -0.619141f, 0.254883f, -0.606445f, 0.254883f, -0.339844f, 0.553223f, -0.606445f,
+0.493164f, -0.619141f, 0.493164f, -0.654785f, 0.355957f, -0.619141f, 0.254883f, -0.606445f,
+0.254883f, -0.0517578f, 0.388184f, -0.0517578f, 0.449219f, -0.0517578f, 0.487793f,
+-0.0551758f, 0.526367f, -0.0585938f, 0.541016f, -0.0615234f, 0.581055f, -0.197754f,
+0.625f, -0.197754f, 0.606445f, 0, 0.0170898f, 0, 0.0170898f, -0.0356445f, 0.101074f,
+-0.0488281f, 0.101074f, -0.606445f, 0.0175781f, -0.619141f, 0.0175781f, -0.654785f,
+0.355957f, -0.654785f, 0.430664f, 0, 0.403809f, 0, 0.162109f, -0.553223f, 0.162109f,
+-0.0488281f, 0.25f, -0.0356445f, 0.25f, 0, 0.0170898f, 0, 0.0170898f, -0.0356445f,
+0.101074f, -0.0488281f, 0.101074f, -0.606445f, 0.0170898f, -0.619141f, 0.0170898f,
+-0.654785f, 0.274414f, -0.654785f, 0.461426f, -0.224121f, 0.652344f, -0.654785f,
+0.915039f, -0.654785f, 0.915039f, -0.619141f, 0.831055f, -0.606445f, 0.831055f, -0.0488281f,
+0.915039f, -0.0356445f, 0.915039f, 0, 0.589355f, 0, 0.589355f, -0.0356445f, 0.677246f,
+-0.0488281f, 0.677246f, -0.553223f, 0.563965f, -0.606445f, 0.476074f, -0.619141f,
+0.476074f, -0.654785f, 0.708984f, -0.654785f, 0.708984f, -0.619141f, 0.625f, -0.606445f,
+0.625f, 0, 0.567871f, 0, 0.164062f, -0.526367f, 0.164062f, -0.0488281f, 0.251953f,
+-0.0356445f, 0.251953f, 0, 0.019043f, 0, 0.019043f, -0.0356445f, 0.103027f, -0.0488281f,
+0.103027f, -0.606445f, 0.019043f, -0.619141f, 0.019043f, -0.654785f, 0.243164f, -0.654785f,
+0.563965f, -0.236328f, 0.210938f, -0.328125f, 0.210938f, -0.259766f, 0.219238f, -0.206055f,
+0.227539f, -0.152344f, 0.248047f, -0.115234f, 0.268555f, -0.078125f, 0.302979f, -0.0585938f,
+0.337402f, -0.0390625f, 0.38916f, -0.0390625f, 0.440918f, -0.0390625f, 0.475098f,
+-0.0585938f, 0.509277f, -0.078125f, 0.529785f, -0.115234f, 0.550293f, -0.152344f,
+0.558594f, -0.206055f, 0.566895f, -0.259766f, 0.566895f, -0.328125f, 0.566895f, -0.395996f,
+0.558594f, -0.449219f, 0.550293f, -0.502441f, 0.529785f, -0.538574f, 0.509277f, -0.574707f,
+0.475098f, -0.59375f, 0.440918f, -0.612793f, 0.38916f, -0.612793f, 0.337402f, -0.612793f,
+0.302979f, -0.59375f, 0.268555f, -0.574707f, 0.248047f, -0.538574f, 0.227539f, -0.502441f,
+0.219238f, -0.449219f, 0.210938f, -0.395996f, 0.210938f, -0.328125f, 0.0488281f,
+-0.328125f, 0.0488281f, -0.415039f, 0.0712891f, -0.478027f, 0.09375f, -0.541016f,
+0.137207f, -0.582031f, 0.180664f, -0.623047f, 0.243896f, -0.642578f, 0.307129f, -0.662109f,
+0.38916f, -0.662109f, 0.468262f, -0.662109f, 0.53125f, -0.642578f, 0.594238f, -0.623047f,
+0.638184f, -0.582031f, 0.682129f, -0.541016f, 0.705566f, -0.478027f, 0.729004f, -0.415039f,
+0.729004f, -0.328125f, 0.729004f, -0.241211f, 0.705566f, -0.17749f, 0.682129f, -0.11377f,
+0.638184f, -0.0722656f, 0.594238f, -0.0307617f, 0.53125f, -0.010498f, 0.468262f,
+0.00976562f, 0.38916f, 0.00976562f, 0.310059f, 0.00976562f, 0.24707f, -0.010498f,
+0.184082f, -0.0307617f, 0.139893f, -0.0722656f, 0.0957031f, -0.11377f, 0.0722656f,
+-0.17749f, 0.0488281f, -0.241211f, 0.0488281f, -0.328125f, 0.425293f, -0.460938f,
+0.425293f, -0.5f, 0.418457f, -0.526855f, 0.411621f, -0.553711f, 0.39624f, -0.570068f,
+0.380859f, -0.586426f, 0.355713f, -0.59375f, 0.330566f, -0.601074f, 0.293945f, -0.601074f,
+0.255371f, -0.601074f, 0.255371f, -0.310547f, 0.295898f, -0.310547f, 0.333008f, -0.310547f,
+0.357666f, -0.320068f, 0.382324f, -0.32959f, 0.397461f, -0.348389f, 0.412598f, -0.367188f,
+0.418945f, -0.395264f, 0.425293f, -0.42334f, 0.425293f, -0.460938f, 0.255371f, -0.256836f,
+0.255371f, -0.0488281f, 0.364258f, -0.0356445f, 0.364258f, 0, 0.0234375f, 0, 0.0234375f,
+-0.0356445f, 0.101074f, -0.0488281f, 0.101074f, -0.606445f, 0.0170898f, -0.619141f,
+0.0170898f, -0.654785f, 0.305664f, -0.654785f, 0.387695f, -0.654785f, 0.441162f,
+-0.639893f, 0.494629f, -0.625f, 0.526123f, -0.598877f, 0.557617f, -0.572754f, 0.570068f,
+-0.537598f, 0.58252f, -0.502441f, 0.58252f, -0.461914f, 0.58252f, -0.421875f, 0.572021f,
+-0.384766f, 0.561523f, -0.347656f, 0.534424f, -0.319336f, 0.507324f, -0.291016f,
+0.460938f, -0.273926f, 0.414551f, -0.256836f, 0.343262f, -0.256836f, 0.0488281f,
+-0.328125f, 0.0488281f, -0.415039f, 0.0712891f, -0.478027f, 0.09375f, -0.541016f,
+0.137207f, -0.582031f, 0.180664f, -0.623047f, 0.243896f, -0.642578f, 0.307129f, -0.662109f,
+0.38916f, -0.662109f, 0.468262f, -0.662109f, 0.53125f, -0.642578f, 0.594238f, -0.623047f,
+0.638184f, -0.582031f, 0.682129f, -0.541016f, 0.705566f, -0.478027f, 0.729004f, -0.415039f,
+0.729004f, -0.328125f, 0.729004f, -0.265625f, 0.716797f, -0.215088f, 0.70459f, -0.164551f,
+0.681152f, -0.125732f, 0.657715f, -0.0869141f, 0.623779f, -0.0595703f, 0.589844f,
+-0.0322266f, 0.546387f, -0.015625f, 0.570801f, 0.0141602f, 0.591797f, 0.0405273f,
+0.609863f, 0.0578613f, 0.62793f, 0.0751953f, 0.643066f, 0.0854492f, 0.658203f, 0.0957031f,
+0.670654f, 0.0998535f, 0.683105f, 0.104004f, 0.693848f, 0.104004f, 0.719238f, 0.104004f,
+0.733887f, 0.100098f, 0.733887f, 0.14209f, 0.728516f, 0.144531f, 0.716064f, 0.147705f,
+0.703613f, 0.150879f, 0.6875f, 0.154297f, 0.671387f, 0.157715f, 0.65332f, 0.159912f,
+0.635254f, 0.162109f, 0.618652f, 0.162109f, 0.579102f, 0.162109f, 0.549805f, 0.154053f,
+0.520508f, 0.145996f, 0.496094f, 0.129883f, 0.47168f, 0.11377f, 0.449463f, 0.0895996f,
+0.427246f, 0.0654297f, 0.401855f, 0.0332031f, 0.383301f, 0.00976562f, 0.305664f,
+0.00927734f, 0.243652f, -0.0114746f, 0.181641f, -0.0322266f, 0.138428f, -0.0737305f,
+0.0952148f, -0.115234f, 0.0720215f, -0.178467f, 0.0488281f, -0.241699f, 0.0488281f,
+-0.328125f, 0.210938f, -0.328125f, 0.210938f, -0.259766f, 0.219238f, -0.206055f,
+0.227539f, -0.152344f, 0.248047f, -0.115234f, 0.268555f, -0.078125f, 0.302979f, -0.0585938f,
+0.337402f, -0.0390625f, 0.38916f, -0.0390625f, 0.440918f, -0.0390625f, 0.475098f,
+-0.0585938f, 0.509277f, -0.078125f, 0.529785f, -0.115234f, 0.550293f, -0.152344f,
+0.558594f, -0.206055f, 0.566895f, -0.259766f, 0.566895f, -0.328125f, 0.566895f, -0.395996f,
+0.558594f, -0.449219f, 0.550293f, -0.502441f, 0.529785f, -0.538574f, 0.509277f, -0.574707f,
+0.475098f, -0.59375f, 0.440918f, -0.612793f, 0.38916f, -0.612793f, 0.337402f, -0.612793f,
+0.302979f, -0.59375f, 0.268555f, -0.574707f, 0.248047f, -0.538574f, 0.227539f, -0.502441f,
+0.219238f, -0.449219f, 0.210938f, -0.395996f, 0.210938f, -0.328125f, 0.255371f, -0.277344f,
+0.255371f, -0.0488281f, 0.339355f, -0.0356445f, 0.339355f, 0, 0.0234375f, 0, 0.0234375f,
+-0.0356445f, 0.101074f, -0.0488281f, 0.101074f, -0.606445f, 0.0170898f, -0.619141f,
+0.0170898f, -0.654785f, 0.330078f, -0.654785f, 0.412109f, -0.654785f, 0.467285f,
+-0.641357f, 0.522461f, -0.62793f, 0.555664f, -0.60376f, 0.588867f, -0.57959f, 0.603027f,
+-0.545898f, 0.617188f, -0.512207f, 0.617188f, -0.47168f, 0.617188f, -0.440918f, 0.610352f,
+-0.413086f, 0.603516f, -0.385254f, 0.588135f, -0.361816f, 0.572754f, -0.338379f,
+0.547607f, -0.320312f, 0.522461f, -0.302246f, 0.485352f, -0.291016f, 0.660156f, -0.0488281f,
+0.730957f, -0.0356445f, 0.730957f, 0, 0.519043f, 0, 0.336426f, -0.277344f, 0.464844f,
+-0.470703f, 0.464844f, -0.509766f, 0.457031f, -0.534912f, 0.449219f, -0.560059f,
+0.432129f, -0.574707f, 0.415039f, -0.589355f, 0.388184f, -0.595215f, 0.361328f, -0.601074f,
+0.32373f, -0.601074f, 0.255371f, -0.601074f, 0.255371f, -0.331055f, 0.326172f, -0.331055f,
+0.364746f, -0.331055f, 0.391357f, -0.338867f, 0.417969f, -0.34668f, 0.434326f, -0.363525f,
+0.450684f, -0.380371f, 0.457764f, -0.406738f, 0.464844f, -0.433105f, 0.464844f, -0.470703f,
+0.0532227f, -0.200684f, 0.0961914f, -0.200684f, 0.118164f, -0.0957031f, 0.128418f,
+-0.0839844f, 0.144043f, -0.0739746f, 0.159668f, -0.0639648f, 0.179199f, -0.0561523f,
+0.19873f, -0.0483398f, 0.220947f, -0.0439453f, 0.243164f, -0.0395508f, 0.266113f,
+-0.0395508f, 0.304199f, -0.0395508f, 0.331055f, -0.0480957f, 0.35791f, -0.0566406f,
+0.374512f, -0.0717773f, 0.391113f, -0.0869141f, 0.398682f, -0.108154f, 0.40625f,
+-0.129395f, 0.40625f, -0.154785f, 0.40625f, -0.184082f, 0.391357f, -0.203125f, 0.376465f,
+-0.222168f, 0.351807f, -0.23584f, 0.327148f, -0.249512f, 0.295898f, -0.26001f, 0.264648f,
+-0.270508f, 0.231689f, -0.282227f, 0.19873f, -0.293945f, 0.16748f, -0.309082f, 0.13623f,
+-0.324219f, 0.111572f, -0.347412f, 0.0869141f, -0.370605f, 0.0720215f, -0.403809f,
+0.0571289f, -0.437012f, 0.0571289f, -0.485352f, 0.0571289f, -0.571777f, 0.115967f,
+-0.616943f, 0.174805f, -0.662109f, 0.288086f, -0.662109f, 0.312012f, -0.662109f,
+0.33667f, -0.6604f, 0.361328f, -0.658691f, 0.384766f, -0.655762f, 0.408203f, -0.652832f,
+0.429688f, -0.648926f, 0.451172f, -0.64502f, 0.469727f, -0.641113f, 0.469727f, -0.485352f,
+0.42627f, -0.485352f, 0.404297f, -0.575195f, 0.382812f, -0.59082f, 0.35498f, -0.601074f,
+0.327148f, -0.611328f, 0.288086f, -0.611328f, 0.254883f, -0.611328f, 0.231201f, -0.604736f,
+0.20752f, -0.598145f, 0.192383f, -0.586426f, 0.177246f, -0.574707f, 0.17041f, -0.558105f,
+0.163574f, -0.541504f, 0.163574f, -0.520996f, 0.163574f, -0.494629f, 0.178711f, -0.477051f,
+0.193848f, -0.459473f, 0.218262f, -0.446777f, 0.242676f, -0.434082f, 0.27417f, -0.423828f,
+0.305664f, -0.413574f, 0.338623f, -0.401611f, 0.371582f, -0.389648f, 0.403076f, -0.374268f,
+0.43457f, -0.358887f, 0.458984f, -0.335693f, 0.483398f, -0.3125f, 0.498535f, -0.279297f,
+0.513672f, -0.246094f, 0.513672f, -0.19873f, 0.513672f, -0.150879f, 0.5f, -0.112305f,
+0.486328f, -0.0737305f, 0.456543f, -0.0466309f, 0.426758f, -0.0195312f, 0.380371f,
+-0.00488281f, 0.333984f, 0.00976562f, 0.268066f, 0.00976562f, 0.236328f, 0.00976562f,
+0.205078f, 0.00683594f, 0.173828f, 0.00390625f, 0.145752f, -0.000976562f, 0.117676f,
+-0.00585938f, 0.09375f, -0.012207f, 0.0698242f, -0.0185547f, 0.0532227f, -0.0249023f,
+0.151367f, 0, 0.151367f, -0.0356445f, 0.255371f, -0.0488281f, 0.255371f, -0.603027f,
+0.230469f, -0.603027f, 0.166504f, -0.603027f, 0.128906f, -0.600098f, 0.0913086f,
+-0.597168f, 0.0732422f, -0.593262f, 0.0600586f, -0.47168f, 0.015625f, -0.47168f,
+0.015625f, -0.654785f, 0.651855f, -0.654785f, 0.651855f, -0.47168f, 0.606934f, -0.47168f,
+0.59375f, -0.593262f, 0.575684f, -0.597168f, 0.533447f, -0.599609f, 0.491211f, -0.602051f,
+0.433594f, -0.602051f, 0.409668f, -0.602051f, 0.409668f, -0.0488281f, 0.513672f,
+-0.0356445f, 0.513672f, 0, 0.40918f, -0.0595703f, 0.449219f, -0.0595703f, 0.478271f,
+-0.0715332f, 0.507324f, -0.0834961f, 0.526123f, -0.104736f, 0.544922f, -0.125977f,
+0.553711f, -0.155762f, 0.5625f, -0.185547f, 0.5625f, -0.221191f, 0.5625f, -0.606445f,
+0.474609f, -0.619141f, 0.474609f, -0.654785f, 0.697266f, -0.654785f, 0.697266f, -0.619141f,
+0.623047f, -0.606445f, 0.623047f, -0.225098f, 0.623047f, -0.181641f, 0.611084f, -0.139648f,
+0.599121f, -0.0976562f, 0.570312f, -0.0644531f, 0.541504f, -0.03125f, 0.492676f,
+-0.0109863f, 0.443848f, 0.00927734f, 0.370605f, 0.00927734f, 0.302246f, 0.00927734f,
+0.251465f, -0.00708008f, 0.200684f, -0.0234375f, 0.166748f, -0.0541992f, 0.132812f,
+-0.0849609f, 0.115967f, -0.12915f, 0.0991211f, -0.17334f, 0.0991211f, -0.229004f,
+0.0991211f, -0.606445f, 0.0249023f, -0.619141f, 0.0249023f, -0.654785f, 0.336914f,
+-0.654785f, 0.336914f, -0.619141f, 0.25293f, -0.606445f, 0.25293f, -0.222168f, 0.25293f,
+-0.185059f, 0.262207f, -0.155029f, 0.271484f, -0.125f, 0.290527f, -0.10376f, 0.30957f,
+-0.0825195f, 0.339111f, -0.0710449f, 0.368652f, -0.0595703f, 0.40918f, -0.0595703f,
+0.710938f, -0.654785f, 0.710938f, -0.619141f, 0.648926f, -0.605957f, 0.395996f, 0.0151367f,
+0.331055f, 0.0151367f, 0.0649414f, -0.605957f, 0.0112305f, -0.619141f, 0.0112305f,
+-0.654785f, 0.295898f, -0.654785f, 0.295898f, -0.619141f, 0.228027f, -0.605957f,
+0.412109f, -0.176758f, 0.583984f, -0.605957f, 0.518066f, -0.619141f, 0.518066f, -0.654785f,
+0.927246f, -0.606445f, 0.73291f, 0.0151367f, 0.672852f, 0.0151367f, 0.509766f, -0.388672f,
+0.348145f, 0.0151367f, 0.288086f, 0.0151367f, 0.0712891f, -0.606445f, 0.0141602f,
+-0.619141f, 0.0141602f, -0.654785f, 0.308105f, -0.654785f, 0.308105f, -0.619141f,
+0.231445f, -0.606445f, 0.371094f, -0.216309f, 0.524414f, -0.599121f, 0.585449f, -0.599121f,
+0.739258f, -0.217285f, 0.85498f, -0.606445f, 0.772461f, -0.619141f, 0.772461f, -0.654785f,
+0.984375f, -0.654785f, 0.984375f, -0.619141f, 0.161133f, -0.0488281f, 0.242188f,
+-0.0356445f, 0.242188f, 0, 0.0185547f, 0, 0.0185547f, -0.0356445f, 0.0908203f, -0.0488281f,
+0.30127f, -0.316406f, 0.11377f, -0.606445f, 0.0400391f, -0.619141f, 0.0400391f, -0.654785f,
+0.358887f, -0.654785f, 0.358887f, -0.619141f, 0.275879f, -0.606445f, 0.390137f, -0.429688f,
+0.529297f, -0.606445f, 0.448242f, -0.619141f, 0.448242f, -0.654785f, 0.672363f, -0.654785f,
+0.672363f, -0.619141f, 0.600098f, -0.606445f, 0.421875f, -0.380371f, 0.63623f, -0.0488281f,
+0.710449f, -0.0356445f, 0.710449f, 0, 0.391602f, 0, 0.391602f, -0.0356445f, 0.474609f,
+-0.0488281f, 0.333008f, -0.26709f, 0.444824f, -0.257812f, 0.444824f, -0.0488281f,
+0.548828f, -0.0356445f, 0.548828f, 0, 0.186523f, 0, 0.186523f, -0.0356445f, 0.290527f,
+-0.0488281f, 0.290527f, -0.254883f, 0.0913086f, -0.606445f, 0.0175781f, -0.619141f,
+0.0175781f, -0.654785f, 0.354492f, -0.654785f, 0.354492f, -0.619141f, 0.266602f,
+-0.606445f, 0.416016f, -0.332031f, 0.560547f, -0.606445f, 0.480469f, -0.619141f,
+0.480469f, -0.654785f, 0.703125f, -0.654785f, 0.703125f, -0.619141f, 0.633789f, -0.606445f,
+0.0478516f, -0.0556641f, 0.410156f, -0.603027f, 0.292969f, -0.603027f, 0.229004f,
+-0.603027f, 0.191895f, -0.600098f, 0.154785f, -0.597168f, 0.136719f, -0.593262f,
+0.121582f, -0.490234f, 0.078125f, -0.490234f, 0.078125f, -0.654785f, 0.583984f, -0.654785f,
+0.583984f, -0.603027f, 0.219238f, -0.0507812f, 0.355957f, -0.0507812f, 0.387695f,
+-0.0507812f, 0.417725f, -0.0524902f, 0.447754f, -0.0541992f, 0.472656f, -0.0568848f,
+0.497559f, -0.0595703f, 0.516113f, -0.0622559f, 0.534668f, -0.0649414f, 0.543457f,
+-0.0668945f, 0.572266f, -0.191895f, 0.616211f, -0.191895f, 0.603027f, 0, 0.0478516f,
+0, 0.0742188f, 0.133789f, 0.0742188f, -0.693848f, 0.296875f, -0.693848f, 0.296875f,
+-0.661133f, 0.197754f, -0.641113f, 0.197754f, 0.0810547f, 0.296875f, 0.101074f, 0.296875f,
+0.133789f, -0.00976562f, -0.658691f, 0.0585938f, -0.658691f, 0.288086f, 0.00976562f,
+0.219238f, 0.00976562f, 0.0361328f, 0.133789f, 0.0361328f, 0.101074f, 0.135254f,
+0.0810547f, 0.135254f, -0.641113f, 0.0361328f, -0.661133f, 0.0361328f, -0.693848f,
+0.258789f, -0.693848f, 0.258789f, 0.133789f, 0.45166f, -0.189941f, 0.290527f, -0.561523f,
+0.129395f, -0.189941f, 0.0595703f, -0.189941f, 0.268555f, -0.654785f, 0.3125f, -0.654785f,
+0.521484f, -0.189941f, -0.0078125f, 0.13916f, -0.0078125f, 0.0688477f, 0.507812f,
+0.0688477f, 0.507812f, 0.13916f, 0.220703f, -0.545898f, 0.0429688f, -0.676758f, 0.0429688f,
+-0.694824f, 0.182129f, -0.694824f, 0.262695f, -0.561523f, 0.262695f, -0.545898f,
+0.266602f, -0.469238f, 0.304199f, -0.469238f, 0.335938f, -0.462891f, 0.367676f, -0.456543f,
+0.390625f, -0.44165f, 0.413574f, -0.426758f, 0.42627f, -0.402344f, 0.438965f, -0.37793f,
+0.438965f, -0.342285f, 0.438965f, -0.0439453f, 0.484863f, -0.0322266f, 0.484863f,
+0, 0.315918f, 0, 0.305176f, -0.0351562f, 0.295898f, -0.0288086f, 0.283447f, -0.0209961f,
+0.270996f, -0.0131836f, 0.254883f, -0.00634766f, 0.23877f, 0.000488281f, 0.21875f,
+0.00512695f, 0.19873f, 0.00976562f, 0.174316f, 0.00976562f, 0.134277f, 0.00976562f,
+0.107178f, -0.000488281f, 0.0800781f, -0.0107422f, 0.0634766f, -0.0290527f, 0.046875f,
+-0.0473633f, 0.0395508f, -0.0725098f, 0.0322266f, -0.0976562f, 0.0322266f, -0.126953f,
+0.0322266f, -0.174316f, 0.0488281f, -0.202637f, 0.0654297f, -0.230957f, 0.0935059f,
+-0.246338f, 0.121582f, -0.261719f, 0.158936f, -0.266602f, 0.196289f, -0.271484f,
+0.238281f, -0.272461f, 0.297852f, -0.273926f, 0.297852f, -0.34082f, 0.297852f, -0.381348f,
+0.28125f, -0.402588f, 0.264648f, -0.423828f, 0.22998f, -0.423828f, 0.203125f, -0.423828f,
+0.180908f, -0.41626f, 0.158691f, -0.408691f, 0.138184f, -0.398438f, 0.119629f, -0.341309f,
+0.0874023f, -0.341309f, 0.0874023f, -0.452148f, 0.109863f, -0.455566f, 0.130127f,
+-0.458496f, 0.150391f, -0.461426f, 0.171387f, -0.463867f, 0.192383f, -0.466309f,
+0.215576f, -0.467773f, 0.23877f, -0.469238f, 0.266602f, -0.469238f, 0.297852f, -0.230469f,
+0.256836f, -0.229004f, 0.235352f, -0.228027f, 0.219727f, -0.223145f, 0.204102f, -0.218262f,
+0.193604f, -0.206787f, 0.183105f, -0.195312f, 0.177979f, -0.176758f, 0.172852f, -0.158203f,
+0.172852f, -0.129883f, 0.172852f, -0.0883789f, 0.1875f, -0.0688477f, 0.202148f, -0.0493164f,
+0.225586f, -0.0493164f, 0.249023f, -0.0493164f, 0.265625f, -0.0544434f, 0.282227f,
+-0.0595703f, 0.297852f, -0.0664062f, 0.372559f, -0.242676f, 0.372559f, -0.29248f,
+0.366211f, -0.325928f, 0.359863f, -0.359375f, 0.347656f, -0.379639f, 0.335449f, -0.399902f,
+0.317627f, -0.408447f, 0.299805f, -0.416992f, 0.277344f, -0.416992f, 0.258789f, -0.416992f,
+0.236816f, -0.412842f, 0.214844f, -0.408691f, 0.200684f, -0.400391f, 0.200684f, -0.0493164f,
+0.216309f, -0.0454102f, 0.237061f, -0.043457f, 0.257812f, -0.0415039f, 0.277344f,
+-0.0415039f, 0.303711f, -0.0415039f, 0.321777f, -0.0546875f, 0.339844f, -0.0678711f,
+0.351318f, -0.0935059f, 0.362793f, -0.119141f, 0.367676f, -0.156738f, 0.372559f,
+-0.194336f, 0.372559f, -0.242676f, 0.0595703f, -0.650879f, 0.0126953f, -0.662109f,
+0.0126953f, -0.693848f, 0.200684f, -0.693848f, 0.200684f, -0.525391f, 0.200684f,
+-0.507324f, 0.199463f, -0.481934f, 0.198242f, -0.456543f, 0.195801f, -0.433105f,
+0.206543f, -0.441895f, 0.221436f, -0.44873f, 0.236328f, -0.455566f, 0.253662f, -0.460693f,
+0.270996f, -0.46582f, 0.289062f, -0.468506f, 0.307129f, -0.471191f, 0.324219f, -0.471191f,
+0.375488f, -0.471191f, 0.411621f, -0.457275f, 0.447754f, -0.443359f, 0.470947f, -0.415039f,
+0.494141f, -0.386719f, 0.504883f, -0.34375f, 0.515625f, -0.300781f, 0.515625f, -0.242188f,
+0.515625f, -0.186523f, 0.501709f, -0.140381f, 0.487793f, -0.0942383f, 0.459961f,
+-0.060791f, 0.432129f, -0.0273438f, 0.389893f, -0.00878906f, 0.347656f, 0.00976562f,
+0.291016f, 0.00976562f, 0.244141f, 0.00976562f, 0.184326f, 0.000244141f, 0.124512f,
+-0.00927734f, 0.0595703f, -0.0234375f, 0.418945f, -0.027832f, 0.407227f, -0.0185547f,
+0.391357f, -0.0117188f, 0.375488f, -0.00488281f, 0.356689f, -0.000244141f, 0.337891f,
+0.00439453f, 0.317871f, 0.00683594f, 0.297852f, 0.00927734f, 0.27832f, 0.00927734f,
+0.212891f, 0.00927734f, 0.166504f, -0.00708008f, 0.120117f, -0.0234375f, 0.0908203f,
+-0.0541992f, 0.0615234f, -0.0849609f, 0.0478516f, -0.129395f, 0.0341797f, -0.173828f,
+0.0341797f, -0.230469f, 0.0341797f, -0.293457f, 0.0522461f, -0.339111f, 0.0703125f,
+-0.384766f, 0.101318f, -0.414062f, 0.132324f, -0.443359f, 0.17334f, -0.457275f, 0.214355f,
+-0.471191f, 0.259766f, -0.471191f, 0.301758f, -0.471191f, 0.339111f, -0.466064f,
+0.376465f, -0.460938f, 0.408691f, -0.454102f, 0.408691f, -0.318359f, 0.373535f, -0.318359f,
+0.353027f, -0.398926f, 0.345215f, -0.404785f, 0.337646f, -0.408936f, 0.330078f, -0.413086f,
+0.321289f, -0.415771f, 0.3125f, -0.418457f, 0.302002f, -0.419678f, 0.291504f, -0.420898f,
+0.277832f, -0.420898f, 0.258789f, -0.420898f, 0.240723f, -0.409912f, 0.222656f, -0.398926f,
+0.208252f, -0.376221f, 0.193848f, -0.353516f, 0.185059f, -0.317871f, 0.17627f, -0.282227f,
+0.17627f, -0.233398f, 0.17627f, -0.192383f, 0.181885f, -0.158691f, 0.1875f, -0.125f,
+0.20166f, -0.101074f, 0.21582f, -0.0771484f, 0.240723f, -0.064209f, 0.265625f, -0.0512695f,
+0.303711f, -0.0512695f, 0.335449f, -0.0512695f, 0.366455f, -0.0551758f, 0.397461f,
+-0.059082f, 0.418945f, -0.0654297f, 0.35791f, -0.0258789f, 0.34668f, -0.0185547f,
+0.335693f, -0.0119629f, 0.324707f, -0.00537109f, 0.311279f, -0.000732422f, 0.297852f,
+0.00390625f, 0.281006f, 0.00683594f, 0.26416f, 0.00976562f, 0.241699f, 0.00976562f,
+0.140137f, 0.00976562f, 0.090332f, -0.048584f, 0.0405273f, -0.106934f, 0.0405273f,
+-0.228027f, 0.0405273f, -0.283691f, 0.0527344f, -0.328613f, 0.0649414f, -0.373535f,
+0.0905762f, -0.405273f, 0.116211f, -0.437012f, 0.155518f, -0.454102f, 0.194824f,
+-0.471191f, 0.249023f, -0.471191f, 0.302246f, -0.471191f, 0.356445f, -0.458008f,
+0.355469f, -0.463379f, 0.35498f, -0.473145f, 0.354492f, -0.48291f, 0.354248f, -0.493896f,
+0.354004f, -0.504883f, 0.35376f, -0.515625f, 0.353516f, -0.526367f, 0.353516f, -0.533691f,
+0.353516f, -0.649902f, 0.306641f, -0.661621f, 0.306641f, -0.693848f, 0.494629f, -0.693848f,
+0.494629f, -0.0439453f, 0.544922f, -0.0322266f, 0.544922f, 0, 0.368164f, 0, 0.183594f,
+-0.231934f, 0.183594f, -0.178223f, 0.190918f, -0.142334f, 0.198242f, -0.106445f,
+0.210693f, -0.0847168f, 0.223145f, -0.0629883f, 0.239258f, -0.0537109f, 0.255371f,
+-0.0444336f, 0.272461f, -0.0444336f, 0.297363f, -0.0444336f, 0.316162f, -0.050293f,
+0.334961f, -0.0561523f, 0.353516f, -0.0654297f, 0.353516f, -0.411133f, 0.333496f,
+-0.416504f, 0.315918f, -0.418945f, 0.29834f, -0.421387f, 0.276367f, -0.421387f, 0.232422f,
+-0.421387f, 0.208008f, -0.373291f, 0.183594f, -0.325195f, 0.183594f, -0.231934f,
+0.241211f, -0.470215f, 0.281738f, -0.470215f, 0.314453f, -0.460449f, 0.347168f, -0.450684f,
+0.370117f, -0.427002f, 0.393066f, -0.40332f, 0.405518f, -0.364014f, 0.417969f, -0.324707f,
+0.417969f, -0.265625f, 0.417969f, -0.225586f, 0.177246f, -0.225586f, 0.177246f, -0.217773f,
+0.177246f, -0.185059f, 0.179932f, -0.155029f, 0.182617f, -0.125f, 0.19458f, -0.101807f,
+0.206543f, -0.0786133f, 0.231201f, -0.0649414f, 0.255859f, -0.0512695f, 0.299316f,
+-0.0512695f, 0.328125f, -0.0512695f, 0.355469f, -0.0556641f, 0.382812f, -0.0600586f,
+0.407715f, -0.0654297f, 0.407715f, -0.027832f, 0.396484f, -0.0209961f, 0.379395f,
+-0.0141602f, 0.362305f, -0.00732422f, 0.342041f, -0.00219727f, 0.321777f, 0.00292969f,
+0.299316f, 0.00610352f, 0.276855f, 0.00927734f, 0.254883f, 0.00927734f, 0.195801f,
+0.00927734f, 0.153809f, -0.00634766f, 0.111816f, -0.0219727f, 0.0852051f, -0.0527344f,
+0.0585938f, -0.0834961f, 0.0463867f, -0.128418f, 0.0341797f, -0.17334f, 0.0341797f,
+-0.231934f, 0.0341797f, -0.352051f, 0.0856934f, -0.411133f, 0.137207f, -0.470215f,
+0.241211f, -0.470215f, 0.23584f, -0.420898f, 0.218262f, -0.420898f, 0.207031f, -0.410645f,
+0.195801f, -0.400391f, 0.189209f, -0.381836f, 0.182617f, -0.363281f, 0.180176f, -0.336426f,
+0.177734f, -0.30957f, 0.177734f, -0.276855f, 0.28418f, -0.276855f, 0.28418f, -0.30957f,
+0.282959f, -0.336426f, 0.281738f, -0.363281f, 0.2771f, -0.381836f, 0.272461f, -0.400391f,
+0.262695f, -0.410645f, 0.25293f, -0.420898f, 0.23584f, -0.420898f, 0.0766602f, -0.408203f,
+0.00732422f, -0.408203f, 0.00732422f, -0.441895f, 0.0766602f, -0.460938f, 0.0766602f,
+-0.510254f, 0.0766602f, -0.558594f, 0.0893555f, -0.594971f, 0.102051f, -0.631348f,
+0.125732f, -0.655518f, 0.149414f, -0.679688f, 0.183838f, -0.691895f, 0.218262f, -0.704102f,
+0.261719f, -0.704102f, 0.272461f, -0.704102f, 0.283936f, -0.703369f, 0.29541f, -0.702637f,
+0.306396f, -0.701416f, 0.317383f, -0.700195f, 0.32666f, -0.698486f, 0.335938f, -0.696777f,
+0.342773f, -0.694824f, 0.342773f, -0.585449f, 0.311523f, -0.585449f, 0.297363f, -0.638672f,
+0.292969f, -0.643066f, 0.2854f, -0.646729f, 0.277832f, -0.650391f, 0.266602f, -0.650391f,
+0.255859f, -0.650391f, 0.246826f, -0.643799f, 0.237793f, -0.637207f, 0.231445f, -0.622314f,
+0.225098f, -0.607422f, 0.221436f, -0.58374f, 0.217773f, -0.560059f, 0.217773f, -0.525879f,
+0.217773f, -0.458984f, 0.311035f, -0.458984f, 0.311035f, -0.408203f, 0.217773f, -0.408203f,
+0.217773f, -0.0439453f, 0.29248f, -0.0322266f, 0.29248f, 0, 0.0268555f, 0, 0.0268555f,
+-0.0322266f, 0.0766602f, -0.0439453f, 0.125488f, -0.169434f, 0.0385742f, -0.206055f,
+0.0385742f, -0.3125f, 0.0385742f, -0.351562f, 0.0524902f, -0.381104f, 0.0664062f,
+-0.410645f, 0.0927734f, -0.430664f, 0.119141f, -0.450684f, 0.157471f, -0.460938f,
+0.195801f, -0.471191f, 0.244141f, -0.471191f, 0.259766f, -0.471191f, 0.275879f, -0.469727f,
+0.291992f, -0.468262f, 0.305908f, -0.466553f, 0.319824f, -0.464844f, 0.330566f, -0.462646f,
+0.341309f, -0.460449f, 0.346191f, -0.458984f, 0.456055f, -0.513184f, 0.473145f, -0.492188f,
+0.41748f, -0.413086f, 0.432617f, -0.394531f, 0.440186f, -0.368652f, 0.447754f, -0.342773f,
+0.447754f, -0.3125f, 0.447754f, -0.272949f, 0.434082f, -0.24292f, 0.42041f, -0.212891f,
+0.394287f, -0.192383f, 0.368164f, -0.171875f, 0.329834f, -0.161621f, 0.291504f, -0.151367f,
+0.242188f, -0.151367f, 0.222656f, -0.151367f, 0.202637f, -0.153076f, 0.182617f, -0.154785f,
+0.16748f, -0.157227f, 0.155762f, -0.120117f, 0.15625f, -0.112793f, 0.161133f, -0.105957f,
+0.166016f, -0.0991211f, 0.173828f, -0.0935059f, 0.181641f, -0.0878906f, 0.192383f,
+-0.0844727f, 0.203125f, -0.0810547f, 0.21582f, -0.0810547f, 0.322754f, -0.0810547f,
+0.40332f, -0.0810547f, 0.446777f, -0.0498047f, 0.490234f, -0.0185547f, 0.490234f,
+0.0478516f, 0.490234f, 0.078125f, 0.478271f, 0.108887f, 0.466309f, 0.139648f, 0.437012f,
+0.164551f, 0.407715f, 0.189453f, 0.358643f, 0.205078f, 0.30957f, 0.220703f, 0.235352f,
+0.220703f, 0.179688f, 0.220703f, 0.140137f, 0.212158f, 0.100586f, 0.203613f, 0.0754395f,
+0.188965f, 0.050293f, 0.174316f, 0.0383301f, 0.154785f, 0.0263672f, 0.135254f, 0.0263672f,
+0.11377f, 0.0263672f, 0.0996094f, 0.032959f, 0.0874023f, 0.0395508f, 0.0751953f,
+0.0512695f, 0.0639648f, 0.0629883f, 0.0527344f, 0.0788574f, 0.0422363f, 0.0947266f,
+0.0317383f, 0.113281f, 0.0209961f, 0.104492f, 0.0175781f, 0.0925293f, 0.00952148f,
+0.0805664f, 0.00146484f, 0.0698242f, -0.0109863f, 0.059082f, -0.0234375f, 0.0515137f,
+-0.0400391f, 0.0439453f, -0.0566406f, 0.0439453f, -0.0766602f, 0.383301f, 0.0810547f,
+0.383301f, 0.0581055f, 0.367188f, 0.0463867f, 0.351074f, 0.034668f, 0.321289f, 0.034668f,
+0.166504f, 0.034668f, 0.146484f, 0.0493164f, 0.13501f, 0.0673828f, 0.123535f, 0.0854492f,
+0.123535f, 0.105469f, 0.123535f, 0.116699f, 0.128418f, 0.12793f, 0.133301f, 0.13916f,
+0.145996f, 0.147949f, 0.158691f, 0.156738f, 0.18042f, 0.162354f, 0.202148f, 0.167969f,
+0.23584f, 0.167969f, 0.274414f, 0.167969f, 0.302246f, 0.161377f, 0.330078f, 0.154785f,
+0.348145f, 0.143066f, 0.366211f, 0.131348f, 0.374756f, 0.115479f, 0.383301f, 0.0996094f,
+0.383301f, 0.0810547f, 0.241211f, -0.200195f, 0.277344f, -0.200195f, 0.293457f, -0.228271f,
+0.30957f, -0.256348f, 0.30957f, -0.3125f, 0.30957f, -0.368652f, 0.293701f, -0.395264f,
+0.277832f, -0.421875f, 0.241211f, -0.421875f, 0.20752f, -0.421875f, 0.192139f, -0.395264f,
+0.176758f, -0.368652f, 0.176758f, -0.3125f, 0.176758f, -0.256348f, 0.191895f, -0.228271f,
+0.207031f, -0.200195f, 0.241211f, -0.200195f, 0.212891f, -0.495117f, 0.212891f, -0.487793f,
+0.212646f, -0.477783f, 0.212402f, -0.467773f, 0.211914f, -0.457031f, 0.211426f, -0.446289f,
+0.210938f, -0.436279f, 0.210449f, -0.42627f, 0.209961f, -0.418945f, 0.225098f, -0.426758f,
+0.243408f, -0.436035f, 0.261719f, -0.445312f, 0.282227f, -0.453125f, 0.302734f, -0.460938f,
+0.324463f, -0.466064f, 0.346191f, -0.471191f, 0.368164f, -0.471191f, 0.395996f, -0.471191f,
+0.419434f, -0.463867f, 0.442871f, -0.456543f, 0.459717f, -0.44043f, 0.476562f, -0.424316f,
+0.48584f, -0.398438f, 0.495117f, -0.372559f, 0.495117f, -0.335938f, 0.495117f, -0.0439453f,
+0.541016f, -0.0322266f, 0.541016f, 0, 0.312988f, 0, 0.312988f, -0.0322266f, 0.354004f,
+-0.0439453f, 0.354004f, -0.316895f, 0.354004f, -0.35791f, 0.33667f, -0.380859f, 0.319336f,
+-0.403809f, 0.287109f, -0.403809f, 0.25f, -0.403809f, 0.212891f, -0.387207f, 0.212891f,
+-0.0439453f, 0.254883f, -0.0322266f, 0.254883f, 0, 0.0268555f, 0, 0.0268555f, -0.0322266f,
+0.0717773f, -0.0439453f, 0.0717773f, -0.649902f, 0.0249023f, -0.661621f, 0.0249023f,
+-0.693848f, 0.212891f, -0.693848f, 0.212891f, -0.0439453f, 0.263184f, -0.0322266f,
+0.263184f, 0, 0.0219727f, 0, 0.0219727f, -0.0322266f, 0.0717773f, -0.0439453f, 0.0717773f,
+-0.415039f, 0.0249023f, -0.426758f, 0.0249023f, -0.458984f, 0.212891f, -0.458984f,
+0.0668945f, -0.619141f, 0.0668945f, -0.634766f, 0.0727539f, -0.648438f, 0.0786133f,
+-0.662109f, 0.0888672f, -0.672119f, 0.0991211f, -0.682129f, 0.112793f, -0.687988f,
+0.126465f, -0.693848f, 0.14209f, -0.693848f, 0.157715f, -0.693848f, 0.171387f, -0.687988f,
+0.185059f, -0.682129f, 0.195068f, -0.672119f, 0.205078f, -0.662109f, 0.210938f, -0.648438f,
+0.216797f, -0.634766f, 0.216797f, -0.619141f, 0.216797f, -0.603516f, 0.210938f, -0.589844f,
+0.205078f, -0.576172f, 0.195068f, -0.565918f, 0.185059f, -0.555664f, 0.171387f, -0.549805f,
+0.157715f, -0.543945f, 0.14209f, -0.543945f, 0.126465f, -0.543945f, 0.112793f, -0.549805f,
+0.0991211f, -0.555664f, 0.0888672f, -0.565918f, 0.0786133f, -0.576172f, 0.0727539f,
+-0.589844f, 0.0668945f, -0.603516f, 0.0668945f, -0.619141f, 0.27002f, -0.619141f,
+0.27002f, -0.603516f, 0.26416f, -0.589844f, 0.258301f, -0.576172f, 0.248047f, -0.565918f,
+0.237793f, -0.555664f, 0.224121f, -0.549805f, 0.210449f, -0.543945f, 0.195312f, -0.543945f,
+0.179688f, -0.543945f, 0.166016f, -0.549805f, 0.152344f, -0.555664f, 0.14209f, -0.565918f,
+0.131836f, -0.576172f, 0.125977f, -0.589844f, 0.120117f, -0.603516f, 0.120117f, -0.619141f,
+0.120117f, -0.634277f, 0.125977f, -0.647949f, 0.131836f, -0.661621f, 0.14209f, -0.671875f,
+0.152344f, -0.682129f, 0.166016f, -0.687988f, 0.179688f, -0.693848f, 0.195312f, -0.693848f,
+0.210449f, -0.693848f, 0.224121f, -0.687988f, 0.237793f, -0.682129f, 0.248047f, -0.671875f,
+0.258301f, -0.661621f, 0.26416f, -0.647949f, 0.27002f, -0.634277f, 0.27002f, -0.619141f,
+0.266113f, 0.019043f, 0.266113f, 0.0708008f, 0.250977f, 0.107666f, 0.23584f, 0.144531f,
+0.209961f, 0.167969f, 0.184082f, 0.191406f, 0.149414f, 0.202148f, 0.114746f, 0.212891f,
+0.0756836f, 0.212891f, 0.0537109f, 0.212891f, 0.0317383f, 0.210449f, 0.00976562f,
+0.208008f, -0.00830078f, 0.204102f, -0.00830078f, 0.0942383f, 0.0229492f, 0.0942383f,
+0.0439453f, 0.149902f, 0.0488281f, 0.153809f, 0.0537109f, 0.156494f, 0.0585938f,
+0.15918f, 0.0678711f, 0.15918f, 0.0786133f, 0.15918f, 0.0888672f, 0.152588f, 0.0991211f,
+0.145996f, 0.107178f, 0.131348f, 0.115234f, 0.116699f, 0.120117f, 0.0930176f, 0.125f,
+0.0693359f, 0.125f, 0.034668f, 0.125f, -0.410156f, 0.0439453f, -0.426758f, 0.0439453f,
+-0.458984f, 0.266113f, -0.458984f, 0.212891f, -0.220215f, 0.39209f, -0.415527f, 0.343262f,
+-0.426758f, 0.343262f, -0.458984f, 0.518066f, -0.458984f, 0.518066f, -0.426758f,
+0.465332f, -0.416016f, 0.355957f, -0.300781f, 0.513672f, -0.0439453f, 0.554688f,
+-0.0322266f, 0.554688f, 0, 0.333984f, 0, 0.333984f, -0.0322266f, 0.36084f, -0.0439453f,
+0.269043f, -0.20459f, 0.212891f, -0.165527f, 0.212891f, -0.0439453f, 0.258301f, -0.0322266f,
+0.258301f, 0, 0.0283203f, 0, 0.0283203f, -0.0322266f, 0.0717773f, -0.0439453f, 0.0717773f,
+-0.649902f, 0.0249023f, -0.661621f, 0.0249023f, -0.693848f, 0.212891f, -0.693848f,
+0.210449f, -0.0439453f, 0.260742f, -0.0322266f, 0.260742f, 0, 0.0195312f, 0, 0.0195312f,
+-0.0322266f, 0.0693359f, -0.0439453f, 0.0693359f, -0.649902f, 0.0224609f, -0.661621f,
+0.0224609f, -0.693848f, 0.210449f, -0.693848f, 0.211914f, -0.418945f, 0.227051f,
+-0.426758f, 0.245117f, -0.436035f, 0.263184f, -0.445312f, 0.283203f, -0.453125f,
+0.303223f, -0.460938f, 0.324463f, -0.466064f, 0.345703f, -0.471191f, 0.367676f, -0.471191f,
+0.405762f, -0.471191f, 0.434082f, -0.457275f, 0.462402f, -0.443359f, 0.477051f, -0.411621f,
+0.492676f, -0.420898f, 0.512939f, -0.431396f, 0.533203f, -0.441895f, 0.55542f, -0.450684f,
+0.577637f, -0.459473f, 0.601074f, -0.465332f, 0.624512f, -0.471191f, 0.645996f, -0.471191f,
+0.673828f, -0.471191f, 0.696777f, -0.463867f, 0.719727f, -0.456543f, 0.736084f, -0.44043f,
+0.752441f, -0.424316f, 0.76123f, -0.398438f, 0.77002f, -0.372559f, 0.77002f, -0.335938f,
+0.77002f, -0.0439453f, 0.815918f, -0.0322266f, 0.815918f, 0, 0.587891f, 0, 0.587891f,
+-0.0322266f, 0.628906f, -0.0439453f, 0.628906f, -0.316895f, 0.628906f, -0.35791f,
+0.613037f, -0.380859f, 0.597168f, -0.403809f, 0.564941f, -0.403809f, 0.547363f, -0.403809f,
+0.526611f, -0.398193f, 0.505859f, -0.392578f, 0.486816f, -0.383301f, 0.489258f, -0.373047f,
+0.490479f, -0.361084f, 0.491699f, -0.349121f, 0.491699f, -0.335938f, 0.491699f, -0.0439453f,
+0.537598f, -0.0322266f, 0.537598f, 0, 0.30957f, 0, 0.30957f, -0.0322266f, 0.350586f,
+-0.0439453f, 0.350586f, -0.316895f, 0.350586f, -0.35791f, 0.334717f, -0.380859f,
+0.318848f, -0.403809f, 0.286621f, -0.403809f, 0.268555f, -0.403809f, 0.249756f, -0.398438f,
+0.230957f, -0.393066f, 0.212891f, -0.384766f, 0.212891f, -0.0439453f, 0.254883f,
+-0.0322266f, 0.254883f, 0, 0.0268555f, 0, 0.0268555f, -0.0322266f, 0.0717773f, -0.0439453f,
+0.0717773f, -0.415039f, 0.0268555f, -0.426758f, 0.0268555f, -0.458984f, 0.205078f,
+-0.458984f, 0.211914f, -0.418945f, 0.227051f, -0.426758f, 0.245117f, -0.436035f,
+0.263184f, -0.445312f, 0.283203f, -0.453125f, 0.303223f, -0.460938f, 0.324707f, -0.466064f,
+0.346191f, -0.471191f, 0.368164f, -0.471191f, 0.395996f, -0.471191f, 0.419434f, -0.463867f,
+0.442871f, -0.456543f, 0.459717f, -0.44043f, 0.476562f, -0.424316f, 0.48584f, -0.398438f,
+0.495117f, -0.372559f, 0.495117f, -0.335938f, 0.495117f, -0.0439453f, 0.541016f,
+-0.0322266f, 0.541016f, 0, 0.312988f, 0, 0.312988f, -0.0322266f, 0.354004f, -0.0439453f,
+0.354004f, -0.316895f, 0.354004f, -0.35791f, 0.33667f, -0.380859f, 0.319336f, -0.403809f,
+0.287109f, -0.403809f, 0.25f, -0.403809f, 0.212891f, -0.387207f, 0.212891f, -0.0439453f,
+0.254883f, -0.0322266f, 0.254883f, 0, 0.0268555f, 0, 0.0268555f, -0.0322266f, 0.0717773f,
+-0.0439453f, 0.0717773f, -0.415039f, 0.0268555f, -0.426758f, 0.0268555f, -0.458984f,
+0.205078f, -0.458984f, 0.461914f, -0.231934f, 0.461914f, -0.17334f, 0.449951f, -0.128418f,
+0.437988f, -0.0834961f, 0.412109f, -0.0527344f, 0.38623f, -0.0219727f, 0.345459f,
+-0.00610352f, 0.304688f, 0.00976562f, 0.24707f, 0.00976562f, 0.192871f, 0.00976562f,
+0.15332f, -0.00585938f, 0.11377f, -0.0214844f, 0.0881348f, -0.0522461f, 0.0625f,
+-0.0830078f, 0.050293f, -0.128174f, 0.0380859f, -0.17334f, 0.0380859f, -0.231934f,
+0.0380859f, -0.290039f, 0.050293f, -0.334717f, 0.0625f, -0.379395f, 0.0883789f, -0.409668f,
+0.114258f, -0.439941f, 0.154541f, -0.455566f, 0.194824f, -0.471191f, 0.250977f, -0.471191f,
+0.359863f, -0.471191f, 0.410889f, -0.4104f, 0.461914f, -0.349609f, 0.461914f, -0.231934f,
+0.318848f, -0.231934f, 0.318848f, -0.279297f, 0.315918f, -0.314941f, 0.312988f, -0.350586f,
+0.305176f, -0.374512f, 0.297363f, -0.398438f, 0.283691f, -0.410156f, 0.27002f, -0.421875f,
+0.248047f, -0.421875f, 0.226562f, -0.421875f, 0.213379f, -0.410156f, 0.200195f, -0.398438f,
+0.193115f, -0.374512f, 0.186035f, -0.350586f, 0.183594f, -0.314941f, 0.181152f, -0.279297f,
+0.181152f, -0.231934f, 0.181152f, -0.184082f, 0.183594f, -0.148193f, 0.186035f, -0.112305f,
+0.193115f, -0.0878906f, 0.200195f, -0.0634766f, 0.213379f, -0.0512695f, 0.226562f,
+-0.0390625f, 0.248047f, -0.0390625f, 0.27002f, -0.0390625f, 0.283691f, -0.0512695f,
+0.297363f, -0.0634766f, 0.305176f, -0.0878906f, 0.312988f, -0.112305f, 0.315918f,
+-0.148193f, 0.318848f, -0.184082f, 0.318848f, -0.231934f, 0.199707f, -0.435547f,
+0.210449f, -0.442871f, 0.223389f, -0.449463f, 0.236328f, -0.456055f, 0.251709f, -0.460693f,
+0.26709f, -0.465332f, 0.285645f, -0.468262f, 0.304199f, -0.471191f, 0.32666f, -0.471191f,
+0.422363f, -0.471191f, 0.468994f, -0.415039f, 0.515625f, -0.358887f, 0.515625f, -0.237793f,
+0.515625f, -0.182129f, 0.503174f, -0.136475f, 0.490723f, -0.0908203f, 0.464844f,
+-0.0583496f, 0.438965f, -0.0258789f, 0.399414f, -0.00805664f, 0.359863f, 0.00976562f,
+0.305664f, 0.00976562f, 0.279297f, 0.00976562f, 0.253906f, 0.0065918f, 0.228516f,
+0.00341797f, 0.201172f, -0.00341797f, 0.20166f, 0.00195312f, 0.202393f, 0.0112305f,
+0.203125f, 0.0205078f, 0.203369f, 0.0310059f, 0.203613f, 0.0415039f, 0.203857f, 0.0515137f,
+0.204102f, 0.0615234f, 0.204102f, 0.0688477f, 0.204102f, 0.168945f, 0.271484f, 0.180664f,
+0.271484f, 0.212891f, 0.0131836f, 0.212891f, 0.0131836f, 0.180664f, 0.0629883f, 0.168945f,
+0.0629883f, -0.415039f, 0.0126953f, -0.426758f, 0.0126953f, -0.458984f, 0.19873f,
+-0.458984f, 0.372559f, -0.234375f, 0.372559f, -0.287598f, 0.365723f, -0.322998f,
+0.358887f, -0.358398f, 0.347168f, -0.37915f, 0.335449f, -0.399902f, 0.320068f, -0.408447f,
+0.304688f, -0.416992f, 0.287598f, -0.416992f, 0.262695f, -0.416992f, 0.241455f, -0.411621f,
+0.220215f, -0.40625f, 0.204102f, -0.398438f, 0.204102f, -0.0522461f, 0.243652f, -0.0419922f,
+0.286621f, -0.0419922f, 0.330566f, -0.0419922f, 0.351562f, -0.090332f, 0.372559f,
+-0.138672f, 0.372559f, -0.234375f, 0.184082f, -0.21875f, 0.184082f, -0.168945f, 0.190918f,
+-0.135498f, 0.197754f, -0.102051f, 0.210205f, -0.0817871f, 0.222656f, -0.0615234f,
+0.240723f, -0.0529785f, 0.258789f, -0.0444336f, 0.281738f, -0.0444336f, 0.300293f,
+-0.0444336f, 0.321045f, -0.0495605f, 0.341797f, -0.0546875f, 0.355957f, -0.0629883f,
+0.355957f, -0.412598f, 0.340332f, -0.416504f, 0.320801f, -0.418701f, 0.30127f, -0.420898f,
+0.281738f, -0.420898f, 0.255371f, -0.420898f, 0.236816f, -0.407471f, 0.218262f, -0.394043f,
+0.206543f, -0.368408f, 0.194824f, -0.342773f, 0.189453f, -0.304932f, 0.184082f, -0.26709f,
+0.184082f, -0.21875f, 0.49707f, 0.168945f, 0.546875f, 0.180664f, 0.546875f, 0.212891f,
+0.288574f, 0.212891f, 0.288574f, 0.180664f, 0.355957f, 0.168945f, 0.355957f, 0.0639648f,
+0.355957f, 0.0458984f, 0.357178f, 0.0205078f, 0.358398f, -0.00488281f, 0.36084f,
+-0.0283203f, 0.339355f, -0.0112305f, 0.309082f, -0.000732422f, 0.278809f, 0.00976562f,
+0.241211f, 0.00976562f, 0.13916f, 0.00976562f, 0.0900879f, -0.0505371f, 0.0410156f,
+-0.11084f, 0.0410156f, -0.231445f, 0.0410156f, -0.287109f, 0.0537109f, -0.331299f,
+0.0664062f, -0.375488f, 0.0930176f, -0.406738f, 0.119629f, -0.437988f, 0.160645f,
+-0.45459f, 0.20166f, -0.471191f, 0.258301f, -0.471191f, 0.272949f, -0.471191f, 0.291016f,
+-0.469971f, 0.309082f, -0.46875f, 0.327637f, -0.467041f, 0.346191f, -0.465332f, 0.36377f,
+-0.463379f, 0.381348f, -0.461426f, 0.394531f, -0.459961f, 0.452637f, -0.480957f,
+0.49707f, -0.480957f, 0.225098f, -0.36377f, 0.237793f, -0.37793f, 0.256592f, -0.396973f,
+0.275391f, -0.416016f, 0.297607f, -0.433105f, 0.319824f, -0.450195f, 0.344971f, -0.461914f,
+0.370117f, -0.473633f, 0.395996f, -0.473633f, 0.422363f, -0.473633f, 0.422363f, -0.306152f,
+0.39502f, -0.306152f, 0.366211f, -0.367676f, 0.350098f, -0.367676f, 0.331055f, -0.36377f,
+0.312012f, -0.359863f, 0.293457f, -0.353271f, 0.274902f, -0.34668f, 0.257568f, -0.338623f,
+0.240234f, -0.330566f, 0.227539f, -0.322754f, 0.227539f, -0.0439453f, 0.30127f, -0.0322266f,
+0.30127f, 0, 0.0268555f, 0, 0.0268555f, -0.0322266f, 0.0864258f, -0.0439453f, 0.0864258f,
+-0.415039f, 0.0268555f, -0.426758f, 0.0268555f, -0.458984f, 0.219727f, -0.458984f,
+0.364746f, -0.145508f, 0.364746f, -0.109375f, 0.35376f, -0.0805664f, 0.342773f, -0.0517578f,
+0.320068f, -0.0317383f, 0.297363f, -0.0117188f, 0.262695f, -0.000976562f, 0.228027f,
+0.00976562f, 0.180664f, 0.00976562f, 0.157227f, 0.00976562f, 0.133301f, 0.00683594f,
+0.109375f, 0.00390625f, 0.0888672f, -0.000244141f, 0.0683594f, -0.00439453f, 0.0529785f,
+-0.00854492f, 0.0375977f, -0.0126953f, 0.03125f, -0.0151367f, 0.03125f, -0.140137f,
+0.0634766f, -0.140137f, 0.0820312f, -0.0756836f, 0.0893555f, -0.0683594f, 0.100098f,
+-0.0612793f, 0.11084f, -0.0541992f, 0.124023f, -0.0483398f, 0.137207f, -0.0424805f,
+0.152344f, -0.0390625f, 0.16748f, -0.0356445f, 0.183594f, -0.0356445f, 0.226074f,
+-0.0356445f, 0.246826f, -0.0539551f, 0.267578f, -0.0722656f, 0.267578f, -0.100586f,
+0.267578f, -0.116211f, 0.261475f, -0.127441f, 0.255371f, -0.138672f, 0.242188f, -0.147461f,
+0.229004f, -0.15625f, 0.20874f, -0.164062f, 0.188477f, -0.171875f, 0.160156f, -0.180664f,
+0.136719f, -0.187988f, 0.113281f, -0.198975f, 0.0898438f, -0.209961f, 0.0715332f,
+-0.227539f, 0.0532227f, -0.245117f, 0.041748f, -0.270996f, 0.0302734f, -0.296875f,
+0.0302734f, -0.334473f, 0.0302734f, -0.367676f, 0.0432129f, -0.393066f, 0.0561523f,
+-0.418457f, 0.0786133f, -0.435791f, 0.101074f, -0.453125f, 0.131348f, -0.462158f,
+0.161621f, -0.471191f, 0.196289f, -0.471191f, 0.230469f, -0.471191f, 0.264893f, -0.466797f,
+0.299316f, -0.462402f, 0.331543f, -0.457031f, 0.331543f, -0.339355f, 0.299316f, -0.339355f,
+0.283691f, -0.393066f, 0.277344f, -0.399414f, 0.267578f, -0.405273f, 0.257812f, -0.411133f,
+0.24585f, -0.415527f, 0.233887f, -0.419922f, 0.220703f, -0.422607f, 0.20752f, -0.425293f,
+0.195312f, -0.425293f, 0.160156f, -0.425293f, 0.143311f, -0.410889f, 0.126465f, -0.396484f,
+0.126465f, -0.371582f, 0.126465f, -0.355469f, 0.133545f, -0.344238f, 0.140625f, -0.333008f,
+0.154541f, -0.324219f, 0.168457f, -0.31543f, 0.188232f, -0.308105f, 0.208008f, -0.300781f,
+0.233887f, -0.292969f, 0.260742f, -0.284668f, 0.284668f, -0.273193f, 0.308594f, -0.261719f,
+0.326416f, -0.244385f, 0.344238f, -0.227051f, 0.354492f, -0.203125f, 0.364746f, -0.179199f,
+0.364746f, -0.145508f, 0.213867f, 0.00976562f, 0.177246f, 0.00976562f, 0.151123f,
+0.000976562f, 0.125f, -0.0078125f, 0.108398f, -0.0231934f, 0.0917969f, -0.0385742f,
+0.0839844f, -0.0598145f, 0.0761719f, -0.0810547f, 0.0761719f, -0.105957f, 0.0761719f,
+-0.408203f, 0.0161133f, -0.408203f, 0.0161133f, -0.439941f, 0.0869141f, -0.458984f,
+0.144043f, -0.562988f, 0.217285f, -0.562988f, 0.217285f, -0.458984f, 0.313965f, -0.458984f,
+0.313965f, -0.408203f, 0.217285f, -0.408203f, 0.217285f, -0.114746f, 0.217285f, -0.0830078f,
+0.230469f, -0.0668945f, 0.243652f, -0.0507812f, 0.265137f, -0.0507812f, 0.281738f,
+-0.0507812f, 0.298096f, -0.0532227f, 0.314453f, -0.0556641f, 0.328613f, -0.0585938f,
+0.328613f, -0.0170898f, 0.321777f, -0.012207f, 0.308594f, -0.00732422f, 0.29541f,
+-0.00244141f, 0.279541f, 0.0012207f, 0.263672f, 0.00488281f, 0.246338f, 0.00732422f,
+0.229004f, 0.00976562f, 0.213867f, 0.00976562f, 0.344238f, -0.0400391f, 0.329102f,
+-0.0322266f, 0.311035f, -0.0229492f, 0.292969f, -0.0136719f, 0.272949f, -0.00585938f,
+0.25293f, 0.00195312f, 0.231445f, 0.00708008f, 0.209961f, 0.012207f, 0.187988f, 0.012207f,
+0.160156f, 0.012207f, 0.136719f, 0.00488281f, 0.113281f, -0.00244141f, 0.0964355f,
+-0.0185547f, 0.0795898f, -0.034668f, 0.0703125f, -0.0605469f, 0.0610352f, -0.0864258f,
+0.0610352f, -0.123047f, 0.0610352f, -0.415039f, 0.0151367f, -0.426758f, 0.0151367f,
+-0.458984f, 0.202148f, -0.458984f, 0.202148f, -0.14209f, 0.202148f, -0.101074f, 0.219482f,
+-0.078125f, 0.236816f, -0.0551758f, 0.269043f, -0.0551758f, 0.306152f, -0.0551758f,
+0.343262f, -0.0717773f, 0.343262f, -0.415039f, 0.30127f, -0.426758f, 0.30127f, -0.458984f,
+0.484375f, -0.458984f, 0.484375f, -0.0439453f, 0.529297f, -0.0322266f, 0.529297f,
+0, 0.351074f, 0, 0.466797f, -0.416992f, 0.283203f, 0.00976562f, 0.224121f, 0.00976562f,
+0.0322266f, -0.415039f, 0, -0.426758f, 0, -0.458984f, 0.234863f, -0.458984f, 0.234863f,
+-0.426758f, 0.180176f, -0.414062f, 0.297852f, -0.152344f, 0.403809f, -0.415039f,
+0.350098f, -0.426758f, 0.350098f, -0.458984f, 0.5f, -0.458984f, 0.5f, -0.426758f,
+0.426758f, -0.413086f, 0.532715f, -0.151855f, 0.621582f, -0.415039f, 0.567871f, -0.426758f,
+0.567871f, -0.458984f, 0.716797f, -0.458984f, 0.716797f, -0.426758f, 0.681641f, -0.416992f,
+0.527344f, 0.00976562f, 0.468262f, 0.00976562f, 0.363281f, -0.247559f, 0.258789f,
+0.00976562f, 0.199707f, 0.00976562f, 0.0371094f, -0.415039f, 0.00292969f, -0.426758f,
+0.00292969f, -0.458984f, 0.22998f, -0.458984f, 0.22998f, -0.426758f, 0.175293f, -0.414062f,
+0.273926f, -0.151855f, 0.380371f, -0.413086f, 0.0151367f, -0.427246f, 0.0151367f,
+-0.458984f, 0.260254f, -0.458984f, 0.260254f, -0.427246f, 0.208984f, -0.414062f,
+0.275879f, -0.311035f, 0.364258f, -0.415039f, 0.318359f, -0.427246f, 0.318359f, -0.458984f,
+0.474609f, -0.458984f, 0.474609f, -0.427246f, 0.434082f, -0.416992f, 0.305176f, -0.265625f,
+0.450684f, -0.0419922f, 0.494629f, -0.0317383f, 0.494629f, 0, 0.249512f, 0, 0.249512f,
+-0.0317383f, 0.300781f, -0.0429688f, 0.220703f, -0.166504f, 0.114258f, -0.0419922f,
+0.160156f, -0.0317383f, 0.160156f, 0, 0.00390625f, 0, 0.00390625f, -0.0317383f, 0.0449219f,
+-0.0395508f, 0.191406f, -0.211426f, 0.0595703f, -0.415039f, 0.225586f, 0.0141602f,
+0.0419922f, -0.415039f, 0.00976562f, -0.426758f, 0.00976562f, -0.458984f, 0.244629f,
+-0.458984f, 0.244629f, -0.426758f, 0.189941f, -0.414062f, 0.297852f, -0.160156f,
+0.394043f, -0.415039f, 0.340332f, -0.426758f, 0.340332f, -0.458984f, 0.490234f, -0.458984f,
+0.490234f, -0.426758f, 0.457031f, -0.416992f, 0.275879f, 0.0288086f, 0.260254f, 0.0688477f,
+0.244141f, 0.103027f, 0.228027f, 0.137207f, 0.208252f, 0.162354f, 0.188477f, 0.1875f,
+0.163086f, 0.20166f, 0.137695f, 0.21582f, 0.104004f, 0.21582f, 0.090332f, 0.21582f,
+0.0803223f, 0.215332f, 0.0703125f, 0.214844f, 0.0612793f, 0.213623f, 0.0522461f,
+0.212402f, 0.0432129f, 0.210693f, 0.0341797f, 0.208984f, 0.0234375f, 0.206543f, 0.0234375f,
+0.0883789f, 0.0527344f, 0.0883789f, 0.0737305f, 0.149902f, 0.0805664f, 0.155273f,
+0.0891113f, 0.158203f, 0.0976562f, 0.161133f, 0.109863f, 0.161133f, 0.129883f, 0.161133f,
+0.144775f, 0.150879f, 0.159668f, 0.140625f, 0.171875f, 0.123291f, 0.184082f, 0.105957f,
+0.19458f, 0.0827637f, 0.205078f, 0.0595703f, 0.216797f, 0.0336914f, 0.0195312f, 0,
+0.0195312f, -0.0219727f, 0.230469f, -0.415039f, 0.178223f, -0.415039f, 0.164551f,
+-0.415039f, 0.151123f, -0.413818f, 0.137695f, -0.412598f, 0.125732f, -0.4104f, 0.11377f,
+-0.408203f, 0.104492f, -0.405029f, 0.0952148f, -0.401855f, 0.090332f, -0.397949f,
+0.0751953f, -0.322266f, 0.0400391f, -0.322266f, 0.0400391f, -0.458984f, 0.396484f,
+-0.458984f, 0.396484f, -0.435059f, 0.185547f, -0.0439453f, 0.258789f, -0.0439453f,
+0.271973f, -0.0439453f, 0.286865f, -0.0456543f, 0.301758f, -0.0473633f, 0.315674f,
+-0.050293f, 0.32959f, -0.0532227f, 0.341553f, -0.057373f, 0.353516f, -0.0615234f,
+0.36084f, -0.0668945f, 0.386719f, -0.172852f, 0.421875f, -0.172852f, 0.408691f, 0,
+0.289062f, 0.133789f, 0.251465f, 0.133789f, 0.2229f, 0.123779f, 0.194336f, 0.11377f,
+0.175293f, 0.0949707f, 0.15625f, 0.0761719f, 0.146729f, 0.0498047f, 0.137207f, 0.0234375f,
+0.137207f, -0.00976562f, 0.137207f, -0.153809f, 0.137207f, -0.182129f, 0.130127f,
+-0.201904f, 0.123047f, -0.22168f, 0.109619f, -0.234375f, 0.0961914f, -0.24707f, 0.0766602f,
+-0.253174f, 0.0571289f, -0.259277f, 0.0322266f, -0.260254f, 0.0322266f, -0.301758f,
+0.0820312f, -0.303223f, 0.109619f, -0.327393f, 0.137207f, -0.351562f, 0.137207f,
+-0.407227f, 0.137207f, -0.550781f, 0.137207f, -0.619629f, 0.175293f, -0.656738f,
+0.213379f, -0.693848f, 0.289062f, -0.693848f, 0.35498f, -0.693848f, 0.35498f, -0.651367f,
+0.324707f, -0.651367f, 0.291016f, -0.651367f, 0.276611f, -0.629883f, 0.262207f, -0.608398f,
+0.262207f, -0.565918f, 0.262207f, -0.404785f, 0.262207f, -0.380371f, 0.254639f, -0.359863f,
+0.24707f, -0.339355f, 0.233887f, -0.323486f, 0.220703f, -0.307617f, 0.202637f, -0.297119f,
+0.18457f, -0.286621f, 0.163574f, -0.282227f, 0.163574f, -0.280762f, 0.185547f, -0.275879f,
+0.203613f, -0.265381f, 0.22168f, -0.254883f, 0.234863f, -0.239014f, 0.248047f, -0.223145f,
+0.255127f, -0.202637f, 0.262207f, -0.182129f, 0.262207f, -0.157227f, 0.262207f, 0.00585938f,
+0.262207f, 0.0478516f, 0.276611f, 0.0695801f, 0.291016f, 0.0913086f, 0.324707f, 0.0913086f,
+0.35498f, 0.0913086f, 0.35498f, 0.133789f, 0.0751953f, 0.21582f, 0.0751953f, -0.693848f,
+0.14502f, -0.693848f, 0.14502f, 0.21582f, 0.0390625f, 0.133789f, 0.0390625f, 0.0913086f,
+0.0693359f, 0.0913086f, 0.103027f, 0.0913086f, 0.117432f, 0.0695801f, 0.131836f,
+0.0478516f, 0.131836f, 0.00585938f, 0.131836f, -0.157227f, 0.131836f, -0.182129f,
+0.138916f, -0.202637f, 0.145996f, -0.223145f, 0.15918f, -0.239014f, 0.172363f, -0.254883f,
+0.19043f, -0.265381f, 0.208496f, -0.275879f, 0.230469f, -0.280762f, 0.230469f, -0.282227f,
+0.208984f, -0.286621f, 0.190918f, -0.297119f, 0.172852f, -0.307617f, 0.159668f, -0.323486f,
+0.146484f, -0.339355f, 0.13916f, -0.359863f, 0.131836f, -0.380371f, 0.131836f, -0.404785f,
+0.131836f, -0.565918f, 0.131836f, -0.608398f, 0.117432f, -0.629883f, 0.103027f, -0.651367f,
+0.0693359f, -0.651367f, 0.0390625f, -0.651367f, 0.0390625f, -0.693848f, 0.10498f,
+-0.693848f, 0.180664f, -0.693848f, 0.21875f, -0.656738f, 0.256836f, -0.619629f, 0.256836f,
+-0.550781f, 0.256836f, -0.407227f, 0.256836f, -0.351562f, 0.284424f, -0.327393f,
+0.312012f, -0.303223f, 0.361816f, -0.301758f, 0.361816f, -0.260254f, 0.336914f, -0.259277f,
+0.317383f, -0.253174f, 0.297852f, -0.24707f, 0.284424f, -0.234375f, 0.270996f, -0.22168f,
+0.263916f, -0.201904f, 0.256836f, -0.182129f, 0.256836f, -0.153809f, 0.256836f, -0.00976562f,
+0.256836f, 0.0234375f, 0.247314f, 0.0498047f, 0.237793f, 0.0761719f, 0.21875f, 0.0949707f,
+0.199707f, 0.11377f, 0.171143f, 0.123779f, 0.142578f, 0.133789f, 0.10498f, 0.133789f,
+0.371582f, -0.234863f, 0.348145f, -0.234863f, 0.32666f, -0.243652f, 0.305176f, -0.252441f,
+0.285645f, -0.265625f, 0.266113f, -0.278809f, 0.248047f, -0.293945f, 0.22998f, -0.309082f,
+0.213135f, -0.322266f, 0.196289f, -0.335449f, 0.18042f, -0.344238f, 0.164551f, -0.353027f,
+0.149414f, -0.353027f, 0.132812f, -0.353027f, 0.120605f, -0.347168f, 0.108398f, -0.341309f,
+0.0998535f, -0.327393f, 0.0913086f, -0.313477f, 0.0856934f, -0.290771f, 0.0800781f,
+-0.268066f, 0.0766602f, -0.234863f, 0.0078125f, -0.234863f, 0.0112305f, -0.268555f,
+0.0180664f, -0.302246f, 0.0249023f, -0.335938f, 0.0400391f, -0.362549f, 0.0551758f,
+-0.38916f, 0.0812988f, -0.406006f, 0.107422f, -0.422852f, 0.149414f, -0.422852f,
+0.168457f, -0.422852f, 0.185547f, -0.41748f, 0.202637f, -0.412109f, 0.218262f, -0.403564f,
+0.233887f, -0.39502f, 0.248535f, -0.384277f, 0.263184f, -0.373535f, 0.276367f, -0.362793f,
+0.284668f, -0.355469f, 0.296143f, -0.345703f, 0.307617f, -0.335938f, 0.320557f, -0.32666f,
+0.333496f, -0.317383f, 0.34668f, -0.311035f, 0.359863f, -0.304688f, 0.371582f, -0.304688f,
+0.387695f, -0.304688f, 0.399414f, -0.311279f, 0.411133f, -0.317871f, 0.419434f, -0.332031f,
+0.427734f, -0.346191f, 0.433594f, -0.368652f, 0.439453f, -0.391113f, 0.443359f, -0.422852f,
+0.513672f, -0.422852f, 0.509277f, -0.389648f, 0.501709f, -0.355957f, 0.494141f, -0.322266f,
+0.47876f, -0.29541f, 0.463379f, -0.268555f, 0.437744f, -0.251709f, 0.412109f, -0.234863f,
+0.371582f, -0.234863f
+};
+
+const unsigned char LiberationSerifBoldVerbs[] = {
+6, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5,
+6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1,
+1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+0, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1,
+1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0,
+1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2,
+2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2,
+2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2,
+2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSerifBoldCharCodes[] = {
+0, 32, 33, 34, 35, 36,
+37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationSerifBoldWidths[] = {
+0x0000c720, 0x00004000, 0x00005540, 0x00008e20, 0x00008000, 0x00008000, 0x00010000,
+0x0000d540, 0x00004720, 0x00005540, 0x00005540, 0x00008000, 0x000091e0, 0x00004000,
+0x00005540, 0x00004000, 0x00004720, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00005540,
+0x00005540, 0x000091e0, 0x000091e0, 0x000091e0, 0x00008000, 0x0000ee20, 0x0000b8e0,
+0x0000aac0, 0x0000b8e0, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000c720, 0x0000c720,
+0x000063a0, 0x00008000, 0x0000c720, 0x0000aac0, 0x0000f1a0, 0x0000b8e0, 0x0000c720,
+0x00009c60, 0x0000c720, 0x0000b8e0, 0x00008e60, 0x0000aac0, 0x0000b8e0, 0x0000b8e0,
+0x00010000, 0x0000b8e0, 0x0000b8e0, 0x0000aac0, 0x00005540, 0x00004720, 0x00005540,
+0x000094c0, 0x00008000, 0x00005540, 0x00008000, 0x00008e60, 0x000071a0, 0x00008e60,
+0x000071a0, 0x00005540, 0x00008000, 0x00008e60, 0x00004720, 0x00005540, 0x00008e60,
+0x00004720, 0x0000d540, 0x00008e60, 0x00008000, 0x00008e60, 0x00008e60, 0x000071a0,
+0x000063a0, 0x00005540, 0x00008e60, 0x00008000, 0x0000b8e0, 0x00008000, 0x00008000,
+0x000071a0, 0x000064e0, 0x00003860, 0x000064e0, 0x00008520
+};
+
+const int LiberationSerifBoldCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSerifBoldCharCodes);
+
+const SkPaint::FontMetrics LiberationSerifBoldMetrics = {
+0x30307833, -1.00781f, -0.891113f, 0.216309f, 0.303223f, 0.0424805f, 1.26709f, 0.0197983f,
+-0.182129f, 1.08496f, 0.469727f, 0.0103607f, 0.0952148f, 0.108887f
+};
+
+const SkScalar LiberationSerifItalicPoints[] = {
+0.195312f, -0.0449219f, 0.195312f, -0.0327148f, 0.190674f, -0.0219727f, 0.186035f,
+-0.0112305f, 0.178223f, -0.00317383f, 0.17041f, 0.00488281f, 0.159424f, 0.00952148f,
+0.148438f, 0.0141602f, 0.13623f, 0.0141602f, 0.123535f, 0.0141602f, 0.112793f, 0.00952148f,
+0.102051f, 0.00488281f, 0.0942383f, -0.00317383f, 0.0864258f, -0.0112305f, 0.0817871f,
+-0.0219727f, 0.0771484f, -0.0327148f, 0.0771484f, -0.0449219f, 0.0771484f, -0.0571289f,
+0.0817871f, -0.0681152f, 0.0864258f, -0.0791016f, 0.0942383f, -0.0869141f, 0.102051f,
+-0.0947266f, 0.112793f, -0.0993652f, 0.123535f, -0.104004f, 0.13623f, -0.104004f,
+0.148438f, -0.104004f, 0.159424f, -0.0993652f, 0.17041f, -0.0947266f, 0.178223f,
+-0.0869141f, 0.186035f, -0.0791016f, 0.190674f, -0.0681152f, 0.195312f, -0.0571289f,
+0.195312f, -0.0449219f, 0.182617f, -0.654785f, 0.289062f, -0.654785f, 0.177246f,
+-0.189941f, 0.131348f, -0.189941f, 0.327148f, -0.654785f, 0.42334f, -0.654785f, 0.351562f,
+-0.419922f, 0.31543f, -0.419922f, 0.13916f, -0.654785f, 0.235352f, -0.654785f, 0.163574f,
+-0.419922f, 0.127441f, -0.419922f, 0.480469f, -0.255859f, 0.47168f, -0.205566f, 0.344727f,
+-0.205566f, 0.27002f, 0, 0.219238f, 0, 0.293945f, -0.205566f, 0.142578f, -0.205566f,
+0.0683594f, 0, 0.0170898f, 0, 0.0917969f, -0.205566f, 0.00830078f, -0.205566f, 0.0166016f,
+-0.255859f, 0.110352f, -0.255859f, 0.165039f, -0.405762f, 0.0429688f, -0.405762f,
+0.0517578f, -0.456055f, 0.182617f, -0.456055f, 0.254883f, -0.654785f, 0.305664f,
+-0.654785f, 0.233887f, -0.456055f, 0.384766f, -0.456055f, 0.457031f, -0.654785f,
+0.507812f, -0.654785f, 0.435547f, -0.456055f, 0.515625f, -0.456055f, 0.506836f, -0.405762f,
+0.417969f, -0.405762f, 0.36377f, -0.255859f, 0.161621f, -0.255859f, 0.3125f, -0.255859f,
+0.366699f, -0.405762f, 0.21582f, -0.405762f, 0.0371094f, -0.181152f, 0.0688477f,
+-0.181152f, 0.0693359f, -0.0878906f, 0.0771484f, -0.0766602f, 0.0898438f, -0.0661621f,
+0.102539f, -0.0556641f, 0.118896f, -0.0478516f, 0.135254f, -0.0400391f, 0.155273f,
+-0.0351562f, 0.175293f, -0.0302734f, 0.197266f, -0.0297852f, 0.24707f, -0.311523f,
+0.220703f, -0.324707f, 0.193848f, -0.339844f, 0.166992f, -0.35498f, 0.145752f, -0.374756f,
+0.124512f, -0.394531f, 0.111084f, -0.420898f, 0.0976562f, -0.447266f, 0.0976562f,
+-0.483398f, 0.0976562f, -0.527832f, 0.112305f, -0.560791f, 0.126953f, -0.59375f,
+0.154053f, -0.615479f, 0.181152f, -0.637207f, 0.220215f, -0.648682f, 0.259277f, -0.660156f,
+0.308594f, -0.661621f, 0.319824f, -0.724121f, 0.359863f, -0.724121f, 0.348633f, -0.661621f,
+0.388672f, -0.660645f, 0.421631f, -0.655762f, 0.45459f, -0.650879f, 0.483887f, -0.643555f,
+0.459961f, -0.507324f, 0.428223f, -0.507324f, 0.425781f, -0.59082f, 0.412598f, -0.601562f,
+0.390869f, -0.609619f, 0.369141f, -0.617676f, 0.341309f, -0.620117f, 0.299805f, -0.384277f,
+0.326172f, -0.370117f, 0.354492f, -0.353516f, 0.382812f, -0.336914f, 0.406006f, -0.315186f,
+0.429199f, -0.293457f, 0.444092f, -0.265869f, 0.458984f, -0.238281f, 0.458984f, -0.202148f,
+0.458984f, -0.106934f, 0.401611f, -0.0524902f, 0.344238f, 0.00195312f, 0.230469f,
+0.00878906f, 0.21875f, 0.0761719f, 0.178711f, 0.0761719f, 0.19043f, 0.00976562f,
+0.132324f, 0.00878906f, 0.0874023f, -0.00366211f, 0.0424805f, -0.0161133f, 0.0117188f,
+-0.0356445f, 0.37207f, -0.185059f, 0.37207f, -0.206543f, 0.365234f, -0.222656f, 0.358398f,
+-0.23877f, 0.346436f, -0.251465f, 0.334473f, -0.26416f, 0.318359f, -0.27417f, 0.302246f,
+-0.28418f, 0.28418f, -0.293457f, 0.237793f, -0.0322266f, 0.303711f, -0.0405273f,
+0.337891f, -0.079834f, 0.37207f, -0.119141f, 0.37207f, -0.185059f, 0.183105f, -0.500488f,
+0.183105f, -0.482422f, 0.189209f, -0.468018f, 0.195312f, -0.453613f, 0.206055f, -0.441895f,
+0.216797f, -0.430176f, 0.231201f, -0.42041f, 0.245605f, -0.410645f, 0.262695f, -0.401855f,
+0.30127f, -0.620117f, 0.27002f, -0.617676f, 0.247803f, -0.607666f, 0.225586f, -0.597656f,
+0.211182f, -0.581787f, 0.196777f, -0.565918f, 0.189941f, -0.545166f, 0.183105f, -0.524414f,
+0.183105f, -0.500488f, 0.155273f, 0.00976562f, 0.101562f, 0.00976562f, 0.683594f,
+-0.665039f, 0.737793f, -0.665039f, 0.379883f, -0.48584f, 0.364258f, -0.398438f, 0.316895f,
+-0.351318f, 0.269531f, -0.304199f, 0.187012f, -0.304199f, 0.121582f, -0.304199f,
+0.0893555f, -0.336914f, 0.0571289f, -0.369629f, 0.0571289f, -0.432129f, 0.0571289f,
+-0.444824f, 0.0583496f, -0.458008f, 0.0595703f, -0.471191f, 0.0620117f, -0.48584f,
+0.0776367f, -0.57373f, 0.124756f, -0.619385f, 0.171875f, -0.665039f, 0.253418f, -0.665039f,
+0.318848f, -0.665039f, 0.352051f, -0.633301f, 0.385254f, -0.601562f, 0.385254f, -0.538574f,
+0.385254f, -0.515625f, 0.379883f, -0.48584f, 0.303711f, -0.48584f, 0.310059f, -0.520508f,
+0.310059f, -0.548828f, 0.310059f, -0.587891f, 0.294922f, -0.608398f, 0.279785f, -0.628906f,
+0.244141f, -0.628906f, 0.220215f, -0.628906f, 0.202881f, -0.619385f, 0.185547f, -0.609863f,
+0.173096f, -0.591553f, 0.160645f, -0.573242f, 0.1521f, -0.546631f, 0.143555f, -0.52002f,
+0.137695f, -0.48584f, 0.134277f, -0.46582f, 0.132324f, -0.44873f, 0.130371f, -0.431641f,
+0.130371f, -0.416992f, 0.130371f, -0.379883f, 0.144531f, -0.359863f, 0.158691f, -0.339844f,
+0.192871f, -0.339844f, 0.216797f, -0.339844f, 0.234863f, -0.349854f, 0.25293f, -0.359863f,
+0.266113f, -0.378418f, 0.279297f, -0.396973f, 0.288574f, -0.424072f, 0.297852f, -0.451172f,
+0.303711f, -0.48584f, 0.770996f, -0.168945f, 0.755371f, -0.0810547f, 0.708008f, -0.0339355f,
+0.660645f, 0.0131836f, 0.578125f, 0.0131836f, 0.512695f, 0.0131836f, 0.480225f, -0.0192871f,
+0.447754f, -0.0517578f, 0.447754f, -0.114258f, 0.447754f, -0.126953f, 0.449219f,
+-0.140625f, 0.450684f, -0.154297f, 0.453125f, -0.168945f, 0.46875f, -0.256836f, 0.515869f,
+-0.30249f, 0.562988f, -0.348145f, 0.644531f, -0.348145f, 0.709961f, -0.348145f, 0.74292f,
+-0.316406f, 0.775879f, -0.284668f, 0.775879f, -0.221191f, 0.775879f, -0.209473f,
+0.774658f, -0.196289f, 0.773438f, -0.183105f, 0.770996f, -0.168945f, 0.695312f, -0.168945f,
+0.69873f, -0.186523f, 0.700195f, -0.201904f, 0.70166f, -0.217285f, 0.70166f, -0.230957f,
+0.70166f, -0.270508f, 0.686279f, -0.29126f, 0.670898f, -0.312012f, 0.635254f, -0.312012f,
+0.611328f, -0.312012f, 0.593994f, -0.30249f, 0.57666f, -0.292969f, 0.564209f, -0.274658f,
+0.551758f, -0.256348f, 0.543457f, -0.229736f, 0.535156f, -0.203125f, 0.529297f, -0.168945f,
+0.525879f, -0.148926f, 0.523926f, -0.131836f, 0.521973f, -0.114746f, 0.521973f, -0.100098f,
+0.521973f, -0.0629883f, 0.536133f, -0.0429688f, 0.550293f, -0.0229492f, 0.584473f,
+-0.0229492f, 0.608398f, -0.0229492f, 0.626465f, -0.032959f, 0.644531f, -0.0429688f,
+0.657715f, -0.0615234f, 0.670898f, -0.0800781f, 0.680176f, -0.107178f, 0.689453f,
+-0.134277f, 0.695312f, -0.168945f, 0.546875f, -0.538086f, 0.546875f, -0.5f, 0.529785f,
+-0.473633f, 0.512695f, -0.447266f, 0.485352f, -0.428467f, 0.458008f, -0.409668f,
+0.423584f, -0.395996f, 0.38916f, -0.382324f, 0.35498f, -0.370117f, 0.522949f, -0.173828f,
+0.558105f, -0.221191f, 0.580811f, -0.265869f, 0.603516f, -0.310547f, 0.613281f, -0.35498f,
+0.546387f, -0.368164f, 0.550781f, -0.394043f, 0.773926f, -0.394043f, 0.769531f, -0.368164f,
+0.699219f, -0.35498f, 0.689453f, -0.333008f, 0.675781f, -0.305664f, 0.662109f, -0.27832f,
+0.644043f, -0.248779f, 0.625977f, -0.219238f, 0.604248f, -0.189453f, 0.58252f, -0.159668f,
+0.557617f, -0.132812f, 0.639648f, -0.0380859f, 0.71875f, -0.0263672f, 0.713867f,
+0, 0.545898f, 0, 0.490723f, -0.0668945f, 0.469727f, -0.0512695f, 0.447266f, -0.0375977f,
+0.424805f, -0.0239258f, 0.398193f, -0.0131836f, 0.371582f, -0.00244141f, 0.3396f,
+0.00366211f, 0.307617f, 0.00976562f, 0.267578f, 0.00976562f, 0.208984f, 0.00976562f,
+0.166504f, -0.00317383f, 0.124023f, -0.0161133f, 0.0964355f, -0.0393066f, 0.0688477f,
+-0.0625f, 0.0556641f, -0.0947266f, 0.0424805f, -0.126953f, 0.0424805f, -0.166016f,
+0.0424805f, -0.197754f, 0.0512695f, -0.223145f, 0.0600586f, -0.248535f, 0.0751953f,
+-0.268799f, 0.090332f, -0.289062f, 0.110107f, -0.304443f, 0.129883f, -0.319824f,
+0.151611f, -0.331787f, 0.17334f, -0.34375f, 0.195801f, -0.352783f, 0.218262f, -0.361816f,
+0.23877f, -0.369141f, 0.229492f, -0.382324f, 0.219971f, -0.397217f, 0.210449f, -0.412109f,
+0.202881f, -0.429199f, 0.195312f, -0.446289f, 0.190674f, -0.465332f, 0.186035f, -0.484375f,
+0.186035f, -0.506348f, 0.186035f, -0.541992f, 0.198975f, -0.571289f, 0.211914f, -0.600586f,
+0.236084f, -0.621582f, 0.260254f, -0.642578f, 0.29541f, -0.653809f, 0.330566f, -0.665039f,
+0.375f, -0.665039f, 0.421387f, -0.665039f, 0.454102f, -0.654053f, 0.486816f, -0.643066f,
+0.507324f, -0.625f, 0.527832f, -0.606934f, 0.537354f, -0.584229f, 0.546875f, -0.561523f,
+0.546875f, -0.538086f, 0.262695f, -0.335449f, 0.240723f, -0.326172f, 0.21875f, -0.312988f,
+0.196777f, -0.299805f, 0.178955f, -0.280029f, 0.161133f, -0.260254f, 0.150146f, -0.232666f,
+0.13916f, -0.205078f, 0.13916f, -0.16748f, 0.13916f, -0.136719f, 0.148193f, -0.111816f,
+0.157227f, -0.0869141f, 0.174805f, -0.0690918f, 0.192383f, -0.0512695f, 0.218262f,
+-0.041748f, 0.244141f, -0.0322266f, 0.277344f, -0.0322266f, 0.303711f, -0.0322266f,
+0.328857f, -0.0378418f, 0.354004f, -0.043457f, 0.376709f, -0.0534668f, 0.399414f,
+-0.0634766f, 0.419678f, -0.0771484f, 0.439941f, -0.0908203f, 0.457031f, -0.106934f,
+0.273926f, -0.522949f, 0.273926f, -0.492188f, 0.288818f, -0.463135f, 0.303711f, -0.434082f,
+0.328613f, -0.401855f, 0.357422f, -0.412598f, 0.382568f, -0.423584f, 0.407715f, -0.43457f,
+0.426025f, -0.449219f, 0.444336f, -0.463867f, 0.454834f, -0.483887f, 0.465332f, -0.503906f,
+0.465332f, -0.532227f, 0.465332f, -0.577148f, 0.440918f, -0.601562f, 0.416504f, -0.625977f,
+0.375f, -0.625977f, 0.32373f, -0.625977f, 0.298828f, -0.598145f, 0.273926f, -0.570312f,
+0.273926f, -0.522949f, 0.131348f, -0.654785f, 0.227539f, -0.654785f, 0.155762f, -0.419922f,
+0.119629f, -0.419922f, 0.122559f, -0.0639648f, 0.122559f, -0.0273438f, 0.12793f,
+0.00634766f, 0.133301f, 0.0400391f, 0.145996f, 0.0700684f, 0.158691f, 0.100098f,
+0.179688f, 0.125977f, 0.200684f, 0.151855f, 0.231934f, 0.171875f, 0.224609f, 0.212891f,
+0.177734f, 0.185547f, 0.142334f, 0.154297f, 0.106934f, 0.123047f, 0.083252f, 0.0849609f,
+0.0595703f, 0.046875f, 0.0473633f, 0.000488281f, 0.0351562f, -0.0458984f, 0.0351562f,
+-0.104004f, 0.0351562f, -0.13623f, 0.0380859f, -0.169678f, 0.0410156f, -0.203125f,
+0.0478516f, -0.241211f, 0.0639648f, -0.333496f, 0.0917969f, -0.402588f, 0.119629f,
+-0.47168f, 0.160889f, -0.524902f, 0.202148f, -0.578125f, 0.257568f, -0.618652f, 0.312988f,
+-0.65918f, 0.384277f, -0.693848f, 0.376953f, -0.652832f, 0.316406f, -0.621094f, 0.276123f,
+-0.575928f, 0.23584f, -0.530762f, 0.209717f, -0.476807f, 0.183594f, -0.422852f, 0.168213f,
+-0.362793f, 0.152832f, -0.302734f, 0.14209f, -0.241211f, 0.133789f, -0.195312f, 0.128174f,
+-0.150879f, 0.122559f, -0.106445f, 0.122559f, -0.0639648f, -0.0473633f, 0.212891f,
+-0.0400391f, 0.171875f, 0.0205078f, 0.140137f, 0.0605469f, 0.0947266f, 0.100586f,
+0.0493164f, 0.126709f, -0.00463867f, 0.152832f, -0.0585938f, 0.168213f, -0.118896f,
+0.183594f, -0.179199f, 0.194824f, -0.241211f, 0.203125f, -0.286621f, 0.208496f, -0.330811f,
+0.213867f, -0.375f, 0.213867f, -0.416992f, 0.213867f, -0.453613f, 0.208496f, -0.487305f,
+0.203125f, -0.520996f, 0.190674f, -0.551025f, 0.178223f, -0.581055f, 0.156982f, -0.606934f,
+0.135742f, -0.632812f, 0.104492f, -0.652832f, 0.111816f, -0.693848f, 0.158691f, -0.666016f,
+0.194336f, -0.63501f, 0.22998f, -0.604004f, 0.253906f, -0.566162f, 0.277832f, -0.52832f,
+0.290039f, -0.481934f, 0.302246f, -0.435547f, 0.302246f, -0.376953f, 0.302246f, -0.317383f,
+0.289062f, -0.241211f, 0.272949f, -0.148926f, 0.244873f, -0.0795898f, 0.216797f,
+-0.0102539f, 0.175537f, 0.0432129f, 0.134277f, 0.0966797f, 0.0788574f, 0.137451f,
+0.0234375f, 0.178223f, -0.0473633f, 0.212891f, 0.0961914f, -0.52002f, 0.127441f,
+-0.589844f, 0.28125f, -0.495117f, 0.260254f, -0.654785f, 0.336426f, -0.654785f, 0.313477f,
+-0.495117f, 0.468262f, -0.587891f, 0.499512f, -0.519043f, 0.337402f, -0.471191f,
+0.499512f, -0.423828f, 0.468262f, -0.35498f, 0.313477f, -0.446777f, 0.336426f, -0.288086f,
+0.260254f, -0.288086f, 0.28125f, -0.448242f, 0.127441f, -0.353027f, 0.0961914f, -0.422852f,
+0.256348f, -0.471191f, 0.371094f, -0.307129f, 0.371094f, -0.0991211f, 0.320801f,
+-0.0991211f, 0.320801f, -0.307129f, 0.11377f, -0.307129f, 0.11377f, -0.356934f, 0.320801f,
+-0.356934f, 0.320801f, -0.564941f, 0.371094f, -0.564941f, 0.371094f, -0.356934f,
+0.579102f, -0.356934f, 0.579102f, -0.307129f, 0.187012f, -0.0205078f, 0.187012f,
+0.00830078f, 0.178223f, 0.034668f, 0.169434f, 0.0610352f, 0.150635f, 0.0834961f,
+0.131836f, 0.105957f, 0.102783f, 0.124023f, 0.0737305f, 0.14209f, 0.0332031f, 0.153809f,
+0.0332031f, 0.116211f, 0.0776367f, 0.102051f, 0.10083f, 0.081543f, 0.124023f, 0.0610352f,
+0.124023f, 0.0341797f, 0.124023f, 0.0205078f, 0.114502f, 0.0136719f, 0.10498f, 0.00683594f,
+0.0935059f, -0.000244141f, 0.0820312f, -0.00732422f, 0.0725098f, -0.0178223f, 0.0629883f,
+-0.0283203f, 0.0629883f, -0.0488281f, 0.0629883f, -0.0751953f, 0.0795898f, -0.0891113f,
+0.0961914f, -0.103027f, 0.12207f, -0.103027f, 0.135742f, -0.103027f, 0.147705f, -0.0979004f,
+0.159668f, -0.0927734f, 0.168457f, -0.0825195f, 0.177246f, -0.0722656f, 0.182129f,
+-0.0566406f, 0.187012f, -0.0410156f, 0.187012f, -0.0205078f, 0.0371094f, -0.198242f,
+0.0371094f, -0.272949f, 0.296875f, -0.272949f, 0.296875f, -0.198242f, 0.159668f,
+-0.0449219f, 0.159668f, -0.0327148f, 0.155029f, -0.0219727f, 0.150391f, -0.0112305f,
+0.142578f, -0.00317383f, 0.134766f, 0.00488281f, 0.123779f, 0.00952148f, 0.112793f,
+0.0141602f, 0.100586f, 0.0141602f, 0.0878906f, 0.0141602f, 0.0771484f, 0.00952148f,
+0.0664062f, 0.00488281f, 0.0585938f, -0.00317383f, 0.0507812f, -0.0112305f, 0.0461426f,
+-0.0219727f, 0.0415039f, -0.0327148f, 0.0415039f, -0.0449219f, 0.0415039f, -0.0571289f,
+0.0461426f, -0.0681152f, 0.0507812f, -0.0791016f, 0.0585938f, -0.0869141f, 0.0664062f,
+-0.0947266f, 0.0771484f, -0.0993652f, 0.0878906f, -0.104004f, 0.100586f, -0.104004f,
+0.112793f, -0.104004f, 0.123779f, -0.0993652f, 0.134766f, -0.0947266f, 0.142578f,
+-0.0869141f, 0.150391f, -0.0791016f, 0.155029f, -0.0681152f, 0.159668f, -0.0571289f,
+0.159668f, -0.0449219f, 0.0078125f, 0.00976562f, -0.0458984f, 0.00976562f, 0.30127f,
+-0.65918f, 0.354004f, -0.65918f, 0.474609f, -0.330078f, 0.459961f, -0.248047f, 0.436768f,
+-0.18457f, 0.413574f, -0.121094f, 0.380371f, -0.0778809f, 0.347168f, -0.034668f,
+0.303467f, -0.0124512f, 0.259766f, 0.00976562f, 0.20459f, 0.00976562f, 0.123535f,
+0.00976562f, 0.0810547f, -0.0407715f, 0.0385742f, -0.0913086f, 0.0385742f, -0.194824f,
+0.0385742f, -0.223633f, 0.0415039f, -0.258545f, 0.0444336f, -0.293457f, 0.0507812f,
+-0.330078f, 0.0654297f, -0.411133f, 0.0888672f, -0.473633f, 0.112305f, -0.536133f,
+0.145508f, -0.578613f, 0.178711f, -0.621094f, 0.22168f, -0.643066f, 0.264648f, -0.665039f,
+0.318359f, -0.665039f, 0.399414f, -0.665039f, 0.443359f, -0.616211f, 0.487305f, -0.567383f,
+0.487305f, -0.464355f, 0.487305f, -0.436035f, 0.484131f, -0.400635f, 0.480957f, -0.365234f,
+0.474609f, -0.330078f, 0.385742f, -0.319336f, 0.389648f, -0.342773f, 0.392822f, -0.365967f,
+0.395996f, -0.38916f, 0.397949f, -0.410645f, 0.399902f, -0.432129f, 0.400879f, -0.450928f,
+0.401855f, -0.469727f, 0.401855f, -0.484375f, 0.401855f, -0.517578f, 0.396484f, -0.543945f,
+0.391113f, -0.570312f, 0.379639f, -0.588623f, 0.368164f, -0.606934f, 0.35083f, -0.616455f,
+0.333496f, -0.625977f, 0.30957f, -0.625977f, 0.273438f, -0.625977f, 0.246582f, -0.606201f,
+0.219727f, -0.586426f, 0.199219f, -0.548828f, 0.178711f, -0.51123f, 0.16333f, -0.456055f,
+0.147949f, -0.400879f, 0.135742f, -0.330566f, 0.126953f, -0.280273f, 0.124268f, -0.241699f,
+0.121582f, -0.203125f, 0.121582f, -0.168457f, 0.121582f, -0.137207f, 0.126709f, -0.111328f,
+0.131836f, -0.0854492f, 0.142822f, -0.0671387f, 0.153809f, -0.0488281f, 0.17041f,
+-0.0388184f, 0.187012f, -0.0288086f, 0.210449f, -0.0288086f, 0.246094f, -0.0288086f,
+0.273438f, -0.0478516f, 0.300781f, -0.0668945f, 0.321533f, -0.10376f, 0.342285f,
+-0.140625f, 0.357666f, -0.194824f, 0.373047f, -0.249023f, 0.385742f, -0.319336f,
+0.260742f, -0.0390625f, 0.392578f, -0.0258789f, 0.387695f, 0, 0.0356445f, 0, 0.0405273f,
+-0.0258789f, 0.176758f, -0.0390625f, 0.270996f, -0.573242f, 0.130371f, -0.525879f,
+0.135254f, -0.551758f, 0.345215f, -0.660156f, 0.370605f, -0.660156f, 0.400879f, 0,
+0.000488281f, 0, 0.0131836f, -0.0717773f, 0.0673828f, -0.112305f, 0.116699f, -0.147217f,
+0.166016f, -0.182129f, 0.208252f, -0.215088f, 0.250488f, -0.248047f, 0.284668f, -0.281006f,
+0.318848f, -0.313965f, 0.343018f, -0.350586f, 0.367188f, -0.387207f, 0.380371f, -0.428711f,
+0.393555f, -0.470215f, 0.393555f, -0.520996f, 0.393555f, -0.573242f, 0.365234f, -0.597168f,
+0.336914f, -0.621094f, 0.282227f, -0.621094f, 0.267578f, -0.621094f, 0.252686f, -0.618896f,
+0.237793f, -0.616699f, 0.223877f, -0.613037f, 0.209961f, -0.609375f, 0.197754f, -0.604736f,
+0.185547f, -0.600098f, 0.17627f, -0.595215f, 0.14502f, -0.515137f, 0.112793f, -0.515137f,
+0.134766f, -0.641113f, 0.173828f, -0.649902f, 0.210693f, -0.656006f, 0.247559f, -0.662109f,
+0.289551f, -0.662109f, 0.336914f, -0.662109f, 0.372314f, -0.6521f, 0.407715f, -0.64209f,
+0.431152f, -0.623535f, 0.45459f, -0.60498f, 0.466309f, -0.579102f, 0.478027f, -0.553223f,
+0.478027f, -0.520996f, 0.478027f, -0.474121f, 0.463379f, -0.433838f, 0.44873f, -0.393555f,
+0.422607f, -0.356934f, 0.396484f, -0.320312f, 0.359863f, -0.286377f, 0.323242f, -0.252441f,
+0.279053f, -0.218506f, 0.234863f, -0.18457f, 0.18457f, -0.149414f, 0.134277f, -0.114258f,
+0.0810547f, -0.0751953f, 0.414062f, -0.0751953f, 0.174316f, 0.00976562f, 0.150391f,
+0.00976562f, 0.125732f, 0.00732422f, 0.101074f, 0.00488281f, 0.0778809f, 0.000732422f,
+0.0546875f, -0.00341797f, 0.0344238f, -0.00878906f, 0.0141602f, -0.0141602f, -0.00146484f,
+-0.0200195f, 0.0166016f, -0.157715f, 0.0488281f, -0.157715f, 0.0546875f, -0.065918f,
+0.0634766f, -0.059082f, 0.0776367f, -0.0529785f, 0.0917969f, -0.046875f, 0.108398f,
+-0.041748f, 0.125f, -0.0366211f, 0.142334f, -0.0336914f, 0.159668f, -0.0307617f,
+0.174316f, -0.0307617f, 0.22168f, -0.0307617f, 0.254883f, -0.0407715f, 0.288086f,
+-0.0507812f, 0.309082f, -0.0705566f, 0.330078f, -0.090332f, 0.339844f, -0.120117f,
+0.349609f, -0.149902f, 0.349609f, -0.189941f, 0.349609f, -0.250488f, 0.316162f, -0.281738f,
+0.282715f, -0.312988f, 0.218262f, -0.317871f, 0.162109f, -0.321777f, 0.168945f, -0.361816f,
+0.239746f, -0.366211f, 0.277344f, -0.368652f, 0.303223f, -0.379883f, 0.329102f, -0.391113f,
+0.344971f, -0.410156f, 0.36084f, -0.429199f, 0.367676f, -0.455322f, 0.374512f, -0.481445f,
+0.374512f, -0.513184f, 0.374512f, -0.566895f, 0.349121f, -0.593994f, 0.32373f, -0.621094f,
+0.269531f, -0.621094f, 0.254883f, -0.621094f, 0.240234f, -0.618896f, 0.225586f, -0.616699f,
+0.211914f, -0.613037f, 0.198242f, -0.609375f, 0.186035f, -0.604736f, 0.173828f, -0.600098f,
+0.164551f, -0.595215f, 0.133301f, -0.515137f, 0.101074f, -0.515137f, 0.123047f, -0.641113f,
+0.139648f, -0.645508f, 0.156006f, -0.649414f, 0.172363f, -0.65332f, 0.190186f, -0.65625f,
+0.208008f, -0.65918f, 0.228271f, -0.660645f, 0.248535f, -0.662109f, 0.272949f, -0.662109f,
+0.319336f, -0.662109f, 0.355225f, -0.6521f, 0.391113f, -0.64209f, 0.415527f, -0.623779f,
+0.439941f, -0.605469f, 0.452637f, -0.579102f, 0.465332f, -0.552734f, 0.465332f, -0.52002f,
+0.465332f, -0.447266f, 0.422607f, -0.401367f, 0.379883f, -0.355469f, 0.290527f, -0.342773f,
+0.324219f, -0.337891f, 0.351562f, -0.326172f, 0.378906f, -0.314453f, 0.398193f, -0.296143f,
+0.41748f, -0.277832f, 0.427734f, -0.253418f, 0.437988f, -0.229004f, 0.437988f, -0.199219f,
+0.437988f, -0.147461f, 0.417725f, -0.108398f, 0.397461f, -0.0693359f, 0.361816f,
+-0.0429688f, 0.326172f, -0.0166016f, 0.278076f, -0.00341797f, 0.22998f, 0.00976562f,
+0.174316f, 0.00976562f, 0.368164f, -0.150391f, 0.341309f, 0, 0.262207f, 0, 0.289062f,
+-0.150391f, 0.00244141f, -0.150391f, 0.012207f, -0.208984f, 0.378906f, -0.658203f,
+0.457031f, -0.658203f, 0.378906f, -0.213867f, 0.477539f, -0.213867f, 0.466797f, -0.150391f,
+0.346191f, -0.478027f, 0.348633f, -0.490723f, 0.352051f, -0.507324f, 0.355469f, -0.523926f,
+0.358887f, -0.539551f, 0.362793f, -0.557617f, 0.367188f, -0.576172f, 0.0727539f,
+-0.213867f, 0.299805f, -0.213867f, 0.239258f, -0.382812f, 0.291016f, -0.382812f,
+0.329102f, -0.371826f, 0.367188f, -0.36084f, 0.392334f, -0.339844f, 0.41748f, -0.318848f,
+0.429932f, -0.289062f, 0.442383f, -0.259277f, 0.442383f, -0.22168f, 0.442383f, -0.166504f,
+0.425049f, -0.123535f, 0.407715f, -0.0805664f, 0.373779f, -0.0507812f, 0.339844f,
+-0.0209961f, 0.289795f, -0.00561523f, 0.239746f, 0.00976562f, 0.173828f, 0.00976562f,
+0.125488f, 0.00976562f, 0.0859375f, 0.00366211f, 0.0463867f, -0.00244141f, 0.015625f,
+-0.0112305f, 0.0341797f, -0.148926f, 0.0664062f, -0.148926f, 0.0722656f, -0.0571289f,
+0.0800781f, -0.0522461f, 0.0925293f, -0.0473633f, 0.10498f, -0.0424805f, 0.119629f,
+-0.0388184f, 0.134277f, -0.0351562f, 0.150146f, -0.032959f, 0.166016f, -0.0307617f,
+0.180664f, -0.0307617f, 0.229004f, -0.0307617f, 0.261963f, -0.0444336f, 0.294922f,
+-0.0581055f, 0.315186f, -0.0825195f, 0.335449f, -0.106934f, 0.344238f, -0.141357f,
+0.353027f, -0.175781f, 0.353027f, -0.217285f, 0.353027f, -0.242676f, 0.347168f, -0.265381f,
+0.341309f, -0.288086f, 0.32666f, -0.305176f, 0.312012f, -0.322266f, 0.287598f, -0.332031f,
+0.263184f, -0.341797f, 0.226074f, -0.341797f, 0.197266f, -0.341797f, 0.170166f, -0.337891f,
+0.143066f, -0.333984f, 0.12793f, -0.330078f, 0.0810547f, -0.330078f, 0.138184f, -0.654785f,
+0.470215f, -0.654785f, 0.457031f, -0.580078f, 0.168945f, -0.580078f, 0.132324f, -0.371094f,
+0.141602f, -0.373047f, 0.151611f, -0.375f, 0.161621f, -0.376953f, 0.174072f, -0.378662f,
+0.186523f, -0.380371f, 0.202148f, -0.381592f, 0.217773f, -0.382812f, 0.239258f, -0.382812f,
+0.23291f, 0.00976562f, 0.187988f, 0.00976562f, 0.152344f, -0.00537109f, 0.116699f,
+-0.0205078f, 0.0917969f, -0.0498047f, 0.0668945f, -0.0791016f, 0.0537109f, -0.121338f,
+0.0405273f, -0.163574f, 0.0405273f, -0.217773f, 0.0405273f, -0.281738f, 0.0515137f,
+-0.3396f, 0.0625f, -0.397461f, 0.0822754f, -0.446777f, 0.102051f, -0.496094f, 0.130371f,
+-0.535889f, 0.158691f, -0.575684f, 0.193359f, -0.60376f, 0.228027f, -0.631836f, 0.268555f,
+-0.646973f, 0.309082f, -0.662109f, 0.353027f, -0.662109f, 0.392578f, -0.662109f,
+0.428955f, -0.654297f, 0.465332f, -0.646484f, 0.495117f, -0.63623f, 0.475098f, -0.523438f,
+0.442871f, -0.523438f, 0.4375f, -0.591797f, 0.417969f, -0.60498f, 0.395508f, -0.613037f,
+0.373047f, -0.621094f, 0.349609f, -0.621094f, 0.307617f, -0.621094f, 0.273193f, -0.599365f,
+0.23877f, -0.577637f, 0.212402f, -0.540039f, 0.186035f, -0.502441f, 0.167725f, -0.452148f,
+0.149414f, -0.401855f, 0.13916f, -0.344727f, 0.15332f, -0.353027f, 0.171143f, -0.361328f,
+0.188965f, -0.369629f, 0.209229f, -0.376465f, 0.229492f, -0.383301f, 0.251221f, -0.387695f,
+0.272949f, -0.39209f, 0.294922f, -0.39209f, 0.334961f, -0.39209f, 0.366211f, -0.381836f,
+0.397461f, -0.371582f, 0.418945f, -0.352295f, 0.44043f, -0.333008f, 0.45166f, -0.30542f,
+0.462891f, -0.277832f, 0.462891f, -0.243652f, 0.462891f, -0.192871f, 0.448975f, -0.146973f,
+0.435059f, -0.101074f, 0.406494f, -0.0664062f, 0.37793f, -0.0317383f, 0.334717f,
+-0.0109863f, 0.291504f, 0.00976562f, 0.23291f, 0.00976562f, 0.126953f, -0.200684f,
+0.126953f, -0.154297f, 0.135254f, -0.121582f, 0.143555f, -0.0888672f, 0.157715f,
+-0.0683594f, 0.171875f, -0.0478516f, 0.191406f, -0.0383301f, 0.210938f, -0.0288086f,
+0.233887f, -0.0288086f, 0.27002f, -0.0288086f, 0.296143f, -0.045166f, 0.322266f,
+-0.0615234f, 0.339111f, -0.0900879f, 0.355957f, -0.118652f, 0.364014f, -0.156738f,
+0.37207f, -0.194824f, 0.37207f, -0.23877f, 0.37207f, -0.291992f, 0.348389f, -0.318604f,
+0.324707f, -0.345215f, 0.274414f, -0.345215f, 0.258301f, -0.345215f, 0.240723f, -0.342773f,
+0.223145f, -0.340332f, 0.205078f, -0.336182f, 0.187012f, -0.332031f, 0.168945f, -0.326416f,
+0.150879f, -0.320801f, 0.134766f, -0.314941f, 0.130859f, -0.287109f, 0.128906f, -0.258545f,
+0.126953f, -0.22998f, 0.126953f, -0.200684f, 0.133789f, -0.5f, 0.101562f, -0.5f,
+0.128906f, -0.654785f, 0.53418f, -0.654785f, 0.527344f, -0.617188f, 0.126465f, 0,
+0.0585938f, 0, 0.447754f, -0.580078f, 0.165039f, -0.580078f, 0.48877f, -0.533203f,
+0.48877f, -0.494141f, 0.478516f, -0.463135f, 0.468262f, -0.432129f, 0.450928f, -0.408691f,
+0.433594f, -0.385254f, 0.410889f, -0.369873f, 0.388184f, -0.354492f, 0.362793f, -0.347168f,
+0.404785f, -0.33252f, 0.428711f, -0.298584f, 0.452637f, -0.264648f, 0.452637f, -0.214844f,
+0.452637f, -0.160645f, 0.437988f, -0.118652f, 0.42334f, -0.0766602f, 0.393311f, -0.0480957f,
+0.363281f, -0.0195312f, 0.317139f, -0.00488281f, 0.270996f, 0.00976562f, 0.208008f,
+0.00976562f, 0.112793f, 0.00976562f, 0.0668945f, -0.0300293f, 0.0209961f, -0.0698242f,
+0.0209961f, -0.143066f, 0.0209961f, -0.225586f, 0.0600586f, -0.275635f, 0.0991211f,
+-0.325684f, 0.171387f, -0.347168f, 0.140137f, -0.36084f, 0.119385f, -0.389893f, 0.0986328f,
+-0.418945f, 0.0986328f, -0.463379f, 0.0986328f, -0.510254f, 0.111816f, -0.547852f,
+0.125f, -0.585449f, 0.152344f, -0.611328f, 0.179688f, -0.637207f, 0.221436f, -0.651123f,
+0.263184f, -0.665039f, 0.319824f, -0.665039f, 0.40625f, -0.665039f, 0.44751f, -0.630859f,
+0.48877f, -0.59668f, 0.48877f, -0.533203f, 0.213867f, -0.0288086f, 0.259277f, -0.0288086f,
+0.288818f, -0.0427246f, 0.318359f, -0.0566406f, 0.335693f, -0.081543f, 0.353027f,
+-0.106445f, 0.359619f, -0.141357f, 0.366211f, -0.17627f, 0.366211f, -0.218262f, 0.366211f,
+-0.241699f, 0.360596f, -0.26123f, 0.35498f, -0.280762f, 0.342285f, -0.295166f, 0.32959f,
+-0.30957f, 0.30957f, -0.317383f, 0.289551f, -0.325195f, 0.260742f, -0.325195f, 0.218262f,
+-0.325195f, 0.188965f, -0.312012f, 0.159668f, -0.298828f, 0.141602f, -0.274658f,
+0.123535f, -0.250488f, 0.115479f, -0.216553f, 0.107422f, -0.182617f, 0.107422f, -0.141113f,
+0.107422f, -0.115234f, 0.113525f, -0.0944824f, 0.119629f, -0.0737305f, 0.132568f,
+-0.059082f, 0.145508f, -0.0444336f, 0.165771f, -0.0366211f, 0.186035f, -0.0288086f,
+0.213867f, -0.0288086f, 0.269043f, -0.368164f, 0.307617f, -0.368164f, 0.333008f,
+-0.38208f, 0.358398f, -0.395996f, 0.373779f, -0.418945f, 0.38916f, -0.441895f, 0.395508f,
+-0.47168f, 0.401855f, -0.501465f, 0.401855f, -0.533203f, 0.401855f, -0.554688f, 0.397217f,
+-0.572021f, 0.392578f, -0.589355f, 0.382324f, -0.601318f, 0.37207f, -0.613281f, 0.355225f,
+-0.619629f, 0.338379f, -0.625977f, 0.314453f, -0.625977f, 0.275879f, -0.625977f,
+0.250732f, -0.613037f, 0.225586f, -0.600098f, 0.210938f, -0.577881f, 0.196289f, -0.555664f,
+0.19043f, -0.525635f, 0.18457f, -0.495605f, 0.18457f, -0.461426f, 0.18457f, -0.441895f,
+0.188965f, -0.425049f, 0.193359f, -0.408203f, 0.203125f, -0.395508f, 0.212891f, -0.382812f,
+0.229248f, -0.375488f, 0.245605f, -0.368164f, 0.269043f, -0.368164f, 0.291504f, -0.662109f,
+0.336426f, -0.662109f, 0.37207f, -0.647705f, 0.407715f, -0.633301f, 0.432617f, -0.604736f,
+0.45752f, -0.576172f, 0.470703f, -0.533447f, 0.483887f, -0.490723f, 0.483887f, -0.43457f,
+0.483887f, -0.37207f, 0.473633f, -0.315186f, 0.463379f, -0.258301f, 0.444092f, -0.20874f,
+0.424805f, -0.15918f, 0.397949f, -0.118896f, 0.371094f, -0.0786133f, 0.337646f, -0.0500488f,
+0.304199f, -0.0214844f, 0.265381f, -0.00585938f, 0.226562f, 0.00976562f, 0.183594f,
+0.00976562f, 0.138184f, 0.00976562f, 0.0996094f, 0.00292969f, 0.0610352f, -0.00390625f,
+0.0292969f, -0.0166016f, 0.0483398f, -0.124512f, 0.0805664f, -0.124512f, 0.0859375f,
+-0.0561523f, 0.102539f, -0.0463867f, 0.128174f, -0.0388184f, 0.153809f, -0.03125f,
+0.181641f, -0.03125f, 0.224609f, -0.03125f, 0.258789f, -0.0529785f, 0.292969f, -0.074707f,
+0.318115f, -0.112549f, 0.343262f, -0.150391f, 0.360352f, -0.200684f, 0.377441f, -0.250977f,
+0.38623f, -0.308105f, 0.37207f, -0.299805f, 0.354248f, -0.29126f, 0.336426f, -0.282715f,
+0.315918f, -0.275879f, 0.29541f, -0.269043f, 0.273438f, -0.264648f, 0.251465f, -0.260254f,
+0.229492f, -0.260254f, 0.189453f, -0.260254f, 0.158203f, -0.271973f, 0.126953f, -0.283691f,
+0.105469f, -0.305176f, 0.0839844f, -0.32666f, 0.0727539f, -0.357178f, 0.0615234f,
+-0.387695f, 0.0615234f, -0.425293f, 0.0615234f, -0.475586f, 0.0761719f, -0.519043f,
+0.0908203f, -0.5625f, 0.119629f, -0.594238f, 0.148438f, -0.625977f, 0.19165f, -0.644043f,
+0.234863f, -0.662109f, 0.291504f, -0.662109f, 0.397461f, -0.45166f, 0.397461f, -0.498047f,
+0.38916f, -0.530762f, 0.380859f, -0.563477f, 0.366699f, -0.583984f, 0.352539f, -0.604492f,
+0.332764f, -0.614014f, 0.312988f, -0.623535f, 0.290527f, -0.623535f, 0.254395f, -0.623535f,
+0.228271f, -0.608643f, 0.202148f, -0.59375f, 0.185303f, -0.567383f, 0.168457f, -0.541016f,
+0.1604f, -0.505127f, 0.152344f, -0.469238f, 0.152344f, -0.427734f, 0.152344f, -0.366211f,
+0.179443f, -0.33667f, 0.206543f, -0.307129f, 0.254395f, -0.307129f, 0.29248f, -0.307129f,
+0.326172f, -0.31543f, 0.359863f, -0.32373f, 0.390625f, -0.336914f, 0.394043f, -0.364746f,
+0.395752f, -0.393555f, 0.397461f, -0.422363f, 0.397461f, -0.45166f, 0.185059f, -0.0449219f,
+0.185059f, -0.0327148f, 0.18042f, -0.0219727f, 0.175781f, -0.0112305f, 0.167969f,
+-0.00317383f, 0.160156f, 0.00488281f, 0.14917f, 0.00952148f, 0.138184f, 0.0141602f,
+0.125977f, 0.0141602f, 0.113281f, 0.0141602f, 0.102539f, 0.00952148f, 0.0917969f,
+0.00488281f, 0.0839844f, -0.00317383f, 0.0761719f, -0.0112305f, 0.0715332f, -0.0219727f,
+0.0668945f, -0.0327148f, 0.0668945f, -0.0449219f, 0.0668945f, -0.0571289f, 0.0715332f,
+-0.0681152f, 0.0761719f, -0.0791016f, 0.0839844f, -0.0869141f, 0.0917969f, -0.0947266f,
+0.102539f, -0.0993652f, 0.113281f, -0.104004f, 0.125977f, -0.104004f, 0.138184f,
+-0.104004f, 0.14917f, -0.0993652f, 0.160156f, -0.0947266f, 0.167969f, -0.0869141f,
+0.175781f, -0.0791016f, 0.18042f, -0.0681152f, 0.185059f, -0.0571289f, 0.185059f,
+-0.0449219f, 0.253906f, -0.409668f, 0.253906f, -0.397461f, 0.249268f, -0.386719f,
+0.244629f, -0.375977f, 0.236816f, -0.36792f, 0.229004f, -0.359863f, 0.218018f, -0.355225f,
+0.207031f, -0.350586f, 0.194824f, -0.350586f, 0.182129f, -0.350586f, 0.171387f, -0.355225f,
+0.160645f, -0.359863f, 0.152832f, -0.36792f, 0.14502f, -0.375977f, 0.140381f, -0.386719f,
+0.135742f, -0.397461f, 0.135742f, -0.409668f, 0.135742f, -0.421875f, 0.140381f, -0.432861f,
+0.14502f, -0.443848f, 0.152832f, -0.45166f, 0.160645f, -0.459473f, 0.171387f, -0.464111f,
+0.182129f, -0.46875f, 0.194824f, -0.46875f, 0.207031f, -0.46875f, 0.218018f, -0.464111f,
+0.229004f, -0.459473f, 0.236816f, -0.45166f, 0.244629f, -0.443848f, 0.249268f, -0.432861f,
+0.253906f, -0.421875f, 0.253906f, -0.409668f, 0.266602f, -0.409668f, 0.266602f, -0.397461f,
+0.261963f, -0.386719f, 0.257324f, -0.375977f, 0.249512f, -0.36792f, 0.241699f, -0.359863f,
+0.230713f, -0.355225f, 0.219727f, -0.350586f, 0.20752f, -0.350586f, 0.194824f, -0.350586f,
+0.184082f, -0.355225f, 0.17334f, -0.359863f, 0.165527f, -0.36792f, 0.157715f, -0.375977f,
+0.153076f, -0.386719f, 0.148438f, -0.397461f, 0.148438f, -0.409668f, 0.148438f, -0.421875f,
+0.153076f, -0.432861f, 0.157715f, -0.443848f, 0.165527f, -0.45166f, 0.17334f, -0.459473f,
+0.184082f, -0.464111f, 0.194824f, -0.46875f, 0.20752f, -0.46875f, 0.219727f, -0.46875f,
+0.230713f, -0.464111f, 0.241699f, -0.459473f, 0.249512f, -0.45166f, 0.257324f, -0.443848f,
+0.261963f, -0.432861f, 0.266602f, -0.421875f, 0.266602f, -0.409668f, 0.200195f, -0.0205078f,
+0.200195f, 0.00830078f, 0.191406f, 0.034668f, 0.182617f, 0.0610352f, 0.163818f, 0.0834961f,
+0.14502f, 0.105957f, 0.115967f, 0.124023f, 0.0869141f, 0.14209f, 0.0463867f, 0.153809f,
+0.0463867f, 0.116211f, 0.0908203f, 0.102051f, 0.114014f, 0.081543f, 0.137207f, 0.0610352f,
+0.137207f, 0.0341797f, 0.137207f, 0.0205078f, 0.127686f, 0.0136719f, 0.118164f, 0.00683594f,
+0.106689f, -0.000244141f, 0.0952148f, -0.00732422f, 0.0856934f, -0.0178223f, 0.0761719f,
+-0.0283203f, 0.0761719f, -0.0488281f, 0.0761719f, -0.0751953f, 0.0927734f, -0.0891113f,
+0.109375f, -0.103027f, 0.135254f, -0.103027f, 0.148926f, -0.103027f, 0.160889f, -0.0979004f,
+0.172852f, -0.0927734f, 0.181641f, -0.0825195f, 0.19043f, -0.0722656f, 0.195312f,
+-0.0566406f, 0.200195f, -0.0410156f, 0.200195f, -0.0205078f, 0.113281f, -0.319824f,
+0.113281f, -0.344238f, 0.578613f, -0.573242f, 0.578613f, -0.522949f, 0.183594f, -0.332031f,
+0.578613f, -0.141113f, 0.578613f, -0.0908203f, 0.579102f, -0.256836f, 0.579102f,
+-0.207031f, 0.11377f, -0.207031f, 0.11377f, -0.256836f, 0.579102f, -0.457031f, 0.579102f,
+-0.407227f, 0.11377f, -0.407227f, 0.11377f, -0.457031f, 0.113281f, -0.0908203f, 0.113281f,
+-0.141113f, 0.508301f, -0.332031f, 0.113281f, -0.522949f, 0.113281f, -0.573242f,
+0.578613f, -0.344238f, 0.578613f, -0.319824f, 0.245117f, -0.170898f, 0.206055f, -0.170898f,
+0.222168f, -0.333984f, 0.294434f, -0.348145f, 0.350586f, -0.358887f, 0.377686f, -0.398438f,
+0.404785f, -0.437988f, 0.404785f, -0.513184f, 0.404785f, -0.538574f, 0.399414f, -0.558594f,
+0.394043f, -0.578613f, 0.382324f, -0.592529f, 0.370605f, -0.606445f, 0.352295f, -0.61377f,
+0.333984f, -0.621094f, 0.307617f, -0.621094f, 0.293457f, -0.621094f, 0.27832f, -0.618408f,
+0.263184f, -0.615723f, 0.248779f, -0.61084f, 0.234375f, -0.605957f, 0.221191f, -0.599609f,
+0.208008f, -0.593262f, 0.19873f, -0.585938f, 0.174316f, -0.505859f, 0.14209f, -0.505859f,
+0.157227f, -0.629883f, 0.191406f, -0.644043f, 0.231445f, -0.653076f, 0.271484f, -0.662109f,
+0.312988f, -0.662109f, 0.403809f, -0.662109f, 0.447754f, -0.625977f, 0.491699f, -0.589844f,
+0.491699f, -0.519043f, 0.491699f, -0.478027f, 0.481201f, -0.443359f, 0.470703f, -0.408691f,
+0.447754f, -0.381348f, 0.424805f, -0.354004f, 0.388916f, -0.334473f, 0.353027f, -0.314941f,
+0.302734f, -0.304199f, 0.273926f, -0.297852f, 0.266113f, -0.0449219f, 0.266113f,
+-0.0327148f, 0.261475f, -0.0219727f, 0.256836f, -0.0112305f, 0.249023f, -0.00317383f,
+0.241211f, 0.00488281f, 0.230469f, 0.00952148f, 0.219727f, 0.0141602f, 0.20752f,
+0.0141602f, 0.194824f, 0.0141602f, 0.184082f, 0.00952148f, 0.17334f, 0.00488281f,
+0.165527f, -0.00317383f, 0.157715f, -0.0112305f, 0.153076f, -0.0219727f, 0.148438f,
+-0.0327148f, 0.148438f, -0.0449219f, 0.148438f, -0.0571289f, 0.153076f, -0.0681152f,
+0.157715f, -0.0791016f, 0.165527f, -0.0869141f, 0.17334f, -0.0947266f, 0.184082f,
+-0.0993652f, 0.194824f, -0.104004f, 0.20752f, -0.104004f, 0.219727f, -0.104004f,
+0.230469f, -0.0993652f, 0.241211f, -0.0947266f, 0.249023f, -0.0869141f, 0.256836f,
+-0.0791016f, 0.261475f, -0.0681152f, 0.266113f, -0.0571289f, 0.266113f, -0.0449219f,
+0.717285f, 0.0898438f, 0.690918f, 0.110352f, 0.661377f, 0.128418f, 0.631836f, 0.146484f,
+0.596436f, 0.160156f, 0.561035f, 0.173828f, 0.519287f, 0.181885f, 0.477539f, 0.189941f,
+0.427246f, 0.189941f, 0.338867f, 0.189941f, 0.270264f, 0.161377f, 0.20166f, 0.132812f,
+0.154541f, 0.0830078f, 0.107422f, 0.0332031f, 0.0830078f, -0.0336914f, 0.0585938f,
+-0.100586f, 0.0585938f, -0.176758f, 0.0585938f, -0.246582f, 0.0744629f, -0.310059f,
+0.090332f, -0.373535f, 0.119873f, -0.427734f, 0.149414f, -0.481934f, 0.19165f, -0.526123f,
+0.233887f, -0.570312f, 0.286133f, -0.601318f, 0.338379f, -0.632324f, 0.399658f, -0.64917f,
+0.460938f, -0.666016f, 0.529297f, -0.666016f, 0.614746f, -0.666016f, 0.679199f, -0.644775f,
+0.743652f, -0.623535f, 0.786865f, -0.584473f, 0.830078f, -0.54541f, 0.851807f, -0.490234f,
+0.873535f, -0.435059f, 0.873535f, -0.367188f, 0.873535f, -0.316895f, 0.859863f, -0.270996f,
+0.846191f, -0.225098f, 0.822266f, -0.185791f, 0.79834f, -0.146484f, 0.765625f, -0.114258f,
+0.73291f, -0.0820312f, 0.694824f, -0.0593262f, 0.656738f, -0.0366211f, 0.614746f,
+-0.0244141f, 0.572754f, -0.012207f, 0.530273f, -0.012207f, 0.524414f, -0.012207f,
+0.518799f, -0.0131836f, 0.513184f, -0.0141602f, 0.508789f, -0.0170898f, 0.504395f,
+-0.0200195f, 0.501465f, -0.0249023f, 0.498535f, -0.0297852f, 0.498535f, -0.0371094f,
+0.498535f, -0.0507812f, 0.499756f, -0.067627f, 0.500977f, -0.0844727f, 0.502441f,
+-0.0981445f, 0.489258f, -0.0849609f, 0.471436f, -0.0698242f, 0.453613f, -0.0546875f,
+0.433105f, -0.0419922f, 0.412598f, -0.0292969f, 0.390137f, -0.020752f, 0.367676f,
+-0.012207f, 0.345215f, -0.012207f, 0.310059f, -0.012207f, 0.290771f, -0.0388184f,
+0.271484f, -0.0654297f, 0.271484f, -0.109863f, 0.271484f, -0.150391f, 0.278809f,
+-0.190186f, 0.286133f, -0.22998f, 0.300293f, -0.266113f, 0.314453f, -0.302246f, 0.335938f,
+-0.333008f, 0.357422f, -0.36377f, 0.385254f, -0.38623f, 0.408691f, -0.404785f, 0.430176f,
+-0.416748f, 0.45166f, -0.428711f, 0.474365f, -0.435303f, 0.49707f, -0.441895f, 0.522461f,
+-0.444336f, 0.547852f, -0.446777f, 0.578613f, -0.446777f, 0.588379f, -0.446777f,
+0.595947f, -0.446777f, 0.603516f, -0.446777f, 0.610352f, -0.446533f, 0.617188f, -0.446289f,
+0.623779f, -0.445557f, 0.630371f, -0.444824f, 0.638184f, -0.443848f, 0.58252f, -0.185059f,
+0.580078f, -0.17334f, 0.577881f, -0.161133f, 0.575684f, -0.148926f, 0.574219f, -0.137695f,
+0.572754f, -0.126465f, 0.572021f, -0.116699f, 0.571289f, -0.106934f, 0.571289f, -0.100098f,
+0.571289f, -0.0942383f, 0.572266f, -0.088623f, 0.573242f, -0.0830078f, 0.576904f,
+-0.0788574f, 0.580566f, -0.074707f, 0.587646f, -0.0722656f, 0.594727f, -0.0698242f,
+0.607422f, -0.0698242f, 0.63916f, -0.0698242f, 0.666992f, -0.0820312f, 0.694824f,
+-0.0942383f, 0.717529f, -0.115479f, 0.740234f, -0.136719f, 0.758057f, -0.165527f,
+0.775879f, -0.194336f, 0.787842f, -0.227295f, 0.799805f, -0.260254f, 0.806152f, -0.295654f,
+0.8125f, -0.331055f, 0.8125f, -0.366211f, 0.8125f, -0.429199f, 0.79248f, -0.477539f,
+0.772461f, -0.525879f, 0.735107f, -0.558838f, 0.697754f, -0.591797f, 0.644775f, -0.608887f,
+0.591797f, -0.625977f, 0.526367f, -0.625977f, 0.463867f, -0.625977f, 0.409912f, -0.609619f,
+0.355957f, -0.593262f, 0.311279f, -0.563965f, 0.266602f, -0.534668f, 0.232178f, -0.493408f,
+0.197754f, -0.452148f, 0.174072f, -0.402588f, 0.150391f, -0.353027f, 0.137939f, -0.296143f,
+0.125488f, -0.239258f, 0.125488f, -0.178223f, 0.125488f, -0.11377f, 0.144531f, -0.0546875f,
+0.163574f, 0.00439453f, 0.202881f, 0.0495605f, 0.242188f, 0.0947266f, 0.301758f,
+0.121826f, 0.361328f, 0.148926f, 0.442383f, 0.148926f, 0.48877f, 0.148926f, 0.526123f,
+0.14209f, 0.563477f, 0.135254f, 0.594238f, 0.123779f, 0.625f, 0.112305f, 0.651123f,
+0.097168f, 0.677246f, 0.0820312f, 0.701172f, 0.0649414f, 0.561523f, -0.394043f, 0.556641f,
+-0.394531f, 0.552246f, -0.39502f, 0.54834f, -0.395508f, 0.544434f, -0.395752f, 0.540527f,
+-0.395996f, 0.537598f, -0.395996f, 0.523438f, -0.395996f, 0.506592f, -0.394531f,
+0.489746f, -0.393066f, 0.472412f, -0.388916f, 0.455078f, -0.384766f, 0.437988f, -0.377441f,
+0.420898f, -0.370117f, 0.407227f, -0.35791f, 0.393066f, -0.345215f, 0.380371f, -0.323975f,
+0.367676f, -0.302734f, 0.358154f, -0.275391f, 0.348633f, -0.248047f, 0.343018f, -0.216309f,
+0.337402f, -0.18457f, 0.337402f, -0.150879f, 0.337402f, -0.116211f, 0.347168f, -0.097168f,
+0.356934f, -0.078125f, 0.376465f, -0.078125f, 0.394043f, -0.078125f, 0.412354f, -0.0834961f,
+0.430664f, -0.0888672f, 0.447998f, -0.0969238f, 0.465332f, -0.10498f, 0.480225f,
+-0.11499f, 0.495117f, -0.125f, 0.505371f, -0.133789f, 0.128906f, -0.0258789f, 0.124023f,
+0, -0.0546875f, 0, -0.0498047f, -0.0258789f, 0.00488281f, -0.0390625f, 0.337891f,
+-0.660156f, 0.431152f, -0.660156f, 0.553223f, -0.0390625f, 0.614258f, -0.0258789f,
+0.608887f, 0, 0.376953f, 0, 0.382324f, -0.0258789f, 0.452148f, -0.0390625f, 0.420898f,
+-0.228027f, 0.163086f, -0.228027f, 0.0629883f, -0.0390625f, 0.353027f, -0.589844f,
+0.185059f, -0.271973f, 0.413086f, -0.271973f, 0.312012f, -0.368164f, 0.361816f, -0.368164f,
+0.395508f, -0.376465f, 0.429199f, -0.384766f, 0.449707f, -0.4021f, 0.470215f, -0.419434f,
+0.47876f, -0.446533f, 0.487305f, -0.473633f, 0.487305f, -0.51123f, 0.487305f, -0.562012f,
+0.455566f, -0.586426f, 0.423828f, -0.61084f, 0.351074f, -0.61084f, 0.273926f, -0.61084f,
+0.230957f, -0.368164f, 0.300293f, -0.0410156f, 0.353516f, -0.0410156f, 0.388672f,
+-0.052002f, 0.423828f, -0.0629883f, 0.44458f, -0.0834961f, 0.465332f, -0.104004f,
+0.473633f, -0.133057f, 0.481934f, -0.162109f, 0.481934f, -0.198242f, 0.481934f, -0.264648f,
+0.438721f, -0.294434f, 0.395508f, -0.324219f, 0.313965f, -0.324219f, 0.223145f, -0.324219f,
+0.174316f, -0.0439453f, 0.199219f, -0.0429688f, 0.222656f, -0.0424805f, 0.242676f,
+-0.0415039f, 0.26416f, -0.0412598f, 0.285645f, -0.0410156f, 0.300293f, -0.0410156f,
+0.00927734f, 0, 0.0141602f, -0.0258789f, 0.0791016f, -0.0390625f, 0.181152f, -0.616211f,
+0.0991211f, -0.628906f, 0.104004f, -0.654785f, 0.373047f, -0.654785f, 0.433105f,
+-0.654785f, 0.474365f, -0.644775f, 0.515625f, -0.634766f, 0.541016f, -0.616455f,
+0.566406f, -0.598145f, 0.577637f, -0.572754f, 0.588867f, -0.547363f, 0.588867f, -0.51709f,
+0.588867f, -0.47998f, 0.57666f, -0.450928f, 0.564453f, -0.421875f, 0.542969f, -0.400635f,
+0.521484f, -0.379395f, 0.491211f, -0.366211f, 0.460938f, -0.353027f, 0.425293f, -0.348145f,
+0.458984f, -0.345215f, 0.488037f, -0.334961f, 0.51709f, -0.324707f, 0.53833f, -0.306641f,
+0.55957f, -0.288574f, 0.571777f, -0.262207f, 0.583984f, -0.23584f, 0.583984f, -0.200195f,
+0.583984f, -0.0952148f, 0.512939f, -0.0461426f, 0.441895f, 0.00292969f, 0.300293f,
+0.00292969f, 0.272949f, 0.00292969f, 0.248779f, 0.00244141f, 0.224609f, 0.00195312f,
+0.202148f, 0.00146484f, 0.179688f, 0.000976562f, 0.157959f, 0.000488281f, 0.13623f,
+0, 0.113281f, 0, 0.341309f, 0.00927734f, 0.271484f, 0.00927734f, 0.218262f, -0.00976562f,
+0.165039f, -0.0288086f, 0.128906f, -0.0634766f, 0.0927734f, -0.0981445f, 0.0742188f,
+-0.146973f, 0.0556641f, -0.195801f, 0.0556641f, -0.255371f, 0.0556641f, -0.350586f,
+0.0859375f, -0.42627f, 0.116211f, -0.501953f, 0.170166f, -0.554199f, 0.224121f, -0.606445f,
+0.298828f, -0.634277f, 0.373535f, -0.662109f, 0.462402f, -0.662109f, 0.529297f, -0.662109f,
+0.581055f, -0.654541f, 0.632812f, -0.646973f, 0.67627f, -0.637207f, 0.654297f, -0.494141f,
+0.622559f, -0.494141f, 0.622559f, -0.579102f, 0.592285f, -0.600098f, 0.549316f, -0.611572f,
+0.506348f, -0.623047f, 0.459473f, -0.623047f, 0.393066f, -0.623047f, 0.336914f, -0.596436f,
+0.280762f, -0.569824f, 0.23999f, -0.520508f, 0.199219f, -0.471191f, 0.17627f, -0.401367f,
+0.15332f, -0.331543f, 0.15332f, -0.245605f, 0.15332f, -0.199219f, 0.164307f, -0.159668f,
+0.175293f, -0.120117f, 0.199219f, -0.0915527f, 0.223145f, -0.0629883f, 0.260254f,
+-0.046875f, 0.297363f, -0.0307617f, 0.349609f, -0.0307617f, 0.379883f, -0.0307617f,
+0.408691f, -0.0356445f, 0.4375f, -0.0405273f, 0.462646f, -0.0488281f, 0.487793f,
+-0.0571289f, 0.508789f, -0.067627f, 0.529785f, -0.078125f, 0.544922f, -0.0898438f,
+0.580078f, -0.187988f, 0.611816f, -0.187988f, 0.582031f, -0.0341797f, 0.559082f,
+-0.0258789f, 0.531006f, -0.0180664f, 0.50293f, -0.0102539f, 0.47168f, -0.00415039f,
+0.44043f, 0.00195312f, 0.407227f, 0.00561523f, 0.374023f, 0.00927734f, 0.341309f,
+0.00927734f, 0.604492f, -0.383301f, 0.604492f, -0.444336f, 0.586914f, -0.487549f,
+0.569336f, -0.530762f, 0.536621f, -0.558105f, 0.503906f, -0.585449f, 0.457275f, -0.598145f,
+0.410645f, -0.61084f, 0.353027f, -0.61084f, 0.273926f, -0.61084f, 0.174316f, -0.0458984f,
+0.203613f, -0.0444336f, 0.23584f, -0.0432129f, 0.268066f, -0.0419922f, 0.303223f,
+-0.0419922f, 0.37793f, -0.0419922f, 0.434326f, -0.065918f, 0.490723f, -0.0898438f,
+0.528564f, -0.134033f, 0.566406f, -0.178223f, 0.585449f, -0.241455f, 0.604492f, -0.304688f,
+0.604492f, -0.383301f, 0.382812f, -0.654785f, 0.461914f, -0.654785f, 0.522461f, -0.637207f,
+0.583008f, -0.619629f, 0.624023f, -0.585449f, 0.665039f, -0.55127f, 0.686035f, -0.501465f,
+0.707031f, -0.45166f, 0.707031f, -0.386719f, 0.707031f, -0.298828f, 0.679443f, -0.227295f,
+0.651855f, -0.155762f, 0.600342f, -0.104736f, 0.548828f, -0.0537109f, 0.474609f,
+-0.0258789f, 0.400391f, 0.00195312f, 0.307129f, 0.00195312f, 0.279297f, 0.00195312f,
+0.246094f, 0.00170898f, 0.212891f, 0.00146484f, 0.180664f, 0.000976562f, 0.148438f,
+0.000488281f, 0.119873f, 0.000244141f, 0.0913086f, 0, 0.0722656f, 0, -0.0112305f,
+0, -0.00683594f, -0.0258789f, 0.0791016f, -0.0390625f, 0.180664f, -0.616211f, 0.0991211f,
+-0.628906f, 0.103516f, -0.654785f, -0.00683594f, -0.0258789f, 0.0786133f, -0.0390625f,
+0.180664f, -0.616211f, 0.0986328f, -0.628906f, 0.103516f, -0.654785f, 0.594727f,
+-0.654785f, 0.566895f, -0.498047f, 0.534668f, -0.498047f, 0.537598f, -0.604004f,
+0.522461f, -0.605957f, 0.500488f, -0.607422f, 0.478516f, -0.608887f, 0.455566f, -0.609619f,
+0.432617f, -0.610352f, 0.412354f, -0.610596f, 0.39209f, -0.61084f, 0.380859f, -0.61084f,
+0.273926f, -0.61084f, 0.228516f, -0.35498f, 0.405273f, -0.35498f, 0.43457f, -0.433105f,
+0.46582f, -0.433105f, 0.430176f, -0.231934f, 0.398926f, -0.231934f, 0.397949f, -0.311035f,
+0.221191f, -0.311035f, 0.173828f, -0.0439453f, 0.302734f, -0.0439453f, 0.333008f,
+-0.0439453f, 0.359863f, -0.0446777f, 0.386719f, -0.0454102f, 0.408447f, -0.0463867f,
+0.430176f, -0.0473633f, 0.445801f, -0.0488281f, 0.461426f, -0.050293f, 0.469238f,
+-0.0517578f, 0.518555f, -0.172852f, 0.550781f, -0.172852f, 0.510742f, 0, -0.0117188f,
+0, 0.217773f, -0.293945f, 0.172852f, -0.0390625f, 0.279785f, -0.0258789f, 0.274902f,
+0, -0.00537109f, 0, -0.000488281f, -0.0258789f, 0.0786133f, -0.0390625f, 0.180664f,
+-0.616211f, 0.0986328f, -0.628906f, 0.103516f, -0.654785f, 0.619141f, -0.654785f,
+0.591309f, -0.498047f, 0.559082f, -0.498047f, 0.562012f, -0.604004f, 0.546875f, -0.605957f,
+0.524902f, -0.607422f, 0.50293f, -0.608887f, 0.47998f, -0.609619f, 0.457031f, -0.610352f,
+0.436768f, -0.610596f, 0.416504f, -0.61084f, 0.405273f, -0.61084f, 0.273926f, -0.61084f,
+0.225586f, -0.337891f, 0.442871f, -0.337891f, 0.47168f, -0.416016f, 0.501465f, -0.416016f,
+0.466309f, -0.214844f, 0.436523f, -0.214844f, 0.435059f, -0.293945f, 0.593262f, -0.0419922f,
+0.562988f, -0.0302734f, 0.533203f, -0.020752f, 0.503418f, -0.0112305f, 0.472168f,
+-0.00463867f, 0.440918f, 0.00195312f, 0.407471f, 0.00537109f, 0.374023f, 0.00878906f,
+0.336914f, 0.00878906f, 0.269531f, 0.00878906f, 0.217041f, -0.00952148f, 0.164551f,
+-0.027832f, 0.128662f, -0.0620117f, 0.0927734f, -0.0961914f, 0.0739746f, -0.14502f,
+0.0551758f, -0.193848f, 0.0551758f, -0.255371f, 0.0551758f, -0.353516f, 0.0864258f,
+-0.429199f, 0.117676f, -0.504883f, 0.172363f, -0.556641f, 0.227051f, -0.608398f,
+0.301514f, -0.635254f, 0.375977f, -0.662109f, 0.462402f, -0.662109f, 0.525391f, -0.662109f,
+0.578369f, -0.654297f, 0.631348f, -0.646484f, 0.680664f, -0.632812f, 0.655762f, -0.492188f,
+0.623047f, -0.492188f, 0.624512f, -0.573242f, 0.594727f, -0.597168f, 0.553223f, -0.610107f,
+0.511719f, -0.623047f, 0.459473f, -0.623047f, 0.398438f, -0.623047f, 0.342773f, -0.598389f,
+0.287109f, -0.57373f, 0.245117f, -0.525879f, 0.203125f, -0.478027f, 0.178223f, -0.407471f,
+0.15332f, -0.336914f, 0.15332f, -0.245605f, 0.15332f, -0.191895f, 0.167236f, -0.151367f,
+0.181152f, -0.11084f, 0.206055f, -0.0839844f, 0.230957f, -0.0571289f, 0.265869f,
+-0.0437012f, 0.300781f, -0.0302734f, 0.343262f, -0.0302734f, 0.369629f, -0.0302734f,
+0.393555f, -0.0344238f, 0.41748f, -0.0385742f, 0.438477f, -0.045166f, 0.459473f,
+-0.0517578f, 0.476562f, -0.0595703f, 0.493652f, -0.0673828f, 0.505371f, -0.074707f,
+0.536133f, -0.24707f, 0.45459f, -0.259766f, 0.458984f, -0.286133f, 0.700684f, -0.286133f,
+0.696289f, -0.259766f, 0.629883f, -0.24707f, -0.0107422f, 0, -0.00683594f, -0.0258789f,
+0.0791016f, -0.0390625f, 0.180176f, -0.616211f, 0.0991211f, -0.628906f, 0.103027f,
+-0.654785f, 0.365234f, -0.654785f, 0.361328f, -0.628906f, 0.273926f, -0.616211f,
+0.229004f, -0.358887f, 0.537109f, -0.358887f, 0.582031f, -0.616211f, 0.500977f, -0.628906f,
+0.504883f, -0.654785f, 0.76709f, -0.654785f, 0.763184f, -0.628906f, 0.67627f, -0.616211f,
+0.575195f, -0.0390625f, 0.65625f, -0.0258789f, 0.651855f, 0, 0.390137f, 0, 0.394043f,
+-0.0258789f, 0.480957f, -0.0390625f, 0.529297f, -0.314941f, 0.221191f, -0.314941f,
+0.172852f, -0.0390625f, 0.253906f, -0.0258789f, 0.25f, 0, 0.180176f, -0.0390625f,
+0.26123f, -0.0258789f, 0.257324f, 0, -0.00390625f, 0, 0, -0.0258789f, 0.0859375f,
+-0.0390625f, 0.187012f, -0.616211f, 0.105957f, -0.628906f, 0.109863f, -0.654785f,
+0.37207f, -0.654785f, 0.368164f, -0.628906f, 0.28125f, -0.616211f, 0.308105f, -0.616211f,
+0.226562f, -0.628906f, 0.230957f, -0.654785f, 0.48291f, -0.654785f, 0.478516f, -0.628906f,
+0.401855f, -0.616211f, 0.330566f, -0.210938f, 0.319824f, -0.149902f, 0.300537f, -0.10791f,
+0.28125f, -0.065918f, 0.255371f, -0.0397949f, 0.229492f, -0.0136719f, 0.197754f,
+-0.00195312f, 0.166016f, 0.00976562f, 0.130371f, 0.00976562f, 0.0966797f, 0.00976562f,
+0.065918f, 0.00317383f, 0.0351562f, -0.00341797f, 0.0151367f, -0.0126953f, 0.0356445f,
+-0.125977f, 0.0673828f, -0.125977f, 0.0698242f, -0.0581055f, 0.0732422f, -0.0522461f,
+0.0805664f, -0.0476074f, 0.0878906f, -0.0429688f, 0.097168f, -0.0395508f, 0.106445f,
+-0.0361328f, 0.116699f, -0.0341797f, 0.126953f, -0.0322266f, 0.137207f, -0.0322266f,
+0.205566f, -0.0322266f, 0.22168f, -0.125f, 0.709961f, -0.654785f, 0.705078f, -0.628906f,
+0.628906f, -0.616211f, 0.357422f, -0.394043f, 0.575684f, -0.0390625f, 0.641113f,
+-0.0258789f, 0.63623f, 0, 0.486328f, 0, 0.285645f, -0.334961f, 0.21582f, -0.277832f,
+0.172852f, -0.0390625f, 0.264648f, -0.0258789f, 0.259766f, 0, -0.0117188f, 0, -0.00683594f,
+-0.0258789f, 0.0786133f, -0.0390625f, 0.180664f, -0.616211f, 0.0986328f, -0.628906f,
+0.103516f, -0.654785f, 0.365723f, -0.654785f, 0.36084f, -0.628906f, 0.274902f, -0.616211f,
+0.227051f, -0.34375f, 0.558105f, -0.616211f, 0.5f, -0.628906f, 0.504883f, -0.654785f,
+0.37793f, -0.628906f, 0.274902f, -0.616211f, 0.17334f, -0.0419922f, 0.277832f, -0.0419922f,
+0.338867f, -0.0419922f, 0.373047f, -0.0454102f, 0.407227f, -0.0488281f, 0.422852f,
+-0.0517578f, 0.477051f, -0.187988f, 0.508789f, -0.187988f, 0.466797f, 0, -0.0117188f,
+0, -0.00683594f, -0.0258789f, 0.0786133f, -0.0390625f, 0.180664f, -0.616211f, 0.0986328f,
+-0.628906f, 0.103516f, -0.654785f, 0.382812f, -0.654785f, 0.352051f, 0, 0.334961f,
+0, 0.222168f, -0.562988f, 0.129883f, -0.0390625f, 0.21582f, -0.0258789f, 0.210938f,
+0, -0.0117188f, 0, -0.00683594f, -0.0258789f, 0.0786133f, -0.0390625f, 0.180664f,
+-0.616211f, 0.0986328f, -0.628906f, 0.103516f, -0.654785f, 0.290039f, -0.654785f,
+0.390625f, -0.155273f, 0.682617f, -0.654785f, 0.878906f, -0.654785f, 0.874023f, -0.628906f,
+0.788086f, -0.616211f, 0.686035f, -0.0390625f, 0.768066f, -0.0258789f, 0.763184f,
+0, 0.497559f, 0, 0.502441f, -0.0258789f, 0.592285f, -0.0390625f, 0.68457f, -0.562988f,
+0.571289f, -0.616211f, 0.485352f, -0.628906f, 0.490234f, -0.654785f, 0.713379f, -0.654785f,
+0.708496f, -0.628906f, 0.622559f, -0.616211f, 0.513672f, 0, 0.466309f, 0, 0.231445f,
+-0.588867f, 0.134277f, -0.0390625f, 0.220215f, -0.0258789f, 0.215332f, 0, -0.00732422f,
+0, -0.00244141f, -0.0258789f, 0.0830078f, -0.0390625f, 0.185059f, -0.616211f, 0.103027f,
+-0.628906f, 0.10791f, -0.654785f, 0.297363f, -0.654785f, 0.492188f, -0.164062f, 0.601074f,
+-0.40625f, 0.601074f, -0.455566f, 0.587891f, -0.495605f, 0.574707f, -0.535645f, 0.550781f,
+-0.563965f, 0.526855f, -0.592285f, 0.493408f, -0.607666f, 0.459961f, -0.623047f,
+0.418945f, -0.623047f, 0.374023f, -0.623047f, 0.336426f, -0.605469f, 0.298828f, -0.587891f,
+0.268799f, -0.558594f, 0.23877f, -0.529297f, 0.216064f, -0.490967f, 0.193359f, -0.452637f,
+0.178223f, -0.410645f, 0.163086f, -0.368652f, 0.155518f, -0.325928f, 0.147949f, -0.283203f,
+0.147949f, -0.245605f, 0.147949f, -0.196777f, 0.160889f, -0.157227f, 0.173828f, -0.117676f,
+0.197266f, -0.0898438f, 0.220703f, -0.0620117f, 0.253662f, -0.046875f, 0.286621f,
+-0.0317383f, 0.327148f, -0.0317383f, 0.37207f, -0.0317383f, 0.409912f, -0.0490723f,
+0.447754f, -0.0664062f, 0.478271f, -0.0952148f, 0.508789f, -0.124023f, 0.531738f,
+-0.162109f, 0.554688f, -0.200195f, 0.570068f, -0.241943f, 0.585449f, -0.283691f,
+0.593262f, -0.325928f, 0.601074f, -0.368164f, 0.601074f, -0.40625f, 0.32373f, 0.00976562f,
+0.263672f, 0.00976562f, 0.213379f, -0.00927734f, 0.163086f, -0.0283203f, 0.126953f,
+-0.0627441f, 0.0908203f, -0.097168f, 0.0705566f, -0.14502f, 0.050293f, -0.192871f,
+0.050293f, -0.250977f, 0.050293f, -0.306152f, 0.0615234f, -0.35791f, 0.0727539f,
+-0.409668f, 0.0947266f, -0.455322f, 0.116699f, -0.500977f, 0.148682f, -0.539062f,
+0.180664f, -0.577148f, 0.222412f, -0.604492f, 0.26416f, -0.631836f, 0.314941f, -0.646973f,
+0.365723f, -0.662109f, 0.425293f, -0.662109f, 0.485352f, -0.662109f, 0.535645f, -0.643066f,
+0.585938f, -0.624023f, 0.62207f, -0.5896f, 0.658203f, -0.555176f, 0.678467f, -0.50708f,
+0.69873f, -0.458984f, 0.69873f, -0.401367f, 0.69873f, -0.354004f, 0.689209f, -0.304932f,
+0.679688f, -0.255859f, 0.659912f, -0.210205f, 0.640137f, -0.164551f, 0.609863f, -0.124512f,
+0.57959f, -0.0844727f, 0.537842f, -0.0546875f, 0.496094f, -0.0249023f, 0.442871f,
+-0.00756836f, 0.389648f, 0.00976562f, 0.32373f, 0.00976562f, 0.298828f, -0.300781f,
+0.394043f, -0.300781f, 0.441162f, -0.344482f, 0.488281f, -0.388184f, 0.488281f, -0.475098f,
+0.488281f, -0.544922f, 0.452881f, -0.577881f, 0.41748f, -0.61084f, 0.346191f, -0.61084f,
+0.273926f, -0.61084f, 0.219238f, -0.300781f, 0.211426f, -0.256836f, 0.172852f, -0.0390625f,
+0.279785f, -0.0258789f, 0.274902f, 0, -0.00537109f, 0, -0.000488281f, -0.0258789f,
+0.0786133f, -0.0390625f, 0.180664f, -0.616211f, 0.0986328f, -0.628906f, 0.103516f,
+-0.654785f, 0.365723f, -0.654785f, 0.423828f, -0.654785f, 0.465332f, -0.64209f, 0.506836f,
+-0.629395f, 0.533691f, -0.606689f, 0.560547f, -0.583984f, 0.572998f, -0.552002f,
+0.585449f, -0.52002f, 0.585449f, -0.481445f, 0.585449f, -0.432617f, 0.569824f, -0.391357f,
+0.554199f, -0.350098f, 0.520752f, -0.320312f, 0.487305f, -0.290527f, 0.435059f, -0.273682f,
+0.382812f, -0.256836f, 0.30957f, -0.256836f, 0.324707f, 0.00976562f, 0.265137f, 0.00927734f,
+0.21582f, -0.0100098f, 0.166504f, -0.0292969f, 0.130615f, -0.0637207f, 0.0947266f,
+-0.0981445f, 0.0749512f, -0.145752f, 0.0551758f, -0.193359f, 0.0551758f, -0.250977f,
+0.0551758f, -0.306152f, 0.0664062f, -0.35791f, 0.0776367f, -0.409668f, 0.0996094f,
+-0.455322f, 0.121582f, -0.500977f, 0.153564f, -0.539062f, 0.185547f, -0.577148f,
+0.227295f, -0.604492f, 0.269043f, -0.631836f, 0.319824f, -0.646973f, 0.370605f, -0.662109f,
+0.430176f, -0.662109f, 0.490234f, -0.662109f, 0.540527f, -0.643066f, 0.59082f, -0.624023f,
+0.626953f, -0.5896f, 0.663086f, -0.555176f, 0.68335f, -0.50708f, 0.703613f, -0.458984f,
+0.703613f, -0.401367f, 0.703613f, -0.360352f, 0.696533f, -0.317871f, 0.689453f, -0.275391f,
+0.674805f, -0.234863f, 0.660156f, -0.194336f, 0.637451f, -0.157227f, 0.614746f, -0.120117f,
+0.583984f, -0.0893555f, 0.553223f, -0.0585938f, 0.513672f, -0.0358887f, 0.474121f,
+-0.0131836f, 0.425781f, -0.00146484f, 0.436035f, 0.0136719f, 0.453613f, 0.0395508f,
+0.468506f, 0.0585938f, 0.483398f, 0.0776367f, 0.498779f, 0.0898438f, 0.51416f, 0.102051f,
+0.531006f, 0.10791f, 0.547852f, 0.11377f, 0.568359f, 0.11377f, 0.571777f, 0.11377f,
+0.577637f, 0.113525f, 0.583496f, 0.113281f, 0.5896f, 0.113037f, 0.595703f, 0.112793f,
+0.60083f, 0.112549f, 0.605957f, 0.112305f, 0.608887f, 0.111816f, 0.603027f, 0.144043f,
+0.597168f, 0.146484f, 0.585938f, 0.149414f, 0.574707f, 0.152344f, 0.560791f, 0.155273f,
+0.546875f, 0.158203f, 0.531982f, 0.160156f, 0.51709f, 0.162109f, 0.503906f, 0.162109f,
+0.476074f, 0.162109f, 0.455078f, 0.155029f, 0.434082f, 0.147949f, 0.415527f, 0.132568f,
+0.396973f, 0.117188f, 0.378906f, 0.0927734f, 0.36084f, 0.0683594f, 0.339355f, 0.0332031f,
+0.605957f, -0.40625f, 0.605957f, -0.455566f, 0.592773f, -0.495605f, 0.57959f, -0.535645f,
+0.555664f, -0.563965f, 0.531738f, -0.592285f, 0.498291f, -0.607666f, 0.464844f, -0.623047f,
+0.423828f, -0.623047f, 0.378906f, -0.623047f, 0.341309f, -0.605469f, 0.303711f, -0.587891f,
+0.273682f, -0.558594f, 0.243652f, -0.529297f, 0.220947f, -0.490967f, 0.198242f, -0.452637f,
+0.183105f, -0.410645f, 0.167969f, -0.368652f, 0.1604f, -0.325928f, 0.152832f, -0.283203f,
+0.152832f, -0.245605f, 0.152832f, -0.196777f, 0.165771f, -0.157227f, 0.178711f, -0.117676f,
+0.202148f, -0.0898438f, 0.225586f, -0.0620117f, 0.258545f, -0.046875f, 0.291504f,
+-0.0317383f, 0.332031f, -0.0317383f, 0.376953f, -0.0317383f, 0.414795f, -0.0490723f,
+0.452637f, -0.0664062f, 0.483154f, -0.0952148f, 0.513672f, -0.124023f, 0.536621f,
+-0.162109f, 0.55957f, -0.200195f, 0.574951f, -0.241943f, 0.590332f, -0.283691f, 0.598145f,
+-0.325928f, 0.605957f, -0.368164f, 0.605957f, -0.40625f, 0.216797f, -0.287109f, 0.172852f,
+-0.0390625f, 0.260254f, -0.0258789f, 0.255371f, 0, -0.00537109f, 0, -0.000488281f,
+-0.0258789f, 0.0786133f, -0.0390625f, 0.180664f, -0.616211f, 0.0986328f, -0.628906f,
+0.103516f, -0.654785f, 0.363281f, -0.654785f, 0.42041f, -0.654785f, 0.46167f, -0.643555f,
+0.50293f, -0.632324f, 0.529785f, -0.611572f, 0.556641f, -0.59082f, 0.56958f, -0.561523f,
+0.58252f, -0.532227f, 0.58252f, -0.496094f, 0.58252f, -0.455566f, 0.571045f, -0.423584f,
+0.55957f, -0.391602f, 0.537598f, -0.367676f, 0.515625f, -0.34375f, 0.483887f, -0.327148f,
+0.452148f, -0.310547f, 0.411621f, -0.300781f, 0.522461f, -0.0390625f, 0.594238f,
+-0.0258789f, 0.589355f, 0, 0.438965f, 0, 0.318848f, -0.287109f, 0.300781f, -0.331055f,
+0.344238f, -0.331055f, 0.378662f, -0.341553f, 0.413086f, -0.352051f, 0.436768f, -0.372559f,
+0.460449f, -0.393066f, 0.473145f, -0.42334f, 0.48584f, -0.453613f, 0.48584f, -0.493164f,
+0.48584f, -0.552246f, 0.450684f, -0.581543f, 0.415527f, -0.61084f, 0.346191f, -0.61084f,
+0.273926f, -0.61084f, 0.224609f, -0.331055f, 0.0371094f, -0.181152f, 0.0688477f,
+-0.181152f, 0.0693359f, -0.0878906f, 0.0771484f, -0.0761719f, 0.0910645f, -0.0656738f,
+0.10498f, -0.0551758f, 0.123047f, -0.0471191f, 0.141113f, -0.0390625f, 0.162354f,
+-0.0344238f, 0.183594f, -0.0297852f, 0.206543f, -0.0297852f, 0.248047f, -0.0297852f,
+0.279053f, -0.0397949f, 0.310059f, -0.0498047f, 0.331055f, -0.0686035f, 0.352051f,
+-0.0874023f, 0.362549f, -0.11377f, 0.373047f, -0.140137f, 0.373047f, -0.17334f, 0.373047f,
+-0.199707f, 0.361328f, -0.219238f, 0.349609f, -0.23877f, 0.330078f, -0.254395f, 0.310547f,
+-0.27002f, 0.285889f, -0.283203f, 0.26123f, -0.296387f, 0.235352f, -0.309814f, 0.209473f,
+-0.323242f, 0.184814f, -0.338623f, 0.160156f, -0.354004f, 0.140625f, -0.374268f,
+0.121094f, -0.394531f, 0.109375f, -0.420898f, 0.0976562f, -0.447266f, 0.0976562f,
+-0.48291f, 0.0976562f, -0.527832f, 0.113525f, -0.561523f, 0.129395f, -0.595215f,
+0.158936f, -0.617432f, 0.188477f, -0.639648f, 0.230713f, -0.650879f, 0.272949f, -0.662109f,
+0.325684f, -0.662109f, 0.374023f, -0.662109f, 0.412354f, -0.656982f, 0.450684f, -0.651855f,
+0.483887f, -0.643555f, 0.459961f, -0.507324f, 0.428223f, -0.507324f, 0.425781f, -0.59082f,
+0.410156f, -0.603516f, 0.382324f, -0.612305f, 0.354492f, -0.621094f, 0.318359f, -0.621094f,
+0.282715f, -0.621094f, 0.25708f, -0.611816f, 0.231445f, -0.602539f, 0.215088f, -0.586182f,
+0.19873f, -0.569824f, 0.190918f, -0.547852f, 0.183105f, -0.525879f, 0.183105f, -0.500488f,
+0.183105f, -0.476074f, 0.195068f, -0.457764f, 0.207031f, -0.439453f, 0.226318f, -0.424561f,
+0.245605f, -0.409668f, 0.270508f, -0.396729f, 0.29541f, -0.383789f, 0.321045f, -0.370117f,
+0.34668f, -0.356445f, 0.371582f, -0.34082f, 0.396484f, -0.325195f, 0.415771f, -0.305176f,
+0.435059f, -0.285156f, 0.447021f, -0.259033f, 0.458984f, -0.23291f, 0.458984f, -0.198242f,
+0.458984f, -0.149902f, 0.443115f, -0.111328f, 0.427246f, -0.0727539f, 0.395508f,
+-0.0458984f, 0.36377f, -0.019043f, 0.315918f, -0.00463867f, 0.268066f, 0.00976562f,
+0.203613f, 0.00976562f, 0.14209f, 0.00976562f, 0.0930176f, -0.00268555f, 0.0439453f,
+-0.0151367f, 0.0117188f, -0.0356445f, 0.0859375f, 0, 0.0908203f, -0.0258789f, 0.196777f,
+-0.0390625f, 0.297852f, -0.612793f, 0.272949f, -0.612793f, 0.241211f, -0.612793f,
+0.218262f, -0.612061f, 0.195312f, -0.611328f, 0.178711f, -0.609863f, 0.162109f, -0.608398f,
+0.150391f, -0.606689f, 0.138672f, -0.60498f, 0.129395f, -0.603027f, 0.0981445f, -0.500977f,
+0.0654297f, -0.500977f, 0.0927734f, -0.654785f, 0.615234f, -0.654785f, 0.587891f,
+-0.500977f, 0.554688f, -0.500977f, 0.55957f, -0.603027f, 0.54248f, -0.606445f, 0.507812f,
+-0.609131f, 0.473145f, -0.611816f, 0.416016f, -0.611816f, 0.39209f, -0.611816f, 0.291016f,
+-0.0390625f, 0.393066f, -0.0258789f, 0.388184f, 0, 0.634277f, -0.616211f, 0.548828f,
+-0.628906f, 0.553223f, -0.654785f, 0.776367f, -0.654785f, 0.771973f, -0.628906f,
+0.685547f, -0.616211f, 0.616699f, -0.225098f, 0.608887f, -0.180176f, 0.589111f, -0.137939f,
+0.569336f, -0.0957031f, 0.534912f, -0.0629883f, 0.500488f, -0.0302734f, 0.450439f,
+-0.0102539f, 0.400391f, 0.00976562f, 0.331543f, 0.00976562f, 0.217773f, 0.00976562f,
+0.158203f, -0.036377f, 0.0986328f, -0.0825195f, 0.0986328f, -0.169922f, 0.0986328f,
+-0.182617f, 0.100098f, -0.197021f, 0.101562f, -0.211426f, 0.103516f, -0.221191f,
+0.17334f, -0.616211f, 0.0917969f, -0.628906f, 0.0961914f, -0.654785f, 0.35791f, -0.654785f,
+0.353516f, -0.628906f, 0.26709f, -0.616211f, 0.198242f, -0.223145f, 0.195801f, -0.209961f,
+0.19458f, -0.19751f, 0.193359f, -0.185059f, 0.193359f, -0.17334f, 0.193359f, -0.144043f,
+0.20166f, -0.120117f, 0.209961f, -0.0961914f, 0.227539f, -0.0795898f, 0.245117f,
+-0.0629883f, 0.272949f, -0.0539551f, 0.300781f, -0.0449219f, 0.339844f, -0.0449219f,
+0.394531f, -0.0449219f, 0.434082f, -0.0595703f, 0.473633f, -0.0742188f, 0.500732f,
+-0.0986328f, 0.527832f, -0.123047f, 0.543457f, -0.154785f, 0.559082f, -0.186523f,
+0.564941f, -0.221191f, 0.707031f, -0.654785f, 0.702148f, -0.628906f, 0.638184f, -0.616211f,
+0.283203f, 0.0151367f, 0.258301f, 0.0151367f, 0.114258f, -0.616211f, 0.0522461f,
+-0.628906f, 0.0571289f, -0.654785f, 0.297852f, -0.654785f, 0.292969f, -0.628906f,
+0.210449f, -0.616211f, 0.316895f, -0.138184f, 0.579102f, -0.616211f, 0.504883f, -0.628906f,
+0.510254f, -0.654785f, 0.845215f, -0.616211f, 0.554199f, 0.0151367f, 0.523438f, 0.0151367f,
+0.452148f, -0.42334f, 0.248047f, 0.0151367f, 0.216309f, 0.0151367f, 0.121094f, -0.616211f,
+0.065918f, -0.628906f, 0.0703125f, -0.654785f, 0.29834f, -0.654785f, 0.293945f, -0.628906f,
+0.215332f, -0.616211f, 0.283691f, -0.15918f, 0.491699f, -0.608887f, 0.51416f, -0.608887f,
+0.587891f, -0.158203f, 0.79248f, -0.616211f, 0.711914f, -0.628906f, 0.716309f, -0.654785f,
+0.908691f, -0.654785f, 0.904297f, -0.628906f, 0.366699f, -0.367676f, 0.483398f, -0.0390625f,
+0.555664f, -0.0258789f, 0.550781f, 0, 0.300293f, 0, 0.305176f, -0.0258789f, 0.385254f,
+-0.0390625f, 0.299805f, -0.286621f, 0.105957f, -0.0390625f, 0.185059f, -0.0258789f,
+0.180176f, 0, -0.0332031f, 0, -0.0283203f, -0.0258789f, 0.0454102f, -0.0390625f,
+0.279785f, -0.334961f, 0.180176f, -0.616211f, 0.108398f, -0.628906f, 0.113281f, -0.654785f,
+0.354004f, -0.654785f, 0.349121f, -0.628906f, 0.278809f, -0.616211f, 0.347168f, -0.416504f,
+0.50293f, -0.616211f, 0.438477f, -0.628906f, 0.443359f, -0.654785f, 0.643066f, -0.654785f,
+0.638184f, -0.628906f, 0.563965f, -0.616211f, 0.335938f, -0.257812f, 0.297363f, -0.0390625f,
+0.399414f, -0.0258789f, 0.394531f, 0, 0.0922852f, 0, 0.097168f, -0.0258789f, 0.203125f,
+-0.0390625f, 0.241211f, -0.254883f, 0.128906f, -0.616211f, 0.0571289f, -0.628906f,
+0.0620117f, -0.654785f, 0.329102f, -0.654785f, 0.324219f, -0.628906f, 0.229492f,
+-0.616211f, 0.321289f, -0.310059f, 0.513184f, -0.616211f, 0.427246f, -0.628906f,
+0.432129f, -0.654785f, 0.64502f, -0.654785f, 0.640137f, -0.628906f, 0.566406f, -0.616211f,
+0.0205078f, -0.0458984f, 0.442871f, -0.612793f, 0.345215f, -0.612793f, 0.28125f,
+-0.612793f, 0.23877f, -0.609863f, 0.196289f, -0.606934f, 0.177734f, -0.603027f, 0.144531f,
+-0.5f, 0.11084f, -0.5f, 0.138184f, -0.654785f, 0.564453f, -0.654785f, 0.556641f,
+-0.612793f, 0.130371f, -0.0410156f, 0.247559f, -0.0410156f, 0.279297f, -0.0410156f,
+0.311035f, -0.0427246f, 0.342773f, -0.0444336f, 0.370117f, -0.0471191f, 0.397461f,
+-0.0498047f, 0.417969f, -0.0524902f, 0.438477f, -0.0551758f, 0.447754f, -0.0571289f,
+0.498535f, -0.182129f, 0.532715f, -0.182129f, 0.487305f, 0, 0.012207f, 0, 0.0576172f,
+0.133789f, 0.203613f, -0.693848f, 0.42627f, -0.693848f, 0.422363f, -0.670898f, 0.273438f,
+-0.650879f, 0.142578f, 0.0908203f, 0.28418f, 0.11084f, 0.280273f, 0.133789f, 0.0771484f,
+-0.65918f, 0.125f, -0.65918f, 0.229492f, 0.00976562f, 0.180176f, 0.00976562f, -0.0239258f,
+0.133789f, -0.0200195f, 0.11084f, 0.12793f, 0.0908203f, 0.258789f, -0.650879f, 0.117676f,
+-0.670898f, 0.121582f, -0.693848f, 0.344238f, -0.693848f, 0.198242f, 0.133789f, 0.244141f,
+-0.654785f, 0.268066f, -0.654785f, 0.477051f, -0.189941f, 0.426758f, -0.189941f,
+0.255859f, -0.584961f, 0.0849609f, -0.189941f, 0.0351562f, -0.189941f, -0.0078125f,
+0.128906f, -0.0078125f, 0.0791016f, 0.507812f, 0.0791016f, 0.507812f, 0.128906f,
+0.297852f, -0.545898f, 0.147949f, -0.676758f, 0.150879f, -0.694824f, 0.25f, -0.694824f,
+0.327148f, -0.562012f, 0.324707f, -0.545898f, 0.385254f, -0.0341797f, 0.44043f, -0.0219727f,
+0.436523f, 0, 0.297363f, 0, 0.311523f, -0.0761719f, 0.270508f, -0.0332031f, 0.23291f,
+-0.0114746f, 0.195312f, 0.0102539f, 0.160645f, 0.0102539f, 0.132812f, 0.0102539f,
+0.108887f, -0.000244141f, 0.0849609f, -0.0107422f, 0.0673828f, -0.03125f, 0.0498047f,
+-0.0517578f, 0.0397949f, -0.0822754f, 0.0297852f, -0.112793f, 0.0297852f, -0.152832f,
+0.0297852f, -0.194824f, 0.0390625f, -0.234619f, 0.0483398f, -0.274414f, 0.0656738f,
+-0.309814f, 0.0830078f, -0.345215f, 0.107422f, -0.374756f, 0.131836f, -0.404297f,
+0.162109f, -0.425537f, 0.192383f, -0.446777f, 0.228027f, -0.45874f, 0.263672f, -0.470703f,
+0.302734f, -0.470703f, 0.334961f, -0.470703f, 0.362061f, -0.465332f, 0.38916f, -0.459961f,
+0.414062f, -0.450195f, 0.415527f, -0.451172f, 0.41748f, -0.452637f, 0.418945f, -0.453613f,
+0.420898f, -0.455078f, 0.422852f, -0.456543f, 0.425293f, -0.458496f, 0.430176f, -0.461914f,
+0.436035f, -0.466797f, 0.462402f, -0.466797f, 0.371094f, -0.408691f, 0.361816f, -0.415039f,
+0.353516f, -0.419434f, 0.345215f, -0.423828f, 0.336182f, -0.426758f, 0.327148f, -0.429688f,
+0.317139f, -0.430908f, 0.307129f, -0.432129f, 0.294434f, -0.432129f, 0.253418f, -0.432129f,
+0.220459f, -0.407959f, 0.1875f, -0.383789f, 0.164551f, -0.345459f, 0.141602f, -0.307129f,
+0.129395f, -0.259766f, 0.117188f, -0.212402f, 0.117188f, -0.165527f, 0.117188f, -0.134766f,
+0.124023f, -0.113037f, 0.130859f, -0.0913086f, 0.141846f, -0.0773926f, 0.152832f,
+-0.0634766f, 0.167236f, -0.0571289f, 0.181641f, -0.0507812f, 0.197266f, -0.0507812f,
+0.213379f, -0.0507812f, 0.229492f, -0.0563965f, 0.245605f, -0.0620117f, 0.260986f,
+-0.0715332f, 0.276367f, -0.0810547f, 0.290771f, -0.0932617f, 0.305176f, -0.105469f,
+0.317871f, -0.118652f, 0.148926f, -0.660156f, 0.0839844f, -0.671875f, 0.0878906f,
+-0.693848f, 0.234375f, -0.693848f, 0.198242f, -0.478516f, 0.196777f, -0.46875f, 0.19458f,
+-0.456299f, 0.192383f, -0.443848f, 0.189697f, -0.430908f, 0.187012f, -0.417969f,
+0.184326f, -0.405518f, 0.181641f, -0.393066f, 0.179199f, -0.384277f, 0.197266f, -0.402832f,
+0.217041f, -0.418701f, 0.236816f, -0.43457f, 0.256836f, -0.446289f, 0.276855f, -0.458008f,
+0.296875f, -0.4646f, 0.316895f, -0.471191f, 0.335449f, -0.471191f, 0.36377f, -0.471191f,
+0.388428f, -0.460693f, 0.413086f, -0.450195f, 0.431152f, -0.429688f, 0.449219f, -0.40918f,
+0.459473f, -0.378662f, 0.469727f, -0.348145f, 0.469727f, -0.308105f, 0.469727f, -0.266113f,
+0.460449f, -0.226318f, 0.451172f, -0.186523f, 0.434082f, -0.151123f, 0.416992f, -0.115723f,
+0.392334f, -0.0861816f, 0.367676f, -0.0566406f, 0.336914f, -0.0354004f, 0.306152f,
+-0.0141602f, 0.27002f, -0.00219727f, 0.233887f, 0.00976562f, 0.193359f, 0.00976562f,
+0.175293f, 0.00976562f, 0.155518f, 0.00756836f, 0.135742f, 0.00537109f, 0.115479f,
+0.000488281f, 0.0952148f, -0.00439453f, 0.0751953f, -0.012207f, 0.0551758f, -0.0200195f,
+0.0371094f, -0.03125f, 0.121094f, -0.0522461f, 0.135254f, -0.0405273f, 0.155273f,
+-0.034668f, 0.175293f, -0.0288086f, 0.199707f, -0.0288086f, 0.240234f, -0.0288086f,
+0.273682f, -0.0517578f, 0.307129f, -0.074707f, 0.331299f, -0.112061f, 0.355469f,
+-0.149414f, 0.368896f, -0.19751f, 0.382324f, -0.245605f, 0.382324f, -0.29541f, 0.382324f,
+-0.350098f, 0.359619f, -0.380127f, 0.336914f, -0.410156f, 0.298828f, -0.410156f,
+0.283691f, -0.410156f, 0.267578f, -0.405029f, 0.251465f, -0.399902f, 0.235352f, -0.390625f,
+0.219238f, -0.381348f, 0.203369f, -0.369141f, 0.1875f, -0.356934f, 0.172852f, -0.342285f,
+0.37793f, -0.0693359f, 0.365723f, -0.0581055f, 0.346924f, -0.0444336f, 0.328125f,
+-0.0307617f, 0.304443f, -0.0187988f, 0.280762f, -0.00683594f, 0.25293f, 0.00146484f,
+0.225098f, 0.00976562f, 0.195312f, 0.00976562f, 0.154297f, 0.00976562f, 0.123291f,
+-0.00268555f, 0.0922852f, -0.0151367f, 0.0717773f, -0.0378418f, 0.0512695f, -0.0605469f,
+0.0410156f, -0.0917969f, 0.0307617f, -0.123047f, 0.0307617f, -0.161133f, 0.0307617f,
+-0.210449f, 0.041748f, -0.252686f, 0.0527344f, -0.294922f, 0.0717773f, -0.329346f,
+0.0908203f, -0.36377f, 0.116455f, -0.390137f, 0.14209f, -0.416504f, 0.171387f, -0.43457f,
+0.200684f, -0.452637f, 0.232178f, -0.461914f, 0.263672f, -0.471191f, 0.294922f, -0.471191f,
+0.313477f, -0.471191f, 0.333496f, -0.468994f, 0.353516f, -0.466797f, 0.37207f, -0.463135f,
+0.390625f, -0.459473f, 0.406494f, -0.454834f, 0.422363f, -0.450195f, 0.433105f, -0.445801f,
+0.411133f, -0.317871f, 0.384277f, -0.317871f, 0.376465f, -0.402832f, 0.362305f, -0.416992f,
+0.342285f, -0.425293f, 0.322266f, -0.433594f, 0.294434f, -0.433594f, 0.259766f, -0.433594f,
+0.227783f, -0.414062f, 0.195801f, -0.394531f, 0.171387f, -0.359131f, 0.146973f, -0.32373f,
+0.13208f, -0.274414f, 0.117188f, -0.225098f, 0.117188f, -0.166016f, 0.117188f, -0.132812f,
+0.124268f, -0.109131f, 0.131348f, -0.0854492f, 0.144531f, -0.0703125f, 0.157715f,
+-0.0551758f, 0.17627f, -0.0480957f, 0.194824f, -0.0410156f, 0.217773f, -0.0410156f,
+0.259277f, -0.0410156f, 0.29541f, -0.0551758f, 0.331543f, -0.0693359f, 0.363281f,
+-0.0898438f, 0.382324f, -0.459473f, 0.382812f, -0.465332f, 0.384277f, -0.476318f,
+0.385742f, -0.487305f, 0.387695f, -0.499268f, 0.389648f, -0.51123f, 0.391357f, -0.522461f,
+0.393066f, -0.533691f, 0.394531f, -0.541016f, 0.415527f, -0.660156f, 0.340332f, -0.671875f,
+0.344238f, -0.693848f, 0.502441f, -0.693848f, 0.385254f, -0.0341797f, 0.44043f, -0.0219727f,
+0.436523f, 0, 0.297363f, 0, 0.311523f, -0.0761719f, 0.270508f, -0.0332031f, 0.23291f,
+-0.0114746f, 0.195312f, 0.0102539f, 0.160645f, 0.0102539f, 0.131348f, 0.0102539f,
+0.107422f, -0.000976562f, 0.0834961f, -0.012207f, 0.0664062f, -0.0334473f, 0.0493164f,
+-0.0546875f, 0.0397949f, -0.0854492f, 0.0302734f, -0.116211f, 0.0302734f, -0.154785f,
+0.0302734f, -0.196777f, 0.0395508f, -0.236572f, 0.0488281f, -0.276367f, 0.065918f,
+-0.311523f, 0.0830078f, -0.34668f, 0.107178f, -0.375732f, 0.131348f, -0.404785f,
+0.161621f, -0.426025f, 0.191895f, -0.447266f, 0.227295f, -0.458984f, 0.262695f, -0.470703f,
+0.301758f, -0.470703f, 0.326172f, -0.470703f, 0.345947f, -0.467773f, 0.365723f, -0.464844f,
+0.382324f, -0.459473f, 0.371094f, -0.408691f, 0.354004f, -0.419922f, 0.335938f, -0.42627f,
+0.317871f, -0.432617f, 0.291992f, -0.432617f, 0.265625f, -0.432617f, 0.242676f, -0.421387f,
+0.219727f, -0.410156f, 0.200195f, -0.390869f, 0.180664f, -0.371582f, 0.165283f, -0.345703f,
+0.149902f, -0.319824f, 0.13916f, -0.290039f, 0.128418f, -0.260254f, 0.122803f, -0.228516f,
+0.117188f, -0.196777f, 0.117188f, -0.165527f, 0.117188f, -0.134766f, 0.124023f, -0.113037f,
+0.130859f, -0.0913086f, 0.141846f, -0.0773926f, 0.152832f, -0.0634766f, 0.167236f,
+-0.0571289f, 0.181641f, -0.0507812f, 0.196777f, -0.0507812f, 0.224121f, -0.0507812f,
+0.256104f, -0.0686035f, 0.288086f, -0.0864258f, 0.317871f, -0.118652f, 0.421387f,
+-0.371094f, 0.421387f, -0.339355f, 0.401367f, -0.311035f, 0.381348f, -0.282715f,
+0.343018f, -0.26001f, 0.304688f, -0.237305f, 0.248291f, -0.221924f, 0.191895f, -0.206543f,
+0.119141f, -0.20166f, 0.118652f, -0.197266f, 0.11792f, -0.187988f, 0.117188f, -0.178711f,
+0.117188f, -0.166016f, 0.117188f, -0.14209f, 0.121826f, -0.119629f, 0.126465f, -0.097168f,
+0.138184f, -0.0795898f, 0.149902f, -0.0620117f, 0.169922f, -0.0515137f, 0.189941f,
+-0.0410156f, 0.220703f, -0.0410156f, 0.264648f, -0.0410156f, 0.301758f, -0.0559082f,
+0.338867f, -0.0708008f, 0.371094f, -0.0898438f, 0.385254f, -0.0693359f, 0.369629f,
+-0.0561523f, 0.348633f, -0.0419922f, 0.327637f, -0.027832f, 0.302979f, -0.0163574f,
+0.27832f, -0.00488281f, 0.250977f, 0.00244141f, 0.223633f, 0.00976562f, 0.195312f,
+0.00976562f, 0.153809f, 0.00976562f, 0.123047f, -0.00219727f, 0.0922852f, -0.0141602f,
+0.0717773f, -0.0361328f, 0.0512695f, -0.0581055f, 0.0410156f, -0.0898438f, 0.0307617f,
+-0.121582f, 0.0307617f, -0.161133f, 0.0307617f, -0.20459f, 0.0405273f, -0.244385f,
+0.050293f, -0.28418f, 0.0678711f, -0.318604f, 0.0854492f, -0.353027f, 0.109863f,
+-0.381104f, 0.134277f, -0.40918f, 0.162842f, -0.429199f, 0.191406f, -0.449219f, 0.223389f,
+-0.460205f, 0.255371f, -0.471191f, 0.288574f, -0.471191f, 0.319824f, -0.471191f,
+0.344482f, -0.463623f, 0.369141f, -0.456055f, 0.38623f, -0.442627f, 0.40332f, -0.429199f,
+0.412354f, -0.410889f, 0.421387f, -0.392578f, 0.421387f, -0.371094f, 0.123047f, -0.232422f,
+0.17627f, -0.236328f, 0.216309f, -0.249268f, 0.256348f, -0.262207f, 0.282959f, -0.281006f,
+0.30957f, -0.299805f, 0.322754f, -0.322998f, 0.335938f, -0.346191f, 0.335938f, -0.371094f,
+0.335938f, -0.398438f, 0.321045f, -0.416016f, 0.306152f, -0.433594f, 0.277832f, -0.433594f,
+0.249023f, -0.433594f, 0.223633f, -0.415283f, 0.198242f, -0.396973f, 0.177979f, -0.368164f,
+0.157715f, -0.339355f, 0.143555f, -0.303467f, 0.129395f, -0.267578f, 0.123047f, -0.232422f,
+0.0922852f, 0.212891f, 0.0112305f, 0.212891f, 0.121094f, -0.417969f, 0.0419922f,
+-0.417969f, 0.0458984f, -0.441895f, 0.128906f, -0.460938f, 0.134766f, -0.493164f,
+0.154297f, -0.602051f, 0.200439f, -0.653076f, 0.246582f, -0.704102f, 0.325195f, -0.704102f,
+0.347168f, -0.704102f, 0.36377f, -0.701416f, 0.380371f, -0.69873f, 0.393066f, -0.694824f,
+0.375977f, -0.599121f, 0.352051f, -0.599121f, 0.342773f, -0.654785f, 0.328613f, -0.665039f,
+0.301758f, -0.665039f, 0.284668f, -0.665039f, 0.272705f, -0.657471f, 0.260742f, -0.649902f,
+0.251709f, -0.634033f, 0.242676f, -0.618164f, 0.236084f, -0.59375f, 0.229492f, -0.569336f,
+0.223145f, -0.535156f, 0.208984f, -0.458984f, 0.311035f, -0.458984f, 0.304199f, -0.417969f,
+0.202148f, -0.417969f, 0.204102f, -0.0507812f, 0.220703f, -0.0507812f, 0.238037f,
+-0.0568848f, 0.255371f, -0.0629883f, 0.271973f, -0.0727539f, 0.288574f, -0.0825195f,
+0.303467f, -0.0947266f, 0.318359f, -0.106934f, 0.330078f, -0.118652f, 0.383789f,
+-0.42041f, 0.37207f, -0.42334f, 0.362793f, -0.425781f, 0.353516f, -0.428223f, 0.344482f,
+-0.429688f, 0.335449f, -0.431152f, 0.325195f, -0.431885f, 0.314941f, -0.432617f,
+0.301758f, -0.432617f, 0.262695f, -0.432617f, 0.229492f, -0.410156f, 0.196289f, -0.387695f,
+0.172119f, -0.350586f, 0.147949f, -0.313477f, 0.134521f, -0.265137f, 0.121094f, -0.216797f,
+0.121094f, -0.165527f, 0.121094f, -0.141113f, 0.126221f, -0.120117f, 0.131348f, -0.0991211f,
+0.141602f, -0.0837402f, 0.151855f, -0.0683594f, 0.16748f, -0.0595703f, 0.183105f,
+-0.0507812f, 0.204102f, -0.0507812f, 0.323242f, -0.078125f, 0.313477f, -0.0673828f,
+0.296631f, -0.0522461f, 0.279785f, -0.0371094f, 0.258789f, -0.0231934f, 0.237793f,
+-0.00927734f, 0.214111f, 0.000488281f, 0.19043f, 0.0102539f, 0.166992f, 0.0102539f,
+0.134766f, 0.0102539f, 0.109863f, -0.00170898f, 0.0849609f, -0.0136719f, 0.0681152f,
+-0.0351562f, 0.0512695f, -0.0566406f, 0.0424805f, -0.0866699f, 0.0336914f, -0.116699f,
+0.0336914f, -0.152832f, 0.0336914f, -0.196289f, 0.043457f, -0.236572f, 0.0532227f,
+-0.276855f, 0.0712891f, -0.312256f, 0.0893555f, -0.347656f, 0.114502f, -0.376709f,
+0.139648f, -0.405762f, 0.17041f, -0.426758f, 0.201172f, -0.447754f, 0.236572f, -0.459229f,
+0.271973f, -0.470703f, 0.310547f, -0.470703f, 0.327148f, -0.470703f, 0.348145f, -0.468994f,
+0.369141f, -0.467285f, 0.391113f, -0.4646f, 0.413086f, -0.461914f, 0.433838f, -0.458252f,
+0.45459f, -0.45459f, 0.470703f, -0.450684f, 0.388672f, 0.0170898f, 0.379395f, 0.0698242f,
+0.361572f, 0.107178f, 0.34375f, 0.144531f, 0.316406f, 0.167969f, 0.289062f, 0.191406f,
+0.250977f, 0.202148f, 0.212891f, 0.212891f, 0.163086f, 0.212891f, 0.136719f, 0.212891f,
+0.111816f, 0.209473f, 0.0869141f, 0.206055f, 0.0656738f, 0.200928f, 0.0444336f, 0.195801f,
+0.0275879f, 0.189697f, 0.0107422f, 0.183594f, 0.000488281f, 0.178223f, 0.00927734f,
+0.0668945f, 0.03125f, 0.0668945f, 0.0488281f, 0.128418f, 0.0664062f, 0.145508f, 0.0944824f,
+0.15625f, 0.122559f, 0.166992f, 0.162598f, 0.166992f, 0.19873f, 0.166992f, 0.223877f,
+0.156494f, 0.249023f, 0.145996f, 0.265381f, 0.128174f, 0.281738f, 0.110352f, 0.290771f,
+0.0866699f, 0.299805f, 0.0629883f, 0.304199f, 0.0366211f, 0.151855f, -0.660156f,
+0.0942383f, -0.671875f, 0.0981445f, -0.693848f, 0.23877f, -0.693848f, 0.195801f,
+-0.453125f, 0.193848f, -0.442871f, 0.191406f, -0.429199f, 0.188965f, -0.415527f,
+0.186768f, -0.402832f, 0.18457f, -0.390137f, 0.182373f, -0.379639f, 0.180176f, -0.369141f,
+0.179199f, -0.365723f, 0.195801f, -0.387695f, 0.215332f, -0.406982f, 0.234863f, -0.42627f,
+0.256836f, -0.44043f, 0.278809f, -0.45459f, 0.302246f, -0.462891f, 0.325684f, -0.471191f,
+0.350586f, -0.471191f, 0.373047f, -0.471191f, 0.391357f, -0.465332f, 0.409668f, -0.459473f,
+0.422607f, -0.446777f, 0.435547f, -0.434082f, 0.442627f, -0.414551f, 0.449707f, -0.39502f,
+0.449707f, -0.368164f, 0.449707f, -0.362305f, 0.448486f, -0.352295f, 0.447266f, -0.342285f,
+0.445312f, -0.330566f, 0.443359f, -0.318848f, 0.441406f, -0.306396f, 0.439453f, -0.293945f,
+0.4375f, -0.283203f, 0.394531f, -0.0336914f, 0.458496f, -0.0219727f, 0.45459f, 0,
+0.307617f, 0, 0.357422f, -0.28418f, 0.359375f, -0.294922f, 0.361328f, -0.306641f,
+0.363281f, -0.318359f, 0.36499f, -0.32959f, 0.366699f, -0.34082f, 0.367676f, -0.350098f,
+0.368652f, -0.359375f, 0.368652f, -0.365234f, 0.368652f, -0.387207f, 0.356934f, -0.400879f,
+0.345215f, -0.414551f, 0.319824f, -0.414551f, 0.299316f, -0.414551f, 0.277832f, -0.405273f,
+0.256348f, -0.395996f, 0.236572f, -0.381104f, 0.216797f, -0.366211f, 0.199707f, -0.347168f,
+0.182617f, -0.328125f, 0.170898f, -0.309082f, 0.116699f, 0, 0.0361328f, 0, 0.142578f,
+-0.0341797f, 0.219238f, -0.0219727f, 0.215332f, 0, 0.0556641f, 0, 0.130371f, -0.424805f,
+0.0673828f, -0.437012f, 0.0712891f, -0.458984f, 0.217285f, -0.458984f, 0.247559f,
+-0.608887f, 0.247559f, -0.598145f, 0.243408f, -0.588623f, 0.239258f, -0.579102f,
+0.231934f, -0.571777f, 0.224609f, -0.564453f, 0.214844f, -0.560303f, 0.205078f, -0.556152f,
+0.194336f, -0.556152f, 0.183594f, -0.556152f, 0.174072f, -0.560303f, 0.164551f, -0.564453f,
+0.157227f, -0.571777f, 0.149902f, -0.579102f, 0.145752f, -0.588623f, 0.141602f, -0.598145f,
+0.141602f, -0.608887f, 0.141602f, -0.619629f, 0.145752f, -0.629395f, 0.149902f, -0.63916f,
+0.157227f, -0.646484f, 0.164551f, -0.653809f, 0.174072f, -0.657959f, 0.183594f, -0.662109f,
+0.194336f, -0.662109f, 0.205078f, -0.662109f, 0.214844f, -0.657959f, 0.224609f, -0.653809f,
+0.231934f, -0.646484f, 0.239258f, -0.63916f, 0.243408f, -0.629395f, 0.247559f, -0.619629f,
+0.247559f, -0.608887f, 0.13916f, 0.019043f, 0.129883f, 0.0708008f, 0.114502f, 0.107666f,
+0.0991211f, 0.144531f, 0.0778809f, 0.167969f, 0.0566406f, 0.191406f, 0.0297852f,
+0.202148f, 0.00292969f, 0.212891f, -0.0288086f, 0.212891f, -0.0507812f, 0.212891f,
+-0.0717773f, 0.208252f, -0.0927734f, 0.203613f, -0.106934f, 0.198242f, -0.0908203f,
+0.106934f, -0.0678711f, 0.106934f, -0.0605469f, 0.160645f, -0.0551758f, 0.166016f,
+-0.046875f, 0.169922f, -0.0385742f, 0.173828f, -0.0258789f, 0.173828f, -0.012207f,
+0.173828f, -0.000488281f, 0.167969f, 0.0112305f, 0.162109f, 0.0209961f, 0.147461f,
+0.0307617f, 0.132812f, 0.0390625f, 0.107666f, 0.0473633f, 0.0825195f, 0.0541992f,
+0.0439453f, 0.137207f, -0.424805f, 0.0703125f, -0.437012f, 0.0742188f, -0.458984f,
+0.224121f, -0.458984f, 0.253418f, -0.608887f, 0.253418f, -0.598145f, 0.249268f, -0.588623f,
+0.245117f, -0.579102f, 0.237793f, -0.571777f, 0.230469f, -0.564453f, 0.220703f, -0.560303f,
+0.210938f, -0.556152f, 0.200195f, -0.556152f, 0.189453f, -0.556152f, 0.179932f, -0.560303f,
+0.17041f, -0.564453f, 0.163086f, -0.571777f, 0.155762f, -0.579102f, 0.151611f, -0.588623f,
+0.147461f, -0.598145f, 0.147461f, -0.608887f, 0.147461f, -0.619629f, 0.151611f, -0.629395f,
+0.155762f, -0.63916f, 0.163086f, -0.646484f, 0.17041f, -0.653809f, 0.179932f, -0.657959f,
+0.189453f, -0.662109f, 0.200195f, -0.662109f, 0.210938f, -0.662109f, 0.220703f, -0.657959f,
+0.230469f, -0.653809f, 0.237793f, -0.646484f, 0.245117f, -0.63916f, 0.249268f, -0.629395f,
+0.253418f, -0.619629f, 0.253418f, -0.608887f, 0.145996f, -0.660156f, 0.0800781f,
+-0.671875f, 0.0839844f, -0.693848f, 0.23291f, -0.693848f, 0.148926f, -0.221191f,
+0.35791f, -0.423828f, 0.312012f, -0.437012f, 0.315918f, -0.458984f, 0.458496f, -0.458984f,
+0.45459f, -0.437012f, 0.415039f, -0.425781f, 0.271484f, -0.288574f, 0.390137f, -0.0332031f,
+0.437988f, -0.0219727f, 0.434082f, 0, 0.318848f, 0, 0.212402f, -0.233887f, 0.140137f,
+-0.166016f, 0.109863f, 0, 0.0288086f, 0, 0.140137f, -0.0341797f, 0.216797f, -0.0219727f,
+0.212891f, 0, 0.0532227f, 0, 0.168945f, -0.660156f, 0.105957f, -0.671875f, 0.109863f,
+-0.693848f, 0.255859f, -0.693848f, 0.42627f, -0.364258f, 0.442383f, -0.387207f, 0.461426f,
+-0.406738f, 0.480469f, -0.42627f, 0.500488f, -0.440674f, 0.520508f, -0.455078f, 0.54126f,
+-0.463135f, 0.562012f, -0.471191f, 0.582031f, -0.471191f, 0.623047f, -0.471191f,
+0.646729f, -0.445068f, 0.67041f, -0.418945f, 0.67041f, -0.369629f, 0.67041f, -0.362305f,
+0.669434f, -0.352051f, 0.668457f, -0.341797f, 0.666748f, -0.330078f, 0.665039f, -0.318359f,
+0.663086f, -0.306152f, 0.661133f, -0.293945f, 0.65918f, -0.283203f, 0.616211f, -0.0341797f,
+0.680176f, -0.0219727f, 0.675781f, 0, 0.528809f, 0, 0.579102f, -0.28418f, 0.581055f,
+-0.294434f, 0.583008f, -0.306396f, 0.584961f, -0.318359f, 0.58667f, -0.32959f, 0.588379f,
+-0.34082f, 0.589355f, -0.350098f, 0.590332f, -0.359375f, 0.590332f, -0.365234f, 0.590332f,
+-0.387207f, 0.580078f, -0.400635f, 0.569824f, -0.414062f, 0.547852f, -0.414062f,
+0.536621f, -0.414062f, 0.522949f, -0.408203f, 0.509277f, -0.402344f, 0.495117f, -0.392334f,
+0.480957f, -0.382324f, 0.467529f, -0.369141f, 0.454102f, -0.355957f, 0.442871f, -0.341309f,
+0.431641f, -0.32666f, 0.423828f, -0.311035f, 0.416016f, -0.29541f, 0.413574f, -0.28125f,
+0.365234f, 0, 0.28418f, 0, 0.333984f, -0.28418f, 0.335938f, -0.294434f, 0.337891f,
+-0.306396f, 0.339844f, -0.318359f, 0.341797f, -0.32959f, 0.34375f, -0.34082f, 0.344971f,
+-0.350098f, 0.346191f, -0.359375f, 0.346191f, -0.365234f, 0.346191f, -0.387207f,
+0.335449f, -0.400635f, 0.324707f, -0.414062f, 0.301758f, -0.414062f, 0.290527f, -0.414062f,
+0.276855f, -0.408203f, 0.263184f, -0.402344f, 0.248779f, -0.392334f, 0.234375f, -0.382324f,
+0.220459f, -0.369141f, 0.206543f, -0.355957f, 0.195068f, -0.341309f, 0.183594f, -0.32666f,
+0.175781f, -0.311035f, 0.167969f, -0.29541f, 0.165527f, -0.28125f, 0.117188f, 0,
+0.0361328f, 0, 0.11084f, -0.424805f, 0.0532227f, -0.437012f, 0.0571289f, -0.458984f,
+0.192871f, -0.458984f, 0.179199f, -0.364258f, 0.195312f, -0.387207f, 0.214355f, -0.406738f,
+0.233398f, -0.42627f, 0.253906f, -0.440674f, 0.274414f, -0.455078f, 0.295166f, -0.463135f,
+0.315918f, -0.471191f, 0.335938f, -0.471191f, 0.378906f, -0.471191f, 0.402588f, -0.444092f,
+0.42627f, -0.416992f, 0.42627f, -0.364258f, 0.368652f, -0.365234f, 0.368652f, -0.387207f,
+0.356934f, -0.400879f, 0.345215f, -0.414551f, 0.319824f, -0.414551f, 0.299316f, -0.414551f,
+0.277832f, -0.405029f, 0.256348f, -0.395508f, 0.236328f, -0.380371f, 0.216309f, -0.365234f,
+0.199219f, -0.345947f, 0.182129f, -0.32666f, 0.17041f, -0.307617f, 0.116699f, 0,
+0.0356445f, 0, 0.110352f, -0.425293f, 0.0527344f, -0.4375f, 0.0566406f, -0.459473f,
+0.192383f, -0.459473f, 0.179199f, -0.365723f, 0.197754f, -0.389648f, 0.218018f, -0.40918f,
+0.238281f, -0.428711f, 0.26001f, -0.442383f, 0.281738f, -0.456055f, 0.304443f, -0.463623f,
+0.327148f, -0.471191f, 0.350586f, -0.471191f, 0.373047f, -0.471191f, 0.391357f, -0.465332f,
+0.409668f, -0.459473f, 0.422607f, -0.446777f, 0.435547f, -0.434082f, 0.442627f, -0.414551f,
+0.449707f, -0.39502f, 0.449707f, -0.368164f, 0.449707f, -0.362305f, 0.448486f, -0.352295f,
+0.447266f, -0.342285f, 0.445312f, -0.330566f, 0.443359f, -0.318848f, 0.441406f, -0.306396f,
+0.439453f, -0.293945f, 0.4375f, -0.283203f, 0.394531f, -0.0336914f, 0.458496f, -0.0219727f,
+0.45459f, 0, 0.307617f, 0, 0.357422f, -0.28418f, 0.359375f, -0.294922f, 0.361328f,
+-0.306641f, 0.363281f, -0.318359f, 0.36499f, -0.32959f, 0.366699f, -0.34082f, 0.367676f,
+-0.350098f, 0.368652f, -0.359375f, 0.368652f, -0.365234f, 0.115723f, -0.166016f,
+0.115723f, -0.100098f, 0.141357f, -0.0651855f, 0.166992f, -0.0302734f, 0.212891f,
+-0.0302734f, 0.246582f, -0.0302734f, 0.277588f, -0.0505371f, 0.308594f, -0.0708008f,
+0.332275f, -0.106201f, 0.355957f, -0.141602f, 0.370361f, -0.190186f, 0.384766f, -0.23877f,
+0.384766f, -0.295898f, 0.384766f, -0.363281f, 0.359131f, -0.398193f, 0.333496f, -0.433105f,
+0.285645f, -0.433105f, 0.252441f, -0.433105f, 0.22168f, -0.413086f, 0.190918f, -0.393066f,
+0.16748f, -0.357666f, 0.144043f, -0.322266f, 0.129883f, -0.273193f, 0.115723f, -0.224121f,
+0.115723f, -0.166016f, 0.208496f, 0.00976562f, 0.168945f, 0.00976562f, 0.135986f,
+-0.00341797f, 0.103027f, -0.0166016f, 0.0793457f, -0.0415039f, 0.0556641f, -0.0664062f,
+0.0427246f, -0.102051f, 0.0297852f, -0.137695f, 0.0297852f, -0.182617f, 0.0297852f,
+-0.239746f, 0.0480957f, -0.291992f, 0.0664062f, -0.344238f, 0.100342f, -0.384033f,
+0.134277f, -0.423828f, 0.182617f, -0.44751f, 0.230957f, -0.471191f, 0.291504f, -0.471191f,
+0.331055f, -0.471191f, 0.364014f, -0.458008f, 0.396973f, -0.444824f, 0.420654f, -0.419922f,
+0.444336f, -0.39502f, 0.457275f, -0.359375f, 0.470215f, -0.32373f, 0.470215f, -0.278809f,
+0.470215f, -0.22168f, 0.451904f, -0.169434f, 0.433594f, -0.117188f, 0.399658f, -0.0773926f,
+0.365723f, -0.0375977f, 0.317383f, -0.013916f, 0.269043f, 0.00976562f, 0.208496f,
+0.00976562f, 0.11377f, -0.000976562f, 0.113281f, 0.00488281f, 0.112305f, 0.0124512f,
+0.111328f, 0.0200195f, 0.110352f, 0.0280762f, 0.109375f, 0.0361328f, 0.108154f, 0.0429688f,
+0.106934f, 0.0498047f, 0.106445f, 0.0541992f, 0.0849609f, 0.178223f, 0.163086f, 0.189941f,
+0.15918f, 0.212891f, -0.0585938f, 0.212891f, -0.0546875f, 0.189941f, 0.00439453f,
+0.178223f, 0.111328f, -0.424805f, 0.0610352f, -0.437012f, 0.0649414f, -0.458984f,
+0.194336f, -0.458984f, 0.185059f, -0.384766f, 0.226562f, -0.426758f, 0.265381f, -0.448975f,
+0.304199f, -0.471191f, 0.338867f, -0.471191f, 0.366699f, -0.471191f, 0.390625f, -0.460693f,
+0.414551f, -0.450195f, 0.432129f, -0.429688f, 0.449707f, -0.40918f, 0.459717f, -0.378662f,
+0.469727f, -0.348145f, 0.469727f, -0.308105f, 0.469727f, -0.266113f, 0.460693f, -0.226318f,
+0.45166f, -0.186523f, 0.43457f, -0.151123f, 0.41748f, -0.115723f, 0.393066f, -0.0861816f,
+0.368652f, -0.0566406f, 0.338379f, -0.0354004f, 0.308105f, -0.0141602f, 0.272461f,
+-0.00219727f, 0.236816f, 0.00976562f, 0.196777f, 0.00976562f, 0.187012f, 0.00976562f,
+0.175537f, 0.0090332f, 0.164062f, 0.00830078f, 0.152588f, 0.00683594f, 0.141113f,
+0.00537109f, 0.130859f, 0.00341797f, 0.120605f, 0.00146484f, 0.11377f, -0.000976562f,
+0.125488f, -0.0522461f, 0.134277f, -0.0454102f, 0.144775f, -0.0407715f, 0.155273f,
+-0.0361328f, 0.16626f, -0.0334473f, 0.177246f, -0.0307617f, 0.187988f, -0.0297852f,
+0.19873f, -0.0288086f, 0.20752f, -0.0288086f, 0.235352f, -0.0288086f, 0.259277f,
+-0.0402832f, 0.283203f, -0.0517578f, 0.302734f, -0.0717773f, 0.322266f, -0.0917969f,
+0.337158f, -0.118164f, 0.352051f, -0.144531f, 0.362061f, -0.174072f, 0.37207f, -0.203613f,
+0.377197f, -0.234863f, 0.382324f, -0.266113f, 0.382324f, -0.29541f, 0.382324f, -0.326172f,
+0.375732f, -0.3479f, 0.369141f, -0.369629f, 0.35791f, -0.383545f, 0.34668f, -0.397461f,
+0.332275f, -0.403809f, 0.317871f, -0.410156f, 0.302246f, -0.410156f, 0.289551f, -0.410156f,
+0.27417f, -0.405273f, 0.258789f, -0.400391f, 0.242432f, -0.391602f, 0.226074f, -0.382812f,
+0.209717f, -0.370361f, 0.193359f, -0.35791f, 0.178711f, -0.342285f, 0.20459f, -0.0522461f,
+0.22168f, -0.0522461f, 0.239258f, -0.0546875f, 0.256836f, -0.0571289f, 0.273193f,
+-0.0617676f, 0.289551f, -0.0664062f, 0.304199f, -0.0727539f, 0.318848f, -0.0791016f,
+0.330566f, -0.0869141f, 0.389648f, -0.42041f, 0.365723f, -0.426758f, 0.341553f, -0.430176f,
+0.317383f, -0.433594f, 0.290039f, -0.433594f, 0.250488f, -0.433594f, 0.21875f, -0.411377f,
+0.187012f, -0.38916f, 0.164795f, -0.352051f, 0.142578f, -0.314941f, 0.130615f, -0.266846f,
+0.118652f, -0.21875f, 0.118652f, -0.16748f, 0.118652f, -0.143066f, 0.123291f, -0.121826f,
+0.12793f, -0.100586f, 0.138184f, -0.0852051f, 0.148438f, -0.0698242f, 0.164795f,
+-0.0610352f, 0.181152f, -0.0522461f, 0.20459f, -0.0522461f, 0.327637f, -0.0522461f,
+0.317871f, -0.0449219f, 0.30127f, -0.0344238f, 0.284668f, -0.0239258f, 0.263672f,
+-0.013916f, 0.242676f, -0.00390625f, 0.218994f, 0.00292969f, 0.195312f, 0.00976562f,
+0.170898f, 0.00976562f, 0.104004f, 0.00976562f, 0.0686035f, -0.0317383f, 0.0332031f,
+-0.0732422f, 0.0332031f, -0.155273f, 0.0332031f, -0.220215f, 0.0522461f, -0.277832f,
+0.0712891f, -0.335449f, 0.107178f, -0.378418f, 0.143066f, -0.421387f, 0.194824f,
+-0.446289f, 0.246582f, -0.471191f, 0.311523f, -0.471191f, 0.328125f, -0.471191f,
+0.349854f, -0.469482f, 0.371582f, -0.467773f, 0.394287f, -0.464844f, 0.416992f, -0.461914f,
+0.438477f, -0.458252f, 0.459961f, -0.45459f, 0.476562f, -0.450684f, 0.362793f, 0.178223f,
+0.421875f, 0.189941f, 0.417969f, 0.212891f, 0.275879f, 0.212891f, 0.30957f, 0.0268555f,
+0.312988f, 0.00830078f, 0.317383f, -0.0114746f, 0.321777f, -0.03125f, 0.327637f,
+-0.0522461f, 0.353516f, -0.471191f, 0.363281f, -0.471191f, 0.375f, -0.469971f, 0.386719f,
+-0.46875f, 0.39209f, -0.467285f, 0.370605f, -0.347168f, 0.349609f, -0.347168f, 0.331055f,
+-0.40918f, 0.30957f, -0.40918f, 0.288086f, -0.400391f, 0.266602f, -0.391602f, 0.246582f,
+-0.376709f, 0.226562f, -0.361816f, 0.208008f, -0.342285f, 0.189453f, -0.322754f,
+0.173828f, -0.300781f, 0.121582f, 0, 0.0405273f, 0, 0.115234f, -0.424805f, 0.0576172f,
+-0.437012f, 0.0615234f, -0.458984f, 0.196777f, -0.458984f, 0.181641f, -0.355469f,
+0.201172f, -0.384766f, 0.2229f, -0.406738f, 0.244629f, -0.428711f, 0.266602f, -0.442871f,
+0.288574f, -0.457031f, 0.310791f, -0.464111f, 0.333008f, -0.471191f, 0.353516f, -0.471191f,
+0.337891f, -0.134766f, 0.337891f, -0.0610352f, 0.291016f, -0.0256348f, 0.244141f,
+0.00976562f, 0.148926f, 0.00976562f, 0.10498f, 0.00976562f, 0.0703125f, -0.000244141f,
+0.0356445f, -0.0102539f, 0.012207f, -0.0205078f, 0.0322266f, -0.130859f, 0.0541992f,
+-0.130859f, 0.0625f, -0.0639648f, 0.0751953f, -0.050293f, 0.0983887f, -0.0395508f,
+0.121582f, -0.0288086f, 0.150879f, -0.0288086f, 0.172852f, -0.0288086f, 0.192383f,
+-0.0332031f, 0.211914f, -0.0375977f, 0.226562f, -0.0476074f, 0.241211f, -0.0576172f,
+0.249512f, -0.0744629f, 0.257812f, -0.0913086f, 0.257812f, -0.116211f, 0.257812f,
+-0.141602f, 0.243408f, -0.158691f, 0.229004f, -0.175781f, 0.20752f, -0.189209f, 0.186035f,
+-0.202637f, 0.160889f, -0.214844f, 0.135742f, -0.227051f, 0.114258f, -0.24292f, 0.0927734f,
+-0.258789f, 0.0783691f, -0.280762f, 0.0639648f, -0.302734f, 0.0639648f, -0.335938f,
+0.0639648f, -0.372559f, 0.0773926f, -0.398438f, 0.0908203f, -0.424316f, 0.113525f,
+-0.44043f, 0.13623f, -0.456543f, 0.165771f, -0.463867f, 0.195312f, -0.471191f, 0.228027f,
+-0.471191f, 0.263184f, -0.471191f, 0.295898f, -0.466064f, 0.328613f, -0.460938f,
+0.358887f, -0.454102f, 0.34082f, -0.352051f, 0.317871f, -0.352051f, 0.311035f, -0.404785f,
+0.297363f, -0.416992f, 0.276123f, -0.424561f, 0.254883f, -0.432129f, 0.22998f, -0.432129f,
+0.189941f, -0.432129f, 0.166016f, -0.413818f, 0.14209f, -0.395508f, 0.14209f, -0.356934f,
+0.14209f, -0.333008f, 0.156494f, -0.316895f, 0.170898f, -0.300781f, 0.192871f, -0.287354f,
+0.214844f, -0.273926f, 0.23999f, -0.260986f, 0.265137f, -0.248047f, 0.287109f, -0.231445f,
+0.309082f, -0.214844f, 0.323486f, -0.19165f, 0.337891f, -0.168457f, 0.337891f, -0.134766f,
+0.128906f, -0.0849609f, 0.128906f, -0.0629883f, 0.139893f, -0.052002f, 0.150879f,
+-0.0410156f, 0.167969f, -0.0410156f, 0.188965f, -0.0410156f, 0.206543f, -0.0449219f,
+0.224121f, -0.0488281f, 0.242188f, -0.0556641f, 0.252441f, -0.0327148f, 0.227539f,
+-0.0151367f, 0.197998f, -0.00268555f, 0.168457f, 0.00976562f, 0.130859f, 0.00976562f,
+0.110352f, 0.00976562f, 0.0947266f, 0.00317383f, 0.0791016f, -0.00341797f, 0.0686035f,
+-0.0151367f, 0.0581055f, -0.0268555f, 0.0529785f, -0.0432129f, 0.0478516f, -0.0595703f,
+0.0478516f, -0.0791016f, 0.0478516f, -0.0932617f, 0.050293f, -0.111328f, 0.0527344f,
+-0.129395f, 0.0556641f, -0.145996f, 0.104004f, -0.417969f, 0.0439453f, -0.417969f,
+0.0478516f, -0.439941f, 0.112793f, -0.458984f, 0.179688f, -0.562988f, 0.210938f,
+-0.562988f, 0.192871f, -0.458984f, 0.297852f, -0.458984f, 0.290039f, -0.417969f,
+0.185059f, -0.417969f, 0.137695f, -0.149902f, 0.133789f, -0.129883f, 0.131348f, -0.112793f,
+0.128906f, -0.0957031f, 0.128906f, -0.0849609f, 0.130859f, -0.0942383f, 0.130859f,
+-0.0722656f, 0.142578f, -0.0585938f, 0.154297f, -0.0449219f, 0.179688f, -0.0449219f,
+0.200195f, -0.0449219f, 0.22168f, -0.0541992f, 0.243164f, -0.0634766f, 0.262939f,
+-0.0783691f, 0.282715f, -0.0932617f, 0.299805f, -0.112305f, 0.316895f, -0.131348f,
+0.328613f, -0.150391f, 0.382812f, -0.458984f, 0.463867f, -0.458984f, 0.38916f, -0.0341797f,
+0.446777f, -0.0219727f, 0.442871f, 0, 0.307129f, 0, 0.320312f, -0.0942383f, 0.301758f,
+-0.0703125f, 0.281494f, -0.0507812f, 0.26123f, -0.03125f, 0.239502f, -0.017334f,
+0.217773f, -0.00341797f, 0.195068f, 0.00415039f, 0.172363f, 0.0117188f, 0.148926f,
+0.0117188f, 0.126465f, 0.0117188f, 0.108154f, 0.00585938f, 0.0898438f, 0, 0.0769043f,
+-0.0126953f, 0.0639648f, -0.0253906f, 0.0568848f, -0.0446777f, 0.0498047f, -0.0639648f,
+0.0498047f, -0.0913086f, 0.0498047f, -0.097168f, 0.0510254f, -0.106934f, 0.0522461f,
+-0.116699f, 0.0539551f, -0.128418f, 0.0556641f, -0.140137f, 0.0578613f, -0.152588f,
+0.0600586f, -0.165039f, 0.0620117f, -0.17627f, 0.10498f, -0.425293f, 0.0507812f,
+-0.437012f, 0.0546875f, -0.458984f, 0.191895f, -0.458984f, 0.14209f, -0.175293f,
+0.140137f, -0.164551f, 0.138184f, -0.152832f, 0.13623f, -0.141113f, 0.134521f, -0.129883f,
+0.132812f, -0.118652f, 0.131836f, -0.109375f, 0.130859f, -0.100098f, 0.130859f, -0.0942383f,
+0.335449f, -0.299805f, 0.352539f, -0.327637f, 0.359619f, -0.351562f, 0.366699f, -0.375488f,
+0.366699f, -0.394043f, 0.366699f, -0.412109f, 0.356445f, -0.422852f, 0.346191f, -0.433594f,
+0.334473f, -0.437012f, 0.338379f, -0.458984f, 0.431152f, -0.458984f, 0.435547f, -0.455078f,
+0.439697f, -0.446777f, 0.443848f, -0.438477f, 0.443848f, -0.428223f, 0.443848f, -0.412598f,
+0.436035f, -0.386475f, 0.428223f, -0.360352f, 0.40332f, -0.320801f, 0.196777f, 0.00976562f,
+0.161133f, 0.00976562f, 0.0688477f, -0.424805f, 0.0136719f, -0.437012f, 0.0180664f,
+-0.458984f, 0.143066f, -0.458984f, 0.213867f, -0.101562f, 0.439453f, 0.00976562f,
+0.407227f, 0.00976562f, 0.34668f, -0.29248f, 0.191406f, 0.00976562f, 0.157227f, 0.00976562f,
+0.0737305f, -0.424805f, 0.0239258f, -0.437012f, 0.027832f, -0.458984f, 0.147461f,
+-0.458984f, 0.211426f, -0.11377f, 0.362305f, -0.407227f, 0.398926f, -0.407227f, 0.458496f,
+-0.111816f, 0.554688f, -0.301758f, 0.569336f, -0.331055f, 0.575928f, -0.353271f,
+0.58252f, -0.375488f, 0.58252f, -0.394043f, 0.58252f, -0.412109f, 0.572266f, -0.422852f,
+0.562012f, -0.433594f, 0.550293f, -0.437012f, 0.554199f, -0.458984f, 0.646973f, -0.458984f,
+0.651367f, -0.455078f, 0.655518f, -0.446777f, 0.659668f, -0.438477f, 0.659668f, -0.428223f,
+0.659668f, -0.412598f, 0.650635f, -0.387207f, 0.641602f, -0.361816f, 0.619141f, -0.320801f,
+0.121094f, -0.115234f, 0.105469f, -0.100098f, 0.095459f, -0.0888672f, 0.0854492f,
+-0.0776367f, 0.0795898f, -0.0690918f, 0.0737305f, -0.0605469f, 0.0715332f, -0.0537109f,
+0.0693359f, -0.046875f, 0.0693359f, -0.0410156f, 0.0693359f, -0.0332031f, 0.0749512f,
+-0.0288086f, 0.0805664f, -0.0244141f, 0.0898438f, -0.0219727f, 0.0859375f, 0, -0.00439453f,
+0, -0.00732422f, -0.00244141f, -0.00976562f, -0.00805664f, -0.012207f, -0.0136719f,
+-0.012207f, -0.0209961f, -0.012207f, -0.027832f, -0.00854492f, -0.0358887f, -0.00488281f,
+-0.0439453f, 0.00292969f, -0.0541992f, 0.0107422f, -0.0644531f, 0.0234375f, -0.0776367f,
+0.0361328f, -0.0908203f, 0.0546875f, -0.10791f, 0.187988f, -0.231934f, 0.104004f,
+-0.424805f, 0.0517578f, -0.437012f, 0.0556641f, -0.458984f, 0.176758f, -0.458984f,
+0.247559f, -0.28418f, 0.308105f, -0.341797f, 0.339355f, -0.371582f, 0.352051f, -0.388672f,
+0.364746f, -0.405762f, 0.364746f, -0.417969f, 0.364746f, -0.421875f, 0.362061f, -0.424805f,
+0.359375f, -0.427734f, 0.35498f, -0.429932f, 0.350586f, -0.432129f, 0.345459f, -0.433838f,
+0.340332f, -0.435547f, 0.335938f, -0.437012f, 0.339844f, -0.458984f, 0.42627f, -0.458984f,
+0.430664f, -0.455566f, 0.433594f, -0.450439f, 0.436523f, -0.445312f, 0.436523f, -0.437988f,
+0.436523f, -0.40918f, 0.369141f, -0.345215f, 0.264648f, -0.24707f, 0.358398f, -0.0322266f,
+0.415039f, -0.0219727f, 0.411133f, 0, 0.286133f, 0, 0.20459f, -0.195312f, 0.0253906f,
+-0.458984f, 0.150391f, -0.458984f, 0.221191f, -0.101562f, 0.335938f, -0.299805f,
+0.352051f, -0.328125f, 0.359619f, -0.351807f, 0.367188f, -0.375488f, 0.367188f, -0.394043f,
+0.367188f, -0.412109f, 0.356934f, -0.422852f, 0.34668f, -0.433594f, 0.334961f, -0.437012f,
+0.338867f, -0.458984f, 0.431641f, -0.458984f, 0.436035f, -0.455078f, 0.440186f, -0.446777f,
+0.444336f, -0.438477f, 0.444336f, -0.428223f, 0.444336f, -0.412598f, 0.436035f, -0.386963f,
+0.427734f, -0.361328f, 0.403809f, -0.320801f, 0.210449f, 0.00488281f, 0.181641f,
+0.0537109f, 0.156006f, 0.0927734f, 0.130371f, 0.131836f, 0.104736f, 0.15918f, 0.0791016f,
+0.186523f, 0.0510254f, 0.201172f, 0.0229492f, 0.21582f, -0.0107422f, 0.21582f, -0.0234375f,
+0.21582f, -0.032959f, 0.215332f, -0.0424805f, 0.214844f, -0.0505371f, 0.213623f,
+-0.0585938f, 0.212402f, -0.0664062f, 0.210938f, -0.0742188f, 0.209473f, -0.0834961f,
+0.207031f, -0.0654297f, 0.10791f, -0.043457f, 0.10791f, -0.0356445f, 0.154785f, -0.0234375f,
+0.166016f, 0.00439453f, 0.166016f, 0.0253906f, 0.166016f, 0.045166f, 0.153809f, 0.0649414f,
+0.141602f, 0.0827637f, 0.122314f, 0.100586f, 0.103027f, 0.115967f, 0.0795898f, 0.131348f,
+0.0561523f, 0.143555f, 0.0341797f, 0.165527f, -0.00585938f, 0.0761719f, -0.424805f,
+0.0214844f, -0.437012f, -0.0112305f, 0, -0.00683594f, -0.0219727f, 0.268555f, -0.419922f,
+0.195801f, -0.419922f, 0.182617f, -0.419922f, 0.168701f, -0.418701f, 0.154785f, -0.41748f,
+0.142578f, -0.415283f, 0.130371f, -0.413086f, 0.120605f, -0.409912f, 0.11084f, -0.406738f,
+0.10498f, -0.402832f, 0.078125f, -0.336914f, 0.0551758f, -0.336914f, 0.0771484f,
+-0.458984f, 0.375977f, -0.458984f, 0.37207f, -0.435059f, 0.0976562f, -0.0390625f,
+0.193848f, -0.0390625f, 0.221191f, -0.0390625f, 0.24707f, -0.045166f, 0.272949f,
+-0.0512695f, 0.290039f, -0.0620117f, 0.327148f, -0.133789f, 0.350098f, -0.133789f,
+0.314941f, 0, 0.179199f, 0.133789f, 0.125977f, 0.133789f, 0.0996094f, 0.106201f,
+0.0732422f, 0.0786133f, 0.0732422f, 0.0297852f, 0.0732422f, 0.0126953f, 0.0771484f,
+-0.00976562f, 0.102539f, -0.153809f, 0.104492f, -0.163574f, 0.105225f, -0.171875f,
+0.105957f, -0.180176f, 0.105957f, -0.188477f, 0.105957f, -0.209473f, 0.100098f, -0.224609f,
+0.0942383f, -0.239746f, 0.0830078f, -0.249512f, 0.0717773f, -0.259277f, 0.0554199f,
+-0.26416f, 0.0390625f, -0.269043f, 0.0180664f, -0.27002f, 0.0219727f, -0.291992f,
+0.046875f, -0.29248f, 0.067627f, -0.299316f, 0.0883789f, -0.306152f, 0.104248f, -0.320068f,
+0.120117f, -0.333984f, 0.130859f, -0.355469f, 0.141602f, -0.376953f, 0.146973f, -0.407227f,
+0.172363f, -0.550781f, 0.18457f, -0.619629f, 0.2229f, -0.656738f, 0.26123f, -0.693848f,
+0.325195f, -0.693848f, 0.391113f, -0.693848f, 0.387207f, -0.670898f, 0.356934f, -0.670898f,
+0.3125f, -0.670898f, 0.289062f, -0.644287f, 0.265625f, -0.617676f, 0.256348f, -0.565918f,
+0.227539f, -0.404785f, 0.223145f, -0.380371f, 0.212402f, -0.359863f, 0.20166f, -0.339355f,
+0.186523f, -0.323486f, 0.171387f, -0.307617f, 0.152344f, -0.297119f, 0.133301f, -0.286621f,
+0.112305f, -0.282227f, 0.112305f, -0.280762f, 0.146484f, -0.272461f, 0.166504f, -0.247559f,
+0.186523f, -0.222656f, 0.186523f, -0.18457f, 0.186523f, -0.177734f, 0.186035f, -0.171143f,
+0.185547f, -0.164551f, 0.184082f, -0.157227f, 0.155273f, 0.00585938f, 0.15332f, 0.0161133f,
+0.152344f, 0.0256348f, 0.151367f, 0.0351562f, 0.151367f, 0.043457f, 0.151367f, 0.0766602f,
+0.16748f, 0.09375f, 0.183594f, 0.11084f, 0.21875f, 0.11084f, 0.249023f, 0.11084f,
+0.245117f, 0.133789f, 0.130371f, 0.21582f, 0.130371f, -0.693848f, 0.180176f, -0.693848f,
+0.180176f, 0.21582f, 0.0175781f, 0.133789f, 0.0214844f, 0.11084f, 0.0517578f, 0.11084f,
+0.0961914f, 0.11084f, 0.119629f, 0.0842285f, 0.143066f, 0.0576172f, 0.152344f, 0.00585938f,
+0.181152f, -0.157227f, 0.185547f, -0.182129f, 0.196045f, -0.202637f, 0.206543f, -0.223145f,
+0.22168f, -0.239014f, 0.236816f, -0.254883f, 0.255859f, -0.265381f, 0.274902f, -0.275879f,
+0.296875f, -0.280762f, 0.296875f, -0.282227f, 0.263184f, -0.290039f, 0.24292f, -0.31543f,
+0.222656f, -0.34082f, 0.222656f, -0.379395f, 0.222656f, -0.385742f, 0.223145f, -0.391846f,
+0.223633f, -0.397949f, 0.224609f, -0.404785f, 0.253418f, -0.565918f, 0.255371f, -0.57666f,
+0.256348f, -0.585938f, 0.257324f, -0.595215f, 0.257324f, -0.603516f, 0.257324f, -0.637207f,
+0.241455f, -0.654053f, 0.225586f, -0.670898f, 0.189941f, -0.670898f, 0.159668f, -0.670898f,
+0.163574f, -0.693848f, 0.22998f, -0.693848f, 0.283203f, -0.693848f, 0.309326f, -0.667725f,
+0.335449f, -0.641602f, 0.335449f, -0.591797f, 0.335449f, -0.582031f, 0.334473f, -0.572021f,
+0.333496f, -0.562012f, 0.331543f, -0.550781f, 0.306152f, -0.407227f, 0.303223f, -0.388672f,
+0.303223f, -0.373535f, 0.303223f, -0.331055f, 0.326172f, -0.312256f, 0.349121f, -0.293457f,
+0.391113f, -0.291992f, 0.387207f, -0.27002f, 0.362305f, -0.269043f, 0.341553f, -0.262207f,
+0.320801f, -0.255371f, 0.304932f, -0.241455f, 0.289062f, -0.227539f, 0.278076f, -0.206055f,
+0.26709f, -0.18457f, 0.261719f, -0.153809f, 0.236328f, -0.00976562f, 0.230469f, 0.0234375f,
+0.217773f, 0.0498047f, 0.205078f, 0.0761719f, 0.185791f, 0.0949707f, 0.166504f, 0.11377f,
+0.140869f, 0.123779f, 0.115234f, 0.133789f, 0.0839844f, 0.133789f, 0.394043f, -0.245117f,
+0.371582f, -0.245117f, 0.351074f, -0.253906f, 0.330566f, -0.262695f, 0.311279f, -0.275635f,
+0.291992f, -0.288574f, 0.27417f, -0.303955f, 0.256348f, -0.319336f, 0.239258f, -0.332275f,
+0.222168f, -0.345215f, 0.205566f, -0.354004f, 0.188965f, -0.362793f, 0.172363f, -0.362793f,
+0.152344f, -0.362793f, 0.138184f, -0.355713f, 0.124023f, -0.348633f, 0.114258f, -0.333984f,
+0.104492f, -0.319336f, 0.098877f, -0.297119f, 0.0932617f, -0.274902f, 0.090332f,
+-0.245117f, 0.0410156f, -0.245117f, 0.0439453f, -0.274902f, 0.0505371f, -0.304932f,
+0.0571289f, -0.334961f, 0.0712891f, -0.359131f, 0.0854492f, -0.383301f, 0.109619f,
+-0.398193f, 0.133789f, -0.413086f, 0.172363f, -0.413086f, 0.195801f, -0.413086f,
+0.216797f, -0.404297f, 0.237793f, -0.395508f, 0.25708f, -0.382324f, 0.276367f, -0.369141f,
+0.294434f, -0.354004f, 0.3125f, -0.338867f, 0.329346f, -0.325684f, 0.346191f, -0.3125f,
+0.362305f, -0.303711f, 0.378418f, -0.294922f, 0.394043f, -0.294922f, 0.413574f, -0.294922f,
+0.427246f, -0.302734f, 0.440918f, -0.310547f, 0.450439f, -0.325684f, 0.459961f, -0.34082f,
+0.465576f, -0.362793f, 0.471191f, -0.384766f, 0.475098f, -0.413086f, 0.525391f, -0.413086f,
+0.521484f, -0.383301f, 0.514404f, -0.353516f, 0.507324f, -0.32373f, 0.49292f, -0.299561f,
+0.478516f, -0.275391f, 0.454834f, -0.260254f, 0.431152f, -0.245117f, 0.394043f, -0.245117f
+};
+
+const unsigned char LiberationSerifItalicVerbs[] = {
+6, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1,
+1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 0, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1,
+1, 5, 0, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 5, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 5, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 5,
+0, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 2,
+2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 5, 6, 0,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1,
+1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
+1, 1, 5, 6, 0, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2,
+2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSerifItalicCharCodes[] = {
+0, 32, 33, 34, 35, 36,
+37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationSerifItalicWidths[] = {
+0x0000c720, 0x00004000, 0x00005540, 0x00006b80, 0x00008000, 0x00008000, 0x0000d540,
+0x0000c720, 0x000036c0, 0x00005540, 0x00005540, 0x00008000, 0x0000acc0, 0x00004000,
+0x00005540, 0x00004000, 0x00004720, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00005540,
+0x00005540, 0x0000acc0, 0x0000acc0, 0x0000acc0, 0x00008000, 0x0000eb80, 0x00009c60,
+0x00009c60, 0x0000aac0, 0x0000b8e0, 0x00009c60, 0x00009c60, 0x0000b8e0, 0x0000b8e0,
+0x00005540, 0x000071a0, 0x0000aac0, 0x00008e60, 0x0000d540, 0x0000aac0, 0x0000b8e0,
+0x00009c60, 0x0000b8e0, 0x00009c60, 0x00008000, 0x00008e60, 0x0000b8e0, 0x00009c60,
+0x0000d540, 0x00009c60, 0x00008e60, 0x00008e60, 0x000063a0, 0x00004720, 0x000063a0,
+0x00006c00, 0x00008000, 0x00005540, 0x00008000, 0x00008000, 0x000071a0, 0x00008000,
+0x000071a0, 0x00004720, 0x00008000, 0x00008000, 0x00004720, 0x00004720, 0x000071a0,
+0x00004720, 0x0000b8e0, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x000063a0,
+0x000063a0, 0x00004720, 0x00008000, 0x000071a0, 0x0000aac0, 0x000071a0, 0x000071a0,
+0x000063a0, 0x00006660, 0x00004660, 0x00006660, 0x00008a80
+};
+
+const int LiberationSerifItalicCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSerifItalicCharCodes);
+
+const SkPaint::FontMetrics LiberationSerifItalicMetrics = {
+0x30307833, -0.980957f, -0.891113f, 0.216309f, 0.303223f, 0.0424805f, 1.26465f, 0.0197601f,
+-0.176758f, 1.08789f, 0.469727f, 0.0103607f, 0.0488281f, 0.108887f
+};
+
+const SkScalar LiberationSerifBoldItalicPoints[] = {
+0.202637f, -0.205078f, 0.15625f, -0.205078f, 0.185547f, -0.654785f, 0.331543f, -0.654785f,
+0.157227f, 0.0141602f, 0.140137f, 0.0141602f, 0.125488f, 0.0078125f, 0.11084f, 0.00146484f,
+0.0998535f, -0.00952148f, 0.0888672f, -0.0205078f, 0.0825195f, -0.0351562f, 0.0761719f,
+-0.0498047f, 0.0761719f, -0.0668945f, 0.0761719f, -0.0834961f, 0.0825195f, -0.0983887f,
+0.0888672f, -0.113281f, 0.0998535f, -0.124268f, 0.11084f, -0.135254f, 0.125488f,
+-0.141602f, 0.140137f, -0.147949f, 0.157227f, -0.147949f, 0.173828f, -0.147949f,
+0.188721f, -0.141602f, 0.203613f, -0.135254f, 0.2146f, -0.124268f, 0.225586f, -0.113281f,
+0.231934f, -0.0983887f, 0.238281f, -0.0834961f, 0.238281f, -0.0668945f, 0.238281f,
+-0.0498047f, 0.231934f, -0.0351562f, 0.225586f, -0.0205078f, 0.2146f, -0.00952148f,
+0.203613f, 0.00146484f, 0.188721f, 0.0078125f, 0.173828f, 0.0141602f, 0.157227f,
+0.0141602f, 0.372559f, -0.654785f, 0.48877f, -0.654785f, 0.40918f, -0.419922f, 0.368164f,
+-0.419922f, 0.184082f, -0.654785f, 0.300293f, -0.654785f, 0.220703f, -0.419922f,
+0.179688f, -0.419922f, 0.348145f, -0.200684f, 0.275879f, 0, 0.202148f, 0, 0.274414f,
+-0.200684f, 0.146484f, -0.200684f, 0.0751953f, 0, 0, 0, 0.0722656f, -0.200684f, -0.00244141f,
+-0.200684f, 0.00830078f, -0.260742f, 0.0952148f, -0.260742f, 0.145508f, -0.400879f,
+0.0327148f, -0.400879f, 0.043457f, -0.460938f, 0.16748f, -0.460938f, 0.237305f, -0.654785f,
+0.311523f, -0.654785f, 0.241211f, -0.460938f, 0.369141f, -0.460938f, 0.439453f, -0.654785f,
+0.513184f, -0.654785f, 0.442871f, -0.460938f, 0.51709f, -0.460938f, 0.506348f, -0.400879f,
+0.421387f, -0.400879f, 0.37207f, -0.260742f, 0.481934f, -0.260742f, 0.471191f, -0.200684f,
+0.219238f, -0.400879f, 0.168945f, -0.260742f, 0.296875f, -0.260742f, 0.347656f, -0.400879f,
+0.348145f, -0.661133f, 0.382812f, -0.65918f, 0.41626f, -0.654053f, 0.449707f, -0.648926f,
+0.479492f, -0.641113f, 0.452148f, -0.485352f, 0.408691f, -0.485352f, 0.405273f, -0.581055f,
+0.391602f, -0.591309f, 0.375244f, -0.598633f, 0.358887f, -0.605957f, 0.338379f, -0.608887f,
+0.29834f, -0.395508f, 0.325195f, -0.380371f, 0.353027f, -0.363281f, 0.380859f, -0.346191f,
+0.403076f, -0.324219f, 0.425293f, -0.302246f, 0.439453f, -0.273438f, 0.453613f, -0.244629f,
+0.453613f, -0.206543f, 0.453613f, -0.107422f, 0.394775f, -0.0539551f, 0.335938f,
+-0.000488281f, 0.222168f, 0.0078125f, 0.209473f, 0.0761719f, 0.159668f, 0.0761719f,
+0.171875f, 0.00976562f, 0.110352f, 0.00878906f, 0.0646973f, -0.00170898f, 0.019043f,
+-0.012207f, -0.0117188f, -0.0249023f, 0.0195312f, -0.200684f, 0.0625f, -0.200684f,
+0.0629883f, -0.0957031f, 0.0786133f, -0.0727539f, 0.107666f, -0.0563965f, 0.136719f,
+-0.0400391f, 0.181152f, -0.0395508f, 0.228516f, -0.291016f, 0.202148f, -0.304688f,
+0.175049f, -0.320557f, 0.147949f, -0.336426f, 0.126465f, -0.35791f, 0.10498f, -0.379395f,
+0.0913086f, -0.408447f, 0.0776367f, -0.4375f, 0.0776367f, -0.478027f, 0.0776367f,
+-0.567383f, 0.133057f, -0.612549f, 0.188477f, -0.657715f, 0.29834f, -0.661621f, 0.310059f,
+-0.724121f, 0.360352f, -0.724121f, 0.334473f, -0.168945f, 0.334473f, -0.187012f,
+0.330078f, -0.201904f, 0.325684f, -0.216797f, 0.317627f, -0.229004f, 0.30957f, -0.241211f,
+0.298584f, -0.251221f, 0.287598f, -0.26123f, 0.274902f, -0.27002f, 0.232422f, -0.0444336f,
+0.258789f, -0.050293f, 0.277832f, -0.0625f, 0.296875f, -0.074707f, 0.30957f, -0.0913086f,
+0.322266f, -0.10791f, 0.328369f, -0.127686f, 0.334473f, -0.147461f, 0.334473f, -0.168945f,
+0.194824f, -0.51123f, 0.194824f, -0.479492f, 0.210938f, -0.45752f, 0.227051f, -0.435547f,
+0.252441f, -0.417969f, 0.289062f, -0.610352f, 0.262695f, -0.60791f, 0.244873f, -0.598877f,
+0.227051f, -0.589844f, 0.21582f, -0.576172f, 0.20459f, -0.5625f, 0.199707f, -0.545654f,
+0.194824f, -0.528809f, 0.194824f, -0.51123f, 0.171875f, 0.00976562f, 0.0986328f,
+0.00976562f, 0.680664f, -0.665039f, 0.754395f, -0.665039f, 0.391113f, -0.539551f,
+0.391113f, -0.526855f, 0.389648f, -0.513672f, 0.388184f, -0.500488f, 0.385742f, -0.48584f,
+0.37793f, -0.441895f, 0.362793f, -0.408203f, 0.347656f, -0.374512f, 0.324219f, -0.351318f,
+0.300781f, -0.328125f, 0.268799f, -0.316162f, 0.236816f, -0.304199f, 0.195801f, -0.304199f,
+0.130371f, -0.304199f, 0.0974121f, -0.336182f, 0.0644531f, -0.368164f, 0.0644531f,
+-0.430664f, 0.0644531f, -0.480957f, 0.0769043f, -0.523682f, 0.0893555f, -0.566406f,
+0.11377f, -0.5979f, 0.138184f, -0.629395f, 0.174316f, -0.647217f, 0.210449f, -0.665039f,
+0.257812f, -0.665039f, 0.323242f, -0.665039f, 0.357178f, -0.633545f, 0.391113f, -0.602051f,
+0.391113f, -0.539551f, 0.157715f, -0.416504f, 0.157715f, -0.40332f, 0.159424f, -0.391113f,
+0.161133f, -0.378906f, 0.165771f, -0.369873f, 0.17041f, -0.36084f, 0.178223f, -0.355225f,
+0.186035f, -0.349609f, 0.197754f, -0.349609f, 0.229492f, -0.349609f, 0.25415f, -0.385498f,
+0.278809f, -0.421387f, 0.290039f, -0.48584f, 0.295898f, -0.518555f, 0.295898f, -0.544434f,
+0.295898f, -0.581055f, 0.286133f, -0.600098f, 0.276367f, -0.619141f, 0.25293f, -0.619141f,
+0.222168f, -0.619141f, 0.199219f, -0.584473f, 0.17627f, -0.549805f, 0.165039f, -0.48584f,
+0.162598f, -0.47168f, 0.160156f, -0.453369f, 0.157715f, -0.435059f, 0.157715f, -0.416504f,
+0.781738f, -0.222168f, 0.781738f, -0.209473f, 0.780273f, -0.196289f, 0.778809f, -0.183105f,
+0.776367f, -0.168457f, 0.768555f, -0.124512f, 0.753418f, -0.0908203f, 0.738281f,
+-0.0571289f, 0.714844f, -0.0339355f, 0.691406f, -0.0107422f, 0.659424f, 0.0012207f,
+0.627441f, 0.0131836f, 0.586426f, 0.0131836f, 0.520996f, 0.0131836f, 0.488037f, -0.0187988f,
+0.455078f, -0.0507812f, 0.455078f, -0.113281f, 0.455078f, -0.163574f, 0.467529f,
+-0.206299f, 0.47998f, -0.249023f, 0.504395f, -0.280518f, 0.528809f, -0.312012f, 0.564941f,
+-0.329834f, 0.601074f, -0.347656f, 0.648438f, -0.347656f, 0.713867f, -0.347656f,
+0.747803f, -0.316162f, 0.781738f, -0.284668f, 0.781738f, -0.222168f, 0.54834f, -0.0991211f,
+0.54834f, -0.0859375f, 0.550049f, -0.0737305f, 0.551758f, -0.0615234f, 0.556396f,
+-0.0524902f, 0.561035f, -0.043457f, 0.568848f, -0.0378418f, 0.57666f, -0.0322266f,
+0.588379f, -0.0322266f, 0.620117f, -0.0322266f, 0.644775f, -0.0681152f, 0.669434f,
+-0.104004f, 0.680664f, -0.168457f, 0.686523f, -0.201172f, 0.686523f, -0.227051f,
+0.686523f, -0.263672f, 0.676758f, -0.282715f, 0.666992f, -0.301758f, 0.643555f, -0.301758f,
+0.612793f, -0.301758f, 0.589844f, -0.26709f, 0.566895f, -0.232422f, 0.555664f, -0.168457f,
+0.553223f, -0.154297f, 0.550781f, -0.135986f, 0.54834f, -0.117676f, 0.54834f, -0.0991211f,
+0.536621f, -0.538086f, 0.536621f, -0.499512f, 0.52124f, -0.472656f, 0.505859f, -0.445801f,
+0.481201f, -0.426514f, 0.456543f, -0.407227f, 0.425537f, -0.393311f, 0.394531f, -0.379395f,
+0.36377f, -0.367188f, 0.516113f, -0.195801f, 0.54248f, -0.236328f, 0.55957f, -0.27417f,
+0.57666f, -0.312012f, 0.583984f, -0.350098f, 0.527344f, -0.362793f, 0.532715f, -0.394043f,
+0.765625f, -0.394043f, 0.760254f, -0.362793f, 0.699219f, -0.350098f, 0.69043f, -0.329102f,
+0.677246f, -0.302979f, 0.664062f, -0.276855f, 0.647461f, -0.248535f, 0.630859f, -0.220215f,
+0.610596f, -0.19165f, 0.590332f, -0.163086f, 0.566895f, -0.137695f, 0.651367f, -0.0429688f,
+0.710938f, -0.0307617f, 0.705566f, 0, 0.527832f, 0, 0.478516f, -0.0585938f, 0.458008f,
+-0.0449219f, 0.435303f, -0.0324707f, 0.412598f, -0.0200195f, 0.385498f, -0.0107422f,
+0.358398f, -0.00146484f, 0.325439f, 0.00415039f, 0.29248f, 0.00976562f, 0.251465f,
+0.00976562f, 0.191406f, 0.00976562f, 0.148438f, -0.00317383f, 0.105469f, -0.0161133f,
+0.0778809f, -0.0395508f, 0.050293f, -0.0629883f, 0.0373535f, -0.0959473f, 0.0244141f,
+-0.128906f, 0.0244141f, -0.169434f, 0.0244141f, -0.216309f, 0.043457f, -0.249268f,
+0.0625f, -0.282227f, 0.0913086f, -0.304932f, 0.120117f, -0.327637f, 0.154053f, -0.342285f,
+0.187988f, -0.356934f, 0.218262f, -0.367676f, 0.202148f, -0.393066f, 0.189209f, -0.42749f,
+0.17627f, -0.461914f, 0.17627f, -0.506348f, 0.17627f, -0.541992f, 0.189209f, -0.571289f,
+0.202148f, -0.600586f, 0.226318f, -0.621338f, 0.250488f, -0.64209f, 0.2854f, -0.65332f,
+0.320312f, -0.664551f, 0.364746f, -0.664551f, 0.411133f, -0.664551f, 0.443848f, -0.653564f,
+0.476562f, -0.642578f, 0.49707f, -0.624756f, 0.517578f, -0.606934f, 0.5271f, -0.584229f,
+0.536621f, -0.561523f, 0.536621f, -0.538086f, 0.252441f, -0.321289f, 0.235352f, -0.3125f,
+0.217773f, -0.301514f, 0.200195f, -0.290527f, 0.186035f, -0.273682f, 0.171875f, -0.256836f,
+0.163086f, -0.232666f, 0.154297f, -0.208496f, 0.154297f, -0.173828f, 0.154297f, -0.144531f,
+0.162842f, -0.121826f, 0.171387f, -0.0991211f, 0.186523f, -0.0837402f, 0.20166f,
+-0.0683594f, 0.222168f, -0.0605469f, 0.242676f, -0.0527344f, 0.26709f, -0.0527344f,
+0.317383f, -0.0527344f, 0.359131f, -0.0686035f, 0.400879f, -0.0844727f, 0.432617f,
+-0.111328f, 0.290527f, -0.522949f, 0.290527f, -0.494629f, 0.301025f, -0.466064f,
+0.311523f, -0.4375f, 0.32959f, -0.411621f, 0.350586f, -0.421387f, 0.368652f, -0.432129f,
+0.386719f, -0.442871f, 0.400146f, -0.456787f, 0.413574f, -0.470703f, 0.421387f, -0.48877f,
+0.429199f, -0.506836f, 0.429199f, -0.53125f, 0.429199f, -0.572266f, 0.410889f, -0.594727f,
+0.392578f, -0.617188f, 0.364746f, -0.617188f, 0.328613f, -0.617188f, 0.30957f, -0.591797f,
+0.290527f, -0.566406f, 0.290527f, -0.522949f, 0.14209f, -0.654785f, 0.258301f, -0.654785f,
+0.178711f, -0.419922f, 0.137695f, -0.419922f, 0.165527f, -0.0585938f, 0.165527f,
+0.00976562f, 0.183105f, 0.0666504f, 0.200684f, 0.123535f, 0.244141f, 0.162109f, 0.233398f,
+0.212891f, 0.187012f, 0.186035f, 0.152588f, 0.154297f, 0.118164f, 0.122559f, 0.0952148f,
+0.0839844f, 0.0722656f, 0.0454102f, 0.060791f, -0.00146484f, 0.0493164f, -0.0483398f,
+0.0493164f, -0.106445f, 0.0493164f, -0.138672f, 0.0529785f, -0.174805f, 0.0566406f,
+-0.210938f, 0.0634766f, -0.251465f, 0.0795898f, -0.343262f, 0.106445f, -0.410889f,
+0.133301f, -0.478516f, 0.173096f, -0.529785f, 0.212891f, -0.581055f, 0.267334f, -0.620117f,
+0.321777f, -0.65918f, 0.393066f, -0.693848f, 0.382324f, -0.633301f, 0.336426f, -0.602539f,
+0.303711f, -0.558105f, 0.270996f, -0.513672f, 0.247803f, -0.460938f, 0.224609f, -0.408203f,
+0.209229f, -0.349609f, 0.193848f, -0.291016f, 0.183594f, -0.231445f, 0.175293f, -0.186523f,
+0.17041f, -0.143066f, 0.165527f, -0.0996094f, 0.165527f, -0.0585938f, -0.074707f,
+0.212891f, -0.0644531f, 0.152344f, -0.019043f, 0.121582f, 0.013916f, 0.0771484f,
+0.046875f, 0.0327148f, 0.0703125f, -0.0202637f, 0.09375f, -0.0732422f, 0.109131f,
+-0.132324f, 0.124512f, -0.191406f, 0.135254f, -0.250977f, 0.143555f, -0.296387f,
+0.148438f, -0.339844f, 0.15332f, -0.383301f, 0.15332f, -0.424805f, 0.15332f, -0.458496f,
+0.14917f, -0.489746f, 0.14502f, -0.520996f, 0.135986f, -0.548584f, 0.126953f, -0.576172f,
+0.112061f, -0.600098f, 0.097168f, -0.624023f, 0.0756836f, -0.643066f, 0.0844727f,
+-0.693848f, 0.130859f, -0.666504f, 0.165527f, -0.63501f, 0.200195f, -0.603516f, 0.223145f,
+-0.565186f, 0.246094f, -0.526855f, 0.257568f, -0.47998f, 0.269043f, -0.433105f, 0.269043f,
+-0.375488f, 0.269043f, -0.312988f, 0.254883f, -0.231934f, 0.23877f, -0.139648f, 0.21167f,
+-0.0715332f, 0.18457f, -0.00341797f, 0.144775f, 0.0480957f, 0.10498f, 0.0996094f,
+0.0505371f, 0.138916f, -0.00390625f, 0.178223f, -0.074707f, 0.212891f, 0.308594f,
+-0.434082f, 0.319336f, -0.275879f, 0.207031f, -0.293945f, 0.265137f, -0.442871f,
+0.108887f, -0.351074f, 0.0795898f, -0.460938f, 0.234375f, -0.47998f, 0.0932617f,
+-0.546875f, 0.154785f, -0.64209f, 0.275391f, -0.507812f, 0.266113f, -0.666016f, 0.378418f,
+-0.648438f, 0.318848f, -0.500977f, 0.475098f, -0.588379f, 0.504883f, -0.480469f,
+0.347656f, -0.461914f, 0.491699f, -0.396484f, 0.429688f, -0.302246f, 0.328125f, -0.296875f,
+0.328125f, -0.0991211f, 0.258301f, -0.0991211f, 0.258301f, -0.296875f, 0.0610352f,
+-0.296875f, 0.0610352f, -0.366699f, 0.258301f, -0.366699f, 0.258301f, -0.564941f,
+0.328125f, -0.564941f, 0.328125f, -0.366699f, 0.525879f, -0.366699f, 0.525879f, -0.296875f,
+0.16748f, -0.0517578f, 0.16748f, -0.0170898f, 0.156982f, 0.0144043f, 0.146484f, 0.0458984f,
+0.123779f, 0.0727539f, 0.101074f, 0.0996094f, 0.0651855f, 0.120605f, 0.0292969f,
+0.141602f, -0.0214844f, 0.154785f, -0.0214844f, 0.109863f, 0.00341797f, 0.103027f,
+0.0205078f, 0.0913086f, 0.0375977f, 0.0795898f, 0.0480957f, 0.0664062f, 0.0585938f,
+0.0532227f, 0.0629883f, 0.0405273f, 0.0673828f, 0.027832f, 0.0673828f, 0.019043f,
+0.0673828f, 0.00927734f, 0.0622559f, 0.00268555f, 0.0571289f, -0.00390625f, 0.0495605f,
+-0.00927734f, 0.0419922f, -0.0146484f, 0.032959f, -0.0202637f, 0.0239258f, -0.0258789f,
+0.0163574f, -0.0336914f, 0.00878906f, -0.0415039f, 0.00366211f, -0.0529785f, -0.00146484f,
+-0.0644531f, -0.00146484f, -0.0820312f, -0.00146484f, -0.11377f, 0.0205078f, -0.130371f,
+0.0424805f, -0.146973f, 0.0761719f, -0.146973f, 0.0947266f, -0.146973f, 0.111328f,
+-0.140869f, 0.12793f, -0.134766f, 0.140381f, -0.122559f, 0.152832f, -0.110352f, 0.160156f,
+-0.0927734f, 0.16748f, -0.0751953f, 0.16748f, -0.0517578f, 0.0209961f, -0.192871f,
+0.0371094f, -0.277832f, 0.296875f, -0.277832f, 0.280762f, -0.192871f, 0.0883789f,
+0.0141602f, 0.0712891f, 0.0141602f, 0.0566406f, 0.0078125f, 0.0419922f, 0.00146484f,
+0.0310059f, -0.00952148f, 0.0200195f, -0.0205078f, 0.0136719f, -0.0351562f, 0.00732422f,
+-0.0498047f, 0.00732422f, -0.0668945f, 0.00732422f, -0.0834961f, 0.0136719f, -0.0983887f,
+0.0200195f, -0.113281f, 0.0310059f, -0.124268f, 0.0419922f, -0.135254f, 0.0566406f,
+-0.141602f, 0.0712891f, -0.147949f, 0.0883789f, -0.147949f, 0.10498f, -0.147949f,
+0.119873f, -0.141602f, 0.134766f, -0.135254f, 0.145752f, -0.124268f, 0.156738f, -0.113281f,
+0.163086f, -0.0983887f, 0.169434f, -0.0834961f, 0.169434f, -0.0668945f, 0.169434f,
+-0.0498047f, 0.163086f, -0.0351562f, 0.156738f, -0.0205078f, 0.145752f, -0.00952148f,
+0.134766f, 0.00146484f, 0.119873f, 0.0078125f, 0.10498f, 0.0141602f, 0.0883789f,
+0.0141602f, 0.0078125f, 0.00976562f, -0.0605469f, 0.00976562f, 0.286133f, -0.658691f,
+0.354492f, -0.658691f, 0.482422f, -0.464355f, 0.482422f, -0.436035f, 0.479248f, -0.400635f,
+0.476074f, -0.365234f, 0.469727f, -0.330078f, 0.455078f, -0.248047f, 0.431885f, -0.18457f,
+0.408691f, -0.121094f, 0.375488f, -0.0778809f, 0.342285f, -0.034668f, 0.298828f,
+-0.0124512f, 0.255371f, 0.00976562f, 0.200195f, 0.00976562f, 0.119629f, 0.00976562f,
+0.0771484f, -0.0407715f, 0.034668f, -0.0913086f, 0.034668f, -0.194824f, 0.034668f,
+-0.223633f, 0.0375977f, -0.258545f, 0.0405273f, -0.293457f, 0.046875f, -0.330078f,
+0.0615234f, -0.411133f, 0.0849609f, -0.473633f, 0.108398f, -0.536133f, 0.141357f,
+-0.578613f, 0.174316f, -0.621094f, 0.217285f, -0.643066f, 0.260254f, -0.665039f,
+0.313965f, -0.665039f, 0.39502f, -0.665039f, 0.438721f, -0.616211f, 0.482422f, -0.567383f,
+0.482422f, -0.464355f, 0.361816f, -0.473633f, 0.361816f, -0.541016f, 0.348389f, -0.575928f,
+0.334961f, -0.61084f, 0.30127f, -0.61084f, 0.276367f, -0.61084f, 0.256836f, -0.592529f,
+0.237305f, -0.574219f, 0.22168f, -0.539062f, 0.206055f, -0.503906f, 0.193359f, -0.452148f,
+0.180664f, -0.400391f, 0.169922f, -0.333496f, 0.162109f, -0.285645f, 0.158203f, -0.249268f,
+0.154297f, -0.212891f, 0.154297f, -0.179199f, 0.154297f, -0.149414f, 0.157227f, -0.124512f,
+0.160156f, -0.0996094f, 0.166992f, -0.0817871f, 0.173828f, -0.0639648f, 0.184814f,
+-0.0539551f, 0.195801f, -0.0439453f, 0.212402f, -0.0439453f, 0.237793f, -0.0439453f,
+0.257324f, -0.0615234f, 0.276855f, -0.0791016f, 0.292725f, -0.113525f, 0.308594f,
+-0.147949f, 0.321045f, -0.198975f, 0.333496f, -0.25f, 0.344727f, -0.316895f, 0.348145f,
+-0.338867f, 0.351074f, -0.36084f, 0.354004f, -0.382812f, 0.356201f, -0.40332f, 0.358398f,
+-0.423828f, 0.359863f, -0.44165f, 0.361328f, -0.459473f, 0.361816f, -0.473633f, 0.282227f,
+-0.0537109f, 0.398926f, -0.0419922f, 0.391602f, 0, 0.0234375f, 0, 0.0307617f, -0.0419922f,
+0.150879f, -0.0537109f, 0.237305f, -0.544922f, 0.11377f, -0.510254f, 0.121094f, -0.551758f,
+0.324707f, -0.660156f, 0.38916f, -0.660156f, 0.402832f, 0, -0.012207f, 0, 0.00390625f,
+-0.0922852f, 0.0766602f, -0.148438f, 0.138672f, -0.202148f, 0.200684f, -0.255859f,
+0.24585f, -0.307617f, 0.291016f, -0.359375f, 0.31665f, -0.410156f, 0.342285f, -0.460938f,
+0.342285f, -0.512207f, 0.342285f, -0.564941f, 0.317871f, -0.588623f, 0.293457f, -0.612305f,
+0.253906f, -0.612305f, 0.230469f, -0.612305f, 0.210938f, -0.605225f, 0.191406f, -0.598145f,
+0.17627f, -0.586914f, 0.138672f, -0.492188f, 0.0961914f, -0.492188f, 0.122559f, -0.641113f,
+0.163574f, -0.649902f, 0.201904f, -0.656006f, 0.240234f, -0.662109f, 0.28418f, -0.662109f,
+0.331543f, -0.662109f, 0.367432f, -0.6521f, 0.40332f, -0.64209f, 0.427734f, -0.623535f,
+0.452148f, -0.60498f, 0.4646f, -0.579102f, 0.477051f, -0.553223f, 0.477051f, -0.520996f,
+0.477051f, -0.478516f, 0.462891f, -0.440186f, 0.44873f, -0.401855f, 0.423584f, -0.366455f,
+0.398438f, -0.331055f, 0.363037f, -0.297607f, 0.327637f, -0.26416f, 0.284912f, -0.231689f,
+0.242188f, -0.199219f, 0.193848f, -0.166748f, 0.145508f, -0.134277f, 0.09375f, -0.100586f,
+0.421875f, -0.100586f, 0.169434f, 0.00976562f, 0.0566406f, 0.00976562f, -0.0078125f,
+-0.00976562f, 0.0141602f, -0.168457f, 0.059082f, -0.168457f, 0.065918f, -0.0634766f,
+0.0722656f, -0.0581055f, 0.0844727f, -0.0539551f, 0.0966797f, -0.0498047f, 0.11084f,
+-0.0463867f, 0.125f, -0.0429688f, 0.139404f, -0.0412598f, 0.153809f, -0.0395508f,
+0.164062f, -0.0395508f, 0.231445f, -0.0395508f, 0.269043f, -0.078125f, 0.306641f,
+-0.116699f, 0.306641f, -0.192383f, 0.306641f, -0.248535f, 0.282471f, -0.276123f,
+0.258301f, -0.303711f, 0.210938f, -0.309082f, 0.154785f, -0.3125f, 0.165527f, -0.371582f,
+0.220703f, -0.375488f, 0.251953f, -0.377441f, 0.27417f, -0.388184f, 0.296387f, -0.398926f,
+0.310547f, -0.416748f, 0.324707f, -0.43457f, 0.331055f, -0.458984f, 0.337402f, -0.483398f,
+0.337402f, -0.513184f, 0.337402f, -0.5625f, 0.313965f, -0.587402f, 0.290527f, -0.612305f,
+0.249023f, -0.612305f, 0.226562f, -0.612305f, 0.206787f, -0.605225f, 0.187012f, -0.598145f,
+0.172852f, -0.586914f, 0.135254f, -0.492188f, 0.0927734f, -0.492188f, 0.119141f,
+-0.641113f, 0.136719f, -0.645508f, 0.154541f, -0.649414f, 0.172363f, -0.65332f, 0.19165f,
+-0.65625f, 0.210938f, -0.65918f, 0.232666f, -0.660645f, 0.254395f, -0.662109f, 0.280273f,
+-0.662109f, 0.326172f, -0.662109f, 0.362305f, -0.6521f, 0.398438f, -0.64209f, 0.422852f,
+-0.623779f, 0.447266f, -0.605469f, 0.460205f, -0.579102f, 0.473145f, -0.552734f,
+0.473145f, -0.52002f, 0.473145f, -0.483887f, 0.463135f, -0.454102f, 0.453125f, -0.424316f,
+0.432617f, -0.401611f, 0.412109f, -0.378906f, 0.381104f, -0.364014f, 0.350098f, -0.349121f,
+0.308105f, -0.342773f, 0.338867f, -0.337891f, 0.36377f, -0.325439f, 0.388672f, -0.312988f,
+0.406006f, -0.293701f, 0.42334f, -0.274414f, 0.432861f, -0.249023f, 0.442383f, -0.223633f,
+0.442383f, -0.193848f, 0.442383f, -0.14209f, 0.421387f, -0.10376f, 0.400391f, -0.0654297f,
+0.363525f, -0.0402832f, 0.32666f, -0.0151367f, 0.276855f, -0.00268555f, 0.227051f,
+0.00976562f, 0.169434f, 0.00976562f, 0.376953f, -0.134277f, 0.354004f, 0, 0.232422f,
+0, 0.255371f, -0.134277f, -0.015625f, -0.134277f, -0.00195312f, -0.208984f, 0.370605f,
+-0.658203f, 0.469727f, -0.658203f, 0.393066f, -0.224609f, 0.469727f, -0.224609f,
+0.453613f, -0.134277f, 0.305176f, -0.413086f, 0.307617f, -0.42627f, 0.312256f, -0.445557f,
+0.316895f, -0.464844f, 0.321289f, -0.48291f, 0.32666f, -0.503906f, 0.33252f, -0.525879f,
+0.0834961f, -0.224609f, 0.271484f, -0.224609f, 0.251953f, -0.389648f, 0.30127f, -0.389648f,
+0.337891f, -0.377686f, 0.374512f, -0.365723f, 0.398438f, -0.343506f, 0.422363f, -0.321289f,
+0.434082f, -0.289795f, 0.445801f, -0.258301f, 0.445801f, -0.219727f, 0.445801f, -0.164551f,
+0.427002f, -0.121826f, 0.408203f, -0.0791016f, 0.372559f, -0.0498047f, 0.336914f,
+-0.0205078f, 0.284668f, -0.00537109f, 0.232422f, 0.00976562f, 0.166016f, 0.00976562f,
+0.13916f, 0.00976562f, 0.11792f, 0.00830078f, 0.0966797f, 0.00683594f, 0.0788574f,
+0.00415039f, 0.0610352f, 0.00146484f, 0.0446777f, -0.00219727f, 0.0283203f, -0.00585938f,
+0.0112305f, -0.00976562f, 0.0332031f, -0.168457f, 0.078125f, -0.168457f, 0.0849609f,
+-0.0634766f, 0.0986328f, -0.0522461f, 0.123047f, -0.0458984f, 0.147461f, -0.0395508f,
+0.172852f, -0.0395508f, 0.208496f, -0.0395508f, 0.234619f, -0.0524902f, 0.260742f,
+-0.0654297f, 0.278076f, -0.0888672f, 0.29541f, -0.112305f, 0.303711f, -0.14502f,
+0.312012f, -0.177734f, 0.312012f, -0.217285f, 0.312012f, -0.242188f, 0.307373f, -0.263672f,
+0.302734f, -0.285156f, 0.291504f, -0.30127f, 0.280273f, -0.317383f, 0.261719f, -0.326416f,
+0.243164f, -0.335449f, 0.21582f, -0.335449f, 0.202148f, -0.335449f, 0.188721f, -0.333496f,
+0.175293f, -0.331543f, 0.162842f, -0.328857f, 0.150391f, -0.326172f, 0.139893f, -0.322754f,
+0.129395f, -0.319336f, 0.12207f, -0.316406f, 0.0766602f, -0.316406f, 0.13623f, -0.654785f,
+0.474121f, -0.654785f, 0.456543f, -0.555664f, 0.180176f, -0.555664f, 0.149414f, -0.377441f,
+0.158203f, -0.379883f, 0.168213f, -0.38208f, 0.178223f, -0.384277f, 0.19043f, -0.385986f,
+0.202637f, -0.387695f, 0.217773f, -0.388672f, 0.23291f, -0.389648f, 0.251953f, -0.389648f,
+0.224121f, 0.00976562f, 0.178223f, 0.00976562f, 0.142822f, -0.00537109f, 0.107422f,
+-0.0205078f, 0.083252f, -0.0498047f, 0.059082f, -0.0791016f, 0.0466309f, -0.121338f,
+0.0341797f, -0.163574f, 0.0341797f, -0.217773f, 0.0341797f, -0.278809f, 0.0461426f,
+-0.335693f, 0.0581055f, -0.392578f, 0.0795898f, -0.441895f, 0.101074f, -0.491211f,
+0.131104f, -0.531738f, 0.161133f, -0.572266f, 0.19751f, -0.601318f, 0.233887f, -0.630371f,
+0.275635f, -0.64624f, 0.317383f, -0.662109f, 0.362305f, -0.662109f, 0.402344f, -0.662109f,
+0.437988f, -0.655762f, 0.473633f, -0.649414f, 0.5f, -0.641113f, 0.473633f, -0.492188f,
+0.431152f, -0.492188f, 0.426758f, -0.586914f, 0.411621f, -0.599121f, 0.394043f, -0.605713f,
+0.376465f, -0.612305f, 0.35791f, -0.612305f, 0.32373f, -0.612305f, 0.294922f, -0.592773f,
+0.266113f, -0.573242f, 0.243164f, -0.539551f, 0.220215f, -0.505859f, 0.203125f, -0.460205f,
+0.186035f, -0.414551f, 0.175781f, -0.362305f, 0.202637f, -0.376465f, 0.235352f, -0.387207f,
+0.268066f, -0.397949f, 0.304688f, -0.397949f, 0.344238f, -0.397949f, 0.373779f, -0.385986f,
+0.40332f, -0.374023f, 0.422607f, -0.352539f, 0.441895f, -0.331055f, 0.451416f, -0.30127f,
+0.460938f, -0.271484f, 0.460938f, -0.23584f, 0.460938f, -0.185059f, 0.445312f, -0.140381f,
+0.429688f, -0.0957031f, 0.399658f, -0.0625f, 0.369629f, -0.0292969f, 0.325439f, -0.00976562f,
+0.28125f, 0.00976562f, 0.224121f, 0.00976562f, 0.160645f, -0.202637f, 0.160645f,
+-0.155273f, 0.166748f, -0.123779f, 0.172852f, -0.0922852f, 0.18335f, -0.0737305f,
+0.193848f, -0.0551758f, 0.207275f, -0.0473633f, 0.220703f, -0.0395508f, 0.235352f,
+-0.0395508f, 0.256836f, -0.0395508f, 0.274414f, -0.0527344f, 0.291992f, -0.065918f,
+0.304443f, -0.0900879f, 0.316895f, -0.114258f, 0.32373f, -0.148438f, 0.330566f, -0.182617f,
+0.330566f, -0.224121f, 0.330566f, -0.282715f, 0.308105f, -0.309814f, 0.285645f, -0.336914f,
+0.250488f, -0.336914f, 0.230957f, -0.336914f, 0.209961f, -0.331299f, 0.188965f, -0.325684f,
+0.167969f, -0.316895f, 0.160645f, -0.26123f, 0.160645f, -0.202637f, 0.124023f, -0.467773f,
+0.081543f, -0.467773f, 0.114746f, -0.654785f, 0.533203f, -0.654785f, 0.526367f, -0.616211f,
+0.168457f, 0, 0.0419922f, 0, 0.419922f, -0.555664f, 0.161621f, -0.555664f, 0.484863f,
+-0.529785f, 0.484863f, -0.490723f, 0.474854f, -0.460205f, 0.464844f, -0.429688f,
+0.447998f, -0.406982f, 0.431152f, -0.384277f, 0.408936f, -0.369385f, 0.386719f, -0.354492f,
+0.361816f, -0.347168f, 0.402344f, -0.33252f, 0.425537f, -0.298584f, 0.44873f, -0.264648f,
+0.44873f, -0.214844f, 0.44873f, -0.160645f, 0.434082f, -0.118652f, 0.419434f, -0.0766602f,
+0.389404f, -0.0480957f, 0.359375f, -0.0195312f, 0.313477f, -0.00488281f, 0.267578f,
+0.00976562f, 0.20459f, 0.00976562f, 0.156738f, 0.00976562f, 0.121582f, -0.00244141f,
+0.0864258f, -0.0146484f, 0.0634766f, -0.0368652f, 0.0405273f, -0.059082f, 0.0292969f,
+-0.0895996f, 0.0180664f, -0.120117f, 0.0180664f, -0.156738f, 0.0180664f, -0.196777f,
+0.0288086f, -0.22876f, 0.0395508f, -0.260742f, 0.059082f, -0.284424f, 0.0786133f,
+-0.308105f, 0.105469f, -0.323975f, 0.132324f, -0.339844f, 0.164551f, -0.347168f,
+0.148926f, -0.355469f, 0.13623f, -0.368896f, 0.123535f, -0.382324f, 0.114502f, -0.39917f,
+0.105469f, -0.416016f, 0.100342f, -0.436279f, 0.0952148f, -0.456543f, 0.0952148f,
+-0.478516f, 0.0952148f, -0.521484f, 0.108398f, -0.556152f, 0.121582f, -0.59082f,
+0.148926f, -0.61499f, 0.17627f, -0.63916f, 0.218018f, -0.6521f, 0.259766f, -0.665039f,
+0.316895f, -0.665039f, 0.359863f, -0.665039f, 0.391357f, -0.655762f, 0.422852f, -0.646484f,
+0.443604f, -0.628906f, 0.464355f, -0.611328f, 0.474609f, -0.586182f, 0.484863f, -0.561035f,
+0.484863f, -0.529785f, 0.218262f, -0.446289f, 0.218262f, -0.413086f, 0.22998f, -0.393555f,
+0.241699f, -0.374023f, 0.27002f, -0.374023f, 0.293457f, -0.374023f, 0.310791f, -0.388184f,
+0.328125f, -0.402344f, 0.339355f, -0.425781f, 0.350586f, -0.449219f, 0.355957f, -0.479492f,
+0.361328f, -0.509766f, 0.361328f, -0.541504f, 0.361328f, -0.577148f, 0.348389f, -0.596436f,
+0.335449f, -0.615723f, 0.305176f, -0.615723f, 0.282227f, -0.615723f, 0.265625f, -0.602539f,
+0.249023f, -0.589355f, 0.238525f, -0.566406f, 0.228027f, -0.543457f, 0.223145f, -0.512451f,
+0.218262f, -0.481445f, 0.218262f, -0.446289f, 0.141113f, -0.132812f, 0.141113f, -0.0883789f,
+0.159424f, -0.0644531f, 0.177734f, -0.0405273f, 0.216309f, -0.0405273f, 0.245605f,
+-0.0405273f, 0.266357f, -0.0546875f, 0.287109f, -0.0688477f, 0.300049f, -0.0942383f,
+0.312988f, -0.119629f, 0.319092f, -0.154297f, 0.325195f, -0.188965f, 0.325195f, -0.22998f,
+0.325195f, -0.25f, 0.321045f, -0.266602f, 0.316895f, -0.283203f, 0.308105f, -0.294922f,
+0.299316f, -0.306641f, 0.285156f, -0.312988f, 0.270996f, -0.319336f, 0.250488f, -0.319336f,
+0.222656f, -0.319336f, 0.202148f, -0.305908f, 0.181641f, -0.29248f, 0.168213f, -0.267822f,
+0.154785f, -0.243164f, 0.147949f, -0.20874f, 0.141113f, -0.174316f, 0.141113f, -0.132812f,
+0.287109f, -0.661621f, 0.329102f, -0.661621f, 0.36499f, -0.64624f, 0.400879f, -0.630859f,
+0.427002f, -0.601318f, 0.453125f, -0.571777f, 0.467773f, -0.528564f, 0.482422f, -0.485352f,
+0.482422f, -0.429688f, 0.482422f, -0.367676f, 0.470947f, -0.310791f, 0.459473f, -0.253906f,
+0.438477f, -0.205078f, 0.41748f, -0.15625f, 0.387939f, -0.116699f, 0.358398f, -0.0771484f,
+0.32251f, -0.0490723f, 0.286621f, -0.0209961f, 0.245361f, -0.00561523f, 0.204102f,
+0.00976562f, 0.15918f, 0.00976562f, 0.116211f, 0.00976562f, 0.0808105f, 0.00415039f,
+0.0454102f, -0.00146484f, 0.0146484f, -0.0112305f, 0.0410156f, -0.160156f, 0.0834961f,
+-0.160156f, 0.0878906f, -0.0654297f, 0.10498f, -0.0517578f, 0.125977f, -0.0458984f,
+0.146973f, -0.0400391f, 0.165527f, -0.0400391f, 0.199707f, -0.0400391f, 0.228271f,
+-0.0593262f, 0.256836f, -0.0786133f, 0.279297f, -0.111816f, 0.301758f, -0.14502f,
+0.317627f, -0.189697f, 0.333496f, -0.234375f, 0.343262f, -0.285156f, 0.316895f, -0.272461f,
+0.285156f, -0.263428f, 0.253418f, -0.254395f, 0.216309f, -0.254395f, 0.174805f, -0.254395f,
+0.144531f, -0.267578f, 0.114258f, -0.280762f, 0.0944824f, -0.303955f, 0.074707f,
+-0.327148f, 0.0651855f, -0.358398f, 0.0556641f, -0.389648f, 0.0556641f, -0.425781f,
+0.0556641f, -0.474121f, 0.0715332f, -0.51709f, 0.0874023f, -0.560059f, 0.117188f,
+-0.592041f, 0.146973f, -0.624023f, 0.189941f, -0.642822f, 0.23291f, -0.661621f, 0.287109f,
+-0.661621f, 0.356445f, -0.431152f, 0.356445f, -0.48291f, 0.349609f, -0.517578f, 0.342773f,
+-0.552246f, 0.332031f, -0.573486f, 0.321289f, -0.594727f, 0.307861f, -0.60376f, 0.294434f,
+-0.612793f, 0.28125f, -0.612793f, 0.259766f, -0.612793f, 0.241943f, -0.599121f, 0.224121f,
+-0.585449f, 0.211426f, -0.560791f, 0.19873f, -0.536133f, 0.191895f, -0.501709f, 0.185059f,
+-0.467285f, 0.185059f, -0.425781f, 0.185059f, -0.370117f, 0.205078f, -0.342773f,
+0.225098f, -0.31543f, 0.26123f, -0.31543f, 0.28125f, -0.31543f, 0.304688f, -0.320801f,
+0.328125f, -0.326172f, 0.350586f, -0.334473f, 0.356445f, -0.381836f, 0.356445f, -0.431152f,
+0.182617f, -0.306641f, 0.165527f, -0.306641f, 0.150635f, -0.312988f, 0.135742f, -0.319336f,
+0.125f, -0.330322f, 0.114258f, -0.341309f, 0.108154f, -0.355957f, 0.102051f, -0.370605f,
+0.102051f, -0.387695f, 0.102051f, -0.404785f, 0.108154f, -0.419678f, 0.114258f, -0.43457f,
+0.125f, -0.445557f, 0.135742f, -0.456543f, 0.150635f, -0.462646f, 0.165527f, -0.46875f,
+0.182617f, -0.46875f, 0.199707f, -0.46875f, 0.214355f, -0.462646f, 0.229004f, -0.456543f,
+0.23999f, -0.445557f, 0.250977f, -0.43457f, 0.257324f, -0.419678f, 0.263672f, -0.404785f,
+0.263672f, -0.387695f, 0.263672f, -0.370605f, 0.257324f, -0.355957f, 0.250977f, -0.341309f,
+0.23999f, -0.330322f, 0.229004f, -0.319336f, 0.214355f, -0.312988f, 0.199707f, -0.306641f,
+0.182617f, -0.306641f, 0.114746f, 0.0141602f, 0.0976562f, 0.0141602f, 0.0830078f,
+0.0078125f, 0.0683594f, 0.00146484f, 0.057373f, -0.00952148f, 0.0463867f, -0.0205078f,
+0.0400391f, -0.0351562f, 0.0336914f, -0.0498047f, 0.0336914f, -0.0668945f, 0.0336914f,
+-0.0834961f, 0.0400391f, -0.0983887f, 0.0463867f, -0.113281f, 0.057373f, -0.124268f,
+0.0683594f, -0.135254f, 0.0830078f, -0.141602f, 0.0976562f, -0.147949f, 0.114746f,
+-0.147949f, 0.131348f, -0.147949f, 0.14624f, -0.141602f, 0.161133f, -0.135254f, 0.172119f,
+-0.124268f, 0.183105f, -0.113281f, 0.189453f, -0.0983887f, 0.195801f, -0.0834961f,
+0.195801f, -0.0668945f, 0.195801f, -0.0498047f, 0.189453f, -0.0351562f, 0.183105f,
+-0.0205078f, 0.172119f, -0.00952148f, 0.161133f, 0.00146484f, 0.14624f, 0.0078125f,
+0.131348f, 0.0141602f, 0.114746f, 0.0141602f, 0.20166f, -0.0517578f, 0.20166f, -0.0170898f,
+0.191162f, 0.0144043f, 0.180664f, 0.0458984f, 0.157959f, 0.0727539f, 0.135254f, 0.0996094f,
+0.0993652f, 0.120605f, 0.0634766f, 0.141602f, 0.0126953f, 0.154785f, 0.0126953f,
+0.109863f, 0.0375977f, 0.103027f, 0.0546875f, 0.0913086f, 0.0717773f, 0.0795898f,
+0.0822754f, 0.0664062f, 0.0927734f, 0.0532227f, 0.097168f, 0.0405273f, 0.101562f,
+0.027832f, 0.101562f, 0.019043f, 0.101562f, 0.00927734f, 0.0964355f, 0.00268555f,
+0.0913086f, -0.00390625f, 0.0837402f, -0.00927734f, 0.0761719f, -0.0146484f, 0.0671387f,
+-0.0202637f, 0.0581055f, -0.0258789f, 0.0505371f, -0.0336914f, 0.0429688f, -0.0415039f,
+0.0378418f, -0.0529785f, 0.0327148f, -0.0644531f, 0.0327148f, -0.0820312f, 0.0327148f,
+-0.11377f, 0.0546875f, -0.130371f, 0.0766602f, -0.146973f, 0.110352f, -0.146973f,
+0.128906f, -0.146973f, 0.145508f, -0.140869f, 0.162109f, -0.134766f, 0.174561f, -0.122559f,
+0.187012f, -0.110352f, 0.194336f, -0.0927734f, 0.20166f, -0.0751953f, 0.20166f, -0.0517578f,
+0.186523f, -0.306641f, 0.169434f, -0.306641f, 0.154541f, -0.312988f, 0.139648f, -0.319336f,
+0.128906f, -0.330322f, 0.118164f, -0.341309f, 0.112061f, -0.355957f, 0.105957f, -0.370605f,
+0.105957f, -0.387695f, 0.105957f, -0.404785f, 0.112061f, -0.419678f, 0.118164f, -0.43457f,
+0.128906f, -0.445557f, 0.139648f, -0.456543f, 0.154541f, -0.462646f, 0.169434f, -0.46875f,
+0.186523f, -0.46875f, 0.203613f, -0.46875f, 0.218262f, -0.462646f, 0.23291f, -0.456543f,
+0.243896f, -0.445557f, 0.254883f, -0.43457f, 0.26123f, -0.419678f, 0.267578f, -0.404785f,
+0.267578f, -0.387695f, 0.267578f, -0.370605f, 0.26123f, -0.355957f, 0.254883f, -0.341309f,
+0.243896f, -0.330322f, 0.23291f, -0.319336f, 0.218262f, -0.312988f, 0.203613f, -0.306641f,
+0.186523f, -0.306641f, 0.0493164f, -0.310059f, 0.0493164f, -0.354004f, 0.51416f,
+-0.58252f, 0.51416f, -0.512695f, 0.139648f, -0.332031f, 0.51416f, -0.150879f, 0.51416f,
+-0.0810547f, 0.522461f, -0.26709f, 0.522461f, -0.196777f, 0.0576172f, -0.196777f,
+0.0576172f, -0.26709f, 0.522461f, -0.466797f, 0.522461f, -0.396973f, 0.0576172f,
+-0.396973f, 0.0576172f, -0.466797f, 0.074707f, -0.0810547f, 0.074707f, -0.150879f,
+0.449707f, -0.332031f, 0.074707f, -0.512695f, 0.074707f, -0.58252f, 0.539551f, -0.354004f,
+0.539551f, -0.310059f, 0.463867f, -0.509277f, 0.463867f, -0.425781f, 0.419678f, -0.375488f,
+0.375488f, -0.325195f, 0.282227f, -0.299805f, 0.242676f, -0.289062f, 0.211914f, -0.19043f,
+0.161621f, -0.19043f, 0.160645f, -0.343262f, 0.212891f, -0.354492f, 0.240723f, -0.360352f,
+0.262695f, -0.372559f, 0.284668f, -0.384766f, 0.300049f, -0.404053f, 0.31543f, -0.42334f,
+0.32373f, -0.450195f, 0.332031f, -0.477051f, 0.332031f, -0.513184f, 0.332031f, -0.55957f,
+0.310791f, -0.585938f, 0.289551f, -0.612305f, 0.239746f, -0.612305f, 0.221191f, -0.612305f,
+0.200928f, -0.605713f, 0.180664f, -0.599121f, 0.167969f, -0.589355f, 0.13623f, -0.494629f,
+0.0927734f, -0.494629f, 0.112305f, -0.638672f, 0.145996f, -0.648926f, 0.185059f,
+-0.655518f, 0.224121f, -0.662109f, 0.264648f, -0.662109f, 0.314941f, -0.662109f,
+0.352295f, -0.651367f, 0.389648f, -0.640625f, 0.414551f, -0.62085f, 0.439453f, -0.601074f,
+0.45166f, -0.572754f, 0.463867f, -0.544434f, 0.463867f, -0.509277f, 0.170898f, 0.0141602f,
+0.153809f, 0.0141602f, 0.138916f, 0.0078125f, 0.124023f, 0.00146484f, 0.113281f,
+-0.00952148f, 0.102539f, -0.0205078f, 0.0964355f, -0.0351562f, 0.090332f, -0.0498047f,
+0.090332f, -0.0668945f, 0.090332f, -0.0834961f, 0.0964355f, -0.0983887f, 0.102539f,
+-0.113281f, 0.113281f, -0.124268f, 0.124023f, -0.135254f, 0.138916f, -0.141602f,
+0.153809f, -0.147949f, 0.170898f, -0.147949f, 0.187988f, -0.147949f, 0.202637f, -0.141602f,
+0.217285f, -0.135254f, 0.228271f, -0.124268f, 0.239258f, -0.113281f, 0.245605f, -0.0983887f,
+0.251953f, -0.0834961f, 0.251953f, -0.0668945f, 0.251953f, -0.0498047f, 0.245605f,
+-0.0351562f, 0.239258f, -0.0205078f, 0.228271f, -0.00952148f, 0.217285f, 0.00146484f,
+0.202637f, 0.0078125f, 0.187988f, 0.0141602f, 0.170898f, 0.0141602f, 0.474609f, -0.666016f,
+0.556641f, -0.666016f, 0.618652f, -0.644775f, 0.680664f, -0.623535f, 0.722168f, -0.584473f,
+0.763672f, -0.54541f, 0.784424f, -0.490234f, 0.805176f, -0.435059f, 0.805176f, -0.367188f,
+0.805176f, -0.316895f, 0.793701f, -0.270996f, 0.782227f, -0.225098f, 0.761475f, -0.185791f,
+0.740723f, -0.146484f, 0.712402f, -0.114258f, 0.684082f, -0.0820312f, 0.649902f,
+-0.0593262f, 0.615723f, -0.0366211f, 0.577148f, -0.0244141f, 0.538574f, -0.012207f,
+0.498047f, -0.012207f, 0.481934f, -0.012207f, 0.467773f, -0.0170898f, 0.453613f,
+-0.0219727f, 0.443115f, -0.0305176f, 0.432617f, -0.0390625f, 0.425537f, -0.0507812f,
+0.418457f, -0.0625f, 0.416504f, -0.0761719f, 0.405273f, -0.0668945f, 0.389404f, -0.0559082f,
+0.373535f, -0.0449219f, 0.355469f, -0.0351562f, 0.337402f, -0.0253906f, 0.318604f,
+-0.0187988f, 0.299805f, -0.012207f, 0.283203f, -0.012207f, 0.258789f, -0.012207f,
+0.241455f, -0.0224609f, 0.224121f, -0.0327148f, 0.213135f, -0.0493164f, 0.202148f,
+-0.065918f, 0.197266f, -0.0871582f, 0.192383f, -0.108398f, 0.192383f, -0.130371f,
+0.192383f, -0.213867f, 0.226074f, -0.280273f, 0.259766f, -0.34668f, 0.324707f, -0.393066f,
+0.349609f, -0.411133f, 0.372314f, -0.422363f, 0.39502f, -0.433594f, 0.419189f, -0.439941f,
+0.443359f, -0.446289f, 0.470215f, -0.44873f, 0.49707f, -0.451172f, 0.529785f, -0.451172f,
+0.553223f, -0.451172f, 0.577637f, -0.449463f, 0.602051f, -0.447754f, 0.619141f, -0.445801f,
+0.560059f, -0.185059f, 0.557617f, -0.174805f, 0.555176f, -0.16333f, 0.552734f, -0.151855f,
+0.550537f, -0.141357f, 0.54834f, -0.130859f, 0.546875f, -0.12207f, 0.54541f, -0.113281f,
+0.54541f, -0.108887f, 0.54541f, -0.0981445f, 0.551025f, -0.090332f, 0.556641f, -0.0825195f,
+0.570801f, -0.0825195f, 0.592285f, -0.0825195f, 0.611084f, -0.0942383f, 0.629883f,
+-0.105957f, 0.645508f, -0.126221f, 0.661133f, -0.146484f, 0.673096f, -0.174072f,
+0.685059f, -0.20166f, 0.693359f, -0.233154f, 0.70166f, -0.264648f, 0.706055f, -0.298584f,
+0.710449f, -0.33252f, 0.710449f, -0.366211f, 0.710449f, -0.425781f, 0.693604f, -0.47168f,
+0.676758f, -0.517578f, 0.645508f, -0.548584f, 0.614258f, -0.57959f, 0.569824f, -0.595703f,
+0.525391f, -0.611816f, 0.470703f, -0.611816f, 0.416016f, -0.611816f, 0.368408f, -0.596191f,
+0.320801f, -0.580566f, 0.281738f, -0.552002f, 0.242676f, -0.523438f, 0.212158f, -0.483643f,
+0.181641f, -0.443848f, 0.160645f, -0.395508f, 0.139648f, -0.347168f, 0.128906f, -0.292236f,
+0.118164f, -0.237305f, 0.118164f, -0.178223f, 0.118164f, -0.116699f, 0.135986f, -0.0600586f,
+0.153809f, -0.00341797f, 0.19043f, 0.0395508f, 0.227051f, 0.0825195f, 0.282471f,
+0.108154f, 0.337891f, 0.133789f, 0.413086f, 0.133789f, 0.459961f, 0.133789f, 0.497559f,
+0.126709f, 0.535156f, 0.119629f, 0.566162f, 0.10791f, 0.597168f, 0.0961914f, 0.623047f,
+0.0805664f, 0.648926f, 0.0649414f, 0.67334f, 0.0473633f, 0.69873f, 0.0844727f, 0.671387f,
+0.106445f, 0.640625f, 0.125488f, 0.609863f, 0.144531f, 0.573242f, 0.158936f, 0.536621f,
+0.17334f, 0.493164f, 0.181641f, 0.449707f, 0.189941f, 0.397949f, 0.189941f, 0.308105f,
+0.189941f, 0.238281f, 0.161377f, 0.168457f, 0.132812f, 0.12085f, 0.0830078f, 0.0732422f,
+0.0332031f, 0.0483398f, -0.0336914f, 0.0234375f, -0.100586f, 0.0234375f, -0.176758f,
+0.0234375f, -0.246582f, 0.0385742f, -0.310059f, 0.0537109f, -0.373535f, 0.0820312f,
+-0.427734f, 0.110352f, -0.481934f, 0.150879f, -0.526123f, 0.191406f, -0.570312f,
+0.241455f, -0.601318f, 0.291504f, -0.632324f, 0.350342f, -0.64917f, 0.40918f, -0.666016f,
+0.474609f, -0.666016f, 0.314453f, -0.15625f, 0.314453f, -0.124023f, 0.324219f, -0.108154f,
+0.333984f, -0.0922852f, 0.347656f, -0.0922852f, 0.357422f, -0.0922852f, 0.367432f,
+-0.0952148f, 0.377441f, -0.0981445f, 0.386719f, -0.102783f, 0.395996f, -0.107422f,
+0.404053f, -0.113037f, 0.412109f, -0.118652f, 0.417969f, -0.123535f, 0.47998f, -0.393066f,
+0.478027f, -0.393555f, 0.474121f, -0.393799f, 0.470215f, -0.394043f, 0.466309f, -0.394531f,
+0.462402f, -0.39502f, 0.45874f, -0.395264f, 0.455078f, -0.395508f, 0.453125f, -0.395508f,
+0.444824f, -0.395508f, 0.43457f, -0.394287f, 0.424316f, -0.393066f, 0.413574f, -0.389648f,
+0.402832f, -0.38623f, 0.391846f, -0.379883f, 0.380859f, -0.373535f, 0.371094f, -0.363281f,
+0.361816f, -0.351562f, 0.351807f, -0.329346f, 0.341797f, -0.307129f, 0.333496f, -0.279053f,
+0.325195f, -0.250977f, 0.319824f, -0.218994f, 0.314453f, -0.187012f, 0.314453f, -0.15625f,
+0.147461f, -0.0356445f, 0.140625f, 0, -0.0517578f, 0, -0.0449219f, -0.0356445f, 0.00537109f,
+-0.0488281f, 0.331543f, -0.660156f, 0.44873f, -0.660156f, 0.572754f, -0.0488281f,
+0.625977f, -0.0356445f, 0.619141f, 0, 0.351074f, 0, 0.35791f, -0.0356445f, 0.425293f,
+-0.0488281f, 0.395508f, -0.218262f, 0.165039f, -0.218262f, 0.0751953f, -0.0488281f,
+0.336426f, -0.545898f, 0.192383f, -0.271973f, 0.385742f, -0.271973f, 0.330566f, -0.373047f,
+0.40625f, -0.373047f, 0.445557f, -0.405273f, 0.484863f, -0.4375f, 0.484863f, -0.505371f,
+0.484863f, -0.551758f, 0.455322f, -0.576416f, 0.425781f, -0.601074f, 0.368652f, -0.601074f,
+0.325195f, -0.601074f, 0.284668f, -0.373047f, 0.319336f, -0.0507812f, 0.364746f,
+-0.0507812f, 0.395264f, -0.0610352f, 0.425781f, -0.0712891f, 0.444336f, -0.0905762f,
+0.462891f, -0.109863f, 0.470947f, -0.136963f, 0.479004f, -0.164062f, 0.479004f, -0.197754f,
+0.479004f, -0.22998f, 0.468506f, -0.25293f, 0.458008f, -0.275879f, 0.438721f, -0.290771f,
+0.419434f, -0.305664f, 0.39209f, -0.3125f, 0.364746f, -0.319336f, 0.331055f, -0.319336f,
+0.275391f, -0.319336f, 0.228516f, -0.0537109f, 0.245605f, -0.0527344f, 0.261719f,
+-0.0522461f, 0.275879f, -0.0512695f, 0.291504f, -0.0510254f, 0.307129f, -0.0507812f,
+0.319336f, -0.0507812f, 0.316406f, 0.00292969f, 0.289551f, 0.00292969f, 0.268311f,
+0.00244141f, 0.24707f, 0.00195312f, 0.227783f, 0.00146484f, 0.208496f, 0.000976562f,
+0.189453f, 0.000488281f, 0.17041f, 0, 0.147949f, 0, -0.00927734f, 0, -0.00341797f,
+-0.0356445f, 0.0834961f, -0.0488281f, 0.181641f, -0.606445f, 0.0996094f, -0.619141f,
+0.106445f, -0.654785f, 0.392578f, -0.654785f, 0.45752f, -0.654785f, 0.502686f, -0.644531f,
+0.547852f, -0.634277f, 0.576172f, -0.615723f, 0.604492f, -0.597168f, 0.617188f, -0.570801f,
+0.629883f, -0.544434f, 0.629883f, -0.511719f, 0.629883f, -0.474609f, 0.617676f, -0.446533f,
+0.605469f, -0.418457f, 0.583496f, -0.398682f, 0.561523f, -0.378906f, 0.53125f, -0.366699f,
+0.500977f, -0.354492f, 0.465332f, -0.349609f, 0.499023f, -0.34668f, 0.528076f, -0.335693f,
+0.557129f, -0.324707f, 0.578369f, -0.305664f, 0.599609f, -0.286621f, 0.611816f, -0.259521f,
+0.624023f, -0.232422f, 0.624023f, -0.197266f, 0.624023f, -0.0952148f, 0.547119f,
+-0.0461426f, 0.470215f, 0.00292969f, 0.316406f, 0.00292969f, 0.327148f, 0.00976562f,
+0.255371f, 0.00976562f, 0.200684f, -0.00952148f, 0.145996f, -0.0288086f, 0.109131f,
+-0.064209f, 0.0722656f, -0.0996094f, 0.0532227f, -0.14917f, 0.0341797f, -0.19873f,
+0.0341797f, -0.259277f, 0.0341797f, -0.353516f, 0.0646973f, -0.428467f, 0.0952148f,
+-0.503418f, 0.149902f, -0.555176f, 0.20459f, -0.606934f, 0.280029f, -0.634521f, 0.355469f,
+-0.662109f, 0.445312f, -0.662109f, 0.517578f, -0.662109f, 0.57373f, -0.654297f, 0.629883f,
+-0.646484f, 0.67627f, -0.636719f, 0.650391f, -0.472168f, 0.609375f, -0.472168f, 0.609375f,
+-0.566895f, 0.583008f, -0.587891f, 0.545654f, -0.599365f, 0.508301f, -0.61084f, 0.467285f,
+-0.61084f, 0.407227f, -0.61084f, 0.355957f, -0.585693f, 0.304688f, -0.560547f, 0.26709f,
+-0.513916f, 0.229492f, -0.467285f, 0.208252f, -0.401611f, 0.187012f, -0.335938f,
+0.187012f, -0.254883f, 0.187012f, -0.208496f, 0.197266f, -0.169189f, 0.20752f, -0.129883f,
+0.228516f, -0.101318f, 0.249512f, -0.0727539f, 0.281738f, -0.0566406f, 0.313965f,
+-0.0405273f, 0.358398f, -0.0405273f, 0.385254f, -0.0405273f, 0.410889f, -0.0446777f,
+0.436523f, -0.0488281f, 0.459229f, -0.0556641f, 0.481934f, -0.0625f, 0.500732f, -0.0712891f,
+0.519531f, -0.0800781f, 0.532715f, -0.0898438f, 0.570312f, -0.197266f, 0.611816f,
+-0.197266f, 0.57959f, -0.03125f, 0.555664f, -0.0234375f, 0.526123f, -0.0161133f,
+0.496582f, -0.00878906f, 0.463867f, -0.00292969f, 0.431152f, 0.00292969f, 0.396484f,
+0.00634766f, 0.361816f, 0.00976562f, 0.327148f, 0.00976562f, 0.546875f, -0.37793f,
+0.546875f, -0.438965f, 0.532227f, -0.481445f, 0.517578f, -0.523926f, 0.490967f, -0.550537f,
+0.464355f, -0.577148f, 0.427002f, -0.589111f, 0.389648f, -0.601074f, 0.344238f, -0.601074f,
+0.326172f, -0.601074f, 0.22998f, -0.0556641f, 0.245605f, -0.0541992f, 0.26001f, -0.0529785f,
+0.274414f, -0.0517578f, 0.290527f, -0.0517578f, 0.351562f, -0.0517578f, 0.39917f,
+-0.0749512f, 0.446777f, -0.0981445f, 0.479736f, -0.140869f, 0.512695f, -0.183594f,
+0.529785f, -0.243652f, 0.546875f, -0.303711f, 0.546875f, -0.37793f, 0.362305f, -0.654785f,
+0.444336f, -0.654785f, 0.50708f, -0.637207f, 0.569824f, -0.619629f, 0.612305f, -0.585205f,
+0.654785f, -0.550781f, 0.676758f, -0.500488f, 0.69873f, -0.450195f, 0.69873f, -0.384766f,
+0.69873f, -0.297363f, 0.670898f, -0.226074f, 0.643066f, -0.154785f, 0.590576f, -0.104004f,
+0.538086f, -0.0532227f, 0.462646f, -0.0256348f, 0.387207f, 0.00195312f, 0.29248f,
+0.00195312f, 0.234863f, 0.00195312f, 0.181152f, 0.000976562f, 0.127441f, 0, 0.0878906f,
+0, -0.00732422f, 0, -0.00146484f, -0.0356445f, 0.0849609f, -0.0488281f, 0.183105f,
+-0.606445f, 0.101562f, -0.619141f, 0.10791f, -0.654785f, -0.00146484f, -0.0356445f,
+0.0849609f, -0.0488281f, 0.183105f, -0.606445f, 0.101562f, -0.619141f, 0.10791f,
+-0.654785f, 0.621582f, -0.654785f, 0.592285f, -0.488281f, 0.547852f, -0.488281f,
+0.550781f, -0.594238f, 0.535645f, -0.596191f, 0.515381f, -0.597656f, 0.495117f, -0.599121f,
+0.473389f, -0.599854f, 0.45166f, -0.600586f, 0.430908f, -0.60083f, 0.410156f, -0.601074f,
+0.394043f, -0.601074f, 0.32666f, -0.601074f, 0.28418f, -0.36084f, 0.421387f, -0.36084f,
+0.449219f, -0.433105f, 0.492676f, -0.433105f, 0.457031f, -0.231934f, 0.413574f, -0.231934f,
+0.411621f, -0.306152f, 0.274414f, -0.306152f, 0.22998f, -0.0537109f, 0.319336f, -0.0537109f,
+0.349609f, -0.0537109f, 0.376221f, -0.0544434f, 0.402832f, -0.0551758f, 0.424316f,
+-0.0561523f, 0.445801f, -0.0571289f, 0.461182f, -0.0585938f, 0.476562f, -0.0600586f,
+0.484375f, -0.0615234f, 0.534668f, -0.182617f, 0.579102f, -0.182617f, 0.538086f,
+0, -0.00732422f, 0, 0.271484f, -0.289062f, 0.229004f, -0.0488281f, 0.335449f, -0.0356445f,
+0.32959f, 0, -0.000976562f, 0, 0.00488281f, -0.0356445f, 0.0849609f, -0.0488281f,
+0.183105f, -0.606445f, 0.101562f, -0.619141f, 0.10791f, -0.654785f, 0.650391f, -0.654785f,
+0.619141f, -0.478516f, 0.573242f, -0.478516f, 0.578125f, -0.594238f, 0.567871f, -0.595703f,
+0.550781f, -0.59668f, 0.533691f, -0.597656f, 0.513184f, -0.598633f, 0.492676f, -0.599609f,
+0.470947f, -0.599854f, 0.449219f, -0.600098f, 0.429443f, -0.600586f, 0.409668f, -0.601074f,
+0.394043f, -0.601074f, 0.378418f, -0.601074f, 0.371094f, -0.601074f, 0.32666f, -0.601074f,
+0.28125f, -0.342773f, 0.458496f, -0.342773f, 0.488281f, -0.425781f, 0.531738f, -0.425781f,
+0.492676f, -0.205078f, 0.449219f, -0.205078f, 0.44873f, -0.289062f, 0.0341797f, -0.255371f,
+0.0341797f, -0.353516f, 0.0661621f, -0.429199f, 0.0981445f, -0.504883f, 0.154297f,
+-0.556641f, 0.210449f, -0.608398f, 0.286621f, -0.635254f, 0.362793f, -0.662109f,
+0.451172f, -0.662109f, 0.518555f, -0.662109f, 0.574707f, -0.654053f, 0.630859f, -0.645996f,
+0.683105f, -0.631836f, 0.65625f, -0.481445f, 0.615234f, -0.481445f, 0.615723f, -0.566406f,
+0.587402f, -0.587891f, 0.548096f, -0.599365f, 0.508789f, -0.61084f, 0.459473f, -0.61084f,
+0.404785f, -0.61084f, 0.355225f, -0.586914f, 0.305664f, -0.562988f, 0.268066f, -0.516846f,
+0.230469f, -0.470703f, 0.208252f, -0.402344f, 0.186035f, -0.333984f, 0.186035f, -0.245605f,
+0.186035f, -0.194336f, 0.197754f, -0.155762f, 0.209473f, -0.117188f, 0.230469f, -0.0915527f,
+0.251465f, -0.065918f, 0.280762f, -0.0532227f, 0.310059f, -0.0405273f, 0.345703f,
+-0.0405273f, 0.383301f, -0.0405273f, 0.413818f, -0.0476074f, 0.444336f, -0.0546875f,
+0.461426f, -0.0615234f, 0.494629f, -0.24707f, 0.413086f, -0.262695f, 0.418945f, -0.295898f,
+0.710938f, -0.295898f, 0.705078f, -0.262695f, 0.638672f, -0.24707f, 0.601074f, -0.0341797f,
+0.568359f, -0.0239258f, 0.536133f, -0.0158691f, 0.503906f, -0.0078125f, 0.469971f,
+-0.00195312f, 0.436035f, 0.00390625f, 0.399658f, 0.00683594f, 0.363281f, 0.00976562f,
+0.323242f, 0.00976562f, 0.253906f, 0.00976562f, 0.199951f, -0.00854492f, 0.145996f,
+-0.0268555f, 0.109131f, -0.0612793f, 0.0722656f, -0.0957031f, 0.0532227f, -0.144775f,
+0.0341797f, -0.193848f, 0.0341797f, -0.255371f, -0.00732422f, 0, -0.000976562f, -0.0361328f,
+0.0849609f, -0.0488281f, 0.183105f, -0.605957f, 0.101562f, -0.619141f, 0.10791f,
+-0.654785f, 0.419922f, -0.654785f, 0.413574f, -0.619141f, 0.327148f, -0.605957f,
+0.284668f, -0.36377f, 0.522949f, -0.36377f, 0.56543f, -0.605957f, 0.483887f, -0.619141f,
+0.490234f, -0.654785f, 0.803223f, -0.654785f, 0.796875f, -0.619141f, 0.709961f, -0.605957f,
+0.611816f, -0.0488281f, 0.693848f, -0.0361328f, 0.6875f, 0, 0.374512f, 0, 0.380859f,
+-0.0361328f, 0.467285f, -0.0488281f, 0.513184f, -0.310059f, 0.274902f, -0.310059f,
+0.229004f, -0.0488281f, 0.310547f, -0.0361328f, 0.304199f, 0, 0.226562f, -0.0488281f,
+0.308105f, -0.0361328f, 0.301758f, 0, -0.00976562f, 0, -0.00341797f, -0.0361328f,
+0.0825195f, -0.0488281f, 0.180664f, -0.605957f, 0.0991211f, -0.619141f, 0.105469f,
+-0.654785f, 0.41748f, -0.654785f, 0.411133f, -0.619141f, 0.324707f, -0.605957f, 0.299316f,
+-0.606445f, 0.217773f, -0.619141f, 0.224121f, -0.654785f, 0.526367f, -0.654785f,
+0.52002f, -0.619141f, 0.443359f, -0.606445f, 0.374023f, -0.210938f, 0.362305f, -0.144043f,
+0.335205f, -0.101318f, 0.308105f, -0.0585938f, 0.272949f, -0.0339355f, 0.237793f,
+-0.00927734f, 0.19751f, 0.000244141f, 0.157227f, 0.00976562f, 0.119141f, 0.00976562f,
+0.0854492f, 0.00976562f, 0.0527344f, 0.00585938f, 0.0200195f, 0.00195312f, -0.00195312f,
+-0.00488281f, 0.0244141f, -0.15332f, 0.0649414f, -0.15332f, 0.0668945f, -0.065918f,
+0.0742188f, -0.0546875f, 0.0878906f, -0.0483398f, 0.101562f, -0.0419922f, 0.12207f,
+-0.0419922f, 0.138672f, -0.0419922f, 0.154053f, -0.0478516f, 0.169434f, -0.0537109f,
+0.181885f, -0.0654297f, 0.194336f, -0.0771484f, 0.203369f, -0.0944824f, 0.212402f,
+-0.111816f, 0.216309f, -0.134766f, 0.229004f, -0.0488281f, 0.315918f, -0.0356445f,
+0.310059f, 0, -0.00732422f, 0, -0.00146484f, -0.0356445f, 0.0849609f, -0.0488281f,
+0.183105f, -0.606445f, 0.101562f, -0.619141f, 0.10791f, -0.654785f, 0.415039f, -0.654785f,
+0.408691f, -0.619141f, 0.327148f, -0.606445f, 0.282715f, -0.350586f, 0.563965f, -0.606445f,
+0.508789f, -0.619141f, 0.515137f, -0.654785f, 0.722656f, -0.654785f, 0.716309f, -0.619141f,
+0.648438f, -0.606445f, 0.41748f, -0.396973f, 0.589844f, -0.0488281f, 0.655273f, -0.0356445f,
+0.649414f, 0, 0.460938f, 0, 0.316406f, -0.310547f, 0.270996f, -0.288574f, 0.425781f,
+-0.619141f, 0.327148f, -0.606445f, 0.229492f, -0.0517578f, 0.284668f, -0.0517578f,
+0.310059f, -0.0517578f, 0.339111f, -0.0527344f, 0.368164f, -0.0537109f, 0.394043f,
+-0.0551758f, 0.419922f, -0.0566406f, 0.439941f, -0.0583496f, 0.459961f, -0.0600586f,
+0.467773f, -0.0615234f, 0.524902f, -0.197754f, 0.565918f, -0.197754f, 0.522461f,
+0, -0.00732422f, 0, -0.00146484f, -0.0356445f, 0.0849609f, -0.0488281f, 0.183105f,
+-0.606445f, 0.102051f, -0.619141f, 0.108398f, -0.654785f, 0.432129f, -0.654785f,
+0.361328f, 0, 0.339355f, 0, 0.231445f, -0.56543f, 0.140137f, -0.0488281f, 0.225586f,
+-0.0356445f, 0.219727f, 0, -0.0131836f, 0, -0.00732422f, -0.0356445f, 0.0791016f,
+-0.0488281f, 0.177246f, -0.606445f, 0.0957031f, -0.619141f, 0.102051f, -0.654785f,
+0.342773f, -0.654785f, 0.42334f, -0.228027f, 0.655762f, -0.654785f, 0.916992f, -0.654785f,
+0.910645f, -0.619141f, 0.824219f, -0.606445f, 0.726074f, -0.0488281f, 0.807617f,
+-0.0356445f, 0.801758f, 0, 0.480957f, 0, 0.486816f, -0.0356445f, 0.582031f, -0.0488281f,
+0.67334f, -0.56543f, 0.598145f, -0.606445f, 0.512695f, -0.619141f, 0.519043f, -0.654785f,
+0.751953f, -0.654785f, 0.745605f, -0.619141f, 0.65918f, -0.606445f, 0.552734f, 0,
+0.496582f, 0, 0.232422f, -0.542969f, 0.144043f, -0.0488281f, 0.229492f, -0.0356445f,
+0.223633f, 0, -0.00927734f, 0, -0.00341797f, -0.0356445f, 0.0830078f, -0.0488281f,
+0.181152f, -0.606445f, 0.0996094f, -0.619141f, 0.105957f, -0.654785f, 0.317383f,
+-0.654785f, 0.529785f, -0.218262f, 0.546875f, -0.411621f, 0.546875f, -0.457031f,
+0.537598f, -0.493652f, 0.52832f, -0.530273f, 0.510498f, -0.556396f, 0.492676f, -0.58252f,
+0.466309f, -0.59668f, 0.439941f, -0.61084f, 0.40625f, -0.61084f, 0.368652f, -0.61084f,
+0.337402f, -0.593018f, 0.306152f, -0.575195f, 0.28125f, -0.545654f, 0.256348f, -0.516113f,
+0.238037f, -0.477783f, 0.219727f, -0.439453f, 0.20752f, -0.397949f, 0.195312f, -0.356445f,
+0.189209f, -0.314697f, 0.183105f, -0.272949f, 0.183105f, -0.236816f, 0.183105f, -0.191895f,
+0.192139f, -0.155762f, 0.201172f, -0.119629f, 0.218506f, -0.0939941f, 0.23584f, -0.0683594f,
+0.261475f, -0.0544434f, 0.287109f, -0.0405273f, 0.320801f, -0.0405273f, 0.358887f,
+-0.0405273f, 0.390381f, -0.0578613f, 0.421875f, -0.0751953f, 0.447021f, -0.104492f,
+0.472168f, -0.133789f, 0.490967f, -0.171875f, 0.509766f, -0.209961f, 0.522217f, -0.250977f,
+0.534668f, -0.291992f, 0.540771f, -0.33374f, 0.546875f, -0.375488f, 0.546875f, -0.411621f,
+0.312012f, 0.00976562f, 0.249023f, 0.00976562f, 0.198242f, -0.0100098f, 0.147461f,
+-0.0297852f, 0.111328f, -0.0651855f, 0.0751953f, -0.100586f, 0.0556641f, -0.14917f,
+0.0361328f, -0.197754f, 0.0361328f, -0.255859f, 0.0361328f, -0.311035f, 0.0471191f,
+-0.362549f, 0.0581055f, -0.414062f, 0.079834f, -0.459229f, 0.101562f, -0.504395f,
+0.134033f, -0.541748f, 0.166504f, -0.579102f, 0.20874f, -0.605713f, 0.250977f, -0.632324f,
+0.303467f, -0.647217f, 0.355957f, -0.662109f, 0.417969f, -0.662109f, 0.480957f, -0.662109f,
+0.531738f, -0.642334f, 0.58252f, -0.622559f, 0.618652f, -0.587158f, 0.654785f, -0.551758f,
+0.674316f, -0.50293f, 0.693848f, -0.454102f, 0.693848f, -0.396484f, 0.693848f, -0.349121f,
+0.68457f, -0.300537f, 0.675293f, -0.251953f, 0.655762f, -0.206787f, 0.63623f, -0.161621f,
+0.605957f, -0.12207f, 0.575684f, -0.0825195f, 0.533203f, -0.0532227f, 0.490723f,
+-0.0239258f, 0.435791f, -0.00708008f, 0.380859f, 0.00976562f, 0.312012f, 0.00976562f,
+0.313965f, -0.310547f, 0.351074f, -0.310547f, 0.380615f, -0.322021f, 0.410156f, -0.333496f,
+0.430908f, -0.355225f, 0.45166f, -0.376953f, 0.462891f, -0.407959f, 0.474121f, -0.438965f,
+0.474121f, -0.478516f, 0.474121f, -0.512207f, 0.465332f, -0.5354f, 0.456543f, -0.558594f,
+0.441406f, -0.573242f, 0.42627f, -0.587891f, 0.405273f, -0.594238f, 0.384277f, -0.600586f,
+0.360352f, -0.600586f, 0.32666f, -0.600586f, 0.275391f, -0.310547f, 0.265625f, -0.256836f,
+0.228516f, -0.0488281f, 0.335449f, -0.0356445f, 0.330078f, 0, -0.000488281f, 0, 0.00488281f,
+-0.0356445f, 0.0839844f, -0.0488281f, 0.182617f, -0.606445f, 0.100586f, -0.619141f,
+0.106445f, -0.654785f, 0.365723f, -0.654785f, 0.432129f, -0.654785f, 0.479736f, -0.642578f,
+0.527344f, -0.630371f, 0.557861f, -0.607666f, 0.588379f, -0.584961f, 0.602783f, -0.55249f,
+0.617188f, -0.52002f, 0.617188f, -0.47998f, 0.617188f, -0.430176f, 0.600098f, -0.38916f,
+0.583008f, -0.348145f, 0.548096f, -0.318604f, 0.513184f, -0.289062f, 0.460205f, -0.272949f,
+0.407227f, -0.256836f, 0.335449f, -0.256836f, 0.693848f, -0.396484f, 0.693848f, -0.337891f,
+0.679688f, -0.27832f, 0.665527f, -0.21875f, 0.635498f, -0.16626f, 0.605469f, -0.11377f,
+0.558105f, -0.0725098f, 0.510742f, -0.03125f, 0.444336f, -0.00976562f, 0.459961f,
+0.0141602f, 0.476562f, 0.0405273f, 0.491943f, 0.0578613f, 0.507324f, 0.0751953f,
+0.520996f, 0.0854492f, 0.534668f, 0.0957031f, 0.546631f, 0.0998535f, 0.558594f, 0.104004f,
+0.569336f, 0.104004f, 0.582031f, 0.104004f, 0.593262f, 0.102539f, 0.604492f, 0.101074f,
+0.612793f, 0.100098f, 0.619141f, 0.138184f, 0.609863f, 0.14209f, 0.594727f, 0.14624f,
+0.57959f, 0.150391f, 0.562012f, 0.153809f, 0.544434f, 0.157227f, 0.526123f, 0.159668f,
+0.507812f, 0.162109f, 0.491699f, 0.162109f, 0.455566f, 0.162109f, 0.429199f, 0.154053f,
+0.402832f, 0.145996f, 0.381592f, 0.129883f, 0.360352f, 0.11377f, 0.342041f, 0.0895996f,
+0.32373f, 0.0654297f, 0.304199f, 0.0332031f, 0.289551f, 0.00878906f, 0.231445f, 0.00537109f,
+0.18457f, -0.015625f, 0.137695f, -0.0366211f, 0.104736f, -0.0715332f, 0.0717773f,
+-0.106445f, 0.0539551f, -0.153564f, 0.0361328f, -0.200684f, 0.0361328f, -0.255859f,
+0.0361328f, -0.311035f, 0.0471191f, -0.362549f, 0.0581055f, -0.414062f, 0.079834f,
+-0.459229f, 0.101562f, -0.504395f, 0.134033f, -0.541748f, 0.166504f, -0.579102f,
+0.20874f, -0.605713f, 0.250977f, -0.632324f, 0.303467f, -0.647217f, 0.355957f, -0.662109f,
+0.417969f, -0.662109f, 0.480957f, -0.662109f, 0.531738f, -0.642334f, 0.58252f, -0.622559f,
+0.618652f, -0.587158f, 0.654785f, -0.551758f, 0.674316f, -0.50293f, 0.693848f, -0.454102f,
+0.693848f, -0.396484f, 0.546875f, -0.411621f, 0.546875f, -0.457031f, 0.537598f, -0.493652f,
+0.52832f, -0.530273f, 0.510498f, -0.556396f, 0.492676f, -0.58252f, 0.466309f, -0.59668f,
+0.439941f, -0.61084f, 0.40625f, -0.61084f, 0.368652f, -0.61084f, 0.337402f, -0.593018f,
+0.306152f, -0.575195f, 0.28125f, -0.545654f, 0.256348f, -0.516113f, 0.238037f, -0.477783f,
+0.219727f, -0.439453f, 0.20752f, -0.397949f, 0.195312f, -0.356445f, 0.189209f, -0.314697f,
+0.183105f, -0.272949f, 0.183105f, -0.236816f, 0.183105f, -0.191895f, 0.192139f, -0.155762f,
+0.201172f, -0.119629f, 0.218506f, -0.0939941f, 0.23584f, -0.0683594f, 0.261475f,
+-0.0544434f, 0.287109f, -0.0405273f, 0.320801f, -0.0405273f, 0.358887f, -0.0405273f,
+0.390381f, -0.0578613f, 0.421875f, -0.0751953f, 0.447021f, -0.104492f, 0.472168f,
+-0.133789f, 0.490967f, -0.171875f, 0.509766f, -0.209961f, 0.522217f, -0.250977f,
+0.534668f, -0.291992f, 0.540771f, -0.33374f, 0.546875f, -0.375488f, 0.546875f, -0.411621f,
+0.269531f, -0.277344f, 0.229004f, -0.0488281f, 0.310547f, -0.0356445f, 0.304688f,
+0, -0.00146484f, 0, 0.00439453f, -0.0356445f, 0.0844727f, -0.0488281f, 0.182617f,
+-0.606445f, 0.101074f, -0.619141f, 0.107422f, -0.654785f, 0.368652f, -0.654785f,
+0.43457f, -0.654785f, 0.481934f, -0.644287f, 0.529297f, -0.633789f, 0.559814f, -0.613037f,
+0.590332f, -0.592285f, 0.60498f, -0.561523f, 0.619629f, -0.530762f, 0.619629f, -0.489746f,
+0.619629f, -0.447266f, 0.607422f, -0.414307f, 0.595215f, -0.381348f, 0.57373f, -0.357178f,
+0.552246f, -0.333008f, 0.522705f, -0.31665f, 0.493164f, -0.300293f, 0.458984f, -0.291016f,
+0.557129f, -0.0488281f, 0.628906f, -0.0356445f, 0.623047f, 0, 0.427734f, 0, 0.326172f,
+-0.277344f, 0.305664f, -0.331055f, 0.345703f, -0.331055f, 0.377441f, -0.341309f,
+0.40918f, -0.351562f, 0.431152f, -0.37085f, 0.453125f, -0.390137f, 0.464844f, -0.418213f,
+0.476562f, -0.446289f, 0.476562f, -0.481934f, 0.476562f, -0.54541f, 0.447021f, -0.573242f,
+0.41748f, -0.601074f, 0.360352f, -0.601074f, 0.32666f, -0.601074f, 0.278809f, -0.331055f,
+0.210938f, 0.00976562f, 0.146973f, 0.00976562f, 0.0983887f, -0.0012207f, 0.0498047f,
+-0.012207f, 0.0180664f, -0.0249023f, 0.0493164f, -0.200684f, 0.0922852f, -0.200684f,
+0.0927734f, -0.0957031f, 0.101074f, -0.0834961f, 0.114502f, -0.0732422f, 0.12793f,
+-0.0629883f, 0.144531f, -0.0554199f, 0.161133f, -0.0478516f, 0.180176f, -0.0437012f,
+0.199219f, -0.0395508f, 0.219238f, -0.0395508f, 0.257812f, -0.0395508f, 0.285889f,
+-0.0480957f, 0.313965f, -0.0566406f, 0.332031f, -0.0717773f, 0.350098f, -0.0869141f,
+0.358887f, -0.107422f, 0.367676f, -0.12793f, 0.367676f, -0.151855f, 0.367676f, -0.178223f,
+0.355957f, -0.197754f, 0.344238f, -0.217285f, 0.324951f, -0.233154f, 0.305664f, -0.249023f,
+0.28125f, -0.262939f, 0.256836f, -0.276855f, 0.231201f, -0.29126f, 0.205566f, -0.305664f,
+0.181152f, -0.32251f, 0.156738f, -0.339355f, 0.137451f, -0.361328f, 0.118164f, -0.383301f,
+0.106445f, -0.411621f, 0.0947266f, -0.439941f, 0.0947266f, -0.478027f, 0.0947266f,
+-0.524902f, 0.112061f, -0.559326f, 0.129395f, -0.59375f, 0.162354f, -0.616699f, 0.195312f,
+-0.639648f, 0.242676f, -0.650879f, 0.290039f, -0.662109f, 0.350098f, -0.662109f,
+0.391602f, -0.662109f, 0.435059f, -0.65625f, 0.478516f, -0.650391f, 0.51416f, -0.641113f,
+0.486816f, -0.485352f, 0.443359f, -0.485352f, 0.439941f, -0.581055f, 0.421387f, -0.595215f,
+0.395264f, -0.603271f, 0.369141f, -0.611328f, 0.336914f, -0.611328f, 0.305664f, -0.611328f,
+0.283203f, -0.604004f, 0.260742f, -0.59668f, 0.246582f, -0.584473f, 0.232422f, -0.572266f,
+0.225586f, -0.555908f, 0.21875f, -0.539551f, 0.21875f, -0.521973f, 0.21875f, -0.498535f,
+0.230469f, -0.480469f, 0.242188f, -0.462402f, 0.261719f, -0.447266f, 0.28125f, -0.432129f,
+0.305908f, -0.418457f, 0.330566f, -0.404785f, 0.356201f, -0.390137f, 0.381836f, -0.375488f,
+0.406494f, -0.358643f, 0.431152f, -0.341797f, 0.450684f, -0.320068f, 0.470215f, -0.29834f,
+0.481934f, -0.270752f, 0.493652f, -0.243164f, 0.493652f, -0.206543f, 0.493652f, -0.152832f,
+0.474854f, -0.112305f, 0.456055f, -0.0717773f, 0.419922f, -0.0446777f, 0.383789f,
+-0.0175781f, 0.331299f, -0.00390625f, 0.278809f, 0.00976562f, 0.210938f, 0.00976562f,
+0.081543f, 0, 0.0874023f, -0.0356445f, 0.193848f, -0.0488281f, 0.291504f, -0.603027f,
+0.261719f, -0.603027f, 0.250488f, -0.603027f, 0.235352f, -0.602295f, 0.220215f, -0.601562f,
+0.204834f, -0.600098f, 0.189453f, -0.598633f, 0.175293f, -0.596924f, 0.161133f, -0.595215f,
+0.151855f, -0.593262f, 0.115234f, -0.47168f, 0.0727539f, -0.47168f, 0.10498f, -0.654785f,
+0.643555f, -0.654785f, 0.611328f, -0.47168f, 0.568359f, -0.47168f, 0.574707f, -0.593262f,
+0.565918f, -0.595215f, 0.552002f, -0.59668f, 0.538086f, -0.598145f, 0.522461f, -0.599365f,
+0.506836f, -0.600586f, 0.491455f, -0.601318f, 0.476074f, -0.602051f, 0.464844f, -0.602051f,
+0.436035f, -0.602051f, 0.338379f, -0.0488281f, 0.439941f, -0.0356445f, 0.434082f,
+0, 0.081543f, -0.619141f, 0.0878906f, -0.654785f, 0.390137f, -0.654785f, 0.383789f,
+-0.619141f, 0.297363f, -0.606445f, 0.242188f, -0.286133f, 0.236816f, -0.255859f,
+0.233887f, -0.229736f, 0.230957f, -0.203613f, 0.230957f, -0.189941f, 0.230957f, -0.122559f,
+0.264893f, -0.0910645f, 0.298828f, -0.0595703f, 0.361328f, -0.0595703f, 0.405273f,
+-0.0595703f, 0.438721f, -0.0722656f, 0.472168f, -0.0849609f, 0.49585f, -0.107178f,
+0.519531f, -0.129395f, 0.533936f, -0.159912f, 0.54834f, -0.19043f, 0.554688f, -0.226074f,
+0.621582f, -0.606445f, 0.536133f, -0.619141f, 0.54248f, -0.654785f, 0.765137f, -0.654785f,
+0.758789f, -0.619141f, 0.682129f, -0.606445f, 0.616211f, -0.22998f, 0.606934f, -0.177734f,
+0.587646f, -0.133789f, 0.568359f, -0.0898438f, 0.5354f, -0.0581055f, 0.502441f, -0.0263672f,
+0.453613f, -0.00854492f, 0.404785f, 0.00927734f, 0.336426f, 0.00927734f, 0.270996f,
+0.00927734f, 0.224121f, -0.00610352f, 0.177246f, -0.0214844f, 0.146973f, -0.048584f,
+0.116699f, -0.0756836f, 0.102295f, -0.113281f, 0.0878906f, -0.150879f, 0.0878906f,
+-0.194824f, 0.0878906f, -0.212891f, 0.0905762f, -0.235596f, 0.0932617f, -0.258301f,
+0.0976562f, -0.284668f, 0.15332f, -0.606445f, 0.734863f, -0.654785f, 0.729004f, -0.619141f,
+0.664551f, -0.605957f, 0.312012f, 0.0151367f, 0.256836f, 0.0151367f, 0.109863f, -0.605957f,
+0.0585938f, -0.619141f, 0.0644531f, -0.654785f, 0.331543f, -0.654785f, 0.325684f,
+-0.619141f, 0.255371f, -0.605957f, 0.354004f, -0.176758f, 0.591797f, -0.605957f,
+0.52832f, -0.619141f, 0.53418f, -0.654785f, 0.881836f, -0.606445f, 0.592773f, 0.0151367f,
+0.546875f, 0.0151367f, 0.469727f, -0.398926f, 0.273438f, 0.0151367f, 0.224121f, 0.0151367f,
+0.132324f, -0.606445f, 0.0688477f, -0.619141f, 0.0751953f, -0.654785f, 0.350586f,
+-0.654785f, 0.344238f, -0.619141f, 0.265137f, -0.606445f, 0.316895f, -0.208984f,
+0.510742f, -0.61377f, 0.55957f, -0.61377f, 0.633789f, -0.206543f, 0.810547f, -0.606445f,
+0.730469f, -0.619141f, 0.736816f, -0.654785f, 0.947754f, -0.654785f, 0.941406f, -0.619141f,
+0.125488f, -0.0488281f, 0.199219f, -0.0356445f, 0.193359f, 0, -0.0253906f, 0, -0.0195312f,
+-0.0356445f, 0.0551758f, -0.0488281f, 0.280273f, -0.310059f, 0.164062f, -0.606445f,
+0.0927734f, -0.619141f, 0.0991211f, -0.654785f, 0.398438f, -0.654785f, 0.39209f,
+-0.619141f, 0.311523f, -0.606445f, 0.381348f, -0.427246f, 0.535645f, -0.606445f,
+0.461914f, -0.619141f, 0.468262f, -0.654785f, 0.6875f, -0.654785f, 0.681152f, -0.619141f,
+0.606445f, -0.606445f, 0.40332f, -0.371094f, 0.529785f, -0.0488281f, 0.601562f, -0.0356445f,
+0.595703f, 0, 0.296387f, 0, 0.302246f, -0.0356445f, 0.382812f, -0.0488281f, 0.302246f,
+-0.253906f, 0.381836f, -0.267578f, 0.342773f, -0.0488281f, 0.444336f, -0.0356445f,
+0.438477f, 0, 0.0859375f, 0, 0.0917969f, -0.0356445f, 0.198242f, -0.0488281f, 0.236816f,
+-0.264648f, 0.122559f, -0.606445f, 0.0512695f, -0.619141f, 0.0576172f, -0.654785f,
+0.368164f, -0.654785f, 0.361816f, -0.619141f, 0.271484f, -0.606445f, 0.358398f, -0.334961f,
+0.536133f, -0.606445f, 0.458496f, -0.619141f, 0.464844f, -0.654785f, 0.6875f, -0.654785f,
+0.681152f, -0.619141f, 0.609375f, -0.606445f, 0.00732422f, -0.0556641f, 0.410645f,
+-0.603027f, 0.316895f, -0.603027f, 0.294434f, -0.603027f, 0.272705f, -0.602295f,
+0.250977f, -0.601562f, 0.232178f, -0.600098f, 0.213379f, -0.598633f, 0.198242f, -0.596924f,
+0.183105f, -0.595215f, 0.173828f, -0.593262f, 0.140625f, -0.490234f, 0.097168f, -0.490234f,
+0.125977f, -0.654785f, 0.585449f, -0.654785f, 0.576172f, -0.603027f, 0.174316f, -0.0507812f,
+0.265625f, -0.0507812f, 0.294434f, -0.0507812f, 0.324463f, -0.0524902f, 0.354492f,
+-0.0541992f, 0.380615f, -0.0568848f, 0.406738f, -0.0595703f, 0.426758f, -0.0622559f,
+0.446777f, -0.0649414f, 0.456055f, -0.0668945f, 0.506836f, -0.191895f, 0.550781f,
+-0.191895f, 0.503906f, 0, -0.00244141f, 0, 0.0249023f, 0.133789f, 0.170898f, -0.693848f,
+0.383789f, -0.693848f, 0.37793f, -0.661133f, 0.275391f, -0.641113f, 0.147949f, 0.0810547f,
+0.243652f, 0.101074f, 0.237793f, 0.133789f, 0.165527f, 0.00976562f, 0.0634766f, -0.658691f,
+0.125488f, -0.658691f, 0.229004f, 0.00976562f, -0.0517578f, 0.133789f, -0.0458984f,
+0.101074f, 0.0566406f, 0.0810547f, 0.184082f, -0.641113f, 0.0883789f, -0.661133f,
+0.0942383f, -0.693848f, 0.307129f, -0.693848f, 0.161133f, 0.133789f, 0.456055f, -0.189941f,
+0.294922f, -0.561523f, 0.133789f, -0.189941f, 0.0639648f, -0.189941f, 0.272949f,
+-0.654785f, 0.316895f, -0.654785f, 0.525879f, -0.189941f, -0.074707f, 0.13916f, -0.074707f,
+0.0688477f, 0.440918f, 0.0688477f, 0.440918f, 0.13916f, 0.26709f, -0.545898f, 0.112305f,
+-0.676758f, 0.115723f, -0.694824f, 0.245117f, -0.694824f, 0.312012f, -0.561523f,
+0.309082f, -0.545898f, 0.401855f, -0.0439453f, 0.455078f, -0.0283203f, 0.451172f,
+0, 0.281738f, 0, 0.279785f, -0.0673828f, 0.266602f, -0.0507812f, 0.250732f, -0.0366211f,
+0.234863f, -0.0224609f, 0.217041f, -0.0119629f, 0.199219f, -0.00146484f, 0.179932f,
+0.00439453f, 0.160645f, 0.0102539f, 0.140625f, 0.0102539f, 0.112305f, 0.0102539f,
+0.088623f, 0, 0.0649414f, -0.0102539f, 0.0478516f, -0.0310059f, 0.0307617f, -0.0517578f,
+0.0212402f, -0.0830078f, 0.0117188f, -0.114258f, 0.0117188f, -0.155762f, 0.0117188f,
+-0.21875f, 0.0314941f, -0.275879f, 0.0512695f, -0.333008f, 0.0874023f, -0.376221f,
+0.123535f, -0.419434f, 0.174316f, -0.445068f, 0.225098f, -0.470703f, 0.287109f, -0.470703f,
+0.322266f, -0.470703f, 0.35376f, -0.4646f, 0.385254f, -0.458496f, 0.409668f, -0.44873f,
+0.449707f, -0.466797f, 0.476074f, -0.466797f, 0.140137f, -0.171387f, 0.140137f, -0.143066f,
+0.145264f, -0.122314f, 0.150391f, -0.101562f, 0.158936f, -0.0881348f, 0.16748f, -0.074707f,
+0.177979f, -0.0683594f, 0.188477f, -0.0620117f, 0.199219f, -0.0620117f, 0.210449f,
+-0.0620117f, 0.222412f, -0.0681152f, 0.234375f, -0.0742188f, 0.24585f, -0.0842285f,
+0.257324f, -0.0942383f, 0.267578f, -0.106201f, 0.277832f, -0.118164f, 0.285645f,
+-0.129883f, 0.333984f, -0.404785f, 0.32373f, -0.412598f, 0.307129f, -0.416992f, 0.290527f,
+-0.421387f, 0.273438f, -0.421387f, 0.243652f, -0.421387f, 0.218994f, -0.399414f,
+0.194336f, -0.377441f, 0.176758f, -0.341797f, 0.15918f, -0.306152f, 0.149658f, -0.261475f,
+0.140137f, -0.216797f, 0.140137f, -0.171387f, 0.341797f, -0.286621f, 0.341797f, -0.315918f,
+0.33667f, -0.336914f, 0.331543f, -0.35791f, 0.323242f, -0.371094f, 0.314941f, -0.384277f,
+0.304199f, -0.390625f, 0.293457f, -0.396973f, 0.282715f, -0.396973f, 0.273438f, -0.396973f,
+0.262939f, -0.391846f, 0.252441f, -0.386719f, 0.241455f, -0.377686f, 0.230469f, -0.368652f,
+0.219238f, -0.356201f, 0.208008f, -0.34375f, 0.197754f, -0.329102f, 0.150391f, -0.0605469f,
+0.15625f, -0.0546875f, 0.164795f, -0.050293f, 0.17334f, -0.0458984f, 0.182129f, -0.0429688f,
+0.190918f, -0.0400391f, 0.199219f, -0.0385742f, 0.20752f, -0.0371094f, 0.213379f,
+-0.0371094f, 0.240723f, -0.0371094f, 0.26416f, -0.059082f, 0.287598f, -0.0810547f,
+0.304932f, -0.116699f, 0.322266f, -0.152344f, 0.332031f, -0.196777f, 0.341797f, -0.241211f,
+0.341797f, -0.286621f, 0.219238f, 0.0112305f, 0.195801f, 0.0112305f, 0.169678f, 0.00927734f,
+0.143555f, 0.00732422f, 0.116699f, 0.00341797f, 0.0898438f, -0.000488281f, 0.0634766f,
+-0.00708008f, 0.0371094f, -0.0136719f, 0.0131836f, -0.0234375f, 0.124023f, -0.650879f,
+0.0791016f, -0.662109f, 0.0844727f, -0.693848f, 0.262695f, -0.693848f, 0.225586f,
+-0.483887f, 0.224121f, -0.475098f, 0.221924f, -0.463379f, 0.219727f, -0.45166f, 0.217041f,
+-0.438965f, 0.214355f, -0.42627f, 0.211426f, -0.413574f, 0.208496f, -0.400879f, 0.205078f,
+-0.38916f, 0.218262f, -0.406738f, 0.233887f, -0.421875f, 0.249512f, -0.437012f, 0.26709f,
+-0.447998f, 0.284668f, -0.458984f, 0.303711f, -0.465088f, 0.322754f, -0.471191f,
+0.342285f, -0.471191f, 0.369629f, -0.471191f, 0.393066f, -0.460693f, 0.416504f, -0.450195f,
+0.433594f, -0.429688f, 0.450684f, -0.40918f, 0.460449f, -0.378662f, 0.470215f, -0.348145f,
+0.470215f, -0.308105f, 0.470215f, -0.266113f, 0.461914f, -0.226074f, 0.453613f, -0.186035f,
+0.438232f, -0.150635f, 0.422852f, -0.115234f, 0.400879f, -0.0854492f, 0.378906f,
+-0.0556641f, 0.351074f, -0.0341797f, 0.323242f, -0.0126953f, 0.290039f, -0.000732422f,
+0.256836f, 0.0112305f, 0.219238f, 0.0112305f, 0.190918f, 0.00976562f, 0.146973f,
+0.00976562f, 0.11377f, -0.00268555f, 0.0805664f, -0.0151367f, 0.0585938f, -0.0378418f,
+0.0366211f, -0.0605469f, 0.0256348f, -0.0917969f, 0.0146484f, -0.123047f, 0.0146484f,
+-0.161133f, 0.0146484f, -0.237305f, 0.0383301f, -0.29541f, 0.0620117f, -0.353516f,
+0.100342f, -0.392578f, 0.138672f, -0.431641f, 0.187256f, -0.451416f, 0.23584f, -0.471191f,
+0.285645f, -0.471191f, 0.305176f, -0.471191f, 0.325684f, -0.469238f, 0.346191f, -0.467285f,
+0.365479f, -0.464111f, 0.384766f, -0.460938f, 0.401367f, -0.457031f, 0.417969f, -0.453125f,
+0.429199f, -0.449219f, 0.405273f, -0.308594f, 0.370117f, -0.308594f, 0.363281f, -0.39209f,
+0.351074f, -0.405762f, 0.33374f, -0.413574f, 0.316406f, -0.421387f, 0.291992f, -0.421387f,
+0.263672f, -0.421387f, 0.237305f, -0.402588f, 0.210938f, -0.383789f, 0.19043f, -0.350098f,
+0.169922f, -0.316406f, 0.157715f, -0.269531f, 0.145508f, -0.222656f, 0.145508f, -0.166016f,
+0.145508f, -0.135254f, 0.1521f, -0.113281f, 0.158691f, -0.0913086f, 0.169922f, -0.0773926f,
+0.181152f, -0.0634766f, 0.196777f, -0.0571289f, 0.212402f, -0.0507812f, 0.22998f,
+-0.0507812f, 0.266602f, -0.0507812f, 0.296631f, -0.0639648f, 0.32666f, -0.0771484f,
+0.354492f, -0.0966797f, 0.375977f, -0.065918f, 0.362793f, -0.0541992f, 0.34375f,
+-0.0410156f, 0.324707f, -0.027832f, 0.301025f, -0.0166016f, 0.277344f, -0.00537109f,
+0.249512f, 0.00219727f, 0.22168f, 0.00976562f, 0.190918f, 0.00976562f, 0.134766f,
+0.00976562f, 0.108887f, 0.00976562f, 0.0864258f, -0.000488281f, 0.0639648f, -0.0107422f,
+0.0473633f, -0.0307617f, 0.0307617f, -0.0507812f, 0.0212402f, -0.0810547f, 0.0117188f,
+-0.111328f, 0.0117188f, -0.151367f, 0.0117188f, -0.214355f, 0.0290527f, -0.272217f,
+0.0463867f, -0.330078f, 0.0786133f, -0.374023f, 0.11084f, -0.417969f, 0.15625f, -0.444336f,
+0.20166f, -0.470703f, 0.257812f, -0.470703f, 0.268555f, -0.470703f, 0.280762f, -0.469727f,
+0.292969f, -0.46875f, 0.304443f, -0.467041f, 0.315918f, -0.465332f, 0.325928f, -0.462646f,
+0.335938f, -0.459961f, 0.342773f, -0.457031f, 0.343262f, -0.462891f, 0.343994f, -0.471436f,
+0.344727f, -0.47998f, 0.345703f, -0.48877f, 0.34668f, -0.497559f, 0.347656f, -0.505371f,
+0.348633f, -0.513184f, 0.349609f, -0.517578f, 0.37207f, -0.650391f, 0.293945f, -0.662109f,
+0.299805f, -0.693848f, 0.512207f, -0.693848f, 0.396484f, -0.0415039f, 0.444824f,
+-0.0292969f, 0.438965f, 0, 0.276855f, 0, 0.273438f, -0.0703125f, 0.260254f, -0.0527344f,
+0.244141f, -0.0378418f, 0.228027f, -0.0229492f, 0.209961f, -0.0124512f, 0.191895f,
+-0.00195312f, 0.172852f, 0.00390625f, 0.153809f, 0.00976562f, 0.134766f, 0.00976562f,
+0.140137f, -0.172852f, 0.140137f, -0.143555f, 0.144287f, -0.122559f, 0.148438f, -0.101562f,
+0.155518f, -0.0883789f, 0.162598f, -0.0751953f, 0.171631f, -0.0688477f, 0.180664f,
+-0.0625f, 0.19043f, -0.0625f, 0.199707f, -0.0625f, 0.211182f, -0.067627f, 0.222656f,
+-0.0727539f, 0.234863f, -0.0817871f, 0.24707f, -0.0908203f, 0.259277f, -0.103271f,
+0.271484f, -0.115723f, 0.281738f, -0.130371f, 0.329102f, -0.398926f, 0.323242f, -0.404785f,
+0.314453f, -0.40918f, 0.305664f, -0.413574f, 0.296143f, -0.416504f, 0.286621f, -0.419434f,
+0.278076f, -0.420898f, 0.269531f, -0.422363f, 0.263672f, -0.422363f, 0.236328f, -0.422363f,
+0.213623f, -0.400391f, 0.190918f, -0.378418f, 0.174561f, -0.342773f, 0.158203f, -0.307129f,
+0.14917f, -0.262695f, 0.140137f, -0.218262f, 0.140137f, -0.172852f, 0.421875f, -0.371094f,
+0.421875f, -0.339355f, 0.404297f, -0.310303f, 0.386719f, -0.28125f, 0.353027f, -0.258301f,
+0.319336f, -0.235352f, 0.270508f, -0.219727f, 0.22168f, -0.204102f, 0.158691f, -0.199219f,
+0.158203f, -0.197266f, 0.157715f, -0.193115f, 0.157227f, -0.188965f, 0.156982f, -0.184326f,
+0.156738f, -0.179688f, 0.156494f, -0.174561f, 0.15625f, -0.169434f, 0.15625f, -0.166016f,
+0.15625f, -0.144043f, 0.160156f, -0.123291f, 0.164062f, -0.102539f, 0.173828f, -0.0864258f,
+0.183594f, -0.0703125f, 0.200928f, -0.0605469f, 0.218262f, -0.0507812f, 0.244629f,
+-0.0507812f, 0.280762f, -0.0507812f, 0.311523f, -0.0646973f, 0.342285f, -0.0786133f,
+0.369141f, -0.0966797f, 0.390625f, -0.065918f, 0.375488f, -0.0532227f, 0.35498f,
+-0.0397949f, 0.334473f, -0.0263672f, 0.310059f, -0.0153809f, 0.285645f, -0.00439453f,
+0.257812f, 0.00268555f, 0.22998f, 0.00976562f, 0.200684f, 0.00976562f, 0.154785f,
+0.00976562f, 0.121338f, -0.00219727f, 0.0878906f, -0.0141602f, 0.0661621f, -0.0361328f,
+0.0444336f, -0.0581055f, 0.0339355f, -0.0898438f, 0.0234375f, -0.121582f, 0.0234375f,
+-0.161133f, 0.0234375f, -0.20459f, 0.032959f, -0.244385f, 0.0424805f, -0.28418f,
+0.0598145f, -0.318604f, 0.0771484f, -0.353027f, 0.100586f, -0.381104f, 0.124023f,
+-0.40918f, 0.1521f, -0.429199f, 0.180176f, -0.449219f, 0.211426f, -0.460205f, 0.242676f,
+-0.471191f, 0.274902f, -0.471191f, 0.310547f, -0.471191f, 0.337891f, -0.463623f,
+0.365234f, -0.456055f, 0.384033f, -0.442627f, 0.402832f, -0.429199f, 0.412354f, -0.410889f,
+0.421875f, -0.392578f, 0.421875f, -0.371094f, 0.166504f, -0.248047f, 0.199219f, -0.251465f,
+0.224609f, -0.263916f, 0.25f, -0.276367f, 0.267334f, -0.294189f, 0.284668f, -0.312012f,
+0.293701f, -0.33374f, 0.302734f, -0.355469f, 0.302734f, -0.377441f, 0.302734f, -0.397949f,
+0.292725f, -0.408203f, 0.282715f, -0.418457f, 0.269043f, -0.418457f, 0.250488f, -0.418457f,
+0.234131f, -0.403809f, 0.217773f, -0.38916f, 0.204346f, -0.365234f, 0.190918f, -0.341309f,
+0.181152f, -0.310791f, 0.171387f, -0.280273f, 0.166504f, -0.248047f, 0.108398f, -0.408203f,
+0.0292969f, -0.408203f, 0.0351562f, -0.441895f, 0.117676f, -0.460938f, 0.128906f,
+-0.520508f, 0.146973f, -0.617188f, 0.199219f, -0.660645f, 0.251465f, -0.704102f,
+0.338379f, -0.704102f, 0.359863f, -0.704102f, 0.381592f, -0.700928f, 0.40332f, -0.697754f,
+0.416016f, -0.693848f, 0.396973f, -0.585449f, 0.365723f, -0.585449f, 0.359863f, -0.640137f,
+0.355957f, -0.644043f, 0.349854f, -0.647217f, 0.34375f, -0.650391f, 0.33252f, -0.650391f,
+0.321289f, -0.650391f, 0.311279f, -0.645264f, 0.30127f, -0.640137f, 0.29248f, -0.627441f,
+0.283691f, -0.614746f, 0.276367f, -0.592529f, 0.269043f, -0.570312f, 0.262695f, -0.536133f,
+0.248535f, -0.458984f, 0.349121f, -0.458984f, 0.340332f, -0.408203f, 0.239746f, -0.408203f,
+0.131348f, 0.212891f, 0, 0.212891f, 0.142578f, -0.17334f, 0.142578f, -0.144043f,
+0.147461f, -0.123047f, 0.152344f, -0.102051f, 0.1604f, -0.0888672f, 0.168457f, -0.0756836f,
+0.178467f, -0.0693359f, 0.188477f, -0.0629883f, 0.19873f, -0.0629883f, 0.21582f,
+-0.0629883f, 0.239014f, -0.0800781f, 0.262207f, -0.097168f, 0.28418f, -0.126465f,
+0.336426f, -0.410645f, 0.32373f, -0.416016f, 0.308838f, -0.419434f, 0.293945f, -0.422852f,
+0.273438f, -0.422852f, 0.243164f, -0.422852f, 0.218994f, -0.400879f, 0.194824f, -0.378906f,
+0.177979f, -0.343262f, 0.161133f, -0.307617f, 0.151855f, -0.263184f, 0.142578f, -0.21875f,
+0.142578f, -0.17334f, 0.0141602f, -0.151855f, 0.0141602f, -0.193848f, 0.0222168f,
+-0.233887f, 0.0302734f, -0.273926f, 0.0454102f, -0.309326f, 0.0605469f, -0.344727f,
+0.0827637f, -0.374512f, 0.10498f, -0.404297f, 0.133545f, -0.425781f, 0.162109f, -0.447266f,
+0.196533f, -0.459229f, 0.230957f, -0.471191f, 0.270996f, -0.471191f, 0.294434f, -0.471191f,
+0.320312f, -0.469482f, 0.346191f, -0.467773f, 0.372314f, -0.464844f, 0.398438f, -0.461914f,
+0.424316f, -0.458252f, 0.450195f, -0.45459f, 0.473633f, -0.450684f, 0.389648f, 0.0170898f,
+0.379883f, 0.0698242f, 0.359375f, 0.107178f, 0.338867f, 0.144531f, 0.307861f, 0.167969f,
+0.276855f, 0.191406f, 0.235596f, 0.202148f, 0.194336f, 0.212891f, 0.143555f, 0.212891f,
+0.118652f, 0.212891f, 0.0942383f, 0.209961f, 0.0698242f, 0.207031f, 0.0483398f, 0.202148f,
+0.0268555f, 0.197266f, 0.00952148f, 0.190918f, -0.0078125f, 0.18457f, -0.0185547f,
+0.178223f, -0.0078125f, 0.0546875f, 0.0195312f, 0.0546875f, 0.0371094f, 0.118652f,
+0.0546875f, 0.136719f, 0.0825195f, 0.148193f, 0.110352f, 0.159668f, 0.144043f, 0.159668f,
+0.172363f, 0.159668f, 0.19165f, 0.150879f, 0.210938f, 0.14209f, 0.223877f, 0.125977f,
+0.236816f, 0.109863f, 0.244141f, 0.0871582f, 0.251465f, 0.0644531f, 0.256348f, 0.0366211f,
+0.257812f, 0.027832f, 0.260254f, 0.0146484f, 0.262695f, 0.00146484f, 0.265625f, -0.0131836f,
+0.268555f, -0.027832f, 0.271973f, -0.0429688f, 0.275391f, -0.0581055f, 0.279297f,
+-0.0708008f, 0.265625f, -0.0532227f, 0.249268f, -0.0380859f, 0.23291f, -0.0229492f,
+0.214844f, -0.0119629f, 0.196777f, -0.000976562f, 0.177979f, 0.00512695f, 0.15918f,
+0.0112305f, 0.140625f, 0.0112305f, 0.11377f, 0.0112305f, 0.0908203f, 0.000732422f,
+0.0678711f, -0.00976562f, 0.0507812f, -0.0302734f, 0.0336914f, -0.0507812f, 0.0239258f,
+-0.0812988f, 0.0141602f, -0.111816f, 0.0141602f, -0.151855f, 0.231934f, -0.467773f,
+0.22998f, -0.456055f, 0.227051f, -0.44165f, 0.224121f, -0.427246f, 0.221436f, -0.413818f,
+0.21875f, -0.400391f, 0.216309f, -0.389648f, 0.213867f, -0.378906f, 0.212891f, -0.375488f,
+0.25f, -0.422852f, 0.296143f, -0.447021f, 0.342285f, -0.471191f, 0.399414f, -0.471191f,
+0.421875f, -0.471191f, 0.441162f, -0.464844f, 0.460449f, -0.458496f, 0.474609f, -0.446045f,
+0.48877f, -0.433594f, 0.496582f, -0.415527f, 0.504395f, -0.397461f, 0.504395f, -0.374023f,
+0.504395f, -0.365234f, 0.50293f, -0.353027f, 0.501465f, -0.34082f, 0.499756f, -0.327881f,
+0.498047f, -0.314941f, 0.49585f, -0.303223f, 0.493652f, -0.291504f, 0.492188f, -0.283203f,
+0.449707f, -0.0439453f, 0.506348f, -0.0322266f, 0.5f, 0, 0.311523f, 0, 0.361328f,
+-0.277832f, 0.363281f, -0.288086f, 0.365234f, -0.299316f, 0.367188f, -0.310547f,
+0.368652f, -0.320801f, 0.370117f, -0.331055f, 0.371094f, -0.339844f, 0.37207f, -0.348633f,
+0.37207f, -0.354004f, 0.37207f, -0.401367f, 0.327637f, -0.401367f, 0.311035f, -0.401367f,
+0.29248f, -0.391357f, 0.273926f, -0.381348f, 0.256348f, -0.365479f, 0.23877f, -0.349609f,
+0.224121f, -0.32959f, 0.209473f, -0.30957f, 0.201172f, -0.290039f, 0.149414f, 0,
+0.0195312f, 0, 0.133789f, -0.649902f, 0.0893555f, -0.661621f, 0.0947266f, -0.693848f,
+0.272949f, -0.693848f, 0.164551f, -0.0439453f, 0.222656f, -0.0322266f, 0.217285f,
+0, 0.0253906f, 0, 0.0986328f, -0.415039f, 0.0541992f, -0.426758f, 0.0595703f, -0.458984f,
+0.237793f, -0.458984f, 0.123535f, -0.619141f, 0.123535f, -0.634766f, 0.129395f, -0.648438f,
+0.135254f, -0.662109f, 0.145508f, -0.672119f, 0.155762f, -0.682129f, 0.169434f, -0.687988f,
+0.183105f, -0.693848f, 0.19873f, -0.693848f, 0.214355f, -0.693848f, 0.228027f, -0.687988f,
+0.241699f, -0.682129f, 0.251709f, -0.672119f, 0.261719f, -0.662109f, 0.267578f, -0.648438f,
+0.273438f, -0.634766f, 0.273438f, -0.619141f, 0.273438f, -0.603516f, 0.267578f, -0.589844f,
+0.261719f, -0.576172f, 0.251709f, -0.565918f, 0.241699f, -0.555664f, 0.228027f, -0.549805f,
+0.214355f, -0.543945f, 0.19873f, -0.543945f, 0.183105f, -0.543945f, 0.169434f, -0.549805f,
+0.155762f, -0.555664f, 0.145508f, -0.565918f, 0.135254f, -0.576172f, 0.129395f, -0.589844f,
+0.123535f, -0.603516f, 0.123535f, -0.619141f, 0.160156f, 0.019043f, 0.150879f, 0.0708008f,
+0.131836f, 0.107666f, 0.112793f, 0.144531f, 0.0856934f, 0.167969f, 0.0585938f, 0.191406f,
+0.0244141f, 0.202148f, -0.00976562f, 0.212891f, -0.0488281f, 0.212891f, -0.0708008f,
+0.212891f, -0.0922852f, 0.210449f, -0.11377f, 0.208008f, -0.130859f, 0.204102f, -0.111816f,
+0.0942383f, -0.0810547f, 0.0942383f, -0.0693359f, 0.151855f, -0.0654297f, 0.154785f,
+-0.0600586f, 0.156982f, -0.0546875f, 0.15918f, -0.0473633f, 0.15918f, -0.0366211f,
+0.15918f, -0.026123f, 0.152588f, -0.015625f, 0.145996f, -0.00610352f, 0.131348f,
+0.00341797f, 0.116699f, 0.0117188f, 0.0930176f, 0.0200195f, 0.0693359f, 0.0258789f,
+0.034668f, 0.104492f, -0.410156f, 0.0263672f, -0.426758f, 0.0317383f, -0.458984f,
+0.244141f, -0.458984f, 0.130859f, -0.619141f, 0.130859f, -0.634766f, 0.136719f, -0.648438f,
+0.142578f, -0.662109f, 0.152832f, -0.672119f, 0.163086f, -0.682129f, 0.176758f, -0.687988f,
+0.19043f, -0.693848f, 0.206055f, -0.693848f, 0.22168f, -0.693848f, 0.235352f, -0.687988f,
+0.249023f, -0.682129f, 0.259033f, -0.672119f, 0.269043f, -0.662109f, 0.274902f, -0.648438f,
+0.280762f, -0.634766f, 0.280762f, -0.619141f, 0.280762f, -0.603516f, 0.274902f, -0.589844f,
+0.269043f, -0.576172f, 0.259033f, -0.565918f, 0.249023f, -0.555664f, 0.235352f, -0.549805f,
+0.22168f, -0.543945f, 0.206055f, -0.543945f, 0.19043f, -0.543945f, 0.176758f, -0.549805f,
+0.163086f, -0.555664f, 0.152832f, -0.565918f, 0.142578f, -0.576172f, 0.136719f, -0.589844f,
+0.130859f, -0.603516f, 0.130859f, -0.619141f, 0.189453f, -0.247559f, 0.36084f, -0.415527f,
+0.318848f, -0.426758f, 0.324219f, -0.458984f, 0.492188f, -0.458984f, 0.486816f, -0.426758f,
+0.441895f, -0.416016f, 0.323242f, -0.306641f, 0.431641f, -0.0439453f, 0.470703f,
+-0.0322266f, 0.465332f, 0, 0.312012f, 0, 0.230957f, -0.221191f, 0.178223f, -0.187012f,
+0.14502f, 0, 0.0136719f, 0, 0.128418f, -0.649902f, 0.0834961f, -0.661621f, 0.0893555f,
+-0.693848f, 0.267578f, -0.693848f, 0.161133f, -0.0439453f, 0.219238f, -0.0322266f,
+0.213867f, 0, 0.0219727f, 0, 0.137207f, -0.649902f, 0.0927734f, -0.661621f, 0.0981445f,
+-0.693848f, 0.276367f, -0.693848f, 0.595703f, -0.354004f, 0.595703f, -0.401367f,
+0.560547f, -0.401367f, 0.547363f, -0.401367f, 0.530762f, -0.389893f, 0.51416f, -0.378418f,
+0.498779f, -0.360107f, 0.483398f, -0.341797f, 0.471436f, -0.319336f, 0.459473f, -0.296875f,
+0.455566f, -0.274902f, 0.407227f, 0, 0.276855f, 0, 0.32666f, -0.277832f, 0.328613f,
+-0.288086f, 0.330566f, -0.299316f, 0.33252f, -0.310547f, 0.333984f, -0.320801f, 0.335449f,
+-0.331055f, 0.336426f, -0.339844f, 0.337402f, -0.348633f, 0.337402f, -0.354004f,
+0.337402f, -0.401367f, 0.30127f, -0.401367f, 0.288086f, -0.401367f, 0.273438f, -0.391357f,
+0.258789f, -0.381348f, 0.244873f, -0.365479f, 0.230957f, -0.349609f, 0.219482f, -0.32959f,
+0.208008f, -0.30957f, 0.200684f, -0.290039f, 0.148926f, 0, 0.019043f, 0, 0.0913086f,
+-0.414551f, 0.0478516f, -0.426758f, 0.0541992f, -0.458984f, 0.214355f, -0.458984f,
+0.212891f, -0.376953f, 0.248047f, -0.424805f, 0.287598f, -0.447998f, 0.327148f, -0.471191f,
+0.375977f, -0.471191f, 0.39502f, -0.471191f, 0.411621f, -0.46582f, 0.428223f, -0.460449f,
+0.440918f, -0.44873f, 0.453613f, -0.437012f, 0.461182f, -0.418701f, 0.46875f, -0.400391f,
+0.469238f, -0.374512f, 0.504395f, -0.423828f, 0.545166f, -0.44751f, 0.585938f, -0.471191f,
+0.634277f, -0.471191f, 0.65332f, -0.471191f, 0.67041f, -0.465088f, 0.6875f, -0.458984f,
+0.700439f, -0.446289f, 0.713379f, -0.433594f, 0.720703f, -0.414062f, 0.728027f, -0.394531f,
+0.728027f, -0.368164f, 0.728027f, -0.362305f, 0.726562f, -0.351318f, 0.725098f, -0.340332f,
+0.723389f, -0.327881f, 0.72168f, -0.31543f, 0.719482f, -0.303467f, 0.717285f, -0.291504f,
+0.71582f, -0.283203f, 0.67334f, -0.0439453f, 0.72998f, -0.0322266f, 0.723633f, 0,
+0.535156f, 0, 0.584961f, -0.277832f, 0.586914f, -0.288086f, 0.588867f, -0.299316f,
+0.59082f, -0.310547f, 0.592285f, -0.320801f, 0.59375f, -0.331055f, 0.594727f, -0.339844f,
+0.595703f, -0.348633f, 0.595703f, -0.354004f, 0.373047f, -0.354004f, 0.373047f, -0.401367f,
+0.328613f, -0.401367f, 0.312012f, -0.401367f, 0.293457f, -0.391357f, 0.274902f, -0.381348f,
+0.257324f, -0.365479f, 0.239746f, -0.349609f, 0.225098f, -0.32959f, 0.210449f, -0.30957f,
+0.202148f, -0.290039f, 0.150391f, 0, 0.0205078f, 0, 0.0927734f, -0.414551f, 0.0493164f,
+-0.426758f, 0.0556641f, -0.458984f, 0.21875f, -0.458984f, 0.214844f, -0.373535f,
+0.251953f, -0.421387f, 0.297607f, -0.446289f, 0.343262f, -0.471191f, 0.400391f, -0.471191f,
+0.422852f, -0.471191f, 0.442139f, -0.465088f, 0.461426f, -0.458984f, 0.475586f, -0.446777f,
+0.489746f, -0.43457f, 0.497559f, -0.416016f, 0.505371f, -0.397461f, 0.505371f, -0.372559f,
+0.505371f, -0.36377f, 0.50415f, -0.352539f, 0.50293f, -0.341309f, 0.500977f, -0.329346f,
+0.499023f, -0.317383f, 0.49707f, -0.30542f, 0.495117f, -0.293457f, 0.493164f, -0.283203f,
+0.450684f, -0.0439453f, 0.507324f, -0.0322266f, 0.500977f, 0, 0.3125f, 0, 0.362305f,
+-0.277832f, 0.364258f, -0.288086f, 0.366211f, -0.299316f, 0.368164f, -0.310547f,
+0.369629f, -0.320801f, 0.371094f, -0.331055f, 0.37207f, -0.339844f, 0.373047f, -0.348633f,
+0.373047f, -0.354004f, 0.333496f, -0.305176f, 0.333496f, -0.362305f, 0.318359f, -0.392578f,
+0.303223f, -0.422852f, 0.272461f, -0.422852f, 0.249512f, -0.422852f, 0.226562f, -0.401611f,
+0.203613f, -0.380371f, 0.185547f, -0.34375f, 0.16748f, -0.307129f, 0.15625f, -0.258545f,
+0.14502f, -0.209961f, 0.14502f, -0.155762f, 0.14502f, -0.0996094f, 0.163086f, -0.0690918f,
+0.181152f, -0.0385742f, 0.209473f, -0.0385742f, 0.232422f, -0.0385742f, 0.254639f,
+-0.0583496f, 0.276855f, -0.078125f, 0.294434f, -0.113525f, 0.312012f, -0.148926f,
+0.322754f, -0.197754f, 0.333496f, -0.246582f, 0.333496f, -0.305176f, 0.198242f, 0.00976562f,
+0.157715f, 0.00976562f, 0.124023f, -0.00341797f, 0.090332f, -0.0166016f, 0.0661621f,
+-0.0415039f, 0.0419922f, -0.0664062f, 0.0288086f, -0.102051f, 0.015625f, -0.137695f,
+0.015625f, -0.182617f, 0.015625f, -0.239746f, 0.0341797f, -0.291992f, 0.0527344f,
+-0.344238f, 0.0876465f, -0.384033f, 0.122559f, -0.423828f, 0.172119f, -0.44751f,
+0.22168f, -0.471191f, 0.283203f, -0.471191f, 0.32373f, -0.471191f, 0.357422f, -0.458008f,
+0.391113f, -0.444824f, 0.415283f, -0.419922f, 0.439453f, -0.39502f, 0.452637f, -0.359375f,
+0.46582f, -0.32373f, 0.46582f, -0.278809f, 0.46582f, -0.22168f, 0.447266f, -0.169434f,
+0.428711f, -0.117188f, 0.393799f, -0.0773926f, 0.358887f, -0.0375977f, 0.309326f,
+-0.013916f, 0.259766f, 0.00976562f, 0.198242f, 0.00976562f, 0.469727f, -0.308105f,
+0.469727f, -0.245117f, 0.452393f, -0.1875f, 0.435059f, -0.129883f, 0.402344f, -0.0861816f,
+0.369629f, -0.0424805f, 0.323242f, -0.0163574f, 0.276855f, 0.00976562f, 0.219238f,
+0.00976562f, 0.197266f, 0.00976562f, 0.177002f, 0.00488281f, 0.156738f, 0, 0.143555f,
+-0.00634766f, 0.143066f, -0.000488281f, 0.142334f, 0.00805664f, 0.141602f, 0.0166016f,
+0.140625f, 0.0253906f, 0.139648f, 0.0341797f, 0.138428f, 0.0419922f, 0.137207f, 0.0498047f,
+0.136719f, 0.0541992f, 0.118164f, 0.169434f, 0.196289f, 0.181152f, 0.19043f, 0.212891f,
+-0.0712891f, 0.212891f, -0.0654297f, 0.181152f, -0.0146484f, 0.169434f, 0.0898438f,
+-0.41748f, 0.0415039f, -0.429688f, 0.0473633f, -0.458984f, 0.21582f, -0.458984f,
+0.212891f, -0.391602f, 0.240234f, -0.427246f, 0.273193f, -0.449219f, 0.306152f, -0.471191f,
+0.343262f, -0.471191f, 0.370117f, -0.471191f, 0.393066f, -0.460693f, 0.416016f, -0.450195f,
+0.433105f, -0.429688f, 0.450195f, -0.40918f, 0.459961f, -0.378662f, 0.469727f, -0.348145f,
+0.469727f, -0.308105f, 0.341309f, -0.286621f, 0.341309f, -0.315918f, 0.33667f, -0.336914f,
+0.332031f, -0.35791f, 0.324463f, -0.371094f, 0.316895f, -0.384277f, 0.307129f, -0.390625f,
+0.297363f, -0.396973f, 0.287109f, -0.396973f, 0.27002f, -0.396973f, 0.248535f, -0.37915f,
+0.227051f, -0.361328f, 0.205078f, -0.332031f, 0.157227f, -0.0620117f, 0.168945f,
+-0.050293f, 0.185303f, -0.0444336f, 0.20166f, -0.0385742f, 0.213867f, -0.0385742f,
+0.23291f, -0.0385742f, 0.25f, -0.048584f, 0.26709f, -0.0585938f, 0.28125f, -0.0761719f,
+0.29541f, -0.09375f, 0.306641f, -0.117432f, 0.317871f, -0.141113f, 0.325439f, -0.168701f,
+0.333008f, -0.196289f, 0.337158f, -0.226318f, 0.341309f, -0.256348f, 0.341309f, -0.286621f,
+0.141113f, -0.17334f, 0.141113f, -0.144043f, 0.145996f, -0.123047f, 0.150879f, -0.102051f,
+0.158936f, -0.0888672f, 0.166992f, -0.0756836f, 0.177002f, -0.0693359f, 0.187012f,
+-0.0629883f, 0.196777f, -0.0629883f, 0.205078f, -0.0629883f, 0.216064f, -0.0681152f,
+0.227051f, -0.0732422f, 0.239014f, -0.0822754f, 0.250977f, -0.0913086f, 0.263184f,
+-0.10376f, 0.275391f, -0.116211f, 0.286133f, -0.130859f, 0.337402f, -0.410645f, 0.324707f,
+-0.416016f, 0.307617f, -0.419434f, 0.290527f, -0.422852f, 0.270508f, -0.422852f,
+0.240723f, -0.422852f, 0.216797f, -0.400879f, 0.192871f, -0.378906f, 0.176025f, -0.343262f,
+0.15918f, -0.307617f, 0.150146f, -0.263184f, 0.141113f, -0.21875f, 0.141113f, -0.17334f,
+0.263672f, -0.471191f, 0.31543f, -0.471191f, 0.37085f, -0.465576f, 0.42627f, -0.459961f,
+0.474609f, -0.450684f, 0.362793f, 0.169922f, 0.407715f, 0.181152f, 0.402344f, 0.212891f,
+0.224121f, 0.212891f, 0.259766f, 0.0239258f, 0.26123f, 0.0151367f, 0.263428f, 0.00341797f,
+0.265625f, -0.00830078f, 0.268311f, -0.0209961f, 0.270996f, -0.0336914f, 0.273926f,
+-0.0463867f, 0.276855f, -0.059082f, 0.280273f, -0.0708008f, 0.26709f, -0.0532227f,
+0.250244f, -0.0380859f, 0.233398f, -0.0229492f, 0.2146f, -0.0119629f, 0.195801f,
+-0.000976562f, 0.17627f, 0.00512695f, 0.156738f, 0.0112305f, 0.138672f, 0.0112305f,
+0.112305f, 0.0112305f, 0.0891113f, 0.000732422f, 0.065918f, -0.00976562f, 0.0490723f,
+-0.0302734f, 0.0322266f, -0.0507812f, 0.0224609f, -0.0812988f, 0.0126953f, -0.111816f,
+0.0126953f, -0.151855f, 0.0126953f, -0.214844f, 0.029541f, -0.272705f, 0.0463867f,
+-0.330566f, 0.0786133f, -0.374512f, 0.11084f, -0.418457f, 0.157471f, -0.444824f,
+0.204102f, -0.471191f, 0.263672f, -0.471191f, 0.213867f, -0.360352f, 0.228516f, -0.38916f,
+0.246094f, -0.410156f, 0.263672f, -0.431152f, 0.282227f, -0.44458f, 0.300781f, -0.458008f,
+0.319824f, -0.4646f, 0.338867f, -0.471191f, 0.355957f, -0.471191f, 0.365723f, -0.471191f,
+0.377686f, -0.469727f, 0.389648f, -0.468262f, 0.396484f, -0.466309f, 0.368164f, -0.301758f,
+0.341309f, -0.301758f, 0.319824f, -0.368652f, 0.302246f, -0.368652f, 0.286865f, -0.364502f,
+0.271484f, -0.360352f, 0.257324f, -0.351074f, 0.243164f, -0.341797f, 0.229736f, -0.326904f,
+0.216309f, -0.312012f, 0.203125f, -0.291016f, 0.151855f, 0, 0.0205078f, 0, 0.09375f,
+-0.415039f, 0.0366211f, -0.426758f, 0.0419922f, -0.458984f, 0.225098f, -0.458984f,
+0.338379f, -0.14502f, 0.338379f, -0.0708008f, 0.288574f, -0.0305176f, 0.23877f, 0.00976562f,
+0.139648f, 0.00976562f, 0.118652f, 0.00976562f, 0.0964355f, 0.00708008f, 0.0742188f,
+0.00439453f, 0.0544434f, 0.000244141f, 0.034668f, -0.00390625f, 0.019043f, -0.00830078f,
+0.00341797f, -0.0126953f, -0.00537109f, -0.0166016f, 0.0170898f, -0.144043f, 0.0493164f,
+-0.144043f, 0.0566406f, -0.0795898f, 0.0625f, -0.0712891f, 0.0708008f, -0.0634766f,
+0.0791016f, -0.0556641f, 0.0895996f, -0.0493164f, 0.100098f, -0.0429688f, 0.113525f,
+-0.0393066f, 0.126953f, -0.0356445f, 0.143066f, -0.0356445f, 0.164062f, -0.0356445f,
+0.180664f, -0.041748f, 0.197266f, -0.0478516f, 0.208252f, -0.0581055f, 0.219238f,
+-0.0683594f, 0.225098f, -0.0817871f, 0.230957f, -0.0952148f, 0.230957f, -0.109863f,
+0.230957f, -0.125f, 0.223877f, -0.136475f, 0.216797f, -0.147949f, 0.204834f, -0.157715f,
+0.192871f, -0.16748f, 0.17749f, -0.17627f, 0.162109f, -0.185059f, 0.145508f, -0.194824f,
+0.125488f, -0.206055f, 0.107666f, -0.218994f, 0.0898438f, -0.231934f, 0.0761719f,
+-0.248291f, 0.0625f, -0.264648f, 0.0544434f, -0.285156f, 0.0463867f, -0.305664f,
+0.0463867f, -0.332031f, 0.0463867f, -0.373047f, 0.0612793f, -0.400146f, 0.0761719f,
+-0.427246f, 0.101318f, -0.442871f, 0.126465f, -0.458496f, 0.159912f, -0.464844f,
+0.193359f, -0.471191f, 0.230469f, -0.471191f, 0.261719f, -0.471191f, 0.294678f, -0.466797f,
+0.327637f, -0.462402f, 0.358398f, -0.455566f, 0.337402f, -0.337891f, 0.305176f, -0.337891f,
+0.298828f, -0.391602f, 0.288574f, -0.404297f, 0.268555f, -0.414795f, 0.248535f, -0.425293f,
+0.223633f, -0.425293f, 0.186523f, -0.425293f, 0.169189f, -0.408691f, 0.151855f, -0.39209f,
+0.151855f, -0.365234f, 0.151855f, -0.351562f, 0.158203f, -0.34082f, 0.164551f, -0.330078f,
+0.175293f, -0.320801f, 0.186035f, -0.311523f, 0.199951f, -0.302979f, 0.213867f, -0.294434f,
+0.229492f, -0.285645f, 0.250488f, -0.273926f, 0.27002f, -0.26123f, 0.289551f, -0.248535f,
+0.304688f, -0.232422f, 0.319824f, -0.216309f, 0.329102f, -0.195068f, 0.338379f, -0.173828f,
+0.338379f, -0.14502f, 0.208984f, -0.0517578f, 0.220703f, -0.0517578f, 0.233887f,
+-0.0554199f, 0.24707f, -0.059082f, 0.262695f, -0.0644531f, 0.275391f, -0.0302734f,
+0.265625f, -0.0234375f, 0.251221f, -0.0163574f, 0.236816f, -0.00927734f, 0.219482f,
+-0.00341797f, 0.202148f, 0.00244141f, 0.182861f, 0.00610352f, 0.163574f, 0.00976562f,
+0.144531f, 0.00976562f, 0.113281f, 0.00976562f, 0.092041f, 0.00170898f, 0.0708008f,
+-0.00634766f, 0.0576172f, -0.0200195f, 0.0444336f, -0.0336914f, 0.0385742f, -0.0517578f,
+0.0327148f, -0.0698242f, 0.0327148f, -0.090332f, 0.0327148f, -0.104492f, 0.0354004f,
+-0.123291f, 0.0380859f, -0.14209f, 0.0415039f, -0.160645f, 0.0864258f, -0.408203f,
+0.0302734f, -0.408203f, 0.0356445f, -0.439941f, 0.10498f, -0.458984f, 0.172852f,
+-0.562988f, 0.244141f, -0.562988f, 0.225586f, -0.458984f, 0.302734f, -0.458984f,
+0.293945f, -0.408203f, 0.216797f, -0.408203f, 0.172363f, -0.159668f, 0.168945f, -0.14209f,
+0.166748f, -0.125977f, 0.164551f, -0.109863f, 0.164551f, -0.101074f, 0.164551f, -0.0751953f,
+0.17749f, -0.0634766f, 0.19043f, -0.0517578f, 0.208984f, -0.0517578f, 0.170898f,
+-0.105469f, 0.170898f, -0.0581055f, 0.215332f, -0.0581055f, 0.231934f, -0.0581055f,
+0.250488f, -0.0681152f, 0.269043f, -0.078125f, 0.286621f, -0.0939941f, 0.304199f,
+-0.109863f, 0.318848f, -0.129639f, 0.333496f, -0.149414f, 0.341797f, -0.169434f,
+0.393555f, -0.458984f, 0.523438f, -0.458984f, 0.451172f, -0.0444336f, 0.504395f,
+-0.0322266f, 0.498047f, 0, 0.325195f, 0, 0.329102f, -0.0859375f, 0.291992f, -0.0380859f,
+0.246338f, -0.0131836f, 0.200684f, 0.0117188f, 0.143555f, 0.0117188f, 0.120605f,
+0.0117188f, 0.101562f, 0.00561523f, 0.0825195f, -0.000488281f, 0.0683594f, -0.0131836f,
+0.0541992f, -0.0258789f, 0.0463867f, -0.0454102f, 0.0385742f, -0.0649414f, 0.0385742f,
+-0.0913086f, 0.0385742f, -0.097168f, 0.0397949f, -0.108154f, 0.0410156f, -0.119141f,
+0.0429688f, -0.13208f, 0.0449219f, -0.14502f, 0.0473633f, -0.158691f, 0.0498047f,
+-0.172363f, 0.0517578f, -0.183594f, 0.0932617f, -0.415039f, 0.0366211f, -0.426758f,
+0.0429688f, -0.458984f, 0.231445f, -0.458984f, 0.181641f, -0.181641f, 0.179688f,
+-0.171387f, 0.177734f, -0.160156f, 0.175781f, -0.148926f, 0.174316f, -0.138672f,
+0.172852f, -0.128418f, 0.171875f, -0.119629f, 0.170898f, -0.11084f, 0.170898f, -0.105469f,
+0.161133f, -0.459473f, 0.233887f, -0.140137f, 0.333008f, -0.293457f, 0.348633f, -0.317871f,
+0.356934f, -0.341797f, 0.365234f, -0.365723f, 0.365234f, -0.381348f, 0.365234f, -0.393555f,
+0.361572f, -0.401367f, 0.35791f, -0.40918f, 0.351807f, -0.414307f, 0.345703f, -0.419434f,
+0.337646f, -0.422119f, 0.32959f, -0.424805f, 0.321289f, -0.427246f, 0.327148f, -0.458984f,
+0.439941f, -0.458984f, 0.444336f, -0.455078f, 0.448486f, -0.446777f, 0.452637f, -0.438477f,
+0.452637f, -0.428223f, 0.452637f, -0.42041f, 0.450928f, -0.410156f, 0.449219f, -0.399902f,
+0.444824f, -0.386475f, 0.44043f, -0.373047f, 0.432617f, -0.356689f, 0.424805f, -0.340332f,
+0.412109f, -0.320801f, 0.19873f, 0.00976562f, 0.138672f, 0.00976562f, 0.0390625f,
+-0.415527f, 0.00927734f, -0.427246f, 0.0146484f, -0.459473f, 0.55127f, -0.283203f,
+0.556641f, -0.292969f, 0.561523f, -0.305908f, 0.566406f, -0.318848f, 0.570312f, -0.332275f,
+0.574219f, -0.345703f, 0.576416f, -0.35791f, 0.578613f, -0.370117f, 0.578613f, -0.378418f,
+0.578613f, -0.39209f, 0.574463f, -0.400635f, 0.570312f, -0.40918f, 0.563232f, -0.414307f,
+0.556152f, -0.419434f, 0.547363f, -0.422119f, 0.538574f, -0.424805f, 0.529785f, -0.427246f,
+0.535645f, -0.458984f, 0.655273f, -0.458984f, 0.662109f, -0.453613f, 0.66626f, -0.443848f,
+0.67041f, -0.434082f, 0.67041f, -0.419434f, 0.67041f, -0.40332f, 0.664062f, -0.378906f,
+0.657715f, -0.354492f, 0.637695f, -0.320801f, 0.441406f, 0.00976562f, 0.383301f,
+0.00976562f, 0.333008f, -0.25293f, 0.188477f, 0.00976562f, 0.123535f, 0.00976562f,
+0.0400391f, -0.415039f, 0.000976562f, -0.426758f, 0.00634766f, -0.458984f, 0.154785f,
+-0.458984f, 0.216309f, -0.137695f, 0.367188f, -0.413086f, 0.416016f, -0.413086f,
+0.470703f, -0.137695f, 0.214355f, -0.182617f, 0.133789f, -0.115234f, 0.117188f, -0.101074f,
+0.108154f, -0.0913086f, 0.0991211f, -0.081543f, 0.0947266f, -0.0742188f, 0.090332f,
+-0.0668945f, 0.0895996f, -0.0612793f, 0.0888672f, -0.0556641f, 0.0888672f, -0.0507812f,
+0.0888672f, -0.0454102f, 0.0935059f, -0.0397949f, 0.0981445f, -0.0341797f, 0.109375f,
+-0.0317383f, 0.103516f, 0, -0.00439453f, 0, -0.00732422f, -0.00244141f, -0.00976562f,
+-0.00805664f, -0.012207f, -0.0136719f, -0.012207f, -0.0209961f, -0.012207f, -0.0380859f,
+0.00366211f, -0.0583496f, 0.0195312f, -0.0786133f, 0.0546875f, -0.10791f, 0.193359f,
+-0.224609f, 0.0947266f, -0.415039f, 0.0527344f, -0.427246f, 0.0581055f, -0.458984f,
+0.204102f, -0.458984f, 0.284668f, -0.300293f, 0.334473f, -0.341797f, 0.351074f, -0.355469f,
+0.360596f, -0.365723f, 0.370117f, -0.375977f, 0.375f, -0.383789f, 0.379883f, -0.391602f,
+0.381104f, -0.397461f, 0.382324f, -0.40332f, 0.382324f, -0.408203f, 0.382324f, -0.414551f,
+0.375732f, -0.419678f, 0.369141f, -0.424805f, 0.355469f, -0.427246f, 0.361328f, -0.458984f,
+0.465332f, -0.458984f, 0.469727f, -0.455566f, 0.472656f, -0.450439f, 0.475586f, -0.445312f,
+0.475586f, -0.437988f, 0.475586f, -0.419434f, 0.459473f, -0.396973f, 0.443359f, -0.374512f,
+0.408203f, -0.345215f, 0.306641f, -0.260254f, 0.417969f, -0.0419922f, 0.459961f,
+-0.0317383f, 0.45459f, 0, 0.307129f, 0, 0.446777f, -0.428223f, 0.446777f, -0.42041f,
+0.445312f, -0.410156f, 0.443848f, -0.399902f, 0.439453f, -0.386719f, 0.435059f, -0.373535f,
+0.427246f, -0.356934f, 0.419434f, -0.340332f, 0.407227f, -0.320801f, 0.192871f, 0.0288086f,
+0.168945f, 0.0678711f, 0.14502f, 0.102051f, 0.121094f, 0.13623f, 0.095459f, 0.161377f,
+0.0698242f, 0.186523f, 0.0410156f, 0.201172f, 0.012207f, 0.21582f, -0.0214844f, 0.21582f,
+-0.0351562f, 0.21582f, -0.045166f, 0.215332f, -0.0551758f, 0.214844f, -0.0639648f,
+0.213623f, -0.0727539f, 0.212402f, -0.0812988f, 0.210693f, -0.0898438f, 0.208984f,
+-0.100098f, 0.206543f, -0.0795898f, 0.0883789f, -0.050293f, 0.0883789f, -0.0405273f,
+0.149902f, -0.034668f, 0.155273f, -0.0266113f, 0.158203f, -0.0185547f, 0.161133f,
+-0.00634766f, 0.161133f, 0.0117188f, 0.161133f, 0.0297852f, 0.149658f, 0.0478516f,
+0.138184f, 0.0654297f, 0.119385f, 0.0830078f, 0.100586f, 0.0998535f, 0.0761719f,
+0.116699f, 0.0517578f, 0.132812f, 0.0253906f, 0.146484f, 0.00244141f, 0.0419922f,
+-0.415039f, 0.012207f, -0.426758f, 0.0175781f, -0.458984f, 0.165527f, -0.458984f,
+0.239746f, -0.146973f, 0.328125f, -0.293457f, 0.334961f, -0.304688f, 0.340576f, -0.316895f,
+0.346191f, -0.329102f, 0.350342f, -0.34082f, 0.354492f, -0.352539f, 0.356934f, -0.363037f,
+0.359375f, -0.373535f, 0.359375f, -0.381348f, 0.359375f, -0.393555f, 0.355713f, -0.401367f,
+0.352051f, -0.40918f, 0.345947f, -0.414307f, 0.339844f, -0.419434f, 0.331787f, -0.422119f,
+0.32373f, -0.424805f, 0.31543f, -0.427246f, 0.321289f, -0.458984f, 0.434082f, -0.458984f,
+0.438477f, -0.455078f, 0.442627f, -0.446777f, 0.446777f, -0.438477f, 0.446777f, -0.428223f,
+-0.0283203f, 0, -0.0244141f, -0.0244141f, 0.227539f, -0.415039f, 0.193359f, -0.415039f,
+0.179688f, -0.415039f, 0.16626f, -0.413818f, 0.152832f, -0.412598f, 0.140625f, -0.4104f,
+0.128418f, -0.408203f, 0.118896f, -0.405029f, 0.109375f, -0.401855f, 0.103516f, -0.397949f,
+0.0742188f, -0.322266f, 0.0390625f, -0.322266f, 0.0629883f, -0.458984f, 0.385254f,
+-0.458984f, 0.380859f, -0.432617f, 0.128906f, -0.0439453f, 0.169434f, -0.0439453f,
+0.182617f, -0.0439453f, 0.19751f, -0.0456543f, 0.212402f, -0.0473633f, 0.226318f,
+-0.050293f, 0.240234f, -0.0532227f, 0.252441f, -0.057373f, 0.264648f, -0.0615234f,
+0.272949f, -0.0668945f, 0.312988f, -0.153809f, 0.348145f, -0.153809f, 0.312012f,
+0, 0.196289f, 0.133789f, 0.164062f, 0.133789f, 0.140869f, 0.125244f, 0.117676f, 0.116699f,
+0.102783f, 0.101562f, 0.0878906f, 0.0864258f, 0.0805664f, 0.0651855f, 0.0732422f,
+0.0439453f, 0.0732422f, 0.0185547f, 0.0732422f, -0.000976562f, 0.0766602f, -0.0195312f,
+0.100098f, -0.153809f, 0.103027f, -0.169922f, 0.103027f, -0.183594f, 0.103027f, -0.223633f,
+0.079834f, -0.241211f, 0.0566406f, -0.258789f, 0.0136719f, -0.260254f, 0.0209961f,
+-0.301758f, 0.0712891f, -0.303223f, 0.103271f, -0.327393f, 0.135254f, -0.351562f,
+0.14502f, -0.407227f, 0.171875f, -0.560547f, 0.184082f, -0.629395f, 0.225342f, -0.661621f,
+0.266602f, -0.693848f, 0.342285f, -0.693848f, 0.408203f, -0.693848f, 0.400879f, -0.651367f,
+0.370605f, -0.651367f, 0.336914f, -0.651367f, 0.317139f, -0.634521f, 0.297363f, -0.617676f,
+0.290039f, -0.575684f, 0.258789f, -0.399902f, 0.254395f, -0.375488f, 0.243408f, -0.35498f,
+0.232422f, -0.334473f, 0.216309f, -0.318604f, 0.200195f, -0.302734f, 0.180176f, -0.292236f,
+0.160156f, -0.281738f, 0.138184f, -0.277344f, 0.138184f, -0.275879f, 0.174805f, -0.267578f,
+0.196045f, -0.242432f, 0.217285f, -0.217285f, 0.217285f, -0.178223f, 0.217285f, -0.171875f,
+0.216553f, -0.165527f, 0.21582f, -0.15918f, 0.214844f, -0.152344f, 0.188965f, -0.00390625f,
+0.186035f, 0.012207f, 0.186035f, 0.0258789f, 0.186035f, 0.0556641f, 0.198975f, 0.0734863f,
+0.211914f, 0.0913086f, 0.239746f, 0.0913086f, 0.27002f, 0.0913086f, 0.262207f, 0.133789f,
+0.0678711f, 0.21582f, 0.0678711f, -0.693848f, 0.137695f, -0.693848f, 0.137695f, 0.21582f,
+-0.0585938f, 0.133789f, -0.0507812f, 0.0913086f, -0.0205078f, 0.0913086f, 0.0131836f,
+0.0913086f, 0.0327148f, 0.0744629f, 0.0522461f, 0.0576172f, 0.0595703f, 0.015625f,
+0.0913086f, -0.162109f, 0.0957031f, -0.187012f, 0.106445f, -0.20752f, 0.117188f,
+-0.228027f, 0.133057f, -0.243896f, 0.148926f, -0.259766f, 0.168945f, -0.270264f,
+0.188965f, -0.280762f, 0.211914f, -0.285645f, 0.211914f, -0.287109f, 0.176758f, -0.294922f,
+0.154785f, -0.320312f, 0.132812f, -0.345703f, 0.132812f, -0.384766f, 0.132812f, -0.390625f,
+0.133545f, -0.396729f, 0.134277f, -0.402832f, 0.135254f, -0.409668f, 0.160645f, -0.556152f,
+0.163574f, -0.572266f, 0.163574f, -0.586426f, 0.163574f, -0.616211f, 0.150635f, -0.633789f,
+0.137695f, -0.651367f, 0.110352f, -0.651367f, 0.0800781f, -0.651367f, 0.0874023f,
+-0.693848f, 0.15332f, -0.693848f, 0.216797f, -0.693848f, 0.246826f, -0.66333f, 0.276855f,
+-0.632812f, 0.276855f, -0.581055f, 0.276855f, -0.571289f, 0.275879f, -0.561523f,
+0.274902f, -0.551758f, 0.272949f, -0.541016f, 0.25f, -0.407227f, 0.24707f, -0.391113f,
+0.24707f, -0.377441f, 0.24707f, -0.337891f, 0.270264f, -0.320312f, 0.293457f, -0.302734f,
+0.335938f, -0.301758f, 0.328613f, -0.260254f, 0.303711f, -0.259277f, 0.283203f, -0.253174f,
+0.262695f, -0.24707f, 0.246826f, -0.234375f, 0.230957f, -0.22168f, 0.220459f, -0.201904f,
+0.209961f, -0.182129f, 0.205078f, -0.153809f, 0.177734f, 0, 0.166016f, 0.0664062f,
+0.124512f, 0.100098f, 0.0830078f, 0.133789f, 0.00732422f, 0.133789f, 0.405762f, -0.234863f,
+0.382324f, -0.234863f, 0.36084f, -0.243652f, 0.339355f, -0.252441f, 0.319824f, -0.265625f,
+0.300293f, -0.278809f, 0.282227f, -0.293945f, 0.26416f, -0.309082f, 0.247314f, -0.322266f,
+0.230469f, -0.335449f, 0.2146f, -0.344238f, 0.19873f, -0.353027f, 0.183594f, -0.353027f,
+0.166992f, -0.353027f, 0.154785f, -0.347168f, 0.142578f, -0.341309f, 0.134033f, -0.327393f,
+0.125488f, -0.313477f, 0.119873f, -0.290771f, 0.114258f, -0.268066f, 0.11084f, -0.234863f,
+0.0419922f, -0.234863f, 0.0454102f, -0.268555f, 0.0522461f, -0.302246f, 0.059082f,
+-0.335938f, 0.0742188f, -0.362549f, 0.0893555f, -0.38916f, 0.115479f, -0.406006f,
+0.141602f, -0.422852f, 0.183594f, -0.422852f, 0.202637f, -0.422852f, 0.219727f, -0.41748f,
+0.236816f, -0.412109f, 0.252686f, -0.403809f, 0.268555f, -0.395508f, 0.282959f, -0.384521f,
+0.297363f, -0.373535f, 0.310547f, -0.362793f, 0.318848f, -0.355957f, 0.330322f, -0.345947f,
+0.341797f, -0.335938f, 0.354736f, -0.32666f, 0.367676f, -0.317383f, 0.380859f, -0.311035f,
+0.394043f, -0.304688f, 0.405762f, -0.304688f, 0.421875f, -0.304688f, 0.433594f, -0.311279f,
+0.445312f, -0.317871f, 0.453613f, -0.332031f, 0.461914f, -0.346191f, 0.467773f, -0.368652f,
+0.473633f, -0.391113f, 0.477539f, -0.422852f, 0.547852f, -0.422852f, 0.543457f, -0.389648f,
+0.535889f, -0.355957f, 0.52832f, -0.322266f, 0.512939f, -0.29541f, 0.497559f, -0.268555f,
+0.471924f, -0.251709f, 0.446289f, -0.234863f, 0.405762f, -0.234863f
+};
+
+const unsigned char LiberationSerifBoldItalicVerbs[] = {
+6, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 1, 1, 1, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 0,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 5, 6, 0, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1,
+1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1,
+1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1,
+1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 2, 2, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 2,
+2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSerifBoldItalicCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39,
+40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationSerifBoldItalicWidths[] = {
+0x0000c720, 0x00004000, 0x000063a0, 0x00008e20, 0x00008000, 0x00008000, 0x0000d540,
+0x0000c720, 0x00004720, 0x00005540, 0x00005540, 0x00008000, 0x000091e0, 0x00004000,
+0x00005540, 0x00004000, 0x00004720, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00005540,
+0x00005540, 0x000091e0, 0x000091e0, 0x000091e0, 0x00008000, 0x0000d500, 0x0000aac0,
+0x0000aac0, 0x0000aac0, 0x0000b8e0, 0x0000aac0, 0x0000aac0, 0x0000b8e0, 0x0000c720,
+0x000063a0, 0x00008000, 0x0000aac0, 0x00009c60, 0x0000e3a0, 0x0000b8e0, 0x0000b8e0,
+0x00009c60, 0x0000b8e0, 0x0000aac0, 0x00008e60, 0x00009c60, 0x0000b8e0, 0x0000aac0,
+0x0000e3a0, 0x0000aac0, 0x00009c60, 0x00009c60, 0x00005540, 0x00004720, 0x00005540,
+0x000091e0, 0x00008000, 0x00005540, 0x00008000, 0x00008000, 0x000071a0, 0x00008000,
+0x000071a0, 0x00005540, 0x00008000, 0x00008e60, 0x00004720, 0x00004720, 0x00008000,
+0x00004720, 0x0000c720, 0x00008e60, 0x00008000, 0x00008000, 0x00008000, 0x000063a0,
+0x000063a0, 0x00004720, 0x00008e60, 0x000071a0, 0x0000aac0, 0x00008000, 0x000071a0,
+0x000063a0, 0x00005920, 0x00003860, 0x00005920, 0x000091e0
+};
+
+const int LiberationSerifBoldItalicCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSerifBoldItalicCharCodes);
+
+const SkPaint::FontMetrics LiberationSerifBoldItalicMetrics = {
+0x30307833, -0.980957f, -0.891113f, 0.216309f, 0.303223f, 0.0424805f, 1.32861f, 0.0207596f,
+-0.178223f, 1.15039f, 0.469727f, 0.0103607f, 0.0952148f, 0.108887f
+};
#define TRACE_VALUE_TYPE_STRING (static_cast<unsigned char>(6))
#define TRACE_VALUE_TYPE_COPY_STRING (static_cast<unsigned char>(7))
+#if !defined(ENABLE_TRACE_EVENT)
+// Remove the macro function to add a trace event.
+#undef INTERNAL_TRACE_EVENT_ADD
+#define INTERNAL_TRACE_EVENT_ADD(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP(...)
+#endif
+
namespace webrtc {
namespace trace_event_internal {
--- /dev/null
+EXTRA_DIST += frontends/yasm/Makefile.inc
+EXTRA_DIST += frontends/tasm/Makefile.inc
+EXTRA_DIST += frontends/vsyasm/Makefile.inc
+
+include frontends/yasm/Makefile.inc
+include frontends/tasm/Makefile.inc
+include frontends/vsyasm/Makefile.inc
--- /dev/null
+bin_PROGRAMS += ytasm
+
+ytasm_SOURCES = frontends/tasm/tasm.c
+ytasm_SOURCES += frontends/tasm/tasm-options.c
+ytasm_SOURCES += frontends/tasm/tasm-options.h
+
+ytasm_LDADD = libyasm.a $(INTLLIBS)
--- /dev/null
+bin_PROGRAMS += yasm
+dist_man_MANS += yasm.1
+
+if BUILD_MAN
+yasm.1: frontends/yasm/yasm.xml
+ $(XMLTO) -o $(top_builddir) man $(srcdir)/frontends/yasm/yasm.xml
+endif
+
+yasm_SOURCES = frontends/yasm/yasm.c
+yasm_SOURCES += frontends/yasm/yasm-options.c
+yasm_SOURCES += frontends/yasm/yasm-options.h
+
+$(srcdir)/frontends/yasm/yasm.c: license.c
+
+license.c: $(srcdir)/COPYING genstring$(EXEEXT)
+ $(top_builddir)/genstring$(EXEEXT) license_msg $@ $(srcdir)/COPYING
+
+BUILT_SOURCES += license.c
+CLEANFILES += license.c
+
+yasm_LDADD = libyasm.a $(INTLLIBS)
+
+EXTRA_DIST += frontends/yasm/yasm.xml
--- /dev/null
+libyasm_a_SOURCES += libyasm/assocdat.c
+libyasm_a_SOURCES += libyasm/bitvect.c
+libyasm_a_SOURCES += libyasm/bc-align.c
+libyasm_a_SOURCES += libyasm/bc-data.c
+libyasm_a_SOURCES += libyasm/bc-incbin.c
+libyasm_a_SOURCES += libyasm/bc-org.c
+libyasm_a_SOURCES += libyasm/bc-reserve.c
+libyasm_a_SOURCES += libyasm/bytecode.c
+libyasm_a_SOURCES += libyasm/errwarn.c
+libyasm_a_SOURCES += libyasm/expr.c
+libyasm_a_SOURCES += libyasm/file.c
+libyasm_a_SOURCES += libyasm/floatnum.c
+libyasm_a_SOURCES += libyasm/hamt.c
+libyasm_a_SOURCES += libyasm/insn.c
+libyasm_a_SOURCES += libyasm/intnum.c
+libyasm_a_SOURCES += libyasm/inttree.c
+libyasm_a_SOURCES += libyasm/linemap.c
+libyasm_a_SOURCES += libyasm/md5.c
+libyasm_a_SOURCES += libyasm/mergesort.c
+libyasm_a_SOURCES += libyasm/phash.c
+libyasm_a_SOURCES += libyasm/section.c
+libyasm_a_SOURCES += libyasm/strcasecmp.c
+libyasm_a_SOURCES += libyasm/strsep.c
+libyasm_a_SOURCES += libyasm/symrec.c
+libyasm_a_SOURCES += libyasm/valparam.c
+libyasm_a_SOURCES += libyasm/value.c
+libyasm_a_SOURCES += libyasm/xmalloc.c
+libyasm_a_SOURCES += libyasm/xstrdup.c
+nodist_libyasm_a_SOURCES += module.c
+
+module.c: $(top_srcdir)/libyasm/module.in genmodule$(EXEEXT) Makefile
+ $(top_builddir)/genmodule$(EXEEXT) $(top_srcdir)/libyasm/module.in Makefile
+
+CLEANFILES += module.c
+
+noinst_PROGRAMS += genmodule
+
+genmodule_SOURCES =
+EXTRA_DIST += libyasm/genmodule.c
+genmodule_LDADD = genmodule.$(OBJEXT)
+genmodule_LINK = $(CCLD_FOR_BUILD) -o $@
+
+genmodule.$(OBJEXT): libyasm/genmodule.c
+ $(CC_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) -c -o $@ `test -f libyasm/genmodule.c || echo '$(srcdir)/'`libyasm/genmodule.c
+
+EXTRA_DIST += libyasm/module.in
+
+modincludedir = $(includedir)/libyasm
+
+modinclude_HEADERS = libyasm/arch.h
+modinclude_HEADERS += libyasm/assocdat.h
+modinclude_HEADERS += libyasm/bitvect.h
+modinclude_HEADERS += libyasm/bytecode.h
+modinclude_HEADERS += libyasm/compat-queue.h
+modinclude_HEADERS += libyasm/coretype.h
+modinclude_HEADERS += libyasm/dbgfmt.h
+modinclude_HEADERS += libyasm/errwarn.h
+modinclude_HEADERS += libyasm/expr.h
+modinclude_HEADERS += libyasm/file.h
+modinclude_HEADERS += libyasm/floatnum.h
+modinclude_HEADERS += libyasm/hamt.h
+modinclude_HEADERS += libyasm/insn.h
+modinclude_HEADERS += libyasm/intnum.h
+modinclude_HEADERS += libyasm/inttree.h
+modinclude_HEADERS += libyasm/linemap.h
+modinclude_HEADERS += libyasm/listfmt.h
+modinclude_HEADERS += libyasm/md5.h
+modinclude_HEADERS += libyasm/module.h
+modinclude_HEADERS += libyasm/objfmt.h
+modinclude_HEADERS += libyasm/parser.h
+modinclude_HEADERS += libyasm/phash.h
+modinclude_HEADERS += libyasm/preproc.h
+modinclude_HEADERS += libyasm/section.h
+modinclude_HEADERS += libyasm/symrec.h
+modinclude_HEADERS += libyasm/valparam.h
+modinclude_HEADERS += libyasm/value.h
+
+EXTRA_DIST += libyasm/tests/Makefile.inc
+
+include libyasm/tests/Makefile.inc
--- /dev/null
+TESTS += bitvect_test
+TESTS += floatnum_test
+TESTS += leb128_test
+TESTS += splitpath_test
+TESTS += combpath_test
+TESTS += uncstring_test
+TESTS += libyasm/tests/libyasm_test.sh
+
+EXTRA_DIST += libyasm/tests/libyasm_test.sh
+EXTRA_DIST += libyasm/tests/1shl0.asm
+EXTRA_DIST += libyasm/tests/1shl0.hex
+EXTRA_DIST += libyasm/tests/absloop-err.asm
+EXTRA_DIST += libyasm/tests/absloop-err.errwarn
+EXTRA_DIST += libyasm/tests/charconst64.asm
+EXTRA_DIST += libyasm/tests/charconst64.hex
+EXTRA_DIST += libyasm/tests/data-rawvalue.asm
+EXTRA_DIST += libyasm/tests/data-rawvalue.hex
+EXTRA_DIST += libyasm/tests/duplabel-err.asm
+EXTRA_DIST += libyasm/tests/duplabel-err.errwarn
+EXTRA_DIST += libyasm/tests/emptydata.asm
+EXTRA_DIST += libyasm/tests/emptydata.hex
+EXTRA_DIST += libyasm/tests/equ-expand.asm
+EXTRA_DIST += libyasm/tests/equ-expand.hex
+EXTRA_DIST += libyasm/tests/expr-fold-level.asm
+EXTRA_DIST += libyasm/tests/expr-fold-level.hex
+EXTRA_DIST += libyasm/tests/expr-simplify-identity.asm
+EXTRA_DIST += libyasm/tests/expr-simplify-identity.hex
+EXTRA_DIST += libyasm/tests/expr-wide-ident.asm
+EXTRA_DIST += libyasm/tests/expr-wide-ident.hex
+EXTRA_DIST += libyasm/tests/externdef.asm
+EXTRA_DIST += libyasm/tests/externdef.errwarn
+EXTRA_DIST += libyasm/tests/externdef.hex
+EXTRA_DIST += libyasm/tests/incbin.asm
+EXTRA_DIST += libyasm/tests/incbin.hex
+EXTRA_DIST += libyasm/tests/jmpsize1.asm
+EXTRA_DIST += libyasm/tests/jmpsize1.hex
+EXTRA_DIST += libyasm/tests/jmpsize1-err.asm
+EXTRA_DIST += libyasm/tests/jmpsize1-err.errwarn
+EXTRA_DIST += libyasm/tests/opt-align1.asm
+EXTRA_DIST += libyasm/tests/opt-align1.hex
+EXTRA_DIST += libyasm/tests/opt-align2.asm
+EXTRA_DIST += libyasm/tests/opt-align2.hex
+EXTRA_DIST += libyasm/tests/opt-align3.asm
+EXTRA_DIST += libyasm/tests/opt-align3.hex
+EXTRA_DIST += libyasm/tests/opt-circular1-err.asm
+EXTRA_DIST += libyasm/tests/opt-circular1-err.errwarn
+EXTRA_DIST += libyasm/tests/opt-circular2-err.asm
+EXTRA_DIST += libyasm/tests/opt-circular2-err.errwarn
+EXTRA_DIST += libyasm/tests/opt-circular3-err.asm
+EXTRA_DIST += libyasm/tests/opt-circular3-err.errwarn
+EXTRA_DIST += libyasm/tests/opt-gvmat64.asm
+EXTRA_DIST += libyasm/tests/opt-gvmat64.hex
+EXTRA_DIST += libyasm/tests/opt-immexpand.asm
+EXTRA_DIST += libyasm/tests/opt-immexpand.hex
+EXTRA_DIST += libyasm/tests/opt-immnoexpand.asm
+EXTRA_DIST += libyasm/tests/opt-immnoexpand.hex
+EXTRA_DIST += libyasm/tests/opt-oldalign.asm
+EXTRA_DIST += libyasm/tests/opt-oldalign.hex
+EXTRA_DIST += libyasm/tests/opt-struc.asm
+EXTRA_DIST += libyasm/tests/opt-struc.hex
+EXTRA_DIST += libyasm/tests/reserve-err1.asm
+EXTRA_DIST += libyasm/tests/reserve-err1.errwarn
+EXTRA_DIST += libyasm/tests/reserve-err2.asm
+EXTRA_DIST += libyasm/tests/reserve-err2.errwarn
+EXTRA_DIST += libyasm/tests/strucsize.asm
+EXTRA_DIST += libyasm/tests/strucsize.hex
+EXTRA_DIST += libyasm/tests/times0.asm
+EXTRA_DIST += libyasm/tests/times0.hex
+EXTRA_DIST += libyasm/tests/timesfwd.asm
+EXTRA_DIST += libyasm/tests/timesfwd.hex
+EXTRA_DIST += libyasm/tests/timesover-err.asm
+EXTRA_DIST += libyasm/tests/timesover-err.errwarn
+EXTRA_DIST += libyasm/tests/timesunder.asm
+EXTRA_DIST += libyasm/tests/timesunder.hex
+EXTRA_DIST += libyasm/tests/times-res.asm
+EXTRA_DIST += libyasm/tests/times-res.errwarn
+EXTRA_DIST += libyasm/tests/times-res.hex
+EXTRA_DIST += libyasm/tests/unary.asm
+EXTRA_DIST += libyasm/tests/unary.hex
+EXTRA_DIST += libyasm/tests/value-err.asm
+EXTRA_DIST += libyasm/tests/value-err.errwarn
+EXTRA_DIST += libyasm/tests/value-samesym.asm
+EXTRA_DIST += libyasm/tests/value-samesym.errwarn
+EXTRA_DIST += libyasm/tests/value-samesym.hex
+EXTRA_DIST += libyasm/tests/value-mask.asm
+EXTRA_DIST += libyasm/tests/value-mask.errwarn
+EXTRA_DIST += libyasm/tests/value-mask.hex
+EXTRA_DIST += libyasm/tests/value-shr-symexpr.asm
+EXTRA_DIST += libyasm/tests/value-shr-symexpr.hex
+
+check_PROGRAMS += bitvect_test
+check_PROGRAMS += floatnum_test
+check_PROGRAMS += leb128_test
+check_PROGRAMS += splitpath_test
+check_PROGRAMS += combpath_test
+check_PROGRAMS += uncstring_test
+
+bitvect_test_SOURCES = libyasm/tests/bitvect_test.c
+bitvect_test_LDADD = libyasm.a $(INTLLIBS)
+
+floatnum_test_SOURCES = libyasm/tests/floatnum_test.c
+floatnum_test_LDADD = libyasm.a $(INTLLIBS)
+
+leb128_test_SOURCES = libyasm/tests/leb128_test.c
+leb128_test_LDADD = libyasm.a $(INTLLIBS)
+
+splitpath_test_SOURCES = libyasm/tests/splitpath_test.c
+splitpath_test_LDADD = libyasm.a $(INTLLIBS)
+
+combpath_test_SOURCES = libyasm/tests/combpath_test.c
+combpath_test_LDADD = libyasm.a $(INTLLIBS)
+
+uncstring_test_SOURCES = libyasm/tests/uncstring_test.c
+uncstring_test_LDADD = libyasm.a $(INTLLIBS)
--- /dev/null
+EXTRA_DIST += m4/intmax.m4
+EXTRA_DIST += m4/longdouble.m4
+EXTRA_DIST += m4/nls.m4
+EXTRA_DIST += m4/po.m4
+EXTRA_DIST += m4/printf-posix.m4
+EXTRA_DIST += m4/signed.m4
+EXTRA_DIST += m4/size_max.m4
+EXTRA_DIST += m4/ulonglong.m4
+EXTRA_DIST += m4/wchar_t.m4
+EXTRA_DIST += m4/wint_t.m4
+EXTRA_DIST += m4/xsize.m4
+EXTRA_DIST += m4/codeset.m4
+EXTRA_DIST += m4/gettext.m4
+EXTRA_DIST += m4/glibc21.m4
+EXTRA_DIST += m4/iconv.m4
+EXTRA_DIST += m4/intdiv0.m4
+EXTRA_DIST += m4/inttypes.m4
+EXTRA_DIST += m4/inttypes_h.m4
+EXTRA_DIST += m4/inttypes-pri.m4
+EXTRA_DIST += m4/isc-posix.m4
+EXTRA_DIST += m4/lcmessage.m4
+EXTRA_DIST += m4/lib-ld.m4
+EXTRA_DIST += m4/lib-link.m4
+EXTRA_DIST += m4/lib-prefix.m4
+EXTRA_DIST += m4/longlong.m4
+EXTRA_DIST += m4/progtest.m4
+EXTRA_DIST += m4/stdint_h.m4
+EXTRA_DIST += m4/uintmax_t.m4
+EXTRA_DIST += m4/pythonhead.m4
+EXTRA_DIST += m4/cython.m4
--- /dev/null
+EXTRA_DIST += modules/arch/Makefile.inc
+EXTRA_DIST += modules/listfmts/Makefile.inc
+EXTRA_DIST += modules/parsers/Makefile.inc
+EXTRA_DIST += modules/preprocs/Makefile.inc
+EXTRA_DIST += modules/objfmts/Makefile.inc
+
+include modules/arch/Makefile.inc
+include modules/listfmts/Makefile.inc
+include modules/parsers/Makefile.inc
+include modules/preprocs/Makefile.inc
+include modules/dbgfmts/Makefile.inc
+include modules/objfmts/Makefile.inc
--- /dev/null
+EXTRA_DIST += modules/arch/x86/Makefile.inc
+EXTRA_DIST += modules/arch/lc3b/Makefile.inc
+
+include modules/arch/x86/Makefile.inc
+include modules/arch/lc3b/Makefile.inc
+
+notrans_dist_man_MANS += yasm_arch.7
+
+if BUILD_MAN
+yasm_arch.7: modules/arch/yasm_arch.xml
+ $(XMLTO) -o $(top_builddir) man $(srcdir)/modules/arch/yasm_arch.xml
+endif
+
+EXTRA_DIST += modules/arch/yasm_arch.xml
--- /dev/null
+libyasm_a_SOURCES += modules/arch/lc3b/lc3barch.c
+libyasm_a_SOURCES += modules/arch/lc3b/lc3barch.h
+libyasm_a_SOURCES += modules/arch/lc3b/lc3bbc.c
+nodist_libyasm_a_SOURCES += lc3bid.c
+
+YASM_MODULES += arch_lc3b
+
+lc3bid.c: $(srcdir)/modules/arch/lc3b/lc3bid.re re2c$(EXEEXT)
+ $(top_builddir)/re2c$(EXEEXT) -s -o $@ $(srcdir)/modules/arch/lc3b/lc3bid.re
+
+CLEANFILES += lc3bid.c
+
+EXTRA_DIST += modules/arch/lc3b/tests/Makefile.inc
+EXTRA_DIST += modules/arch/lc3b/lc3bid.re
+
+include modules/arch/lc3b/tests/Makefile.inc
--- /dev/null
+TESTS += modules/arch/lc3b/tests/lc3b_test.sh
+
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b_test.sh
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-basic.asm
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-basic.errwarn
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-basic.hex
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-br.asm
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-br.hex
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-ea-err.asm
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-ea-err.errwarn
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-mp22NC.asm
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-mp22NC.hex
--- /dev/null
+libyasm_a_SOURCES += modules/arch/x86/x86arch.c
+libyasm_a_SOURCES += modules/arch/x86/x86arch.h
+libyasm_a_SOURCES += modules/arch/x86/x86bc.c
+libyasm_a_SOURCES += modules/arch/x86/x86expr.c
+libyasm_a_SOURCES += modules/arch/x86/x86id.c
+nodist_libyasm_a_SOURCES += x86cpu.c
+nodist_libyasm_a_SOURCES += x86regtmod.c
+
+YASM_MODULES += arch_x86
+
+modules/arch/x86/x86id.c: x86insn_nasm.c x86insn_gas.c x86insns.c
+
+EXTRA_DIST += modules/arch/x86/gen_x86_insn.py
+
+if HAVE_PYTHON
+x86insn_nasm.gperf x86insn_gas.gperf x86insns.c: $(srcdir)/modules/arch/x86/gen_x86_insn.py
+ $(PYTHON) $(srcdir)/modules/arch/x86/gen_x86_insn.py
+else
+x86insn_nasm.gperf: $(srcdir)/x86insn_nasm.gperf
+ @echo Python must be installed to regenerate x86 instructions files
+ cp $(srcdir)/x86insn_nasm.gperf $@
+x86insn_gas.gperf: $(srcdir)/x86insn_gas.gperf
+ @echo Python must be installed to regenerate x86 instructions files
+ cp $(srcdir)/x86insn_gas.gperf $@
+endif
+
+BUILT_SOURCES += x86insns.c
+BUILT_SOURCES += x86insn_nasm.gperf
+BUILT_SOURCES += x86insn_gas.gperf
+EXTRA_DIST += x86insns.c
+EXTRA_DIST += x86insn_nasm.gperf
+EXTRA_DIST += x86insn_gas.gperf
+MAINTAINERCLEANFILES += x86insns.c
+MAINTAINERCLEANFILES += x86insn_nasm.gperf
+MAINTAINERCLEANFILES += x86insn_gas.gperf
+
+EXTRA_DIST += modules/arch/x86/x86cpu.gperf
+EXTRA_DIST += modules/arch/x86/x86regtmod.gperf
+
+# Use suffix rules for gperf files
+x86insn_nasm.c: x86insn_nasm.gperf genperf$(EXEEXT)
+x86insn_gas.c: x86insn_gas.gperf genperf$(EXEEXT)
+x86cpu.c: $(srcdir)/modules/arch/x86/x86cpu.gperf genperf$(EXEEXT)
+ $(top_builddir)/genperf$(EXEEXT) $(srcdir)/modules/arch/x86/x86cpu.gperf $@
+x86regtmod.c: $(srcdir)/modules/arch/x86/x86regtmod.gperf genperf$(EXEEXT)
+ $(top_builddir)/genperf$(EXEEXT) $(srcdir)/modules/arch/x86/x86regtmod.gperf $@
+
+BUILT_SOURCES += x86insn_nasm.c
+BUILT_SOURCES += x86insn_gas.c
+CLEANFILES += x86insn_nasm.c
+CLEANFILES += x86insn_gas.c
+CLEANFILES += x86cpu.c
+CLEANFILES += x86regtmod.c
+
+EXTRA_DIST += modules/arch/x86/tests/Makefile.inc
+
+include modules/arch/x86/tests/Makefile.inc
--- /dev/null
+TESTS += modules/arch/x86/tests/x86_test.sh
+
+EXTRA_DIST += modules/arch/x86/tests/x86_test.sh
+EXTRA_DIST += modules/arch/x86/tests/gen-fma-test.py
+EXTRA_DIST += modules/arch/x86/tests/addbyte.asm
+EXTRA_DIST += modules/arch/x86/tests/addbyte.errwarn
+EXTRA_DIST += modules/arch/x86/tests/addbyte.hex
+EXTRA_DIST += modules/arch/x86/tests/addrop.asm
+EXTRA_DIST += modules/arch/x86/tests/addrop.errwarn
+EXTRA_DIST += modules/arch/x86/tests/addrop.hex
+EXTRA_DIST += modules/arch/x86/tests/addrop-err.asm
+EXTRA_DIST += modules/arch/x86/tests/addrop-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/aes.asm
+EXTRA_DIST += modules/arch/x86/tests/aes.hex
+EXTRA_DIST += modules/arch/x86/tests/amd200707.asm
+EXTRA_DIST += modules/arch/x86/tests/amd200707.hex
+EXTRA_DIST += modules/arch/x86/tests/amd-fma4.asm
+EXTRA_DIST += modules/arch/x86/tests/amd-fma4.hex
+EXTRA_DIST += modules/arch/x86/tests/arithsmall.asm
+EXTRA_DIST += modules/arch/x86/tests/arithsmall.errwarn
+EXTRA_DIST += modules/arch/x86/tests/arithsmall.hex
+EXTRA_DIST += modules/arch/x86/tests/avx.asm
+EXTRA_DIST += modules/arch/x86/tests/avx.hex
+EXTRA_DIST += modules/arch/x86/tests/avx16.asm
+EXTRA_DIST += modules/arch/x86/tests/avx16.hex
+EXTRA_DIST += modules/arch/x86/tests/avx2.asm
+EXTRA_DIST += modules/arch/x86/tests/avx2.hex
+EXTRA_DIST += modules/arch/x86/tests/avxcc.asm
+EXTRA_DIST += modules/arch/x86/tests/avxcc.hex
+EXTRA_DIST += modules/arch/x86/tests/bittest.asm
+EXTRA_DIST += modules/arch/x86/tests/bittest.hex
+EXTRA_DIST += modules/arch/x86/tests/bmi1.asm
+EXTRA_DIST += modules/arch/x86/tests/bmi1.hex
+EXTRA_DIST += modules/arch/x86/tests/bmi2.asm
+EXTRA_DIST += modules/arch/x86/tests/bmi2.hex
+EXTRA_DIST += modules/arch/x86/tests/bswap64.asm
+EXTRA_DIST += modules/arch/x86/tests/bswap64.hex
+EXTRA_DIST += modules/arch/x86/tests/clmul.asm
+EXTRA_DIST += modules/arch/x86/tests/clmul.hex
+EXTRA_DIST += modules/arch/x86/tests/cmpxchg.asm
+EXTRA_DIST += modules/arch/x86/tests/cmpxchg.hex
+EXTRA_DIST += modules/arch/x86/tests/cpubasic-err.asm
+EXTRA_DIST += modules/arch/x86/tests/cpubasic-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/cyrix.asm
+EXTRA_DIST += modules/arch/x86/tests/cyrix.hex
+EXTRA_DIST += modules/arch/x86/tests/div-err.asm
+EXTRA_DIST += modules/arch/x86/tests/div-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/ea-nonzero.asm
+EXTRA_DIST += modules/arch/x86/tests/ea-nonzero.hex
+EXTRA_DIST += modules/arch/x86/tests/ea-over.asm
+EXTRA_DIST += modules/arch/x86/tests/ea-over.errwarn
+EXTRA_DIST += modules/arch/x86/tests/ea-over.hex
+EXTRA_DIST += modules/arch/x86/tests/ea-warn.asm
+EXTRA_DIST += modules/arch/x86/tests/ea-warn.errwarn
+EXTRA_DIST += modules/arch/x86/tests/ea-warn.hex
+EXTRA_DIST += modules/arch/x86/tests/ebpindex.asm
+EXTRA_DIST += modules/arch/x86/tests/ebpindex.hex
+EXTRA_DIST += modules/arch/x86/tests/effaddr.asm
+EXTRA_DIST += modules/arch/x86/tests/effaddr.hex
+EXTRA_DIST += modules/arch/x86/tests/enter.asm
+EXTRA_DIST += modules/arch/x86/tests/enter.errwarn
+EXTRA_DIST += modules/arch/x86/tests/enter.hex
+EXTRA_DIST += modules/arch/x86/tests/eptvpid.asm
+EXTRA_DIST += modules/arch/x86/tests/eptvpid.hex
+EXTRA_DIST += modules/arch/x86/tests/f16c.asm
+EXTRA_DIST += modules/arch/x86/tests/f16c.hex
+EXTRA_DIST += modules/arch/x86/tests/far64.asm
+EXTRA_DIST += modules/arch/x86/tests/far64.hex
+EXTRA_DIST += modules/arch/x86/tests/farbasic.asm
+EXTRA_DIST += modules/arch/x86/tests/farbasic.hex
+EXTRA_DIST += modules/arch/x86/tests/farithr.asm
+EXTRA_DIST += modules/arch/x86/tests/farithr.hex
+EXTRA_DIST += modules/arch/x86/tests/fcmov.asm
+EXTRA_DIST += modules/arch/x86/tests/fcmov.hex
+EXTRA_DIST += modules/arch/x86/tests/fma.asm
+EXTRA_DIST += modules/arch/x86/tests/fma.hex
+EXTRA_DIST += modules/arch/x86/tests/fsgsbase.asm
+EXTRA_DIST += modules/arch/x86/tests/fsgsbase.hex
+EXTRA_DIST += modules/arch/x86/tests/fwdequ64.asm
+EXTRA_DIST += modules/arch/x86/tests/fwdequ64.hex
+EXTRA_DIST += modules/arch/x86/tests/genopcode.asm
+EXTRA_DIST += modules/arch/x86/tests/genopcode.hex
+EXTRA_DIST += modules/arch/x86/tests/imm64.asm
+EXTRA_DIST += modules/arch/x86/tests/imm64.errwarn
+EXTRA_DIST += modules/arch/x86/tests/imm64.hex
+EXTRA_DIST += modules/arch/x86/tests/invpcid.asm
+EXTRA_DIST += modules/arch/x86/tests/invpcid.hex
+EXTRA_DIST += modules/arch/x86/tests/iret.asm
+EXTRA_DIST += modules/arch/x86/tests/iret.hex
+EXTRA_DIST += modules/arch/x86/tests/jmp64-1.asm
+EXTRA_DIST += modules/arch/x86/tests/jmp64-1.hex
+EXTRA_DIST += modules/arch/x86/tests/jmp64-2.asm
+EXTRA_DIST += modules/arch/x86/tests/jmp64-2.hex
+EXTRA_DIST += modules/arch/x86/tests/jmp64-3.asm
+EXTRA_DIST += modules/arch/x86/tests/jmp64-3.hex
+EXTRA_DIST += modules/arch/x86/tests/jmp64-4.asm
+EXTRA_DIST += modules/arch/x86/tests/jmp64-4.hex
+EXTRA_DIST += modules/arch/x86/tests/jmp64-5.asm
+EXTRA_DIST += modules/arch/x86/tests/jmp64-5.hex
+EXTRA_DIST += modules/arch/x86/tests/jmp64-6.asm
+EXTRA_DIST += modules/arch/x86/tests/jmp64-6.hex
+EXTRA_DIST += modules/arch/x86/tests/jmpfar.asm
+EXTRA_DIST += modules/arch/x86/tests/jmpfar.hex
+EXTRA_DIST += modules/arch/x86/tests/larlsl.asm
+EXTRA_DIST += modules/arch/x86/tests/larlsl.hex
+EXTRA_DIST += modules/arch/x86/tests/lds.asm
+EXTRA_DIST += modules/arch/x86/tests/lds.hex
+EXTRA_DIST += modules/arch/x86/tests/lfs64.asm
+EXTRA_DIST += modules/arch/x86/tests/lfs64.hex
+EXTRA_DIST += modules/arch/x86/tests/loopadsz.asm
+EXTRA_DIST += modules/arch/x86/tests/loopadsz.hex
+EXTRA_DIST += modules/arch/x86/tests/lsahf.asm
+EXTRA_DIST += modules/arch/x86/tests/lsahf.hex
+EXTRA_DIST += modules/arch/x86/tests/lzcnt.asm
+EXTRA_DIST += modules/arch/x86/tests/lzcnt.hex
+EXTRA_DIST += modules/arch/x86/tests/mem64-err.asm
+EXTRA_DIST += modules/arch/x86/tests/mem64-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/mem64.asm
+EXTRA_DIST += modules/arch/x86/tests/mem64.errwarn
+EXTRA_DIST += modules/arch/x86/tests/mem64.hex
+EXTRA_DIST += modules/arch/x86/tests/mem64hi32.asm
+EXTRA_DIST += modules/arch/x86/tests/mem64hi32.hex
+EXTRA_DIST += modules/arch/x86/tests/mem64rip.asm
+EXTRA_DIST += modules/arch/x86/tests/mem64rip.hex
+EXTRA_DIST += modules/arch/x86/tests/mixcase.asm
+EXTRA_DIST += modules/arch/x86/tests/mixcase.hex
+EXTRA_DIST += modules/arch/x86/tests/movbe.asm
+EXTRA_DIST += modules/arch/x86/tests/movbe.hex
+EXTRA_DIST += modules/arch/x86/tests/movdq32.asm
+EXTRA_DIST += modules/arch/x86/tests/movdq32.hex
+EXTRA_DIST += modules/arch/x86/tests/movdq64.asm
+EXTRA_DIST += modules/arch/x86/tests/movdq64.hex
+EXTRA_DIST += modules/arch/x86/tests/negequ.asm
+EXTRA_DIST += modules/arch/x86/tests/negequ.hex
+EXTRA_DIST += modules/arch/x86/tests/nomem64-err.asm
+EXTRA_DIST += modules/arch/x86/tests/nomem64-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/nomem64-err2.asm
+EXTRA_DIST += modules/arch/x86/tests/nomem64-err2.errwarn
+EXTRA_DIST += modules/arch/x86/tests/nomem64.asm
+EXTRA_DIST += modules/arch/x86/tests/nomem64.errwarn
+EXTRA_DIST += modules/arch/x86/tests/nomem64.hex
+EXTRA_DIST += modules/arch/x86/tests/o64.asm
+EXTRA_DIST += modules/arch/x86/tests/o64.hex
+EXTRA_DIST += modules/arch/x86/tests/o64loop.asm
+EXTRA_DIST += modules/arch/x86/tests/o64loop.errwarn
+EXTRA_DIST += modules/arch/x86/tests/o64loop.hex
+EXTRA_DIST += modules/arch/x86/tests/opersize.asm
+EXTRA_DIST += modules/arch/x86/tests/opersize.hex
+EXTRA_DIST += modules/arch/x86/tests/opsize-err.asm
+EXTRA_DIST += modules/arch/x86/tests/opsize-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/overflow.asm
+EXTRA_DIST += modules/arch/x86/tests/overflow.errwarn
+EXTRA_DIST += modules/arch/x86/tests/overflow.hex
+EXTRA_DIST += modules/arch/x86/tests/padlock.asm
+EXTRA_DIST += modules/arch/x86/tests/padlock.hex
+EXTRA_DIST += modules/arch/x86/tests/pinsrb.asm
+EXTRA_DIST += modules/arch/x86/tests/pinsrb.hex
+EXTRA_DIST += modules/arch/x86/tests/pshift.asm
+EXTRA_DIST += modules/arch/x86/tests/pshift.hex
+EXTRA_DIST += modules/arch/x86/tests/push64.asm
+EXTRA_DIST += modules/arch/x86/tests/push64.errwarn
+EXTRA_DIST += modules/arch/x86/tests/push64.hex
+EXTRA_DIST += modules/arch/x86/tests/pushf.asm
+EXTRA_DIST += modules/arch/x86/tests/pushf.hex
+EXTRA_DIST += modules/arch/x86/tests/pushf-err.asm
+EXTRA_DIST += modules/arch/x86/tests/pushf-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/pushnosize.asm
+EXTRA_DIST += modules/arch/x86/tests/pushnosize.errwarn
+EXTRA_DIST += modules/arch/x86/tests/pushnosize.hex
+EXTRA_DIST += modules/arch/x86/tests/rdrnd.asm
+EXTRA_DIST += modules/arch/x86/tests/rdrnd.hex
+EXTRA_DIST += modules/arch/x86/tests/rep.asm
+EXTRA_DIST += modules/arch/x86/tests/rep.hex
+EXTRA_DIST += modules/arch/x86/tests/ret.asm
+EXTRA_DIST += modules/arch/x86/tests/ret.hex
+EXTRA_DIST += modules/arch/x86/tests/riprel1.asm
+EXTRA_DIST += modules/arch/x86/tests/riprel1.hex
+EXTRA_DIST += modules/arch/x86/tests/riprel2.asm
+EXTRA_DIST += modules/arch/x86/tests/riprel2.errwarn
+EXTRA_DIST += modules/arch/x86/tests/riprel2.hex
+EXTRA_DIST += modules/arch/x86/tests/ripseg.asm
+EXTRA_DIST += modules/arch/x86/tests/ripseg.errwarn
+EXTRA_DIST += modules/arch/x86/tests/ripseg.hex
+EXTRA_DIST += modules/arch/x86/tests/segmov.asm
+EXTRA_DIST += modules/arch/x86/tests/segmov.hex
+EXTRA_DIST += modules/arch/x86/tests/segoff.asm
+EXTRA_DIST += modules/arch/x86/tests/segoff.hex
+EXTRA_DIST += modules/arch/x86/tests/segoff-err.asm
+EXTRA_DIST += modules/arch/x86/tests/segoff-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/shift.asm
+EXTRA_DIST += modules/arch/x86/tests/shift.hex
+EXTRA_DIST += modules/arch/x86/tests/shift64.asm
+EXTRA_DIST += modules/arch/x86/tests/shift64.hex
+EXTRA_DIST += modules/arch/x86/tests/simd-1.asm
+EXTRA_DIST += modules/arch/x86/tests/simd-1.hex
+EXTRA_DIST += modules/arch/x86/tests/simd-2.asm
+EXTRA_DIST += modules/arch/x86/tests/simd-2.hex
+EXTRA_DIST += modules/arch/x86/tests/simd64-1.asm
+EXTRA_DIST += modules/arch/x86/tests/simd64-1.hex
+EXTRA_DIST += modules/arch/x86/tests/simd64-2.asm
+EXTRA_DIST += modules/arch/x86/tests/simd64-2.hex
+EXTRA_DIST += modules/arch/x86/tests/smx.asm
+EXTRA_DIST += modules/arch/x86/tests/smx.hex
+EXTRA_DIST += modules/arch/x86/tests/sse-prefix.asm
+EXTRA_DIST += modules/arch/x86/tests/sse-prefix.hex
+EXTRA_DIST += modules/arch/x86/tests/sse3.asm
+EXTRA_DIST += modules/arch/x86/tests/sse3.hex
+EXTRA_DIST += modules/arch/x86/tests/sse4.asm
+EXTRA_DIST += modules/arch/x86/tests/sse4.hex
+EXTRA_DIST += modules/arch/x86/tests/sse4-err.asm
+EXTRA_DIST += modules/arch/x86/tests/sse4-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/ssewidth.asm
+EXTRA_DIST += modules/arch/x86/tests/ssewidth.hex
+EXTRA_DIST += modules/arch/x86/tests/ssse3.asm
+EXTRA_DIST += modules/arch/x86/tests/ssse3.c
+EXTRA_DIST += modules/arch/x86/tests/ssse3.hex
+EXTRA_DIST += modules/arch/x86/tests/stos.asm
+EXTRA_DIST += modules/arch/x86/tests/stos.hex
+EXTRA_DIST += modules/arch/x86/tests/str.asm
+EXTRA_DIST += modules/arch/x86/tests/str.hex
+EXTRA_DIST += modules/arch/x86/tests/strict.asm
+EXTRA_DIST += modules/arch/x86/tests/strict.errwarn
+EXTRA_DIST += modules/arch/x86/tests/strict.hex
+EXTRA_DIST += modules/arch/x86/tests/strict-err.asm
+EXTRA_DIST += modules/arch/x86/tests/strict-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/stringseg.asm
+EXTRA_DIST += modules/arch/x86/tests/stringseg.errwarn
+EXTRA_DIST += modules/arch/x86/tests/stringseg.hex
+EXTRA_DIST += modules/arch/x86/tests/svm.asm
+EXTRA_DIST += modules/arch/x86/tests/svm.hex
+EXTRA_DIST += modules/arch/x86/tests/twobytemem.asm
+EXTRA_DIST += modules/arch/x86/tests/twobytemem.errwarn
+EXTRA_DIST += modules/arch/x86/tests/twobytemem.hex
+EXTRA_DIST += modules/arch/x86/tests/vmx.asm
+EXTRA_DIST += modules/arch/x86/tests/vmx.hex
+EXTRA_DIST += modules/arch/x86/tests/vmx-err.asm
+EXTRA_DIST += modules/arch/x86/tests/vmx-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/vsib.asm
+EXTRA_DIST += modules/arch/x86/tests/vsib.hex
+EXTRA_DIST += modules/arch/x86/tests/vsib-err.asm
+EXTRA_DIST += modules/arch/x86/tests/vsib-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/vsib2-err.asm
+EXTRA_DIST += modules/arch/x86/tests/vsib2-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/x86label.asm
+EXTRA_DIST += modules/arch/x86/tests/x86label.hex
+EXTRA_DIST += modules/arch/x86/tests/xchg64.asm
+EXTRA_DIST += modules/arch/x86/tests/xchg64.hex
+EXTRA_DIST += modules/arch/x86/tests/xmm64.asm
+EXTRA_DIST += modules/arch/x86/tests/xmm64.hex
+EXTRA_DIST += modules/arch/x86/tests/xop-all.asm
+EXTRA_DIST += modules/arch/x86/tests/xop-all.hex
+EXTRA_DIST += modules/arch/x86/tests/xop-basic.asm
+EXTRA_DIST += modules/arch/x86/tests/xop-basic.hex
+EXTRA_DIST += modules/arch/x86/tests/xop-cc.asm
+EXTRA_DIST += modules/arch/x86/tests/xop-cc.hex
+EXTRA_DIST += modules/arch/x86/tests/xsave.asm
+EXTRA_DIST += modules/arch/x86/tests/xsave.hex
+
+EXTRA_DIST += modules/arch/x86/tests/gas32/Makefile.inc
+EXTRA_DIST += modules/arch/x86/tests/gas64/Makefile.inc
+
+include modules/arch/x86/tests/gas32/Makefile.inc
+include modules/arch/x86/tests/gas64/Makefile.inc
--- /dev/null
+TESTS += modules/arch/x86/tests/gas32/x86_gas32_test.sh
+
+EXTRA_DIST += modules/arch/x86/tests/gas32/x86_gas32_test.sh
+EXTRA_DIST += modules/arch/x86/tests/gas32/align32.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/align32.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-farithr.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-farithr.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-farjump.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-farjump.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-fpmem.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-fpmem.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-invlpg.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-invlpg.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-loop32.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-loop32.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-movdq32.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-movdq32.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-movsd.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-movsd.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-pop.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-pop.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas32-jmpcall.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas32-jmpcall.hex
+
--- /dev/null
+TESTS += modules/arch/x86/tests/gas64/x86_gas64_test.sh
+
+EXTRA_DIST += modules/arch/x86/tests/gas64/x86_gas64_test.sh
+EXTRA_DIST += modules/arch/x86/tests/gas64/align64.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/align64.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-cbw.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-cbw.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-fp.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-fp.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-inout.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-inout.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-loop64.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-loop64.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-moreinsn.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-moreinsn.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-movabs.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-movabs.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-movdq64.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-movdq64.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-movsxs.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-movsxs.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-muldiv.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-muldiv.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-prefix.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-prefix.errwarn
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-prefix.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-retenter.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-retenter.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-shift.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-shift.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas64-jmpcall.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas64-jmpcall.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/riprel.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/riprel.hex
+
--- /dev/null
+EXTRA_DIST += modules/dbgfmts/codeview/Makefile.inc
+EXTRA_DIST += modules/dbgfmts/dwarf2/Makefile.inc
+EXTRA_DIST += modules/dbgfmts/null/Makefile.inc
+EXTRA_DIST += modules/dbgfmts/stabs/Makefile.inc
+
+include modules/dbgfmts/codeview/Makefile.inc
+include modules/dbgfmts/dwarf2/Makefile.inc
+include modules/dbgfmts/null/Makefile.inc
+include modules/dbgfmts/stabs/Makefile.inc
+
+notrans_dist_man_MANS += yasm_dbgfmts.7
+
+if BUILD_MAN
+yasm_dbgfmts.7: modules/dbgfmts/yasm_dbgfmts.xml
+ $(XMLTO) -o $(top_builddir) man $(srcdir)/modules/dbgfmts/yasm_dbgfmts.xml
+endif
+
+EXTRA_DIST += modules/dbgfmts/yasm_dbgfmts.xml
--- /dev/null
+libyasm_a_SOURCES += modules/dbgfmts/codeview/cv-dbgfmt.h
+libyasm_a_SOURCES += modules/dbgfmts/codeview/cv-dbgfmt.c
+libyasm_a_SOURCES += modules/dbgfmts/codeview/cv-symline.c
+libyasm_a_SOURCES += modules/dbgfmts/codeview/cv-type.c
+
+YASM_MODULES += dbgfmt_cv8
+
+EXTRA_DIST += modules/dbgfmts/codeview/cv8.txt
+
+#EXTRA_DIST += modules/dbgfmts/codeview/tests/Makefile.inc
+#include modules/dbgfmts/codeview/tests/Makefile.inc
--- /dev/null
+libyasm_a_SOURCES += modules/dbgfmts/dwarf2/dwarf2-dbgfmt.h
+libyasm_a_SOURCES += modules/dbgfmts/dwarf2/dwarf2-dbgfmt.c
+libyasm_a_SOURCES += modules/dbgfmts/dwarf2/dwarf2-line.c
+libyasm_a_SOURCES += modules/dbgfmts/dwarf2/dwarf2-aranges.c
+libyasm_a_SOURCES += modules/dbgfmts/dwarf2/dwarf2-info.c
+
+YASM_MODULES += dbgfmt_dwarf2
+
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/Makefile.inc
+include modules/dbgfmts/dwarf2/tests/Makefile.inc
--- /dev/null
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/gen64/Makefile.inc
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass32/Makefile.inc
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass64/Makefile.inc
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/passwin64/Makefile.inc
+include modules/dbgfmts/dwarf2/tests/gen64/Makefile.inc
+include modules/dbgfmts/dwarf2/tests/pass32/Makefile.inc
+include modules/dbgfmts/dwarf2/tests/pass64/Makefile.inc
+include modules/dbgfmts/dwarf2/tests/passwin64/Makefile.inc
+
--- /dev/null
+TESTS += modules/dbgfmts/dwarf2/tests/pass32/dwarf2_pass32_test.sh
+
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass32/dwarf2_pass32_test.sh
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass32/dwarf32-err.asm
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass32/dwarf32-err.errwarn
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass32/dwarf32_testhd.asm
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass32/dwarf32_testhd.hex
+
--- /dev/null
+TESTS += modules/dbgfmts/dwarf2/tests/pass64/dwarf2_pass64_test.sh
+
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass64/dwarf2_pass64_test.sh
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass64/dwarf64_2loc.asm
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass64/dwarf64_2loc.hex
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass64/dwarf64_leb128.asm
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass64/dwarf64_leb128.hex
+
--- /dev/null
+TESTS += modules/dbgfmts/dwarf2/tests/passwin64/dwarf2_passwin64_test.sh
+
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/passwin64/dwarf2_passwin64_test.sh
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/passwin64/dwarfwin64_testhd.asm
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/passwin64/dwarfwin64_testhd.errwarn
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/passwin64/dwarfwin64_testhd.hex
+
--- /dev/null
+libyasm_a_SOURCES += modules/dbgfmts/null/null-dbgfmt.c
+
+YASM_MODULES += dbgfmt_null
--- /dev/null
+libyasm_a_SOURCES += modules/dbgfmts/stabs/stabs-dbgfmt.c
+
+YASM_MODULES += dbgfmt_stabs
+
+EXTRA_DIST += modules/dbgfmts/stabs/tests/Makefile.inc
+include modules/dbgfmts/stabs/tests/Makefile.inc
--- /dev/null
+EXTRA_DIST += modules/dbgfmts/stabs/tests/stabs_test.sh
+TESTS += modules/dbgfmts/stabs/tests/stabs_test.sh
+
+EXTRA_DIST += modules/dbgfmts/stabs/tests/stabs-elf.asm
+EXTRA_DIST += modules/dbgfmts/stabs/tests/stabs-elf.hex
--- /dev/null
+EXTRA_DIST += modules/listfmts/nasm/Makefile.inc
+
+include modules/listfmts/nasm/Makefile.inc
--- /dev/null
+libyasm_a_SOURCES += modules/listfmts/nasm/nasm-listfmt.c
+
+YASM_MODULES += listfmt_nasm
+
+#EXTRA_DIST += modules/listfmts/nasm/tests/Makefile.inc
+
+#include modules/listfmts/nasm/tests/Makefile.inc
--- /dev/null
+EXTRA_DIST += modules/objfmts/dbg/Makefile.inc
+EXTRA_DIST += modules/objfmts/bin/Makefile.inc
+EXTRA_DIST += modules/objfmts/elf/Makefile.inc
+#!EXTRA_DIST += modules/objfmts/omf/Makefile.inc
+EXTRA_DIST += modules/objfmts/coff/Makefile.inc
+EXTRA_DIST += modules/objfmts/macho/Makefile.inc
+EXTRA_DIST += modules/objfmts/rdf/Makefile.inc
+EXTRA_DIST += modules/objfmts/win32/Makefile.inc
+EXTRA_DIST += modules/objfmts/win64/Makefile.inc
+EXTRA_DIST += modules/objfmts/xdf/Makefile.inc
+
+include modules/objfmts/dbg/Makefile.inc
+include modules/objfmts/bin/Makefile.inc
+include modules/objfmts/elf/Makefile.inc
+#!include modules/objfmts/omf/Makefile.inc
+include modules/objfmts/coff/Makefile.inc
+include modules/objfmts/macho/Makefile.inc
+include modules/objfmts/rdf/Makefile.inc
+include modules/objfmts/win32/Makefile.inc
+include modules/objfmts/win64/Makefile.inc
+include modules/objfmts/xdf/Makefile.inc
+
+notrans_dist_man_MANS += yasm_objfmts.7
+
+if BUILD_MAN
+yasm_objfmts.7: modules/objfmts/yasm_objfmts.xml
+ $(XMLTO) -o $(top_builddir) man $(srcdir)/modules/objfmts/yasm_objfmts.xml
+endif
+
+EXTRA_DIST += modules/objfmts/yasm_objfmts.xml
--- /dev/null
+libyasm_a_SOURCES += modules/objfmts/bin/bin-objfmt.c
+
+YASM_MODULES += objfmt_bin objfmt_dosexe
+
+EXTRA_DIST += modules/objfmts/bin/tests/Makefile.inc
+
+include modules/objfmts/bin/tests/Makefile.inc
--- /dev/null
+TESTS += modules/objfmts/bin/tests/bin_test.sh
+
+EXTRA_DIST += modules/objfmts/bin/tests/bin_test.sh
+EXTRA_DIST += modules/objfmts/bin/tests/abs.asm
+EXTRA_DIST += modules/objfmts/bin/tests/abs.hex
+EXTRA_DIST += modules/objfmts/bin/tests/bigorg.asm
+EXTRA_DIST += modules/objfmts/bin/tests/bigorg.hex
+EXTRA_DIST += modules/objfmts/bin/tests/bigorg.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/bin-farabs.asm
+EXTRA_DIST += modules/objfmts/bin/tests/bin-farabs.hex
+EXTRA_DIST += modules/objfmts/bin/tests/bin-rip.asm
+EXTRA_DIST += modules/objfmts/bin/tests/bin-rip.hex
+EXTRA_DIST += modules/objfmts/bin/tests/bintest.asm
+EXTRA_DIST += modules/objfmts/bin/tests/bintest.hex
+EXTRA_DIST += modules/objfmts/bin/tests/float-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/float-err.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/float.asm
+EXTRA_DIST += modules/objfmts/bin/tests/float.hex
+EXTRA_DIST += modules/objfmts/bin/tests/integer-warn.asm
+EXTRA_DIST += modules/objfmts/bin/tests/integer-warn.hex
+EXTRA_DIST += modules/objfmts/bin/tests/integer-warn.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/integer.asm
+EXTRA_DIST += modules/objfmts/bin/tests/integer.hex
+EXTRA_DIST += modules/objfmts/bin/tests/levelop.asm
+EXTRA_DIST += modules/objfmts/bin/tests/levelop.hex
+EXTRA_DIST += modules/objfmts/bin/tests/reserve.asm
+EXTRA_DIST += modules/objfmts/bin/tests/reserve.hex
+EXTRA_DIST += modules/objfmts/bin/tests/reserve.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/shr.asm
+EXTRA_DIST += modules/objfmts/bin/tests/shr.hex
+
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/Makefile.inc
+
+include modules/objfmts/bin/tests/multisect/Makefile.inc
--- /dev/null
+TESTS += modules/objfmts/bin/tests/multisect/bin_multi_test.sh
+
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin_multi_test.sh
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-align.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-align.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-align.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-align.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-ssym.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-ssym.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-ssym.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/follows-loop1-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/follows-loop1-err.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/follows-loop2-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/follows-loop2-err.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/follows-notfound-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/follows-notfound-err.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/initbss.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/initbss.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/initbss.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/initbss.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/ldlinux-sects.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/ldlinux-sects.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/ldlinux-sects.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect1.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect1.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect1.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect2.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect2.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect2.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect3.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect3.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect3.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect4.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect4.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect4.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect5.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect5.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect5.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/nomultisect1.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/nomultisect1.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/nomultisect1.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/nomultisect2.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/nomultisect2.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/nomultisect2.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/vfollows-loop1-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/vfollows-loop1-err.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/vfollows-loop2-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/vfollows-loop2-err.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/vfollows-notfound-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/vfollows-notfound-err.errwarn
+
--- /dev/null
+libyasm_a_SOURCES += modules/objfmts/coff/coff-objfmt.c
+libyasm_a_SOURCES += modules/objfmts/coff/coff-objfmt.h
+libyasm_a_SOURCES += modules/objfmts/coff/win64-except.c
+
+YASM_MODULES += objfmt_coff
+
+$(top_srcdir)/modules/objfmts/coff/coff-objfmt.c: win64-nasm.c win64-gas.c
+
+win64-nasm.c: $(srcdir)/modules/objfmts/coff/win64-nasm.mac genmacro$(EXEEXT)
+ $(top_builddir)/genmacro$(EXEEXT) $@ win64_nasm_stdmac $(srcdir)/modules/objfmts/coff/win64-nasm.mac
+
+BUILT_SOURCES += win64-nasm.c
+CLEANFILES += win64-nasm.c
+EXTRA_DIST += modules/objfmts/coff/win64-nasm.mac
+
+win64-gas.c: $(srcdir)/modules/objfmts/coff/win64-gas.mac genmacro$(EXEEXT)
+ $(top_builddir)/genmacro$(EXEEXT) $@ win64_gas_stdmac $(srcdir)/modules/objfmts/coff/win64-gas.mac
+
+BUILT_SOURCES += win64-gas.c
+CLEANFILES += win64-gas.c
+EXTRA_DIST += modules/objfmts/coff/win64-gas.mac
+
+EXTRA_DIST += modules/objfmts/coff/tests/Makefile.inc
+
+include modules/objfmts/coff/tests/Makefile.inc
--- /dev/null
+TESTS += modules/objfmts/coff/tests/coff_test.sh
+
+EXTRA_DIST += modules/objfmts/coff/tests/coff_test.sh
+EXTRA_DIST += modules/objfmts/coff/tests/cofftest.c
+EXTRA_DIST += modules/objfmts/coff/tests/cofftest.asm
+EXTRA_DIST += modules/objfmts/coff/tests/cofftest.hex
+EXTRA_DIST += modules/objfmts/coff/tests/cofftimes.asm
+EXTRA_DIST += modules/objfmts/coff/tests/cofftimes.hex
+EXTRA_DIST += modules/objfmts/coff/tests/x86id.asm
+EXTRA_DIST += modules/objfmts/coff/tests/x86id.hex
+EXTRA_DIST += modules/objfmts/coff/tests/x86id.errwarn
--- /dev/null
+libyasm_a_SOURCES += modules/objfmts/dbg/dbg-objfmt.c
+
+YASM_MODULES += objfmt_dbg
--- /dev/null
+libyasm_a_SOURCES += modules/objfmts/elf/elf.c
+libyasm_a_SOURCES += modules/objfmts/elf/elf.h
+libyasm_a_SOURCES += modules/objfmts/elf/elf-objfmt.c
+libyasm_a_SOURCES += modules/objfmts/elf/elf-machine.h
+libyasm_a_SOURCES += modules/objfmts/elf/elf-x86-x86.c
+libyasm_a_SOURCES += modules/objfmts/elf/elf-x86-amd64.c
+
+YASM_MODULES += objfmt_elf objfmt_elf32 objfmt_elf64
+
+EXTRA_DIST += modules/objfmts/elf/tests/Makefile.inc
+
+include modules/objfmts/elf/tests/Makefile.inc
--- /dev/null
+TESTS += modules/objfmts/elf/tests/elf_test.sh
+
+EXTRA_DIST += modules/objfmts/elf/tests/elf_test.sh
+EXTRA_DIST += modules/objfmts/elf/tests/curpos.asm
+EXTRA_DIST += modules/objfmts/elf/tests/curpos.hex
+EXTRA_DIST += modules/objfmts/elf/tests/curpos-err.asm
+EXTRA_DIST += modules/objfmts/elf/tests/curpos-err.errwarn
+EXTRA_DIST += modules/objfmts/elf/tests/elf-overdef.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elf-overdef.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elf-x86id.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elf-x86id.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfabssect.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfabssect.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfcond.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfcond.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfequabs.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfequabs.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfglobal.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfglobal.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfglobext.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfglobext.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfglobext2.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfglobext2.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfmanysym.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfmanysym.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfreloc.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfreloc.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfreloc-ext.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfreloc-ext.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfsectalign.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfsectalign.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfso.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfso.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elftest.c
+EXTRA_DIST += modules/objfmts/elf/tests/elftest.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elftest.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elftimes.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elftimes.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elftypesize.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elftypesize.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfvisibility.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfvisibility.errwarn
+EXTRA_DIST += modules/objfmts/elf/tests/elfvisibility.hex
+EXTRA_DIST += modules/objfmts/elf/tests/nasm-sectname.asm
+EXTRA_DIST += modules/objfmts/elf/tests/nasm-sectname.hex
+EXTRA_DIST += modules/objfmts/elf/tests/nasm-forceident.asm
+EXTRA_DIST += modules/objfmts/elf/tests/nasm-forceident.hex
+
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/Makefile.inc
+EXTRA_DIST += modules/objfmts/elf/tests/gas32/Makefile.inc
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/Makefile.inc
+
+include modules/objfmts/elf/tests/amd64/Makefile.inc
+include modules/objfmts/elf/tests/gas32/Makefile.inc
+include modules/objfmts/elf/tests/gas64/Makefile.inc
--- /dev/null
+TESTS += modules/objfmts/elf/tests/amd64/elf_amd64_test.sh
+
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/elf_amd64_test.sh
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/elf-rip.asm
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/elf-rip.hex
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/elfso64.asm
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/elfso64.hex
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/gotpcrel.asm
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/gotpcrel.hex
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/multiplefixup.asm
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/multiplefixup.hex
--- /dev/null
+TESTS += modules/objfmts/elf/tests/gas32/elf_gas32_test.sh
+
+EXTRA_DIST += modules/objfmts/elf/tests/gas32/elf_gas32_test.sh
+EXTRA_DIST += modules/objfmts/elf/tests/gas32/elf_gas32_ssym.asm
+EXTRA_DIST += modules/objfmts/elf/tests/gas32/elf_gas32_ssym.hex
+EXTRA_DIST += modules/objfmts/elf/tests/gas32/elf_gas32_got.asm
+EXTRA_DIST += modules/objfmts/elf/tests/gas32/elf_gas32_got.hex
--- /dev/null
+TESTS += modules/objfmts/elf/tests/gas64/elf_gas64_test.sh
+
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_test.sh
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/crosssect.asm
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/crosssect.hex
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_curpos.asm
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_curpos.hex
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_reloc.asm
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_reloc.hex
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_ssym.asm
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_ssym.hex
--- /dev/null
+libyasm_a_SOURCES += modules/objfmts/macho/macho-objfmt.c
+
+YASM_MODULES += objfmt_macho objfmt_macho32 objfmt_macho64
+
+EXTRA_DIST += modules/objfmts/macho/tests/Makefile.inc
+
+include modules/objfmts/macho/tests/Makefile.inc
--- /dev/null
+EXTRA_DIST += modules/objfmts/macho/tests/gas32/Makefile.inc
+EXTRA_DIST += modules/objfmts/macho/tests/gas64/Makefile.inc
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/Makefile.inc
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/Makefile.inc
+
+include modules/objfmts/macho/tests/gas32/Makefile.inc
+include modules/objfmts/macho/tests/gas64/Makefile.inc
+include modules/objfmts/macho/tests/nasm32/Makefile.inc
+include modules/objfmts/macho/tests/nasm64/Makefile.inc
--- /dev/null
+TESTS += modules/objfmts/macho/tests/gas32/gas_macho32_test.sh
+
+EXTRA_DIST += modules/objfmts/macho/tests/gas32/gas_macho32_test.sh
+EXTRA_DIST += modules/objfmts/macho/tests/gas32/gas-macho32.asm
+EXTRA_DIST += modules/objfmts/macho/tests/gas32/gas-macho32.hex
--- /dev/null
+TESTS += modules/objfmts/macho/tests/gas64/gas_macho64_test.sh
+
+EXTRA_DIST += modules/objfmts/macho/tests/gas64/gas_macho64_test.sh
+EXTRA_DIST += modules/objfmts/macho/tests/gas64/gas-macho64.asm
+EXTRA_DIST += modules/objfmts/macho/tests/gas64/gas-macho64.hex
+EXTRA_DIST += modules/objfmts/macho/tests/gas64/gas-macho64-pic.asm
+EXTRA_DIST += modules/objfmts/macho/tests/gas64/gas-macho64-pic.hex
--- /dev/null
+TESTS += modules/objfmts/macho/tests/nasm32/macho32_test.sh
+
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32_test.sh
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/machotest.c
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/machotest.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/machotest.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho-reloc.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho-reloc.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-pext.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-pext.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-pic.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-pic.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-sect.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-sect.errwarn
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-sect.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-size.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-size.hex
--- /dev/null
+TESTS += modules/objfmts/macho/tests/nasm64/macho64_test.sh
+
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/nasm-macho64-pic.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/nasm-macho64-pic.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/macho64_test.sh
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/machotest64.c
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/machotest64.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/machotest64.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/macho-reloc64-err.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/macho-reloc64-err.errwarn
--- /dev/null
+libyasm_a_SOURCES += modules/objfmts/rdf/rdf-objfmt.c
+
+YASM_MODULES += objfmt_rdf
+
+EXTRA_DIST += modules/objfmts/rdf/tests/Makefile.inc
+
+include modules/objfmts/rdf/tests/Makefile.inc
--- /dev/null
+TESTS += modules/objfmts/rdf/tests/rdf_test.sh
+
+EXTRA_DIST += modules/objfmts/rdf/tests/rdf_test.sh
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfabs.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfabs.errwarn
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfabs.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfext.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfext.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfseg.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfseg.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfseg2.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfseg2.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdftest1.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdftest1.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdftest2.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdftest2.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdtlib.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdtlib.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdtmain.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdtmain.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/testlib.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/testlib.hex
+
--- /dev/null
+# Assume objfmt_coff is included
+
+YASM_MODULES += objfmt_win32
+
+EXTRA_DIST += modules/objfmts/win32/tests/Makefile.inc
+
+include modules/objfmts/win32/tests/Makefile.inc
--- /dev/null
+TESTS += modules/objfmts/win32/tests/win32_test.sh
+
+EXTRA_DIST += modules/objfmts/win32/tests/export.asm
+EXTRA_DIST += modules/objfmts/win32/tests/export.hex
+EXTRA_DIST += modules/objfmts/win32/tests/win32_test.sh
+EXTRA_DIST += modules/objfmts/win32/tests/win32-curpos.asm
+EXTRA_DIST += modules/objfmts/win32/tests/win32-curpos.hex
+EXTRA_DIST += modules/objfmts/win32/tests/win32-overdef.asm
+EXTRA_DIST += modules/objfmts/win32/tests/win32-overdef.hex
+EXTRA_DIST += modules/objfmts/win32/tests/win32-safeseh.asm
+EXTRA_DIST += modules/objfmts/win32/tests/win32-safeseh.hex
+EXTRA_DIST += modules/objfmts/win32/tests/win32-safeseh.masm
+EXTRA_DIST += modules/objfmts/win32/tests/win32-segof.asm
+EXTRA_DIST += modules/objfmts/win32/tests/win32-segof.hex
+EXTRA_DIST += modules/objfmts/win32/tests/win32test.c
+EXTRA_DIST += modules/objfmts/win32/tests/win32test.asm
+EXTRA_DIST += modules/objfmts/win32/tests/win32test.hex
+
+EXTRA_DIST += modules/objfmts/win32/tests/gas/Makefile.inc
+
+include modules/objfmts/win32/tests/gas/Makefile.inc
--- /dev/null
+TESTS += modules/objfmts/win32/tests/gas/win32_gas_test.sh
+
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32_gas_test.sh
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32at.asm
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32at.hex
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32def.asm
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32def.hex
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32secrel32.asm
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32secrel32.hex
--- /dev/null
+# Assume objfmt_coff is included
+
+YASM_MODULES += objfmt_win64 objfmt_x64
+
+EXTRA_DIST += modules/objfmts/win64/tests/Makefile.inc
+
+include modules/objfmts/win64/tests/Makefile.inc
--- /dev/null
+TESTS += modules/objfmts/win64/tests/win64_test.sh
+
+EXTRA_DIST += modules/objfmts/win64/tests/win64_test.sh
+EXTRA_DIST += modules/objfmts/win64/tests/sce1.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce1.hex
+EXTRA_DIST += modules/objfmts/win64/tests/sce1-err.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce1-err.errwarn
+EXTRA_DIST += modules/objfmts/win64/tests/sce2.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce2.hex
+EXTRA_DIST += modules/objfmts/win64/tests/sce2-err.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce2-err.errwarn
+EXTRA_DIST += modules/objfmts/win64/tests/sce3.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce3.hex
+EXTRA_DIST += modules/objfmts/win64/tests/sce3.masm
+EXTRA_DIST += modules/objfmts/win64/tests/sce4.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce4.hex
+EXTRA_DIST += modules/objfmts/win64/tests/sce4.masm
+EXTRA_DIST += modules/objfmts/win64/tests/sce4-err.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce4-err.errwarn
+EXTRA_DIST += modules/objfmts/win64/tests/win64-abs.asm
+EXTRA_DIST += modules/objfmts/win64/tests/win64-abs.hex
+EXTRA_DIST += modules/objfmts/win64/tests/win64-curpos.asm
+EXTRA_DIST += modules/objfmts/win64/tests/win64-curpos.hex
+EXTRA_DIST += modules/objfmts/win64/tests/win64-dataref.asm
+EXTRA_DIST += modules/objfmts/win64/tests/win64-dataref.hex
+EXTRA_DIST += modules/objfmts/win64/tests/win64-dataref.masm
+EXTRA_DIST += modules/objfmts/win64/tests/win64-dataref2.asm
+EXTRA_DIST += modules/objfmts/win64/tests/win64-dataref2.hex
+EXTRA_DIST += modules/objfmts/win64/tests/win64-dataref2.masm
+EXTRA_DIST += modules/objfmts/win64/tests/win64-imagebase.hex
+EXTRA_DIST += modules/objfmts/win64/tests/win64-imagebase.asm
+
+EXTRA_DIST += modules/objfmts/win64/tests/gas/Makefile.inc
+
+include modules/objfmts/win64/tests/gas/Makefile.inc
--- /dev/null
+TESTS += modules/objfmts/win64/tests/gas/win64_gas_test.sh
+
+EXTRA_DIST += modules/objfmts/win64/tests/gas/win64_gas_test.sh
+EXTRA_DIST += modules/objfmts/win64/tests/gas/win64-gas-sce.asm
+EXTRA_DIST += modules/objfmts/win64/tests/gas/win64-gas-sce.hex
--- /dev/null
+libyasm_a_SOURCES += modules/objfmts/xdf/xdf-objfmt.c
+
+YASM_MODULES += objfmt_xdf
+
+EXTRA_DIST += modules/objfmts/xdf/tests/Makefile.inc
+
+include modules/objfmts/xdf/tests/Makefile.inc
--- /dev/null
+TESTS += modules/objfmts/xdf/tests/xdf_test.sh
+
+EXTRA_DIST += modules/objfmts/xdf/tests/xdf_test.sh
+EXTRA_DIST += modules/objfmts/xdf/tests/xdf-overdef.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdf-overdef.hex
+EXTRA_DIST += modules/objfmts/xdf/tests/xdflong.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdflong.hex
+EXTRA_DIST += modules/objfmts/xdf/tests/xdflong.errwarn
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfother.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfother.hex
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfprotect.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfprotect.hex
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfsect.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfsect.hex
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfsect-err.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfsect-err.errwarn
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfvirtual.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfvirtual.hex
--- /dev/null
+EXTRA_DIST += modules/parsers/gas/Makefile.inc
+EXTRA_DIST += modules/parsers/nasm/Makefile.inc
+
+include modules/parsers/gas/Makefile.inc
+include modules/parsers/nasm/Makefile.inc
+include modules/parsers/tasm/Makefile.inc
+
+notrans_dist_man_MANS += yasm_parsers.7
+
+if BUILD_MAN
+yasm_parsers.7: modules/parsers/yasm_parsers.xml
+ $(XMLTO) -o $(top_builddir) man $(srcdir)/modules/parsers/yasm_parsers.xml
+endif
+
+EXTRA_DIST += modules/parsers/yasm_parsers.xml
--- /dev/null
+libyasm_a_SOURCES += modules/parsers/gas/gas-parser.c
+libyasm_a_SOURCES += modules/parsers/gas/gas-parser.h
+libyasm_a_SOURCES += modules/parsers/gas/gas-parse.c
+libyasm_a_SOURCES += modules/parsers/gas/gas-parse-intel.c
+nodist_libyasm_a_SOURCES += gas-token.c
+
+YASM_MODULES += parser_gas parser_gnu
+
+gas-token.c: $(srcdir)/modules/parsers/gas/gas-token.re re2c$(EXEEXT)
+ $(top_builddir)/re2c$(EXEEXT) -b -o $@ $(srcdir)/modules/parsers/gas/gas-token.re
+
+BUILT_SOURCES += gas-token.c
+
+CLEANFILES += gas-token.c
+
+EXTRA_DIST += modules/parsers/gas/tests/Makefile.inc
+EXTRA_DIST += modules/parsers/gas/gas-token.re
+
+include modules/parsers/gas/tests/Makefile.inc
--- /dev/null
+TESTS += modules/parsers/gas/tests/gas_test.sh
+
+EXTRA_DIST += modules/parsers/gas/tests/gas_test.sh
+EXTRA_DIST += modules/parsers/gas/tests/dataref-imm.asm
+EXTRA_DIST += modules/parsers/gas/tests/dataref-imm.hex
+EXTRA_DIST += modules/parsers/gas/tests/datavis.asm
+EXTRA_DIST += modules/parsers/gas/tests/datavis.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/datavis.hex
+EXTRA_DIST += modules/parsers/gas/tests/datavis2.asm
+EXTRA_DIST += modules/parsers/gas/tests/datavis2.hex
+EXTRA_DIST += modules/parsers/gas/tests/execsect.asm
+EXTRA_DIST += modules/parsers/gas/tests/execsect.hex
+EXTRA_DIST += modules/parsers/gas/tests/gas-fill.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-fill.hex
+EXTRA_DIST += modules/parsers/gas/tests/gas-float.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-float.hex
+EXTRA_DIST += modules/parsers/gas/tests/gas-instlabel.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-instlabel.hex
+EXTRA_DIST += modules/parsers/gas/tests/gas-line-err.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-line-err.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/gas-line2-err.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-line2-err.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/gas-push.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-push.hex
+EXTRA_DIST += modules/parsers/gas/tests/gas-segprefix.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-segprefix.hex
+EXTRA_DIST += modules/parsers/gas/tests/gas-semi.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-semi.hex
+EXTRA_DIST += modules/parsers/gas/tests/gassectalign.asm
+EXTRA_DIST += modules/parsers/gas/tests/gassectalign.hex
+EXTRA_DIST += modules/parsers/gas/tests/jmpcall.asm
+EXTRA_DIST += modules/parsers/gas/tests/jmpcall.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/jmpcall.hex
+EXTRA_DIST += modules/parsers/gas/tests/leb128.asm
+EXTRA_DIST += modules/parsers/gas/tests/leb128.hex
+EXTRA_DIST += modules/parsers/gas/tests/localcomm.asm
+EXTRA_DIST += modules/parsers/gas/tests/localcomm.hex
+EXTRA_DIST += modules/parsers/gas/tests/reggroup-err.asm
+EXTRA_DIST += modules/parsers/gas/tests/reggroup-err.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/reggroup.asm
+EXTRA_DIST += modules/parsers/gas/tests/reggroup.hex
+EXTRA_DIST += modules/parsers/gas/tests/strzero.asm
+EXTRA_DIST += modules/parsers/gas/tests/strzero.hex
+EXTRA_DIST += modules/parsers/gas/tests/varinsn.asm
+EXTRA_DIST += modules/parsers/gas/tests/varinsn.hex
+
+EXTRA_DIST += modules/parsers/gas/tests/bin/Makefile.inc
+include modules/parsers/gas/tests/bin/Makefile.inc
--- /dev/null
+TESTS += modules/parsers/gas/tests/bin/gas_bin_test.sh
+
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas_bin_test.sh
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-comment.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-comment.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-comment.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-intel_syntax-noprefix.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-intel_syntax-noprefix.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-llabel.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-llabel.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-macro.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-macro.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-set.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-set.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-str.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-str.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/rept-err.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/rept-err.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptempty.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptempty.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptlong.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptlong.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptnested.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptnested.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptsimple.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptsimple.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptwarn.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptwarn.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptwarn.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptzero.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptzero.hex
+
--- /dev/null
+libyasm_a_SOURCES += modules/parsers/nasm/nasm-parser.c
+libyasm_a_SOURCES += modules/parsers/nasm/nasm-parser.h
+libyasm_a_SOURCES += modules/parsers/nasm/nasm-parser-struct.h
+libyasm_a_SOURCES += modules/parsers/nasm/nasm-parse.c
+nodist_libyasm_a_SOURCES += nasm-token.c
+
+YASM_MODULES += parser_nasm parser_tasm
+
+nasm-token.c: $(srcdir)/modules/parsers/nasm/nasm-token.re re2c$(EXEEXT)
+ $(top_builddir)/re2c$(EXEEXT) -b -o $@ $(srcdir)/modules/parsers/nasm/nasm-token.re
+
+BUILT_SOURCES += nasm-token.c
+
+CLEANFILES += nasm-token.c
+
+EXTRA_DIST += modules/parsers/nasm/nasm-token.re
+
+$(top_srcdir)/modules/parsers/nasm/nasm-parser.c: nasm-macros.c
+
+nasm-macros.c: $(srcdir)/modules/parsers/nasm/nasm-std.mac genmacro$(EXEEXT)
+ $(top_builddir)/genmacro$(EXEEXT) $@ nasm_standard_mac $(srcdir)/modules/parsers/nasm/nasm-std.mac
+
+BUILT_SOURCES += nasm-macros.c
+CLEANFILES += nasm-macros.c
+EXTRA_DIST += modules/parsers/nasm/nasm-std.mac
+
+EXTRA_DIST += modules/parsers/nasm/tests/Makefile.inc
+
+include modules/parsers/nasm/tests/Makefile.inc
--- /dev/null
+TESTS += modules/parsers/nasm/tests/nasm_test.sh
+
+EXTRA_DIST += modules/parsers/nasm/tests/nasm_test.sh
+EXTRA_DIST += modules/parsers/nasm/tests/alignnop16.asm
+EXTRA_DIST += modules/parsers/nasm/tests/alignnop16.hex
+EXTRA_DIST += modules/parsers/nasm/tests/alignnop32.asm
+EXTRA_DIST += modules/parsers/nasm/tests/alignnop32.hex
+EXTRA_DIST += modules/parsers/nasm/tests/charconstmath.asm
+EXTRA_DIST += modules/parsers/nasm/tests/charconstmath.hex
+EXTRA_DIST += modules/parsers/nasm/tests/dirwarning.asm
+EXTRA_DIST += modules/parsers/nasm/tests/dirwarning.errwarn
+EXTRA_DIST += modules/parsers/nasm/tests/dirwarning.hex
+EXTRA_DIST += modules/parsers/nasm/tests/dy.asm
+EXTRA_DIST += modules/parsers/nasm/tests/dy.hex
+EXTRA_DIST += modules/parsers/nasm/tests/endcomma.asm
+EXTRA_DIST += modules/parsers/nasm/tests/endcomma.hex
+EXTRA_DIST += modules/parsers/nasm/tests/equcolon.asm
+EXTRA_DIST += modules/parsers/nasm/tests/equcolon.hex
+EXTRA_DIST += modules/parsers/nasm/tests/equlocal.asm
+EXTRA_DIST += modules/parsers/nasm/tests/equlocal.hex
+EXTRA_DIST += modules/parsers/nasm/tests/hexconst.asm
+EXTRA_DIST += modules/parsers/nasm/tests/hexconst.hex
+EXTRA_DIST += modules/parsers/nasm/tests/long.asm
+EXTRA_DIST += modules/parsers/nasm/tests/long.hex
+EXTRA_DIST += modules/parsers/nasm/tests/locallabel.asm
+EXTRA_DIST += modules/parsers/nasm/tests/locallabel.hex
+EXTRA_DIST += modules/parsers/nasm/tests/locallabel2.asm
+EXTRA_DIST += modules/parsers/nasm/tests/locallabel2.hex
+EXTRA_DIST += modules/parsers/nasm/tests/nasm-prefix.asm
+EXTRA_DIST += modules/parsers/nasm/tests/nasm-prefix.hex
+EXTRA_DIST += modules/parsers/nasm/tests/newsect.asm
+EXTRA_DIST += modules/parsers/nasm/tests/newsect.hex
+EXTRA_DIST += modules/parsers/nasm/tests/orphannowarn.asm
+EXTRA_DIST += modules/parsers/nasm/tests/orphannowarn.hex
+EXTRA_DIST += modules/parsers/nasm/tests/prevlocalwarn.asm
+EXTRA_DIST += modules/parsers/nasm/tests/prevlocalwarn.errwarn
+EXTRA_DIST += modules/parsers/nasm/tests/prevlocalwarn.hex
+EXTRA_DIST += modules/parsers/nasm/tests/strucalign.asm
+EXTRA_DIST += modules/parsers/nasm/tests/strucalign.hex
+EXTRA_DIST += modules/parsers/nasm/tests/struczero.asm
+EXTRA_DIST += modules/parsers/nasm/tests/struczero.hex
+EXTRA_DIST += modules/parsers/nasm/tests/strucbase.asm
+EXTRA_DIST += modules/parsers/nasm/tests/strucbase.hex
+EXTRA_DIST += modules/parsers/nasm/tests/syntax-err.asm
+EXTRA_DIST += modules/parsers/nasm/tests/syntax-err.errwarn
+EXTRA_DIST += modules/parsers/nasm/tests/uscore.asm
+EXTRA_DIST += modules/parsers/nasm/tests/uscore.hex
+
+EXTRA_DIST += modules/parsers/nasm/tests/worphan/Makefile.inc
+
+include modules/parsers/nasm/tests/worphan/Makefile.inc
--- /dev/null
+TESTS += modules/parsers/nasm/tests/worphan/nasm_worphan_test.sh
+
+EXTRA_DIST += modules/parsers/nasm/tests/worphan/nasm_worphan_test.sh
+EXTRA_DIST += modules/parsers/nasm/tests/worphan/orphanwarn.asm
+EXTRA_DIST += modules/parsers/nasm/tests/worphan/orphanwarn.errwarn
+EXTRA_DIST += modules/parsers/nasm/tests/worphan/orphanwarn.hex
--- /dev/null
+EXTRA_DIST += modules/parsers/tasm/tests/Makefile.inc
+
+include modules/parsers/tasm/tests/Makefile.inc
--- /dev/null
+TESTS += modules/parsers/tasm/tests/tasm_test.sh
+
+EXTRA_DIST += modules/parsers/tasm/tests/tasm_test.sh
+EXTRA_DIST += modules/parsers/tasm/tests/array.asm
+EXTRA_DIST += modules/parsers/tasm/tests/array.hex
+EXTRA_DIST += modules/parsers/tasm/tests/case.asm
+EXTRA_DIST += modules/parsers/tasm/tests/case.hex
+EXTRA_DIST += modules/parsers/tasm/tests/charstr.asm
+EXTRA_DIST += modules/parsers/tasm/tests/charstr.hex
+EXTRA_DIST += modules/parsers/tasm/tests/dup.asm
+EXTRA_DIST += modules/parsers/tasm/tests/dup.hex
+EXTRA_DIST += modules/parsers/tasm/tests/equal.asm
+EXTRA_DIST += modules/parsers/tasm/tests/equal.hex
+EXTRA_DIST += modules/parsers/tasm/tests/expr.asm
+EXTRA_DIST += modules/parsers/tasm/tests/expr.hex
+EXTRA_DIST += modules/parsers/tasm/tests/irp.asm
+EXTRA_DIST += modules/parsers/tasm/tests/irp.hex
+EXTRA_DIST += modules/parsers/tasm/tests/label.asm
+EXTRA_DIST += modules/parsers/tasm/tests/label.hex
+EXTRA_DIST += modules/parsers/tasm/tests/les.asm
+EXTRA_DIST += modules/parsers/tasm/tests/les.hex
+EXTRA_DIST += modules/parsers/tasm/tests/lidt.asm
+EXTRA_DIST += modules/parsers/tasm/tests/lidt.hex
+EXTRA_DIST += modules/parsers/tasm/tests/macro.asm
+EXTRA_DIST += modules/parsers/tasm/tests/macro.hex
+EXTRA_DIST += modules/parsers/tasm/tests/offset.asm
+EXTRA_DIST += modules/parsers/tasm/tests/offset.hex
+EXTRA_DIST += modules/parsers/tasm/tests/quote.asm
+EXTRA_DIST += modules/parsers/tasm/tests/quote.hex
+EXTRA_DIST += modules/parsers/tasm/tests/res.asm
+EXTRA_DIST += modules/parsers/tasm/tests/res.errwarn
+EXTRA_DIST += modules/parsers/tasm/tests/res.hex
+EXTRA_DIST += modules/parsers/tasm/tests/segment.asm
+EXTRA_DIST += modules/parsers/tasm/tests/segment.hex
+EXTRA_DIST += modules/parsers/tasm/tests/size.asm
+EXTRA_DIST += modules/parsers/tasm/tests/size.hex
+EXTRA_DIST += modules/parsers/tasm/tests/struc.asm
+EXTRA_DIST += modules/parsers/tasm/tests/struc.errwarn
+EXTRA_DIST += modules/parsers/tasm/tests/struc.hex
+
+EXTRA_DIST += modules/parsers/tasm/tests/exe/Makefile.inc
+
+include modules/parsers/tasm/tests/exe/Makefile.inc
--- /dev/null
+TESTS += modules/parsers/tasm/tests/exe/tasm_exe_test.sh
+
+EXTRA_DIST += modules/parsers/tasm/tests/exe/tasm_exe_test.sh
+EXTRA_DIST += modules/parsers/tasm/tests/exe/exe.asm
+EXTRA_DIST += modules/parsers/tasm/tests/exe/exe.hex
+
--- /dev/null
+EXTRA_DIST += modules/preprocs/tasm/Makefile.inc
+EXTRA_DIST += modules/preprocs/nasm/Makefile.inc
+EXTRA_DIST += modules/preprocs/raw/Makefile.inc
+EXTRA_DIST += modules/preprocs/cpp/Makefile.inc
+EXTRA_DIST += modules/preprocs/gas/Makefile.inc
+
+include modules/preprocs/tasm/Makefile.inc
+include modules/preprocs/nasm/Makefile.inc
+include modules/preprocs/raw/Makefile.inc
+include modules/preprocs/cpp/Makefile.inc
+include modules/preprocs/gas/Makefile.inc
--- /dev/null
+# Makefile for cpp module.
+# Copied from raw preprocessor module.
+
+libyasm_a_SOURCES += modules/preprocs/cpp/cpp-preproc.c
+
+YASM_MODULES += preproc_cpp
--- /dev/null
+libyasm_a_SOURCES += modules/preprocs/nasm/nasm-preproc.c
+libyasm_a_SOURCES += modules/preprocs/nasm/nasm-pp.h
+libyasm_a_SOURCES += modules/preprocs/nasm/nasm-pp.c
+libyasm_a_SOURCES += modules/preprocs/nasm/nasm.h
+libyasm_a_SOURCES += modules/preprocs/nasm/nasmlib.h
+libyasm_a_SOURCES += modules/preprocs/nasm/nasmlib.c
+libyasm_a_SOURCES += modules/preprocs/nasm/nasm-eval.h
+libyasm_a_SOURCES += modules/preprocs/nasm/nasm-eval.c
+
+YASM_MODULES += preproc_nasm preproc_tasm
+
+$(top_srcdir)/modules/preprocs/nasm/nasm-preproc.c: nasm-version.c
+
+nasm-version.c: version.mac genmacro$(EXEEXT)
+ $(top_builddir)/genmacro$(EXEEXT) $@ nasm_version_mac version.mac
+
+BUILT_SOURCES += nasm-version.c
+CLEANFILES += nasm-version.c
+
+version.mac: genversion$(EXEEXT)
+ $(top_builddir)/genversion$(EXEEXT) $@
+
+BUILT_SOURCES += version.mac
+CLEANFILES += version.mac
+
+noinst_PROGRAMS += genversion
+
+genversion_SOURCES =
+EXTRA_DIST += modules/preprocs/nasm/genversion.c
+genversion_LDADD = genversion.$(OBJEXT)
+genversion_LINK = $(CCLD_FOR_BUILD) -o $@
+
+genversion.$(OBJEXT): modules/preprocs/nasm/genversion.c
+ $(CC_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) -c -o $@ `test -f modules/preprocs/nasm/genversion.c || echo '$(srcdir)/'`modules/preprocs/nasm/genversion.c
+
+EXTRA_DIST += modules/preprocs/nasm/tests/Makefile.inc
+
+include modules/preprocs/nasm/tests/Makefile.inc
--- /dev/null
+TESTS += modules/preprocs/nasm/tests/nasmpp_test.sh
+
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp_test.sh
+EXTRA_DIST += modules/preprocs/nasm/tests/16args.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/16args.hex
+EXTRA_DIST += modules/preprocs/nasm/tests/ifcritical-err.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/ifcritical-err.errwarn
+EXTRA_DIST += modules/preprocs/nasm/tests/longline.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/longline.hex
+EXTRA_DIST += modules/preprocs/nasm/tests/macroeof-err.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/macroeof-err.errwarn
+EXTRA_DIST += modules/preprocs/nasm/tests/noinclude-err.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/noinclude-err.errwarn
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-bigint.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-bigint.hex
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-decimal.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-decimal.hex
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-nested.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-nested.errwarn
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-nested.hex
+EXTRA_DIST += modules/preprocs/nasm/tests/orgsect.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/orgsect.hex
+EXTRA_DIST += modules/preprocs/nasm/tests/scope-err.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/scope-err.errwarn
--- /dev/null
+libyasm_a_SOURCES += modules/preprocs/raw/raw-preproc.c
+
+YASM_MODULES += preproc_raw
+
+EXTRA_DIST += modules/preprocs/raw/tests/Makefile.inc
+
+include modules/preprocs/raw/tests/Makefile.inc
--- /dev/null
+TESTS += modules/preprocs/raw/tests/rawpp_test.sh
+
+EXTRA_DIST += modules/preprocs/raw/tests/rawpp_test.sh
+EXTRA_DIST += modules/preprocs/raw/tests/longline.asm
+EXTRA_DIST += modules/preprocs/raw/tests/longline.hex
--- /dev/null
+EXTRA_DIST += tools/re2c/Makefile.inc
+EXTRA_DIST += tools/genmacro/Makefile.inc
+EXTRA_DIST += tools/genperf/Makefile.inc
+EXTRA_DIST += tools/python-yasm/Makefile.inc
+
+include tools/re2c/Makefile.inc
+include tools/genmacro/Makefile.inc
+include tools/genperf/Makefile.inc
+include tools/python-yasm/Makefile.inc
--- /dev/null
+# These utility programs have to be built for BUILD host in cross-build.
+# This makes things rather non-standard automake
+
+noinst_PROGRAMS += genmacro
+
+genmacro_SOURCES =
+EXTRA_DIST += tools/genmacro/genmacro.c
+genmacro_LDADD = genmacro.$(OBJEXT)
+genmacro_LINK = $(CCLD_FOR_BUILD) -o $@
+
+genmacro.$(OBJEXT): tools/genmacro/genmacro.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f tools/genmacro/genmacro.c || echo '$(srcdir)/'`tools/genmacro/genmacro.c
+
--- /dev/null
+# These utility programs have to be built for BUILD host in cross-build.
+# This makes things rather non-standard automake
+
+noinst_PROGRAMS += genperf
+
+# Suffix rule for genperf
+SUFFIXES += .gperf
+.gperf.c: genperf$(EXEEXT)
+ $(top_builddir)/genperf$(EXEEXT) $< $@
+
+genperf_SOURCES =
+EXTRA_DIST += tools/genperf/genperf.c
+EXTRA_DIST += tools/genperf/perfect.c
+EXTRA_DIST += tools/genperf/perfect.h
+EXTRA_DIST += tools/genperf/standard.h
+genperf_LDADD = genperf.$(OBJEXT)
+genperf_LDADD += gp-perfect.$(OBJEXT)
+genperf_LDADD += gp-phash.$(OBJEXT)
+genperf_LDADD += gp-xmalloc.$(OBJEXT)
+genperf_LDADD += gp-xstrdup.$(OBJEXT)
+genperf_LINK = $(CCLD_FOR_BUILD) -o $@
+
+genperf.$(OBJEXT): tools/genperf/genperf.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f tools/genperf/genperf.c || echo '$(srcdir)/'`tools/genperf/genperf.c
+
+gp-perfect.$(OBJEXT): tools/genperf/perfect.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f tools/genperf/perfect.c || echo '$(srcdir)/'`tools/genperf/perfect.c
+
+gp-phash.$(OBJEXT): libyasm/phash.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f libyasm/phash.c || echo '$(srcdir)/'`libyasm/phash.c
+
+gp-xmalloc.$(OBJEXT): libyasm/xmalloc.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f libyasm/xmalloc.c || echo '$(srcdir)/'`libyasm/xmalloc.c
+
+gp-xstrdup.$(OBJEXT): libyasm/xstrdup.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f libyasm/xstrdup.c || echo '$(srcdir)/'`libyasm/xstrdup.c
+
--- /dev/null
+PYBINDING_DEPS = tools/python-yasm/bytecode.pxi
+PYBINDING_DEPS += tools/python-yasm/errwarn.pxi
+PYBINDING_DEPS += tools/python-yasm/expr.pxi
+PYBINDING_DEPS += tools/python-yasm/floatnum.pxi
+PYBINDING_DEPS += tools/python-yasm/intnum.pxi
+PYBINDING_DEPS += tools/python-yasm/symrec.pxi
+PYBINDING_DEPS += tools/python-yasm/value.pxi
+
+EXTRA_DIST += tools/python-yasm/pyxelator/cparse.py
+EXTRA_DIST += tools/python-yasm/pyxelator/genpyx.py
+EXTRA_DIST += tools/python-yasm/pyxelator/ir.py
+EXTRA_DIST += tools/python-yasm/pyxelator/lexer.py
+EXTRA_DIST += tools/python-yasm/pyxelator/node.py
+EXTRA_DIST += tools/python-yasm/pyxelator/parse_core.py
+EXTRA_DIST += tools/python-yasm/pyxelator/work_unit.py
+EXTRA_DIST += tools/python-yasm/pyxelator/wrap_yasm.py
+EXTRA_DIST += tools/python-yasm/setup.py
+EXTRA_DIST += tools/python-yasm/yasm.pyx
+EXTRA_DIST += $(PYBINDING_DEPS)
+
+if HAVE_PYTHON_BINDINGS
+
+# Use Pyxelator to generate Pyrex function headers.
+_yasm.pxi: ${HEADERS}
+ @rm -rf .tmp
+ @mkdir .tmp
+ $(PYTHON) $(srcdir)/tools/python-yasm/pyxelator/wrap_yasm.py \
+ "YASM_DIR=${srcdir}" "CPP=${CPP}" "CPPFLAGS=${CPPFLAGS}"
+ @rm -rf .tmp
+
+CLEANFILES += _yasm.pxi
+
+# Need to build a local copy of the main Pyrex input file to include _yasm.pxi
+# from the build directory. Also need to fixup the other .pxi include paths.
+yasm.pyx: $(srcdir)/tools/python-yasm/yasm.pyx
+ sed -e 's,^include "\([^_]\),include "${srcdir}/tools/python-yasm/\1,' \
+ $(srcdir)/tools/python-yasm/yasm.pyx > $@
+
+CLEANFILES += yasm.pyx
+
+# Actually run Cython
+yasm_python.c: yasm.pyx _yasm.pxi $(PYBINDING_DEPS)
+ $(PYTHON) -c "from Cython.Compiler.Main import main; main(command_line=1)" \
+ -o $@ yasm.pyx
+
+CLEANFILES += yasm_python.c
+
+# Now the Python build magic...
+python-setup.txt: Makefile
+ echo "includes=${DEFS} ${DEFAULT_INCLUDES} ${INCLUDES} ${AM_CPPFLAGS} ${CPPFLAGS}" > python-setup.txt
+ echo "sources=${libyasm_a_SOURCES} ${nodist_libyasm_a_SOURCES}" >> python-setup.txt
+ echo "srcdir=${srcdir}" >> python-setup.txt
+ echo "gcc=${GCC}" >> python-setup.txt
+
+CLEANFILES += python-setup.txt
+
+.python-build: python-setup.txt yasm_python.c ${libyasm_a_SOURCES} ${nodist_libyasm_a_SOURCES}
+ $(PYTHON) `test -f tools/python-yasm/setup.py || echo '$(srcdir)/'`tools/python-yasm/setup.py build
+ touch .python-build
+python-build: .python-build
+
+CLEANFILES += .python-build
+
+python-install: .python-build
+ $(PYTHON) `test -f tools/python-yasm/setup.py || echo '$(srcdir)/'`tools/python-yasm/setup.py install "--install-lib=$(DESTDIR)$(pythondir)"
+
+python-uninstall:
+ rm -f `$(PYTHON) -c "import sys;sys.path.insert(0, '${DESTDIR}${pythondir}'); import yasm; print yasm.__file__"`
+
+else
+
+python-build:
+python-install:
+python-uninstall:
+
+endif
+
+EXTRA_DIST += tools/python-yasm/tests/Makefile.inc
+include tools/python-yasm/tests/Makefile.inc
--- /dev/null
+EXTRA_DIST += tools/python-yasm/tests/python_test.sh
+EXTRA_DIST += tools/python-yasm/tests/__init__.py
+EXTRA_DIST += tools/python-yasm/tests/test_bytecode.py
+EXTRA_DIST += tools/python-yasm/tests/test_expr.py
+EXTRA_DIST += tools/python-yasm/tests/test_intnum.py
+EXTRA_DIST += tools/python-yasm/tests/test_symrec.py
+
+if HAVE_PYTHON_BINDINGS
+
+TESTS_ENVIRONMENT += PYTHON=${PYTHON}
+TESTS += tools/python-yasm/tests/python_test.sh
+
+endif
--- /dev/null
+# These utility programs have to be built for BUILD host in cross-build.
+# This makes things rather non-standard automake
+
+noinst_PROGRAMS += re2c
+
+re2c_SOURCES =
+EXTRA_DIST += tools/re2c/main.c
+EXTRA_DIST += tools/re2c/basics.h
+EXTRA_DIST += tools/re2c/globals.h
+EXTRA_DIST += tools/re2c/ins.h
+EXTRA_DIST += tools/re2c/re.h
+EXTRA_DIST += tools/re2c/token.h
+EXTRA_DIST += tools/re2c/code.c
+EXTRA_DIST += tools/re2c/dfa.h
+EXTRA_DIST += tools/re2c/dfa.c
+EXTRA_DIST += tools/re2c/parse.h
+EXTRA_DIST += tools/re2c/parser.h
+EXTRA_DIST += tools/re2c/parser.c
+EXTRA_DIST += tools/re2c/actions.c
+EXTRA_DIST += tools/re2c/scanner.h
+EXTRA_DIST += tools/re2c/scanner.c
+EXTRA_DIST += tools/re2c/mbo_getopt.h
+EXTRA_DIST += tools/re2c/mbo_getopt.c
+EXTRA_DIST += tools/re2c/substr.h
+EXTRA_DIST += tools/re2c/substr.c
+EXTRA_DIST += tools/re2c/translate.c
+re2c_LDADD = re2c-main.$(OBJEXT)
+re2c_LDADD += re2c-code.$(OBJEXT)
+re2c_LDADD += re2c-dfa.$(OBJEXT)
+re2c_LDADD += re2c-parser.$(OBJEXT)
+re2c_LDADD += re2c-actions.$(OBJEXT)
+re2c_LDADD += re2c-scanner.$(OBJEXT)
+re2c_LDADD += re2c-mbo_getopt.$(OBJEXT)
+re2c_LDADD += re2c-substr.$(OBJEXT)
+re2c_LDADD += re2c-translate.$(OBJEXT)
+re2c_LINK = $(CCLD_FOR_BUILD) -o $@
+
+re2c-main.$(OBJEXT): tools/re2c/main.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f tools/re2c/main.c || echo '$(srcdir)/'`tools/re2c/main.c
+
+re2c-code.$(OBJEXT): tools/re2c/code.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f tools/re2c/code.c || echo '$(srcdir)/'`tools/re2c/code.c
+
+re2c-dfa.$(OBJEXT): tools/re2c/dfa.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f tools/re2c/dfa.c || echo '$(srcdir)/'`tools/re2c/dfa.c
+
+re2c-parser.$(OBJEXT): tools/re2c/parser.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f tools/re2c/parser.c || echo '$(srcdir)/'`tools/re2c/parser.c
+
+re2c-actions.$(OBJEXT): tools/re2c/actions.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f tools/re2c/actions.c || echo '$(srcdir)/'`tools/re2c/actions.c
+
+re2c-scanner.$(OBJEXT): tools/re2c/scanner.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f tools/re2c/scanner.c || echo '$(srcdir)/'`tools/re2c/scanner.c
+
+re2c-mbo_getopt.$(OBJEXT): tools/re2c/mbo_getopt.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f tools/re2c/mbo_getopt.c || echo '$(srcdir)/'`tools/re2c/mbo_getopt.c
+
+re2c-substr.$(OBJEXT): tools/re2c/substr.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f tools/re2c/substr.c || echo '$(srcdir)/'`tools/re2c/substr.c
+
+re2c-translate.$(OBJEXT): tools/re2c/translate.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ -c -o $@ `test -f tools/re2c/translate.c || echo '$(srcdir)/'`tools/re2c/translate.c
+
+EXTRA_DIST += tools/re2c/CHANGELOG
+EXTRA_DIST += tools/re2c/NO_WARRANTY
+EXTRA_DIST += tools/re2c/README
+EXTRA_DIST += tools/re2c/scanner.re
+EXTRA_DIST += tools/re2c/re2c.1
+EXTRA_DIST += tools/re2c/bootstrap/scanner.c
+EXTRA_DIST += tools/re2c/doc/loplas.ps.gz
+EXTRA_DIST += tools/re2c/doc/sample.bib
+EXTRA_DIST += tools/re2c/examples/basemmap.c
+EXTRA_DIST += tools/re2c/examples/c.re
+EXTRA_DIST += tools/re2c/examples/cmmap.re
+EXTRA_DIST += tools/re2c/examples/cnokw.re
+EXTRA_DIST += tools/re2c/examples/cunroll.re
+EXTRA_DIST += tools/re2c/examples/modula.re
+EXTRA_DIST += tools/re2c/examples/repeater.re
+EXTRA_DIST += tools/re2c/examples/sample.re
+EXTRA_DIST += tools/re2c/examples/simple.re
+EXTRA_DIST += tools/re2c/examples/rexx/README
+EXTRA_DIST += tools/re2c/examples/rexx/rexx.l
+EXTRA_DIST += tools/re2c/examples/rexx/scanio.c
--- /dev/null
+#ifndef _ECORE_WL2_H_
+# define _ECORE_WL2_H_
+
+# include <Eina.h>
+# include <Ecore.h>
+# include <wayland-client.h>
+# include <wayland-cursor.h>
+# include <xkbcommon/xkbcommon.h>
+
+# define WL_HIDE_DEPRECATED
+# include <wayland-server.h>
+
+# ifdef EAPI
+# undef EAPI
+# endif
+
+# ifdef __GNUC__
+# if __GNUC__ >= 4
+# define EAPI __attribute__ ((visibility("default")))
+# else
+# define EAPI
+# endif
+# else
+# define EAPI
+# endif
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+# ifdef EFL_BETA_API_SUPPORT
+
+typedef struct _Ecore_Wl2_Subsurface Ecore_Wl2_Subsurface;
+
+# ifndef _ECORE_WL2_WINDOW_PREDEF
+typedef struct _Ecore_Wl2_Window Ecore_Wl2_Window;
+# endif
+
+typedef struct _Ecore_Wl2_Display Ecore_Wl2_Display;
+typedef struct _Ecore_Wl2_Output Ecore_Wl2_Output;
+typedef struct _Ecore_Wl2_Input Ecore_Wl2_Input;
+typedef struct _Ecore_Wl2_Seat Ecore_Wl2_Seat;
+typedef struct _Ecore_Wl2_Pointer Ecore_Wl2_Pointer;
+typedef struct _Ecore_Wl2_Keyboard Ecore_Wl2_Keyboard;
+typedef struct _Ecore_Wl2_Touch Ecore_Wl2_Touch;
+typedef struct _Ecore_Wl2_Offer Ecore_Wl2_Offer;
+typedef struct _Ecore_Wl2_Surface Ecore_Wl2_Surface;
+// TIZEN_ONLY(20171109): support a tizen_input_device_manager interface
+typedef struct _Ecore_Wl2_Tizen_Input_Eo_Device Ecore_Wl2_Tizen_Input_Eo_Device;
+typedef struct _Ecore_Wl2_Tizen_Input_Device Ecore_Wl2_Tizen_Input_Device;
+
+//
+
+/* matches protocol values */
+typedef enum
+{
+ ECORE_WL2_DRAG_ACTION_NONE = 0,
+ ECORE_WL2_DRAG_ACTION_COPY = 1,
+ ECORE_WL2_DRAG_ACTION_MOVE = 2,
+ ECORE_WL2_DRAG_ACTION_ASK = 4,
+ ECORE_WL2_DRAG_ACTION_LAST = 5,
+} Ecore_Wl2_Drag_Action;
+
+typedef enum
+{
+ ECORE_WL2_SEAT_CAPABILITIES_NONE = 0,
+ ECORE_WL2_SEAT_CAPABILITIES_POINTER = 1,
+ ECORE_WL2_SEAT_CAPABILITIES_KEYBOARD = 2,
+ ECORE_WL2_SEAT_CAPABILITIES_TOUCH = 4
+} Ecore_Wl2_Seat_Capabilities;
+
+struct _Ecore_Wl2_Event_Connection
+{
+ Ecore_Wl2_Display *display;
+};
+
+typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Connect;
+typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Disconnect;
+
+typedef struct _Ecore_Wl2_Global
+{
+ Eina_Stringshare *interface;
+ unsigned int id, version;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Global;
+
+typedef struct _Ecore_Wl2_Event_Global
+{
+ Ecore_Wl2_Display *display;
+ Eina_Stringshare *interface;
+ unsigned int id, version;
+} Ecore_Wl2_Event_Global;
+
+typedef struct _Ecore_Wl2_Event_Focus_In
+{
+ unsigned int window;
+ unsigned int timestamp;
+ Eo *dev; //The seat device
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Focus_In;
+
+typedef struct _Ecore_Wl2_Event_Focus_Out
+{
+ unsigned int window;
+ unsigned int timestamp;
+ Eo *dev; //The seat device
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Focus_Out;
+
+typedef struct _Ecore_Wl2_Event_Dnd_Enter
+{
+ unsigned int win, source;
+ Ecore_Wl2_Offer *offer;
+ int x, y;
+ unsigned int seat;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Dnd_Enter;
+
+typedef struct _Ecore_Wl2_Event_Dnd_Leave
+{
+ unsigned int win, source;
+ Ecore_Wl2_Offer *offer;
+ unsigned int seat;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Dnd_Leave;
+
+typedef struct _Ecore_Wl2_Event_Dnd_Motion
+{
+ unsigned int win, source;
+ Ecore_Wl2_Offer *offer;
+ int x, y;
+ unsigned int seat;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Dnd_Motion;
+
+typedef struct _Ecore_Wl2_Event_Dnd_Drop
+{
+ unsigned int win, source;
+ int x, y;
+ Ecore_Wl2_Offer *offer;
+ unsigned int seat;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Dnd_Drop;
+
+typedef struct _Ecore_Wl2_Event_Dnd_End
+{
+ unsigned int win, source;
+ unsigned int seat;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Dnd_End;
+
+struct _Ecore_Wl2_Event_Data_Source_Event
+{
+ unsigned int win, source;
+ Ecore_Wl2_Drag_Action action;
+ unsigned int seat;
+ uint32_t serial;
+ Ecore_Wl2_Display *display;
+};
+
+typedef struct Ecore_Wl2_Event_Data_Source_End
+{
+ unsigned int win, source;
+ Ecore_Wl2_Drag_Action action;
+ unsigned int seat;
+ uint32_t serial;
+ Ecore_Wl2_Display *display;
+ Eina_Bool cancelled;
+} Ecore_Wl2_Event_Data_Source_End;
+typedef struct _Ecore_Wl2_Event_Data_Source_Event Ecore_Wl2_Event_Data_Source_Drop;
+typedef struct _Ecore_Wl2_Event_Data_Source_Event Ecore_Wl2_Event_Data_Source_Action;
+
+typedef struct _Ecore_Wl2_Event_Data_Source_Target
+{
+ char *type;
+ unsigned int seat;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Data_Source_Target;
+
+typedef struct _Ecore_Wl2_Event_Data_Source_Send
+{
+ char *type;
+ int fd;
+ unsigned int seat;
+ uint32_t serial;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Data_Source_Send;
+
+typedef struct Ecore_Wl2_Event_Seat_Selection
+{
+ unsigned int seat;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Seat_Selection;
+
+typedef struct _Ecore_Wl2_Event_Seat_Name
+{
+ Eina_Stringshare *name;
+ unsigned int id;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Seat_Name;
+
+typedef struct _Ecore_Wl2_Event_Seat_Capabilities
+{
+ unsigned int id;
+ Eina_Bool pointer_enabled : 1;
+ Eina_Bool keyboard_enabled : 1;
+ Eina_Bool touch_enabled : 1;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Seat_Capabilities;
+
+typedef enum
+{
+ ECORE_WL2_DEVICE_TYPE_SEAT,
+ ECORE_WL2_DEVICE_TYPE_POINTER,
+ ECORE_WL2_DEVICE_TYPE_KEYBOARD,
+ ECORE_WL2_DEVICE_TYPE_TOUCH
+} Ecore_Wl2_Device_Type;
+
+typedef struct _Ecore_Wl2_Event_Device
+{
+ Eo *dev;
+ int window_id;
+ unsigned int seat_id;
+ Ecore_Wl2_Device_Type type;
+} Ecore_Wl2_Event_Device;
+
+typedef enum
+{
+ ECORE_WL2_SELECTION_CNP,
+ ECORE_WL2_SELECTION_DND
+} Ecore_Wl2_Selection_Type;
+
+typedef enum
+{
+ ECORE_WL2_WINDOW_STATE_NONE = 0,
+ ECORE_WL2_WINDOW_STATE_FULLSCREEN = (1 << 0),
+ ECORE_WL2_WINDOW_STATE_MAXIMIZED = (1 << 1),
+} Ecore_Wl2_Window_States;
+
+typedef struct _Ecore_Wl2_Event_Window_Configure
+{
+ unsigned int win, event_win, edges;
+// TIZEN_ONLY
+ int x, y;
+//
+ unsigned int w, h;
+ unsigned int states;
+} Ecore_Wl2_Event_Window_Configure;
+
+typedef struct _Ecore_Wl2_Event_Window_Configure_Complete
+{
+ unsigned int win;
+} Ecore_Wl2_Event_Window_Configure_Complete;
+
+typedef struct _Ecore_Wl2_Event_Input_Keymap_Changed
+{
+ unsigned int id;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Seat_Keymap_Changed;
+
+typedef struct Ecore_Wl2_Event_Seat_Keyboard_Repeat_Changed
+{
+ unsigned int id;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Seat_Keyboard_Repeat_Changed;
+
+typedef struct _Ecore_Wl2_Event_Sync_Done
+{
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Sync_Done;
+
+typedef struct _Ecore_Wl2_Event_Offer_Data_Ready
+{
+ Ecore_Wl2_Offer *offer;
+ char *data;
+ int len;
+ const char *mimetype;
+ unsigned int seat;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Offer_Data_Ready;
+
+typedef struct _Ecore_Wl2_Event_Output_Transform
+{
+ Ecore_Wl2_Output *output;
+ int transform, old_transform;
+} Ecore_Wl2_Event_Output_Transform;
+
+typedef struct _Ecore_Wl2_Event_Window_Rotation
+{
+ unsigned int win;
+ int rotation, w, h, angle;
+ Eina_Bool resize : 1;
+} Ecore_Wl2_Event_Window_Rotation;
+typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Prepare;
+typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Prepare_Done;
+typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Request;
+typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Done;
+
+typedef struct _Ecore_Wl2_Event_Window_Show
+{
+ unsigned int win;
+ unsigned int parent_win;
+ unsigned int event_win;
+ // TIZEN_ONLY
+ unsigned int data[4];
+ //
+} Ecore_Wl2_Event_Window_Show;
+
+typedef struct _Ecore_Wl2_Event_Window_Hide
+{
+ unsigned int win;
+ unsigned int parent_win;
+ unsigned int event_win;
+} Ecore_Wl2_Event_Window_Hide;
+
+typedef struct _Ecore_Wl2_Event_Window_Activate
+{
+ unsigned int win;
+ unsigned int parent_win;
+ unsigned int event_win;
+} Ecore_Wl2_Event_Window_Activate;
+
+typedef struct _Ecore_Wl2_Event_Window_Deactivate
+{
+ unsigned int win;
+ unsigned int parent_win;
+ unsigned int event_win;
+} Ecore_Wl2_Event_Window_Deactivate;
+
+typedef struct _Ecore_Wl2_Event_Window_Iconify_State_Change
+{
+ unsigned int win;
+ unsigned int iconified;
+ unsigned int force;
+} Ecore_Wl2_Event_Window_Iconify_State_Change;
+
+typedef enum _Ecore_Wl2_Window_Type
+{
+ ECORE_WL2_WINDOW_TYPE_NONE,
+ ECORE_WL2_WINDOW_TYPE_TOPLEVEL,
+ ECORE_WL2_WINDOW_TYPE_MENU,
+ ECORE_WL2_WINDOW_TYPE_DND,
+ ECORE_WL2_WINDOW_TYPE_CUSTOM,
+ ECORE_WL2_WINDOW_TYPE_NOTIFICATION, /** @since 1.20 */
+ ECORE_WL2_WINDOW_TYPE_UTILITY, /** @since 1.20 */
+ ECORE_WL2_WINDOW_TYPE_DIALOG, /** @since 1.20 */
+ ECORE_WL2_WINDOW_TYPE_DOCK, /** @since 1.20 */
+ ECORE_WL2_WINDOW_TYPE_SPLASH, /** @since 1.20 */
+ ECORE_WL2_WINDOW_TYPE_LAST
+} Ecore_Wl2_Window_Type;
+
+// TIZEN_ONLY(20171107): added wl enumerations from ecore_wayland to ecore_wl2
+typedef enum _Ecore_Wl2_Window_Visibility_Type
+{
+ ECORE_WL2_WINDOW_VISIBILITY_TYPE_UNKNOWN = 0,
+ ECORE_WL2_WINDOW_VISIBILITY_TYPE_UNOBSCURED = 1,
+ ECORE_WL2_WINDOW_VISIBILITY_TYPE_PARTIALLY_OBSCURED = 2,
+ ECORE_WL2_WINDOW_VISIBILITY_TYPE_FULLY_OBSCURED = 3,
+ ECORE_WL2_WINDOW_VISIBILITY_TYPE_PRE_UNOBSCURED = 4,
+} Ecore_Wl2_Window_Visibility_Type;
+
+typedef enum _Ecore_Wl2_Window_Stack_Mode
+{
+ ECORE_WL2_WINDOW_STACK_NONE = 0,
+ ECORE_WL2_WINDOW_STACK_ABOVE = 1,
+ ECORE_WL2_WINDOW_STACK_BELOW = 2,
+} Ecore_Wl2_Window_Stack_Mode;
+
+typedef enum _Ecore_Wl2_Conformant_Part_Type
+{
+ ECORE_WL2_INDICATOR_PART = 0,
+ ECORE_WL2_KEYBOARD_PART = 1,
+ ECORE_WL2_CLIPBOARD_PART = 2
+} Ecore_Wl2_Conformant_Part_Type;
+
+typedef enum _Ecore_Wl2_Virtual_Keyboard_State
+{
+ ECORE_WL2_VIRTUAL_KEYBOARD_STATE_UNKNOWN = 0,
+ ECORE_WL2_VIRTUAL_KEYBOARD_STATE_OFF,
+ ECORE_WL2_VIRTUAL_KEYBOARD_STATE_ON,
+} Ecore_Wl2_Virtual_Keyboard_State;
+
+typedef enum _Ecore_Wl2_Indicator_State
+{
+ ECORE_WL2_INDICATOR_STATE_UNKNOWN = 0,
+ ECORE_WL2_INDICATOR_STATE_OFF,
+ ECORE_WL2_INDICATOR_STATE_ON
+} Ecore_Wl2_Indicator_State;
+
+typedef enum _Ecore_Wl2_Indicator_Opacity_Mode
+{
+ ECORE_WL2_INDICATOR_OPACITY_UNKNOWN = 0,
+ ECORE_WL2_INDICATOR_OPAQUE,
+ ECORE_WL2_INDICATOR_TRANSLUCENT,
+ ECORE_WL2_INDICATOR_TRANSPARENT,
+ ECORE_WL2_INDICATOR_BG_TRANSPARENT,
+} Ecore_Wl2_Indicator_Opacity_Mode;
+
+typedef enum _Ecore_Wl2_Indicator_Visible_Type
+{
+ ECORE_WL2_INDICATOR_VISIBLE_TYPE_HIDDEN = 0,
+ ECORE_WL2_INDICATOR_VISIBLE_TYPE_SHOWN,
+} Ecore_Wl2_Indicator_Visible_Type;
+
+typedef enum _Ecore_Wl2_Clipboard_State
+{
+ ECORE_WL2_CLIPBOARD_STATE_UNKNOWN = 0,
+ ECORE_WL2_CLIPBOARD_STATE_OFF,
+ ECORE_WL2_CLIPBOARD_STATE_ON
+} Ecore_Wl2_Clipboard_State;
+//
+
+typedef struct _Ecore_Wl2_Event_Aux_Hint_Allowed
+{
+ unsigned int win;
+ int id;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Aux_Hint_Allowed;
+
+typedef struct _Ecore_Wl2_Event_Aux_Hint_Supported
+{
+ unsigned int win;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Aux_Hint_Supported;
+
+typedef struct Ecore_Wl2_Event_Aux_Message
+{
+ unsigned int win;
+ Eina_Stringshare *key;
+ Eina_Stringshare *val;
+ Eina_List *options;
+ Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Aux_Message;
+
+typedef struct _Ecore_Wl2_Buffer Ecore_Wl2_Buffer;
+
+typedef enum _Ecore_Wl2_Buffer_Type
+{
+ ECORE_WL2_BUFFER_NONE = 0,
+ ECORE_WL2_BUFFER_SHM = 1,
+ ECORE_WL2_BUFFER_DMABUF = 2
+} Ecore_Wl2_Buffer_Type;
+
+// TIZEN_ONLY(20171107): added wl evet structures from ecore_wayland to ecore_wl2
+typedef struct _Ecore_Wl2_Event_Window_Visibility_Change
+{
+ unsigned int win;
+ int fully_obscured;
+} Ecore_Wl2_Event_Window_Visibility_Change;
+
+typedef struct _Ecore_Wl2_Event_Window_Pre_Visibility_Change
+{
+ unsigned int win;
+ Ecore_Wl2_Window_Visibility_Type type;
+ unsigned int option;
+} Ecore_Wl2_Event_Window_Pre_Visibility_Change;
+
+typedef struct _Ecore_Wl2_Event_Window_Lower
+{
+ unsigned int win;
+ unsigned int timestamp;
+} Ecore_Wl2_Event_Window_Lower;
+
+typedef struct _Ecore_Wl2_Event_Dnd_Position
+{
+ unsigned int win, source;
+ struct
+ {
+ int x, y;
+ } position;
+} Ecore_Wl2_Event_Dnd_Position;
+
+typedef struct _Ecore_Wl2_Event_Data_Source_Cancelled
+{
+ unsigned int win, source;
+} Ecore_Wl2_Event_Data_Source_Cancelled;
+
+typedef struct _Ecore_Wl2_Event_Selection_Data_Ready
+{
+ char *data;
+ int len;
+ Eina_Bool done;
+ char **types;
+ int num_types;
+ Ecore_Wl2_Selection_Type sel_type;
+} Ecore_Wl2_Event_Selection_Data_Ready;
+
+typedef struct _Ecore_Wl2_Event_Conformant_Change
+{
+ unsigned int win;
+ Ecore_Wl2_Conformant_Part_Type part_type;
+ Eina_Bool state;
+} Ecore_Wl2_Event_Conformant_Change;
+
+typedef struct _Ecore_Wl2_Event_Effect
+{
+ int win;
+ unsigned int type;
+} Ecore_Wl2_Event_Effect;
+typedef struct _Ecore_Wl2_Event_Effect Ecore_Wl2_Event_Effect_Start;
+typedef struct _Ecore_Wl2_Event_Effect Ecore_Wl2_Event_Effect_End;
+
+typedef struct _Ecore_Wl2_Event_Ignore_Output_Transform
+{
+ Ecore_Wl2_Window *win;
+ Eina_Bool ignore;
+} Ecore_Wl2_Event_Ignore_Output_Transform;
+
+typedef struct _Ecore_Wl2_Event_Indicator_Flick
+{
+ unsigned int win;
+ int type;
+} Ecore_Wl2_Event_Indicator_Flick;
+
+typedef struct _Ecore_Wl2_Event_Clipboard_Data_Selected
+{
+ unsigned int win;
+} Ecore_Wl2_Event_Clipboard_Data_Selected;
+//
+
+// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
+//this enum for keyrouter and client window side
+//keycode (8~255)
+typedef enum _Ecore_Wl2_Window_Keygrab_Mode
+{
+ ECORE_WL2_WINDOW_KEYGRAB_UNKNOWN = 0, /**< Unknown keygrab mode */
+ ECORE_WL2_WINDOW_KEYGRAB_SHARED = 1, /**< Getting the grabbed-key together with the other client windows */
+ ECORE_WL2_WINDOW_KEYGRAB_TOPMOST = 2, /**< Getting the grabbed-key only when window is top of the stack */
+ ECORE_WL2_WINDOW_KEYGRAB_OVERRIDE_EXCLUSIVE = 3, /**< Getting the grabbed-key exclusively regardless of window's position. Being overrided the grab by the other client window */
+ ECORE_WL2_WINDOW_KEYGRAB_EXCLUSIVE = 4 /**< Getting the grabbed-key exclusively regardless of window's position */
+} Ecore_Wl2_Window_Keygrab_Mode;
+
+typedef struct _Ecore_Wl2_Keygrab_Info
+{
+ int key;
+ int mode;
+ int err;
+} Ecore_Wl2_Keygrab_Info;
+
+typedef struct _Ecore_Wl2_Keyungrab_Info
+{
+ int key;
+ int err;
+} Ecore_Wl2_Keyungrab_Info;
+
+typedef struct _Ecore_Wl2_Window_Keygrab_Info
+{
+ char *key;
+ Ecore_Wl2_Window_Keygrab_Mode mode;
+} Ecore_Wl2_Window_Keygrab_Info;
+//
+
+// TIZEN_ONLY(20171109): support a tizen_input_device_manager interface
+typedef struct _Ecore_Wl2_Event_Tizen_Device_Info
+{
+ Ecore_Wl2_Display *display;
+ const char *name;
+ const char *identifier;
+ const char *seatname;
+ Efl_Input_Device_Type clas;
+ Efl_Input_Device_Subtype subclas;
+} Ecore_Wl2_Event_Tizen_Device_Info;
+
+typedef struct _Ecore_Wl2_Event_Tizen_Input_Device_Info
+{
+ Eo *dev;
+ const char *name;
+ const char *identifier;
+ int window_id;
+} Ecore_Wl2_Event_Tizen_Input_Device_Info;
+//
+
+typedef void (*Ecore_Wl2_Bind_Cb)(struct wl_client *client, void *data, uint32_t version, uint32_t id);
+typedef void (*Ecore_Wl2_Unbind_Cb)(struct wl_resource *resource);
+typedef void (*Ecore_Wl2_Frame_Cb)(Ecore_Wl2_Window *win, uint32_t timestamp, void *data);
+typedef struct _Ecore_Wl2_Frame_Cb_Handle Ecore_Wl2_Frame_Cb_Handle;
+
+EAPI extern int ECORE_WL2_EVENT_DISCONNECT; /** @since 1.18 */
+EAPI extern int ECORE_WL2_EVENT_CONNECT; /** @since 1.18 */
+EAPI extern int ECORE_WL2_EVENT_GLOBAL_ADDED; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_GLOBAL_REMOVED; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_FOCUS_IN; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_FOCUS_OUT; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DND_ENTER; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DND_LEAVE; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DND_MOTION; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DND_DROP; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DND_END; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_END; /** @since 1.18 */
+EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_DROP; /** @since 1.18 */
+EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_ACTION; /** @since 1.18 */
+EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_TARGET; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_SEND; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_CONFIGURE; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_SYNC_DONE; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_OFFER_DATA_READY; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_SEAT_NAME_CHANGED; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_SEAT_CAPABILITIES_CHANGED; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_DEVICE_ADDED; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_DEVICE_REMOVED; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_CONFIGURE_COMPLETE; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_SEAT_KEYMAP_CHANGED; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_SEAT_KEYBOARD_REPEAT_CHANGED; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_SEAT_SELECTION; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_OUTPUT_TRANSFORM; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE_DONE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_REQUEST; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_DONE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_AUX_HINT_ALLOWED; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_AUX_HINT_SUPPORTED; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_AUX_MESSAGE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_SHOW; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_HIDE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ACTIVATE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_DEACTIVATE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ICONIFY_STATE_CHANGE; /** @since 1.21 */
+// TIZEN_ONLY(20171107): added wl events from ecore_wayland to ecore_wl2
+EAPI extern int ECORE_WL2_EVENT_WINDOW_VISIBILITY_CHANGE;
+EAPI extern int ECORE_WL2_EVENT_WINDOW_PRE_VISIBILITY_CHANGE;
+EAPI extern int ECORE_WL2_EVENT_WINDOW_LOWER;
+EAPI extern int ECORE_WL2_EVENT_DND_POSITION;
+EAPI extern int ECORE_WL2_EVENT_DND_OFFER; /* @since 1.8, but NOT exist currenly */
+EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_CANCELLED; /* @since 1.7, but NOT exist currenly */
+EAPI extern int ECORE_WL2_EVENT_SELECTION_DATA_READY; /* @since 1.7, but NOT exist currenly */
+EAPI extern int ECORE_WL2_EVENT_CONFORMANT_CHANGE;
+EAPI extern int ECORE_WL2_EVENT_EFFECT_START;
+EAPI extern int ECORE_WL2_EVENT_EFFECT_END;
+EAPI extern int ECORE_WL2_EVENT_IGNORE_OUTPUT_TRANSFORM;
+EAPI extern int ECORE_WL2_EVENT_INDICATOR_FLICK;
+EAPI extern int ECORE_WL2_EVENT_CLIPBOARD_DATA_SELECTED;
+//
+// TIZEN_ONLY(20171109): support a tizen_input_device_manager interface
+EAPI extern int ECORE_WL2_EVENT_TIZEN_DEVICE_ADD;
+EAPI extern int ECORE_WL2_EVENT_TIZEN_DEVICE_DEL;
+EAPI extern int ECORE_WL2_EVENT_TIZEN_INPUT_DEVICE_ADDED;
+EAPI extern int ECORE_WL2_EVENT_TIZEN_INPUT_DEVICE_REMOVED;
+//
+
+/**
+ * @file
+ * @brief Ecore functions for dealing with the Wayland display protocol
+ *
+ * @defgroup Ecore_Wl2_Group Ecore_Wl2 - Wayland integration
+ * @ingroup Ecore
+ *
+ * Ecore_Wl2 provides a wrapper and convenience functions for using the
+ * Wayland protocol in implementing a window system. Function groups for
+ * this part of the library include the following:
+ *
+ * @li @ref Ecore_Wl2_Init_Group
+ * @li @ref Ecore_Wl2_Display_Group
+ * @li @ref Ecore_Wl2_Window_Group
+ * @li @ref Ecore_Wl2_Output_Group
+ * @li @ref Ecore_Wl2_Dnd_Group
+ * @li @ref Ecore_Wl2_Input_Group
+ * @li @ref Ecore_Wl2_Subsurface_Group
+ */
+
+/**
+ * @defgroup Ecore_Wl2_Init_Group Wayland Library Init and Shutdown Functions
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions that start and shutdown the Ecore Wl2 Library.
+ */
+
+/**
+ * Initialize the Ecore_Wl2 library
+ *
+ * @return The number of times the library has been initialized without being
+ * shutdown. 0 is returned if an error occurs.
+ *
+ * @ingroup Ecore_Wl2_Init_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_init(void);
+
+/**
+ * Shutdown the Ecore_Wl2 Library
+ *
+ * @return The number of times the library has been initialized without
+ * being shutdown.
+ *
+ * @ingroup Ecore_Wl2_Init_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_shutdown(void);
+
+/**
+ * @defgroup Ecore_Wl2_Display_Group Wayland Library Display Functions
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions that deal with creating, connecting, or interacting with
+ * Wayland displays
+ */
+
+/**
+ * Create a new Wayland display
+ *
+ * @brief This function is typically used to create a new display for
+ * use with compositors, or to create a new display for use in nested
+ * compositors.
+ *
+ * @param name The display target name to create. If @c NULL, a default
+ * display name will be assigned.
+ * @return The newly created Ecore_Wl2_Display
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Display *ecore_wl2_display_create(const char *name);
+
+/**
+ * Destroy an existing Wayland display
+ *
+ * @brief This function is typically used by servers to terminate an
+ * existing Wayland display.
+ *
+ * @param display The display to terminate
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_display_destroy(Ecore_Wl2_Display *display);
+
+/**
+ * Connect to an existing Wayland display
+ *
+ * @brief This function is typically used by clients to connect to an
+ * existing Wayland display.
+ *
+ * @param name The display target name to connect to. If @c NULL, the default
+ * display is assumed.
+ *
+ * @return The Ecore_Wl2_Display which was connected to
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Display *ecore_wl2_display_connect(const char *name);
+
+/**
+ * Disconnect an existing Wayland display
+ *
+ * @brief This function is typically used by clients to disconnect from an
+ * existing Wayland display.
+ *
+ * @param display The display to disconnect from
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_display_disconnect(Ecore_Wl2_Display *display);
+
+/**
+ * Terminate a Wayland display's main loop
+ *
+ * @brief This function is typically used by servers to terminate the
+ * Wayland display main loop. This is usually only called when a server
+ * encounters an error.
+ *
+ * @param display The Ecore_Wl2_Display to terminate
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_display_terminate(Ecore_Wl2_Display *display);
+
+/**
+ * Retrieve the existing Wayland display
+ *
+ * @param display The Ecore_Wl2_Display for which to retrieve the existing
+ * Wayland display from
+ *
+ * @return The wl_display which this Ecore_Wl2_Display is using
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI struct wl_display *ecore_wl2_display_get(Ecore_Wl2_Display *display);
+
+/**
+ * Retrieve the wl_shm from a given Ecore_Wl2_Display
+ *
+ * @param display The Ecore_Wl2_Display for which to retrieve the existing
+ * Wayland shm interface from
+ *
+ * @return The wl_shm which this Ecore_Wl2_Display is using
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI struct wl_shm *ecore_wl2_display_shm_get(Ecore_Wl2_Display *display);
+
+/**
+ * Retrieve the wl_dmabuf from a given Ecore_Wl2_Display
+ *
+ *
+ * @param display The Ecore_Wl2_Display for which to retrieve the existing
+ * Wayland dmabuf interface from
+ *
+ *
+ * @return The wl_dmabuf which this Ecore_Wl2_Display is using
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ *
+ * @note This is intended for client use only and should be used only
+ * after ecore_wl2_display_connect(). Also, the return type is
+ * void * instead of zpw_linux_dmabuf_v1 * since we don't want
+ * to change our public API every time the version changes in
+ * wayland-protocols.
+ *
+ * @since 1.18
+ */
+EAPI void *ecore_wl2_display_dmabuf_get(Ecore_Wl2_Display *display);
+
+/**
+ * Return an Eina_Iterator that can be used to iterate through globals
+ *
+ * @param display The Ecore_Wl2_Display for which to return a global iterator
+ *
+ * @note The caller of this function should free the returned Eina_Iterator
+ * when finished with it.
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI Eina_Iterator *ecore_wl2_display_globals_get(Ecore_Wl2_Display *display);
+
+/**
+ * Retrieves the size of the current screen.
+ *
+ * @param display The display to get the screen size of
+ * @param w where to return the width. May be NULL. Returns 0 on error.
+ * @param h where to return the height. May be NULL. Returns 0 on error.
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_display_screen_size_get(Ecore_Wl2_Display *display, int *w, int *h);
+
+/**
+ * Get all the Ecore_Wl2_Input from the display.
+ * @param display The display
+ * @return A Eina_Iterator of Ecore_Wl2_Input or @c NULL on error
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.19
+ */
+EAPI Eina_Iterator *ecore_wl2_display_inputs_get(Ecore_Wl2_Display *display);
+
+/**
+ * Find a seat for a given display object using the seat id
+ * @param display The display
+ * @param id The seat id
+ * @return The corresponding Ecore_Wl2_Input object or @c NULL if no match is found
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.20
+ */
+EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find(const Ecore_Wl2_Display *display, unsigned int id);
+
+/**
+ * Find a seat for a given display object using the seat id
+ * @param display The display
+ * @param name The seat name
+ * @return The corresponding Ecore_Wl2_Input object or @c NULL if no match is found
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.20
+ */
+EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find_by_name(const Ecore_Wl2_Display *display, const char *name);
+
+/**
+ * Find an Ecore_Wl2_Window based on id
+ *
+ * @param display The display to search for the window
+ * @param id The id of the window to find
+ *
+ * @return The Ecore_Wl2_Window if found, or NULL if no such window exists
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find(Ecore_Wl2_Display *display, unsigned int id);
+
+// TIZEN_ONLY(20171110)
+EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find_by_surface(Ecore_Wl2_Display *display, struct wl_surface *surface);
+//
+
+/**
+ * Retrieves the Wayland Registry used for the current Wayland display.
+ *
+ * @param display The display to get the registry of
+ *
+ * @return The current wayland registry, or NULL on error
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI struct wl_registry *ecore_wl2_display_registry_get(Ecore_Wl2_Display *display);
+
+/**
+ * Check if the display has performed a sync
+ *
+ * @param display The display
+ *
+ * @return True if the display sync has occurred
+ * @see ECORE_WL2_EVENT_SYNC_DONE
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_display_sync_is_done(const Ecore_Wl2_Display *display);
+
+/**
+ * Get the name of the display object
+ *
+ * @param display The display
+ *
+ * @return The name of the display object
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.20
+ */
+EAPI const char *ecore_wl2_display_name_get(const Ecore_Wl2_Display *display);
+
+/**
+ * @defgroup Ecore_Wl2_Window_Group Wayland Library Window Functions
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions that deal with creating, destroying, or interacting with
+ * Wayland windows
+ */
+
+/**
+ * Create a new Ecore_Wl2_Window
+ *
+ * @param display The Ecore_Wl2_Display on which to create this new window
+ * @param parent The Ecore_Wl2_Window which is the parent of this window
+ * @param x Initial x position of window
+ * @param y Initial y position of window
+ * @param w Initial width of window
+ * @param h Initial height of window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Window *ecore_wl2_window_new(Ecore_Wl2_Display *display, Ecore_Wl2_Window *parent, int x, int y, int w, int h);
+
+/**
+ * Get the window id associated with an Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window of which to retrieve the window id
+ *
+ * @return The id associated with this window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_window_id_get(Ecore_Wl2_Window *window);
+
+/**
+ * Get the wl_surface which belongs to this window
+ *
+ * @param window The Ecore_Wl2_Window to get the surface of
+ *
+ * @return The wl_surface associated with this window.
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI struct wl_surface *ecore_wl2_window_surface_get(Ecore_Wl2_Window *window);
+
+/**
+ * Get the id of a given Ecore_Wl2_Window
+ *
+ * @param window The window to return the id of
+ *
+ * @return The id of the given window, or -1 on failure
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_window_surface_id_get(Ecore_Wl2_Window *window);
+
+/**
+ * @see evas_object_size_hint_aspect_set
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_aspect_set(Ecore_Wl2_Window *window, int w, int h, unsigned int aspect);
+
+/**
+ * Show a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window to show
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_show(Ecore_Wl2_Window *window);
+
+/**
+ * Hide a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window to hide
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_hide(Ecore_Wl2_Window *window);
+
+/**
+ * Free a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window to free
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_free(Ecore_Wl2_Window *window);
+
+/**
+ * @brief Begin moving a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window which to move
+ * @param input The seat on which the move is active on
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_move(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input);
+
+/**
+ * @brief Begin resizing a given window
+ *
+ * @param window The Ecore_Wl2_Window which to resize
+ * @param input The seat on which the resize is active
+ * @param location The edge of the window from which the resize should start
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_resize(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input, int location);
+
+/**
+ * Raise a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window which to raise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_raise(Ecore_Wl2_Window *window);
+
+// TIZEN_ONLY(20171108): tizen window function
+EAPI Ecore_Wl2_Window *ecore_wl2_window_surface_find(struct wl_surface *surface);
+EAPI void ecore_wl2_window_lower(Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_activate(Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_parent_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window *parent);
+EAPI void ecore_wl2_window_stack_mode_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Stack_Mode mode);
+EAPI void ecore_wl2_window_position_set(Ecore_Wl2_Window *window, int x, int y);
+EAPI int ecore_wl2_window_active_angle_get(Ecore_Wl2_Window *window);
+//
+
+//TIZEN_ONLY(20171216): add ecore_wl2_window_find
+EAPI Ecore_Wl2_Window *ecore_wl2_window_find(unsigned int id);
+//
+
+/**
+ * Get if a given window is alpha
+ *
+ * @param window The window to get if is alpha
+ *
+ * @return EINA_TRUE if window is alpha, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Eina_Bool ecore_wl2_window_alpha_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set a given window's alpha property
+ *
+ * @param window The window on which to set the alpha property
+ * @param alpha EINA_TRUE to set window as alpha, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_alpha_set(Ecore_Wl2_Window *window, Eina_Bool alpha);
+
+/**
+ * Set a given window's transparent property
+ *
+ * @param window The window on which to set the transparent property
+ * @param transparent EINA_TRUE to set window as transparent,
+ * EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_transparent_set(Ecore_Wl2_Window *window, Eina_Bool transparent);
+
+// TIZEN_ONLY(20171108) : Get a window's transparent property
+EAPI Eina_Bool ecore_wl2_window_transparent_get(Ecore_Wl2_Window *window);
+//
+
+/**
+ * Set the opaque region of the Ecore_Wl2_Window
+ *
+ * @param win The window
+ * @param x The left point of the region.
+ * @param y The top point of the region.
+ * @param w The width of the region.
+ * @param h The height of the region.
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_opaque_region_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
+
+// TIZEN_ONLY(20160201) : support to handle input rectangle
+EAPI void ecore_wl2_window_input_rect_set(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect);
+EAPI void ecore_wl2_window_input_rect_add(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect);
+EAPI void ecore_wl2_window_input_rect_subtract(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect);
+//
+
+/**
+ * Set the input region of the Ecore_Wl2_Window.
+ *
+ * To set an empty region, pass width and height as 0.
+ *
+ * An empty input region means the entire window surface will accept input.
+ *
+ * @param window The window to set the input region of
+ * @param x The left point of the region.
+ * @param y The top point of the region.
+ * @param w The width of the region.
+ * @param h The height of the region.
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_input_region_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
+
+/**
+ * Get if a given window is maximized
+ *
+ * @param window The window to get the maximized state of
+ *
+ * @return EINA_TRUE if window is maximized, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Eina_Bool ecore_wl2_window_maximized_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set the maximized state of a given window
+ *
+ * @param window The window to set the maximized state of
+ * @param maximized EINA_TRUE to set maximized, EINA_FALSE to unset
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_maximized_set(Ecore_Wl2_Window *window, Eina_Bool maximized);
+
+/**
+ * Get if a given window is fullscreen
+ *
+ * @param window The window to get the fullscreen state of
+ *
+ * @return EINA_TRUE if window is fullscreen, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Eina_Bool ecore_wl2_window_fullscreen_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set the fullscreen state of a given window
+ *
+ * @param window The window to set the fullscreen state of
+ * @param maximized EINA_TRUE to set fullscreen, EINA_FALSE to unset
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_fullscreen_set(Ecore_Wl2_Window *window, Eina_Bool fullscreen);
+
+/**
+ * Get if a given window is rotated
+ *
+ * @param window The window to get the rotation of
+ *
+ * @return The amount of rotation for this window, or -1 on failure
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_window_rotation_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set the rotation of a given window
+ *
+ * @param window The window to set the rotation of
+ * @param rotation The amount of rotation
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_rotation_set(Ecore_Wl2_Window *window, int rotation);
+
+/**
+ * Set the title of a given window
+ *
+ * @param window The window to set the title of
+ * @param title The title of the window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_title_set(Ecore_Wl2_Window *window, const char *title);
+
+/**
+ * Set the class of a given window
+ *
+ * @param window The window to set the class of
+ * @param clas The class of the window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_class_set(Ecore_Wl2_Window *window, const char *clas);
+
+/**
+ * Get the geometry of a given window
+ *
+ * @brief The window geometry returned here is the window geometry as
+ * recognized by xdg_surface_set_window_geometry. As such, it represents the
+ * "visible bounds" of a window from the user's perspective.
+ *
+ * @param window The window to get the geometry of
+ * @param x The left point of the window geometry
+ * @param y The top point of the window geometry
+ * @param w The width of the window geometry
+ * @param h The height of the window geometry
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_geometry_get(Ecore_Wl2_Window *window, int *x, int *y, int *w, int *h);
+
+/**
+ * Set the geometry of a given window
+ *
+ * @brief The window geometry referenced here is the window geometry as
+ * recognized by xdg_surface_set_window_geometry. As such, it represents the
+ * "visible bounds" of a window from the user's perspective.
+ *
+ * @param window The window to set the geometry of
+ * @param x The left point of the window geometry
+ * @param y The top point of the window geometry
+ * @param w The width of the window geometry
+ * @param h The height of the window geometry
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_geometry_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
+
+/**
+ * Get the iconified state of a given window
+ *
+ * @param window The window to get the iconified state of
+ *
+ * @return EINA_TRUE if window is iconified, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Eina_Bool ecore_wl2_window_iconified_get(Ecore_Wl2_Window *window);
+
+/**
+ * Iconify a window
+ *
+ * @param win The window to iconifiy
+ * @param iconified The new iconified state to set
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_iconified_set(Ecore_Wl2_Window *window, Eina_Bool iconified);
+
+// TIZEN_ONLY(20151231) : handling iconic state on tizen
+EAPI void ecore_wl2_window_iconify_state_update(Ecore_Wl2_Window *window, Eina_Bool iconified, Eina_Bool send_event);
+//
+
+/**
+ * Set the type of a given window
+ *
+ * @param window The window to set the type of
+ * @type The Ecore_Wl2_Window_Type to set on the window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_type_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Type type);
+
+// TIZEN_ONLY(20171108) : Get the type of a given window
+EAPI Ecore_Wl2_Window_Type ecore_wl2_window_type_get(Ecore_Wl2_Window *window);
+//
+
+/**
+ * Find the output that a given window is on
+ *
+ * @param window The window to find the output for
+ *
+ * @return An Ecore_Wl2_Output if found, or NULL otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Ecore_Wl2_Output *ecore_wl2_window_output_find(Ecore_Wl2_Window *window);
+
+/**
+ * Set a buffer transform on a given window
+ *
+ * @param window The window on which to set the buffer transform
+ * @param transform The buffer transform being requested
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_buffer_transform_set(Ecore_Wl2_Window *window, int transform);
+
+/**
+ * Set if window rotation is supported by the window manager
+ *
+ * @param window
+ * @param enabled
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_wm_rotation_supported_set(Ecore_Wl2_Window *window, Eina_Bool enabled);
+
+/**
+ * Get if window rotation is supported by the window manager
+ *
+ * @param window
+ *
+ * @return EINA_TRUE if supported, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_wm_rotation_supported_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set if an application has set window rotation
+ *
+ * @param window
+ * @param set
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_rotation_app_set(Ecore_Wl2_Window *window, Eina_Bool set);
+
+/**
+ * Get if an application has set window rotation
+ *
+ * @param window
+ *
+ * @return EINA_TRUE if set, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_rotation_app_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set preferred rotation on a given window
+ *
+ * @param window
+ * @param rot
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_preferred_rotation_set(Ecore_Wl2_Window *window, int rot);
+
+/**
+ * Get preferred rotation for a given window
+ *
+ * @param window
+ *
+ * @return Given windows preferred rotation
+ *
+ * @ingroup Ecore_Wl2_Window
+ * @since 1.20
+ */
+EAPI int ecore_wl2_window_preferred_rotation_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set a windows available rotations
+ *
+ * @param window
+ * @param rots
+ * @param count
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_available_rotations_set(Ecore_Wl2_Window *window, const int *rots, unsigned int count);
+
+/**
+ * Get a windows available rotations
+ *
+ * @param window
+ * @param rots
+ * @param count
+ *
+ * @return EINA_TRUE on success, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_available_rotations_get(Ecore_Wl2_Window *window, int **rots, unsigned int *count);
+
+EAPI void ecore_wl2_window_rotation_change_prepare_send(Ecore_Wl2_Window *window, int rot, int w, int h, Eina_Bool resize);
+EAPI void ecore_wl2_window_rotation_change_prepare_done_send(Ecore_Wl2_Window *window, int rot);
+EAPI void ecore_wl2_window_rotation_change_request_send(Ecore_Wl2_Window *window, int rot);
+EAPI void ecore_wl2_window_rotation_change_done_send(Ecore_Wl2_Window *window, int rot, int w, int h);
+
+// TIZEN_ONLY
+EAPI void ecore_wl2_window_rotation_geometry_set(Ecore_Wl2_Window *win, int rot, int x, int y, int w, int h);
+EAPI void ecore_wl2_window_rotation_changed_callback_set(Ecore_Wl2_Window *win, void *data, void (*func)(Ecore_Wl2_Window *win, int rot, Eina_Bool resize, int w, int h, void *data));
+//
+
+/**
+ * Get list of supported auxiliary window hints
+ *
+ * @param window
+ *
+ * @return An Eina_List of supported auxiliary hints, or NULL otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_List *ecore_wl2_window_aux_hints_supported_get(Ecore_Wl2_Window *window);
+
+/**
+ * Add a supported auxiliary hint to a given window
+ *
+ * @param window
+ * @param id
+ * @param hint
+ * @param val
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_aux_hint_add(Ecore_Wl2_Window *window, int id, const char *hint, const char *val);
+
+/**
+ * Change an auxiliary hint on a given window
+ *
+ * @param window
+ * @param id
+ * @param val
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_aux_hint_change(Ecore_Wl2_Window *window, int id, const char *val);
+
+/**
+ * Delete an auxiliary hint on a given window
+ *
+ * @param window
+ * @param id
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_aux_hint_del(Ecore_Wl2_Window *window, int id);
+
+/**
+ * @brief Get the activated state of a window
+ * @param window The window
+ * @return @c EINA_TRUE if activated
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_activated_get(const Ecore_Wl2_Window *window);
+
+/**
+ * @brief Set the seat for a popup window to be used with grab
+ * @param window The window
+ * @param input The seat
+ *
+ * Use this function for desktop shell requests involving popup grabs which require
+ * a seat for the grab.
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_popup_input_set(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input);
+
+/**
+ * Check if a window has a shell surface - without one it can't be visible.
+ *
+ * @param The window to check
+ *
+ * @return Returns true if the window has an associated shell surface.
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.19
+ */
+EAPI Eina_Bool ecore_wl2_window_shell_surface_exists(Ecore_Wl2_Window *win);
+
+// TIZEN_ONLY(171108) : get shell surface of a given window
+EAPI struct zxdg_surface_v6 *ecore_wl2_window_shell_surface_get(Ecore_Wl2_Window *window);
+//
+
+/** @since 1.17 */
+EAPI Ecore_Wl2_Display *ecore_wl2_window_display_get(const Ecore_Wl2_Window *window);
+
+/**
+ * Set if this window should ignore focus requests
+ *
+ * @param window
+ * @param focus_skip
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_focus_skip_set(Ecore_Wl2_Window *window, Eina_Bool focus_skip);
+
+/**
+ * Get if this window ignores focus requests
+ *
+ * @param window
+ *
+ * @return EINA_TRUE if a window should skip focus requests, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_focus_skip_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set the role of a given window
+ *
+ * @param window
+ * @param role
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_role_set(Ecore_Wl2_Window *window, const char *role);
+
+/**
+ * Set if a given window is in floating mode
+ *
+ * @param window
+ * @param floating
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_floating_mode_set(Ecore_Wl2_Window *window, Eina_Bool floating);
+
+/**
+ * Get if a given window is in floating mode
+ *
+ * @param window
+ *
+ * @return EINA_TRUE if floating, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_floating_mode_get(Ecore_Wl2_Window *window);
+
+//TIZEN_ONLY: ecore_wl2: add ecore_wl_window_video_has
+EAPI void ecore_wl2_window_video_has(Ecore_Wl2_Window *window, Eina_Bool has);
+//
+
+/**
+ * @defgroup Ecore_Wl2_Input_Group Wayland Library Input Functions
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions that deal with creating, destroying, or interacting with
+ * Wayland Input
+ */
+
+/* TODO: doxy */
+/** @since 1.17 */
+EAPI void ecore_wl2_input_grab(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, unsigned int button);
+
+/* TODO: doxy */
+/** @since 1.17 */
+EAPI void ecore_wl2_input_ungrab(Ecore_Wl2_Input *input);
+
+/* TODO: doxy */
+/** @since 1.17 */
+EAPI struct wl_seat *ecore_wl2_input_seat_get(Ecore_Wl2_Input *input);
+
+/**
+ * Get the seat capabilities for a given input.
+ *
+ * @param input The input
+ *
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.19
+ */
+EAPI Ecore_Wl2_Seat_Capabilities ecore_wl2_input_seat_capabilities_get(Ecore_Wl2_Input *input);
+
+/**
+ * Get the wayland's seat id from an input.
+ * @param input The input
+ * @return The seat id
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.19
+ */
+EAPI unsigned int ecore_wl2_input_seat_id_get(Ecore_Wl2_Input *input);
+
+/**
+ * Get the display object of an input
+ * @param input The input
+ * @return The display
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI Ecore_Wl2_Display *ecore_wl2_input_display_get(const Ecore_Wl2_Input *input);
+
+/**
+ * Get the xkb_keymap object of an input
+ * @param input The input
+ * @return The xkb_keymap object
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI struct xkb_keymap *ecore_wl2_input_keymap_get(const Ecore_Wl2_Input *input);
+
+/**
+ * Get the name of an input
+ * @param input The input
+ * @return The name
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI Eina_Stringshare *ecore_wl2_input_name_get(Ecore_Wl2_Input *input);
+
+/**
+ * Get the keyboard repeat rate and delay of an input
+ * @param input The input
+ * @param rate Pointer to store the repeat rate (in seconds)
+ * @param rate Pointer to store the repeat delay (in seconds)
+ * @return True if repeat is enabled
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_input_keyboard_repeat_get(const Ecore_Wl2_Input *input, double *rate, double *delay);
+
+/**
+ * Get the Evas_Device for the seat belonging to a window from an input
+ * @param input The input
+ * @param window The window
+ * @return The device object
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI Eo *ecore_wl2_input_seat_device_get(const Ecore_Wl2_Input *input, const Ecore_Wl2_Window *window);
+
+/**
+ * Retrieves the mouse position of the seat
+ *
+ * @param input The seat
+ * @param x where to return the horizontal position. May be NULL. Returns 0 on error.
+ * @param y where to return the vertical position. May be NULL. Returns 0 on error.
+ * @return @c EINA_TRUE if coords were successfully retrieved
+ *
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_input_pointer_xy_get(const Ecore_Wl2_Input *input, int *x, int *y);
+
+/**
+ * Set a given wl_surface to use as the pointer on a seat
+ *
+ * @param input The seat to set this surface as the pointer on
+ * @param surface The surface to use as the pointer
+ * @param hot_x The x coordinate to use as the cursor hot spot
+ * @param hot_y The y coordinate to use as the cursor hot spot
+ *
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface *surface, int hot_x, int hot_y);
+
+/**
+ * Set a specific cursor on a given seat
+ *
+ * @brief This function will try to find a matching cursor inside the existing
+ * cursor theme and set the pointer for the specified seat to be
+ * the specified cursor
+ *
+ * @param input The seat to set the cursor on
+ * @param cursor The name of the cursor to try and set
+ *
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_input_cursor_from_name_set(Ecore_Wl2_Input *input, const char *cursor);
+
+// TIZEN_ONLY(20171207): add functions to set client's custom cursors
+EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface *surface, int hot_x, int hot_y);
+EAPI struct wl_cursor *ecore_wl2_input_cursor_get(Ecore_Wl2_Input *input, const char *cursor_name);
+EAPI void ecore_wl2_input_cursor_size_set(Ecore_Wl2_Input *input, const int size);
+EAPI void ecore_wl2_input_cursor_theme_name_set(Ecore_Wl2_Input *input, const char *cursor_theme_name);
+EAPI void ecore_wl2_input_cursor_default_restore(Ecore_Wl2_Input *input);
+
+EAPI void ecore_wl2_window_pointer_set(Ecore_Wl2_Window *win, struct wl_surface *surface, int hot_x, int hot_y);
+EAPI void ecore_wl2_window_cursor_from_name_set(Ecore_Wl2_Window *win, const char *cursor_name);
+EAPI void ecore_wl2_window_cursor_default_restore(Ecore_Wl2_Window *win);
+//
+
+
+/**
+ * @defgroup Ecore_Wl2_Dnd_Group Wayland Library Drag-n-Drop Functions
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions that deal with creating, destroying, or interacting with
+ * Wayland Drag-n-Drop
+ */
+
+/**
+ * Set the types which are supported by a possible drag and drop operation.
+ * This call initializes a data source and offeres the given mimetypes
+ *
+ * @param input the input where to add on the data source
+ *
+ * @param types a null-terminated array of mimetypes
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_dnd_drag_types_set(Ecore_Wl2_Input *input, const char **types);
+
+/**
+ * Start a drag on the given input
+ *
+ * @param input the input to use
+ *
+ * @param window the window which is the origin of the drag operation
+ *
+ * @param drag_window the window which is used as window of the visible hint.
+ * @return The serial for the start_drag request
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.17
+ */
+EAPI uint32_t ecore_wl2_dnd_drag_start(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, Ecore_Wl2_Window *drag_window);
+
+/**
+ * Call wl_data_source.set_actions on an existing source
+ *
+ * @param input the input to use
+ *
+ * @see ecore_wl2_dnd_drag_start for a more useful function.
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.20
+ */
+EAPI EAPI void ecore_wl2_dnd_set_actions(Ecore_Wl2_Input *input);
+
+/**
+ * End a drag started by a call to ecore_wl2_dnd_drag_start
+ *
+ * @param input the input object on which the drag was started
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_dnd_drag_end(Ecore_Wl2_Input *input);
+
+/**
+ * Get the offer which is currently resposible for the clipboard
+ *
+ * @param input the input object to use
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI Ecore_Wl2_Offer* ecore_wl2_dnd_selection_get(Ecore_Wl2_Input *input);
+
+/**
+ * Set the types which are available from this client
+ * Later the event ECORE_WL2_EVENT_DATA_SOURCE_SEND is emitted,
+ * where the caller of this api must write the data (encoded in the given mimetype) to the fd
+ *
+ * @param input the input to provice this types on
+ *
+ * @param types a null-terminated array of mimetypes supported by the client
+ *
+ * @return serial of request on sucess, 0 on failure
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.17
+ */
+EAPI uint32_t ecore_wl2_dnd_selection_set(Ecore_Wl2_Input *input, const char **types);
+
+/**
+ * Clear the selection currently setted on this input.
+ *
+ * @param input the input to clear
+ *
+ * @return serial of request on sucess, 0 on failure
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.17
+ */
+EAPI uint32_t ecore_wl2_dnd_selection_clear(Ecore_Wl2_Input *input);
+
+// TIZEN_ONLY(20150703) : support conformant
+EAPI void ecore_wl2_window_conformant_set(Ecore_Wl2_Window *win, unsigned int is_conformant);
+EAPI Eina_Bool ecore_wl2_window_conformant_get(Ecore_Wl2_Window *win);
+//
+
+// TIZEN_ONLY(20171108) : add functions for indicator
+EAPI void ecore_wl2_window_indicator_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
+EAPI Eina_Bool ecore_wl2_window_indicator_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
+EAPI void ecore_wl2_window_indicator_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_State state);
+EAPI Ecore_Wl2_Indicator_State ecore_wl2_window_indicator_state_get(Ecore_Wl2_Window *win);
+EAPI void ecore_wl2_window_indicator_opacity_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_Opacity_Mode mode);
+EAPI Ecore_Wl2_Indicator_Opacity_Mode ecore_wl2_window_indicator_opacity_get(Ecore_Wl2_Window *win);
+EAPI void ecore_wl2_indicator_visible_type_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_Visible_Type type);
+EAPI Ecore_Wl2_Indicator_Visible_Type ecore_wl2_indicator_visible_type_get(Ecore_Wl2_Window *win);
+//
+
+// TIZEN_ONLY(20171108) : add functions for clipboard
+EAPI void ecore_wl2_window_clipboard_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
+EAPI Eina_Bool ecore_wl2_window_clipboard_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
+EAPI void ecore_wl2_window_clipboard_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Clipboard_State state);
+EAPI Ecore_Wl2_Clipboard_State ecore_wl2_window_clipboard_state_get(Ecore_Wl2_Window *win);
+EAPI void ecore_wl2_clipboard_show(Ecore_Wl2_Window *win);
+EAPI void ecore_wl2_clipboard_hide(Ecore_Wl2_Window *win);
+EAPI Eina_Bool ecore_wl2_clipboard_data_only_set(Eina_Bool data_only);
+//
+
+// TIZEN_ONLY(20171108) : add functions for keyboard
+EAPI void ecore_wl2_window_keyboard_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
+EAPI Eina_Bool ecore_wl2_window_keyboard_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
+EAPI void ecore_wl2_window_keyboard_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Virtual_Keyboard_State state);
+EAPI Ecore_Wl2_Virtual_Keyboard_State ecore_wl2_window_keyboard_state_get(Ecore_Wl2_Window *win);
+//
+
+/**
+ * @defgroup Ecore_Wl2_Subsurface_Group Functions to manipulate subsurfaces.
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions to manipulate wayland subsurfaces, using Ecore_Wl2_Subsurface.
+ *
+ * This API is intended to expose Wayland subsurface functionality, although it
+ * should not be necessary for most applications to use it, as soon as we have
+ * means to make Evas automatically switch Evas images to use subsurfaces.
+ *
+ * It can/should be used, for instance, when subsurfaces are needed to be not
+ * in sync with the main window surface.
+ */
+
+/**
+ * Create and return a new subsurface.
+ *
+ * Create a new surface (and subsurface interface), with the parent surface
+ * being the one associated with the given @param win.
+ *
+ * The @param win must be visible, otherwise there will be no surface created
+ * for it yet.
+ *
+ * @return the allocated and initialized Ecore_Wl2_Subsurface object, or
+ * NULL on failure
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Subsurface *ecore_wl2_subsurface_new(Ecore_Wl2_Window *window);
+
+/**
+ * Destroy the given subsurface, as well as the surface associated with it.
+ *
+ * @param subsurface the subsurface
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_del(Ecore_Wl2_Subsurface *subsurface);
+
+/**
+ * Get the wl_surface for this subsurface
+ *
+ * @param subsurface the subsurface
+ *
+ * @return the wl_surface associated with this subsurface, or NULL on failure
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI struct wl_surface *ecore_wl2_subsurface_surface_get(Ecore_Wl2_Subsurface *subsurface);
+
+/**
+ * Set the position of this subsurface, relative to its parent surface.
+ * If subsurface is defined and the x, y coordinates differ from the currently
+ * tracked position, this also schedules a sub-surface position change.
+ *
+ * @param subsurface the subsurface
+ * @param x coordinate in the parent surface
+ * @param y coordinate in the parent surface
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_position_set(Ecore_Wl2_Subsurface *subsurface, int x, int y);
+
+/**
+ * Get the position of this subsurface, relative to its parent surface.
+ * Coordinates will be returned in x and y if non-NULL.
+ *
+ * @param subsurface the subsurface
+ * @param x coordinate in the parent surface, or NULL to ignore
+ * @param y coordinate in the parent surface, or NULL to ignore
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_position_get(Ecore_Wl2_Subsurface *subsurface, int *x, int *y);
+
+/**
+ * Place subsurface on layer above a reference surface
+ *
+ * Moves the @param subsurface to just above the reference @param
+ * surface, changing the z-order. The reference @param surface must
+ * be either a sibling or parent surface, else a protocol error will
+ * be generated.
+ *
+ * @param subsurface the subsurface
+ * @param surface the sibling reference surface
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_place_above(Ecore_Wl2_Subsurface *subsurface, struct wl_surface *surface);
+
+/**
+ * Place subsurface on layer below a reference surface
+ *
+ * See ecore_wl2_subsurface_place_above.
+ *
+ * @param subsurface the subsurface
+ * @param surface the sibling reference surface
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_place_below(Ecore_Wl2_Subsurface *subsurface, struct wl_surface *surface);
+
+/**
+ * Enables or disables sub-surface synchronization
+ *
+ * When synchronization is enabled, surface commits on the subsurface
+ * will be cached and only applied when the parent surface's state is
+ * applied. This ensures atomic updates of the parent and all of its
+ * synchronized sub-surfaces.
+ *
+ * When synchronization is disabled, commits will apply to the pending
+ * state directly without caching, just like a normal wl_surface. If
+ * there are already cached events when this is set, those events are
+ * applied simultaneously with the desync event.
+ *
+ * Attempting to enable synchronization when the subsurface already
+ * thinks it's sync'd, or desync when it believes its desync'd, will
+ * be trivially ignored and will not generate a Wayland event.
+ *
+ * See Wayland's set_desync documentation for further details and
+ * exceptional cases.
+ *
+ * @param subsurface the subsurface
+ * @param sync true to enable synchronization, false to desynchronize
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_sync_set(Ecore_Wl2_Subsurface *subsurface, Eina_Bool sync);
+
+/**
+ * Set an opaque region for the given subsurface.
+ *
+ * This is an optimization hint to the compositor to allow it avoid
+ * redrawing content unnecessarily. Note that marking transparent
+ * content as opaque will cause repaint artifacts.
+ *
+ * Use a 0x0 region size to unset the opaque region.
+ *
+ * @param subsurface the subsurface
+ * @param x coordinate in the parent surface
+ * @param y coordinate in the parent surface
+ * @param w width to set as opaque
+ * @param h height to set as opaque
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_opaque_region_set(Ecore_Wl2_Subsurface *subsurface, int x, int y, int w, int h);
+
+/**
+ * @defgroup Ecore_Wl2_Output_Group Wayland Library Output Functions
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions that deal with creating, destroying, or interacting with
+ * Wayland Outputs
+ */
+
+/**
+ * Return the DPI of a given output
+ *
+ * This is a simplistic call to get DPI. It does not account for differing
+ * DPI in the x and y axes nor does it account for multihead or xinerama and
+ * xrandr where different parts of the screen may have different DPI etc.
+ *
+ * @param output The output to get the DPI of
+ *
+ * @return the general screen DPI (dots/pixels per inch).
+ *
+ * @ingroup Ecore_Wl2_Output_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_output_dpi_get(Ecore_Wl2_Output *output);
+
+/**
+ * Get the current transform of a given output
+ *
+ * @param output The output to get the transform of
+ *
+ * @return The output's current transform value
+ * @ingroup Ecore_Wl2_Output_Group
+ * @since 1.20
+ */
+EAPI int ecore_wl2_output_transform_get(Ecore_Wl2_Output *output);
+
+/**
+ * Return the version of the display's compositor object
+ *
+ * @param disp the display to get the compositor object version from
+ *
+ * @return the version of the display's compositor object
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_display_compositor_version_get(Ecore_Wl2_Display *disp);
+
+/**
+ * Get the actions available from the data source
+ *
+ * @param offer Offer object to use
+ *
+ * @return or´ed values from Ecore_Wl2_Drag_Action which are describing the available actions
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI Ecore_Wl2_Drag_Action ecore_wl2_offer_actions_get(Ecore_Wl2_Offer *offer);
+
+/**
+ * Set the actions which are supported by you
+ *
+ * @param offer Offer object to use
+ * @param actions A or´ed value of mutliple Ecore_Wl2_Drag_Action values
+ * @param action the preffered action out of the actions
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI void ecore_wl2_offer_actions_set(Ecore_Wl2_Offer *offer, Ecore_Wl2_Drag_Action actions, Ecore_Wl2_Drag_Action action);
+
+/**
+ * Get action which is set by either the data source or in the last call of actions_set
+ *
+ * @param offer Offer object to use
+ *
+ * @return the prefered action
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI Ecore_Wl2_Drag_Action ecore_wl2_offer_action_get(Ecore_Wl2_Offer *offer);
+
+/**
+ * Get the mime types which are given by the source
+ *
+ * @param offer the offer to query
+ *
+ * @return a eina array of strdup´ed strings, this array must NOT be changed or freed
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ */
+EAPI Eina_Array* ecore_wl2_offer_mimes_get(Ecore_Wl2_Offer *offer);
+
+/**
+ * Set mimetypes you are accepting under this offer
+ *
+ * @param offer the offer to use
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI void ecore_wl2_offer_mimes_set(Ecore_Wl2_Offer *offer, Eina_Array *mimes);
+
+/**
+ * Accept a single mime type for an offer
+ *
+ * @param offer the offer to use
+ * @param mime_type the mime type
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_offer_accept(Ecore_Wl2_Offer *offer, const char *mime_type);
+
+/**
+ * Request the data from this offer.
+ * The event ECORE_WL2_EVENT_OFFER_DATA_READY is called when the data is available.
+ * There offer will be not destroyed as long as requested data is not emitted by the event.
+ *
+ * @param offer the offer to use
+ * @param mime the mimetype to receive
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI void ecore_wl2_offer_receive(Ecore_Wl2_Offer *offer, char *mime);
+
+/**
+ * Request the data from this offer on an externally managed fd.
+ * The event ECORE_WL2_EVENT_OFFER_DATA_READY is called when the data is available.
+ * There offer will be not destroyed as long as requested data is not emitted by the event.
+ *
+ * @param offer the offer to use
+ * @param mime the mimetype to receive
+ * @param fd the fd to pass for receiving
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_offer_proxy_receive(Ecore_Wl2_Offer *offer, const char *mime, int fd);
+
+/**
+ * End the use of a proxy received offer. This may invalidate the offer object
+ *
+ * @param offer the offer
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_offer_proxy_receive_end(Ecore_Wl2_Offer *offer);
+
+/**
+ * Check if the given offer supports the given mimetype
+ *
+ * @param offer the offer to use
+ * @param mime the mimetype to check
+ *
+ * @return Returns true if the mimetype is supported by this offer, false if not
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI Eina_Bool ecore_wl2_offer_supports_mime(Ecore_Wl2_Offer *offer, const char *mime);
+
+/**
+ * Mark this offer as finished
+ * This will call the dnd_finished event on the source of the sender.
+ *
+ * @param offer the offer to use
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI void ecore_wl2_offer_finish(Ecore_Wl2_Offer *offer);
+
+/**
+ * Disable session recovery for any further connections. Must be called
+ * before connecting. This is irreversible and not intended for general
+ * use.
+ *
+ * @since 1.19
+ */
+EAPI void ecore_wl2_session_recovery_disable(void);
+
+/**
+ * Commit the surface of a wayland window.
+ *
+ * If flush is set this generates a wl_surface_commit(), otherwise it is
+ * expected that some other call in the very near future (such as
+ * eglSwapBuffers) will cause an implicit flush.
+ *
+ * A surface that has been commit will be in the "pending" state until
+ * the compositor tells us it's time to draw again via a frame callback.
+ *
+ * @surface surface to commit
+ * @flush EINA_TRUE if we need to flush immediately.
+ *
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_commit(Ecore_Wl2_Window *window, Eina_Bool flush);
+
+EAPI void ecore_wl2_window_false_commit(Ecore_Wl2_Window *window);
+
+/**
+ * Check if a wayland window's surface is in the pending state.
+ *
+ * A surface is pending if it's been commit but we haven't received a
+ * frame callback for it yet. This mean's we're not ready to draw yet.
+ *
+ * @return whether the window's surface is pending or not.
+ *
+ * @since 1.21
+ */
+EAPI Eina_Bool ecore_wl2_window_pending_get(Ecore_Wl2_Window *window);
+
+/**
+ * Add a callback that fires when the window's surface_frame callback fires
+ *
+ * @window the window to add a callback on
+ * @cb The callback
+ * @data user data to provide to the callback handler
+ *
+ * @since 1.21
+ */
+EAPI Ecore_Wl2_Frame_Cb_Handle *ecore_wl2_window_frame_callback_add(Ecore_Wl2_Window *window, Ecore_Wl2_Frame_Cb cb, void *data);
+
+/**
+ * delete a callback that fires when the window's surface_frame callback fires
+ *
+ * @window the window to add a callback on
+ * @cb The callback handle
+ *
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_frame_callback_del(Ecore_Wl2_Frame_Cb_Handle *handle);
+
+/**
+ * Attach a buffer to a window
+ *
+ * Note that the GL stack my attach buffers to a surface - we should call this
+ * function at that time (with a NULL buffer) to track whether a surface
+ * has a valid buffer. That is, call with implicit true and buffer NULL at
+ * the time of glSwapBuffers.
+ *
+ * @window the target window
+ * @buffer the buffer to attach
+ * @x x offset from corner
+ * @y y offset from corner
+ * @implicit true if an external library is doing the actual attaching
+ *
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_buffer_attach(Ecore_Wl2_Window *win, void *buffer, int x, int y, Eina_Bool implicit);
+
+/**
+ * Push buffered wayland protocol to compositor
+ *
+ * Wayland protocol is only actually sent when a flush occurs,
+ * so the display should be flushed at appropriate times, such
+ * as after a commit.
+ *
+ * @param display
+ * @since 1.21
+ */
+EAPI void ecore_wl2_display_flush(Ecore_Wl2_Display *display);
+
+EAPI Eina_Bool ecore_wl2_window_resizing_get(Ecore_Wl2_Window *window);
+
+/**
+ * Latch window state at the start of an update
+ *
+ * When async render takes place we continue to dispatch wayland
+ * events from the main loop. We need to defer any changes to
+ * window state from those events until the update is complete.
+ *
+ * Events deferred during an update will automatically fire
+ * immediately after the caller calls ecore_wl2_window_commit.
+ *
+ * @param window
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_update_begin(Ecore_Wl2_Window *window);
+
+EAPI void ecore_wl2_window_damage(Ecore_Wl2_Window *window, Eina_Rectangle *rects, unsigned int count);
+
+EAPI Eina_Bool ecore_wl2_buffer_init(Ecore_Wl2_Display *ewd, Ecore_Wl2_Buffer_Type types);
+EAPI Ecore_Wl2_Buffer *ecore_wl2_buffer_create(Ecore_Wl2_Display *ewd, int w, int h, Eina_Bool alpha);
+EAPI void ecore_wl2_buffer_destroy(Ecore_Wl2_Buffer *b);
+EAPI struct wl_buffer *ecore_wl2_buffer_wl_buffer_get(Ecore_Wl2_Display *ewd, Ecore_Wl2_Buffer *buf);
+EAPI void *ecore_wl2_buffer_map(Ecore_Wl2_Buffer *buf);
+EAPI void ecore_wl2_buffer_unmap(Ecore_Wl2_Buffer *buf);
+EAPI void ecore_wl2_buffer_discard(Ecore_Wl2_Buffer *buf);
+EAPI void ecore_wl2_buffer_unlock(Ecore_Wl2_Buffer *b);
+EAPI void ecore_wl2_buffer_destroy(Ecore_Wl2_Buffer *b);
+
+EAPI Ecore_Wl2_Surface *ecore_wl2_surface_create(Ecore_Wl2_Window *win, Eina_Bool alpha);
+EAPI void ecore_wl2_surface_destroy(Ecore_Wl2_Surface *surface);
+EAPI void ecore_wl2_surface_reconfigure(Ecore_Wl2_Surface *surface, int w, int h, uint32_t flags, Eina_Bool force);
+EAPI void *ecore_wl2_surface_data_get(Ecore_Wl2_Surface *surface, int *w, int *h);
+EAPI int ecore_wl2_surface_assign(Ecore_Wl2_Surface *surface);
+EAPI void ecore_wl2_surface_post(Ecore_Wl2_Surface *surface, Eina_Rectangle *rects, unsigned int count);
+EAPI void ecore_wl2_surface_flush(Ecore_Wl2_Surface *surface);
+EAPI void ecore_wl2_window_surface_flush(Ecore_Wl2_Window *window);
+
+// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
+EAPI void ecore_wl2_display_sync(Ecore_Wl2_Display *display);
+EAPI Ecore_Wl2_Display *ecore_wl2_connected_display_get(const char *name);
+EAPI Ecore_Wl2_Input *ecore_wl2_input_default_input_get(const Ecore_Wl2_Display *ewd);
+EAPI Eina_Bool ecore_wl2_window_keygrab_set(Ecore_Wl2_Window *win, const char *key, int mod EINA_UNUSED, int not_mod EINA_UNUSED, int priority EINA_UNUSED, Ecore_Wl2_Window_Keygrab_Mode grab_mode);
+EAPI Eina_Bool ecore_wl2_window_keygrab_unset(Ecore_Wl2_Window *win, const char *key, int mod EINA_UNUSED, int any_mod EINA_UNUSED);
+//
+EAPI Eina_List *ecore_wl2_window_keygrab_list_set(Ecore_Wl2_Window *win, Eina_List *infos);
+EAPI Eina_List *ecore_wl2_window_keygrab_list_unset(Ecore_Wl2_Window *win, Eina_List *infos);
+
+// TIZEN_ONLY(20171107): add ecore_wl2_window_input_get() EAPI
+EAPI Ecore_Wl2_Input *ecore_wl2_window_input_get(Ecore_Wl2_Window *win);
+//
+// TIZEN_ONLY(20171114): support a pointer warp
+EAPI Eina_Bool ecore_wl2_window_pointer_warp(Ecore_Wl2_Window *win, int x, int y);
+//
+
+//TIZEN_ONLY(20171108): add a new API to ecore_wl2_sync
+EAPI void ecore_wl2_sync(void);
+//
+
+//TIZEN_ONLY(20171115): support output transform
+EAPI Eina_Bool ecore_wl2_window_ignore_output_transform_get(Ecore_Wl2_Window *win);
+//
+
+# endif
+
+# undef EAPI
+# define EAPI
+
+# ifdef __cplusplus
+}
+# endif
+
+#endif
#ifndef BASE_EXTERNAL_DEVICE_EXTERNAL_INPUT_DEVICE_CONTROLLER_TIZEN_H_
#define BASE_EXTERNAL_DEVICE_EXTERNAL_INPUT_DEVICE_CONTROLLER_TIZEN_H_
-#include <Ecore_Input.h>
-#include <Ecore_Wayland.h>
+#include <Elementary.h>
#include "base/callback.h"
#include "base/memory/singleton.h"
void SetCallback(const OnKeyDown& callback) { callback_ = callback; };
- void GrabMediaKey(int player_id, Ecore_Wl_Window* evas);
- void UnGrabMediaKey(Ecore_Wl_Window* evas);
+ void GrabMediaKey(int player_id, Elm_Win* window);
+ void UnGrabMediaKey(Elm_Win* window);
private:
friend struct base::DefaultSingletonTraits<ExternalInputDeviceController>;
int player_id_;
OnKeyDown callback_;
Ecore_Event_Handler* handler_;
- Ecore_Wl_Window* wayland_window_;
+ Elm_Win* elm_window_;
};
} // namespace base
--- /dev/null
+
+#ifndef TIZEN_SRC_EWK_EFL_INTEGRATION_BASE_LOGGING_CACHE_H
+#define TIZEN_SRC_EWK_EFL_INTEGRATION_BASE_LOGGING_CACHE_H
+
+#if defined(OS_TIZEN_TV_PRODUCT)
+#ifndef LOG_TAG
+#define LOG_TAG "CHROMIUM_CACHE"
+#endif
+#include <dlog/dlog.h>
+
+#define CACHE_LOGD(fmt, args...) LOGD(fmt, ##args)
+#define CACHE_LOGI(fmt, args...) LOGI(fmt, ##args)
+#define CACHE_LOGW(fmt, args...) LOGW(fmt, ##args)
+#define CACHE_LOGE(fmt, args...) LOGE(fmt, ##args)
+#define CACHE_LOGE_IF(cond, fmt, args...) LOGE_IF(cond, fmt, ##args)
+
+#else
+
+#define CACHE_LOGD(fmt, args...)
+#define CACHE_LOGI(fmt, args...)
+#define CACHE_LOGW(fmt, args...)
+#define CACHE_LOGE(fmt, args...)
+#define CACHE_LOGE_IF(cond, fmt, args...)
+
+#endif
+#endif // TIZEN_SRC_EWK_EFL_INTEGRATION_BASE_LOGGING_NETWOKR_H
--- /dev/null
+/*
+ * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2014, 2017 Samsung Electronics. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * TODO: Update documentation accordingly to new changes
+ *
+ * The MemorySampler class samples a number of internal and external memory
+ * metrics every second while running. Sample data is written to a log file.
+ * Sampling occurs over a duration specified when started. If duration is set
+ * to 0 (default), the memory sampler will run indefinitely until the stop
+ * function is called. MemorySampler allows the option of sampling "in use"
+ * memory (committed memory minus free list byte count) or committed memory for
+ * any allocator which keeps a free list. This includes PartitionMalloc and the
+ * at this time.
+ * The following memory metrics are recorded:
+ *
+ * WebCore
+ * - PartitionMalloc allocations bytes (in use or committed)
+ * Task Info
+ * - Resident size memory (RSIZE)
+ */
+
+#ifndef BASE_MEMORY_SAMPLER_H_
+#define BASE_MEMORY_SAMPLER_H_
+
+#include <stdio.h>
+#include <string>
+#include <sys/types.h>
+
+#include "base/files/file_path.h"
+#include "base/memory/singleton.h"
+#include "base/timer/timer.h"
+
+namespace base {
+
+class WebMemorySampler {
+ public:
+ static WebMemorySampler* GetInstance();
+ void Start(const double interval = 0);
+ void Stop();
+
+ private:
+ WebMemorySampler();
+ ~WebMemorySampler();
+
+ void WriteHeaders();
+ void InitializeTimers(double);
+ std::string ProcessName() const;
+ void SampleTimerFired();
+ void StopTimerFired();
+
+ friend struct base::DefaultSingletonTraits<WebMemorySampler>;
+ std::string separator_;
+ bool is_running_;
+ double running_time_;
+ pid_t pid_;
+
+ FILE* sample_log_file_;
+ base::FilePath sample_log_file_path_;
+
+ base::RepeatingTimer sample_timer_;
+ base::OneShotTimer stop_timer_;
+ DISALLOW_COPY_AND_ASSIGN(WebMemorySampler);
+};
+
+} // namespace base
+
+#endif // BASE_MEMORY_SAMPLER_H_
private:
static void OnWakeup(void* data, void* buffer, unsigned int nbyte);
static Eina_Bool OnTimerFired(void* data);
-
+ static Eina_Bool OnEcoreEvent(void* data, int ev_type, void* ev);
// We may make recursive calls to Run, so we save state that needs to be
// separate between them in this structure type.
struct RunState;
// phase after delay.
Ecore_Timer* delayed_work_timer_;
+ Ecore_Event_Handler* ecore_event_handler_;
+
DISALLOW_COPY_AND_ASSIGN(MessagePumpEcore);
};
--- /dev/null
+// Copyright (c) 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_STATIC_MAP_H
+#define BASE_STATIC_MAP_H
+
+#include <type_traits>
+#include <unordered_map>
+
+// |StaticMap| is a map which resemebles std::unordered_map (ie. has no element
+// order) but can inline values for given keys for fast access. Because
+// everything is calculated at compile time this has a drawback of using only
+// types which match non-type template parameter for a key type.
+// This can be especially useful for enumeration types where you know you will
+// need to frequently access values for some predefined keys but need some sort
+// of fallback in other cases.
+//
+// Template of declaration of |StaticMap| should contain |KeyType| and
+// |ValueType| (duh) then a |StaticKeys| with template containing KeyType and
+// then values of keys storage you want to inline, then optionally a
+// |DynamicMapType| which will be used when key is not present in static part of
+// the map, this defaults to std::unordered_map. For |DynamicMapType| you can
+// also use |UseDefaultValue| which will return the same value (by const&) for
+// any key. Example declarations:
+//
+// StaticMap<SomeEnumT, size_t, StaticKeys<SomeEnumT, SomeEnumT::Important,
+// SomeEnumT::EquallyImportant>>
+// - this defines a map from SomeEnumT to size_t, with SomeEnumT::Important and
+// SomeEnumT::EquallyImportant inlined. Both map values are default initialized
+// and as a fallback std::unordered_map<SomeEnumT, size_t> is used.
+// StaticMap<OtherEnumT, Clazz*, StaticKeys<OtherEnumT, OtherEnumT::Quick>,
+// UseDefaultValue<Clazz*>>
+// - this map will map OtherEnumT to Clazz*, but only allows modification of
+// OtherEnumT::Quick key. Other return nullptr.
+//
+// You can access elements of the map by using operator[], which will behave
+// like normal operator[] when using std::unordered_map fallback; this means no
+// const version. To access inlined elements in const context you can use
+// get<key>(), which will check if key is indeed stored inlined.
+// The fun thing is, with |UseDefaultValue| you get const version of operator[]
+// so you can use it anywhere.
+// To check whether element is present use count().
+//
+// TODO: iterators and other map interfaces.
+
+namespace base {
+
+// Scroll down for |StaticMap| implementation here are utilities
+
+// |DoesTemplateContain| is a type trait (i.e. it defines static boolean member
+// |value|), checking, if the first value template argument is also among the
+// rest of the template parameter pack. This is used as a helper in
+// |IsTemplateSet| type trait to guarantee the static map keys are unique.
+template <class T, T... Tail>
+struct DoesTemplateContain;
+
+template <class T, T Value>
+struct DoesTemplateContain<T, Value> : std::false_type {};
+
+template <class T, T Value, T Head>
+struct DoesTemplateContain<T, Value, Head>
+ : std::integral_constant<bool, Value == Head> {};
+
+template <class T, T Value, T Head, T... Tail>
+struct DoesTemplateContain<T, Value, Head, Tail...>
+ : std::integral_constant<
+ bool,
+ DoesTemplateContain<T, Value, Head>::value ||
+ DoesTemplateContain<T, Value, Tail...>::value> {};
+
+static_assert(!DoesTemplateContain<int, 1>::value, "Test failed");
+static_assert(DoesTemplateContain<int, 1, 1>::value, "Test failed");
+static_assert(!DoesTemplateContain<int, 2, 1>::value, "Test failed");
+static_assert(DoesTemplateContain<int, 1, 1, 1, 1, 1, 1>::value, "Test failed");
+static_assert(DoesTemplateContain<int, 1, 2, 2, 2, 2, 1>::value, "Test failed");
+
+// |IsTemplateSet| is a type trait checking, if the value parameter pack set
+// consists of unique values, that is, it can be used as a set of unique keys in
+// static map. As such, it is used in |StaticKeys| class.
+template <class T, T... Tail>
+struct IsTemplateSet;
+
+template <class T>
+struct IsTemplateSet<T> : std::true_type {};
+
+template <class T, T Head, T... Tail>
+struct IsTemplateSet<T, Head, Tail...>
+ : std::integral_constant<bool,
+ !DoesTemplateContain<T, Head, Tail...>::value &&
+ IsTemplateSet<T, Tail...>::value> {};
+
+static_assert(IsTemplateSet<int>::value, "Test failed");
+static_assert(IsTemplateSet<int, 2>::value, "Test failed");
+static_assert(IsTemplateSet<int, 2, 1>::value, "Test failed");
+static_assert(!IsTemplateSet<int, 1, 1>::value, "Test failed");
+static_assert(!IsTemplateSet<int, 1, 1, 1, 1, 1, 1>::value, "Test failed");
+static_assert(IsTemplateSet<int, 1, 2, 3, 4, 5, 6>::value, "Test failed");
+static_assert(!IsTemplateSet<int, 1, 2, 3, 4, 5, 1>::value, "Test failed");
+
+// Here is |StaticMap| implementation
+
+// |StaticKeys| are used for defining key values which storage should be
+// inlined. |StaticKeys| checks whether provided keys are not duplicated.
+template <class T, T... Values>
+struct StaticKeys {
+ static_assert(IsTemplateSet<T, Values...>::value, "Keys are duplicated!");
+ using KeyType = T;
+};
+
+template <class T>
+struct StaticKeys<T> {
+ // TODO: Make this fail, why use static map without static values...
+ // Right now it will fail in DynamicMap specialization.
+ // static_assert(!std::is_same<T,T>::value, "Static keys are empty");
+};
+
+template <class T>
+struct UseDefaultValue {
+ constexpr UseDefaultValue() : value() {}
+
+ template <class... Args>
+ explicit UseDefaultValue(Args&&... args)
+ : value(std::forward<Args>(args)...) {}
+
+ template <class KeyType>
+ const T& operator[](KeyType) const {
+ return value;
+ }
+
+ private:
+ const T value;
+};
+
+template <class K, class V>
+using DefaultDynamicMap = std::unordered_map<K, V>;
+
+// This is only to fail if StaticKeys were not used
+template <class KeyType,
+ class ValueType,
+ class StaticKeysT,
+ class DynamicMapType = DefaultDynamicMap<KeyType, ValueType>,
+ KeyType... keys>
+class StaticMap {
+ static_assert(std::is_same<StaticKeysT, StaticKeys<KeyType, keys...>>::value,
+ "You didn't use StaticKeys to pass compile time keys or the "
+ "type of it's values does not match KeyType");
+};
+
+// |DynamicMapType| version which uses this type for a fallback in case when key
+// is not inlined
+template <class KeyType, class ValueType, class DynamicMapType>
+class StaticMap<KeyType, ValueType, StaticKeys<KeyType>, DynamicMapType> {
+ public:
+ constexpr StaticMap() = default;
+ StaticMap(const StaticMap&) = default;
+ StaticMap(StaticMap&&) = default;
+ ~StaticMap() = default;
+
+ StaticMap& operator=(const StaticMap&) = default;
+ StaticMap& operator=(StaticMap&&) = default;
+
+ template <class... Args>
+ explicit StaticMap(Args&&... rest) : map_(std::forward<Args>(rest)...) {}
+
+ // This will should always fail, because DynamicMap won't provide keys at
+ // compile time
+ template <KeyType V>
+ ValueType& get() {
+ static_assert(!std::is_same<KeyType, decltype(V)>::value,
+ "There is no such compile time Key!");
+ }
+
+ template <KeyType V>
+ constexpr const ValueType& get() const {
+ static_assert(!std::is_same<KeyType, decltype(V)>::value,
+ "There is no such compile time Key!");
+ }
+
+ // Below functions will only exist if map_ defines matching operator[]
+ // This ugly monster is used to disable it for const DynamicMapType when this
+ // is not const
+ template <class U = DynamicMapType>
+ auto operator[](KeyType key) -> typename std::enable_if<
+ std::is_same<decltype(std::declval<U>()[key]), ValueType&>::value,
+ ValueType&>::type {
+ return map_[key];
+ }
+
+ template <class U = DynamicMapType>
+ auto operator[](KeyType key) const -> decltype(std::declval<const U>()[key]) {
+ static_assert(std::is_same<decltype(std::declval<const U>()[key]),
+ const ValueType&>::value,
+ "DynamicMapType::operator[] must return ValueType& or const "
+ "ValueType&");
+ return map_[key];
+ }
+
+ private:
+ DynamicMapType map_;
+};
+
+// Contains storage for given inlined key value and otherwise delegates to map_,
+// which could be again this or |DynamicMapType| version.
+template <class KeyType,
+ class ValueType,
+ class DynamicMapType,
+ KeyType key_value_,
+ KeyType... rest_of_keys_>
+class StaticMap<KeyType,
+ ValueType,
+ StaticKeys<KeyType, key_value_, rest_of_keys_...>,
+ DynamicMapType> {
+ // Make sure keys set is ok
+ static const StaticKeys<KeyType, key_value_, rest_of_keys_...> static_keys;
+
+ using InnerMapType = StaticMap<KeyType,
+ ValueType,
+ StaticKeys<KeyType, rest_of_keys_...>,
+ DynamicMapType>;
+
+ public:
+ using size_type = size_t;
+
+ constexpr StaticMap() : value_() {}
+ StaticMap(const StaticMap&) = default;
+ StaticMap(StaticMap&&) = default;
+ ~StaticMap() = default;
+
+ StaticMap& operator=(const StaticMap&) = default;
+ StaticMap& operator=(StaticMap&&) = default;
+
+ template <class T, class... Args>
+ explicit StaticMap(T&& arg, Args&&... rest)
+ : value_(std::forward<T>(arg)), map_(std::forward<Args>(rest)...) {}
+
+ // Compile time conditional on key value
+ template <KeyType V>
+ auto get() -> typename std::enable_if<V == key_value_, ValueType&>::type {
+ return value_;
+ }
+
+ template <KeyType V>
+ auto get() -> typename std::enable_if<V != key_value_, ValueType&>::type {
+ return map_.get<V>();
+ }
+
+ template <KeyType V>
+ constexpr auto get() const ->
+ typename std::enable_if<V == key_value_, const ValueType&>::type {
+ return value_;
+ }
+
+ template <KeyType V>
+ constexpr auto get() const ->
+ typename std::enable_if<V != key_value_, const ValueType&>::type {
+ return map_.get<V>();
+ }
+
+ // Below functions will only exist if map_ defines matching operator[]
+ template <class U = InnerMapType>
+ auto operator[](KeyType key) -> decltype(std::declval<U>()[key]) {
+ if (key == key_value_)
+ return value_;
+ return map_[key];
+ }
+
+ template <class U = InnerMapType>
+ auto operator[](KeyType key) const -> decltype(std::declval<const U>()[key]) {
+ if (key == key_value_)
+ return value_;
+ return map_[key];
+ }
+
+ // This is to mimic std::unordered_map and std::map interfaces
+ size_type count(KeyType key) const {
+ return key == key_value_ ? 1 : map_.count();
+ }
+
+ private:
+ ValueType value_;
+ InnerMapType map_;
+};
+
+} // namespace base
+
+#endif // BASE_STATIC_MAP_H
--- /dev/null
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_SYSTEM_BRIGHTNESS_SYSTEM_SETTINGS_TIZEN_H_
+#define BASE_SYSTEM_BRIGHTNESS_SYSTEM_SETTINGS_TIZEN_H_
+#include <device/callback.h>
+#include <device/display.h>
+
+#include "base/callback.h"
+#include "base/memory/singleton.h"
+
+namespace base {
+
+class SystemSettingsBrightnessTizen {
+ public:
+ static SystemSettingsBrightnessTizen* GetInstance();
+
+ int GetBrightness();
+ void SetBrightness(int brightness);
+
+ private:
+ friend struct base::DefaultSingletonTraits<SystemSettingsBrightnessTizen>;
+
+ SystemSettingsBrightnessTizen() { }
+ ~SystemSettingsBrightnessTizen() { }
+
+ DISALLOW_COPY_AND_ASSIGN(SystemSettingsBrightnessTizen);
+};
+
+}
+#endif
--- /dev/null
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_SYSTEM_VOLUME_SYSTEM_VOLUME_CONTROL_TIZEN_H_
+#define BASE_SYSTEM_VOLUME_SYSTEM_VOLUME_CONTROL_TIZEN_H_
+
+#include <Ecore.h>
+#include <media/sound_manager.h>
+
+#include "base/callback.h"
+#include "base/memory/singleton.h"
+#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_task_runner_handle.h"
+
+namespace base {
+
+enum VolumeKeyType { VOLUME_KEY_UP, VOLUME_KEY_DOWN, VOLUME_KEY_MUTE };
+
+// Volume change callback
+typedef base::Callback<void(int, double, bool)> VolumeChangedCallback;
+
+class SystemVolumeControlTizen {
+ public:
+ static SystemVolumeControlTizen* GetInstance();
+
+ void SetVolumeChangedCallback(const VolumeChangedCallback& cb, int player_id);
+ void ResetVolumeChangedCallback();
+ void HandleEvent(VolumeKeyType type, bool released);
+ void SetSystemVolume(double volume);
+ bool GrabSystemVolumeKeys();
+ void EndGrabSystemVolumeKeys();
+ bool isVolumeKeyGrabbed() { return isWindowKeygrabbed_; }
+ void* getWindowHandle() { return web_win_; }
+ void setWindowHandle(void* window) { web_win_ = window; }
+
+ private:
+ friend struct base::DefaultSingletonTraits<SystemVolumeControlTizen>;
+
+ static void onVolumeChanged(sound_type_e, unsigned int, void*);
+ void VolumeChanged(int volume, bool init);
+ void UpdateVolume(VolumeKeyType type, bool released);
+ int GetSystemVolume();
+ static Eina_Bool VolumeKeyPressedTimerCb(void* data);
+ void Release();
+
+ SystemVolumeControlTizen();
+ ~SystemVolumeControlTizen();
+
+ VolumeChangedCallback volume_changed_cb_;
+ void* web_win_;
+ VolumeKeyType keyType_;
+ bool is_released_;
+ int max_volume_;
+ Ecore_Timer* VolumeKeyPressTimer_;
+ bool isWindowKeygrabbed_;
+ int player_id_;
+ const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+
+ // NOTE: Weak pointers must be invalidated before all other member variables.
+ base::WeakPtrFactory<SystemVolumeControlTizen> weak_factory_;
+
+ DISALLOW_COPY_AND_ASSIGN(SystemVolumeControlTizen);
+};
+
+} // namespace base
+
+#endif // BASE_SYSTEM_VOLUME_SYSTEM_VOLUME_CONTROL_TIZEN_H_
BrowserAccessibility* GetChildAtPoint(const gfx::Point& point) const;
void RecalculateHighlightable(bool recalculate_ancestors);
bool IsChecked() const;
- bool IsCheckbox() const;
+ bool IsCheckable() const;
bool IsColorWell() const;
gchar* GetObjectText() const;
bool IsStaticText() const;
bool IsTextObjectType() const;
void SetInterfaceFromObject(GType, int);
void SetInterfaceMaskFromObject(int&);
+#if defined(TIZEN_ATK_FEATURE_VD)
+ std::string GetSupplementaryText() const;
+ std::string GetSubTreeSpeechContent() const;
+ std::string GetSpeechContent();
+ bool HasSpeechContent();
+#endif
private:
bool IsSection() const;
bool HasText() const;
bool MoreThanOneKnownChild() const;
bool IsDocument() const;
+#if defined(TIZEN_ATK_FEATURE_VD)
+ bool HasOnlyTextChildren() const;
+ bool HasOnlyTextAndImageChildren() const;
+ std::string GetChildrenText() const;
+#endif
bool highlightable_;
};
void InvalidateHighlighted(bool focus_root);
private:
+#if defined(TIZEN_ATK_FEATURE_VD)
+ void NotifyLiveRegionChanged(BrowserAccessibilityEfl* obj);
+#endif
friend class BrowserAccessibilityManager;
BrowserAccessibilityAuraLinux* highlighted_obj_;
#include "base/compiler_specific.h"
#include "cc/output/context_provider.h"
#include "content/common/content_export.h"
+#include "gpu/skia_bindings/grcontext_for_gles2_interface.h"
namespace content {
gpu::Capabilities capabilities_;
::gpu::gles2::GLES2ImplementationEfl evasgl_implementation_;
+ std::unique_ptr<skia_bindings::GrContextForGLES2Interface> gr_context_;
std::unique_ptr<cc::ContextCacheController> cache_controller_;
DISALLOW_COPY_AND_ASSIGN(EvasGLContextProvider);
namespace content {
class EvasGLContextProvider;
-class EvasGLOutputSurfaceClient;
class CONTENT_EXPORT EvasGLDelegatedFrameHostClient {
public:
#endif
private:
+ using ResourceIdSet = cc::ResourceProvider::ResourceIdSet;
+
void UnrefResources(const cc::ReturnedResourceArray& resources,
cc::BlockingTaskRunner* /* main_thread_task_runner */);
bool ShouldTransformRootRenderPass(int rotation);
void TransformRootRenderPass(cc::RenderPass* root_render_pass,
const gfx::Rect& bounds,
int rotation);
- void ClearRenderPasses();
+ void ClearRenderPasses(
+ const ResourceIdSet& resources_in_frame = ResourceIdSet());
void ClearChildId();
EvasGLDelegatedFrameHostClient* client_;
// TODO(prashant.n): Decouple context provider and surface from this class.
scoped_refptr<EvasGLContextProvider> context_provider_;
- std::unique_ptr<EvasGLOutputSurfaceClient> output_surface_client_;
std::unique_ptr<cc::OutputSurface> output_surface_;
cc::RendererSettings settings_;
std::unique_ptr<cc::ResourceProvider> resource_provider_;
#endif
cc::RenderPassList render_pass_list_;
- cc::ResourceProvider::ResourceIdSet resources_in_frame_;
cc::ReturnedResourceArray returned_resources_;
std::unique_ptr<cc::DirectRenderer> renderer_;
SkColor background_color_ = SK_ColorTRANSPARENT;
+++ /dev/null
-// Copyright 2015 Samsung Electronics. 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_BROWSER_COMPOSITOR_EVASGL_OUTPUT_SURFACE_CLIENT_H_
-#define CONTENT_BROWSER_COMPOSITOR_EVASGL_OUTPUT_SURFACE_CLIENT_H_
-
-#include "cc/output/managed_memory_policy.h"
-#include "cc/output/output_surface_client.h"
-
-namespace content {
-
-class EvasGLOutputSurfaceClient : public cc::OutputSurfaceClient {
- public:
- EvasGLOutputSurfaceClient() {}
-
- void SetNeedsRedrawRect(const gfx::Rect& damage_rect) override {}
- void DidReceiveSwapBuffersAck() override {}
- void DidReceiveTextureInUseResponses(
- const gpu::TextureInUseResponses& responses) override {}
-};
-
-} // namespace content
-
-#endif // CONTENT_BROWSER_COMPOSITOR_EVASGL_OUTPUT_SURFACE_CLIENT_H_
#include "content/public/browser/browser_message_filter.h"
#include "media/base/tizen/demuxer_efl.h"
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "media/base/ranges.h"
+#endif
+
namespace content {
// Represents the browser process half of an IPC-based demuxer proxy.
#if defined(OS_TIZEN_TV_PRODUCT)
void OnDemuxerStateChanged(int demuxer_client_id,
const media::DemuxerConfigs& configs);
+ void OnDemuxerBufferedChanged(int demuxer_client_id,
+ const media::Ranges<base::TimeDelta>& ranges);
#endif
void OnReadFromDemuxerAck(int demuxer_client_id,
base::SharedMemoryHandle foreign_memory_handle,
#if defined(OS_TIZEN_TV_PRODUCT)
#if defined(TIZEN_TBM_SUPPORT)
void OnNotifyVideoTexturing(int player_id);
+ void OnControlMediaPacket(int player_id, int mode);
#endif
void OnAddAudioTrack(int player_id,
const std::string& kind,
const std::string& label,
const std::string& language,
const std::string& id) override;
+ void OnSetActiveTextTrack(int player_id, int id, bool is_in_band);
+ void OnNotifySubtitlePlay(int player_id,
+ int id,
+ const std::string& url,
+ const std::string& lang);
+ void NotifyPlayTrack(int player_id, int id);
void OnSeekableTimeChange(int player_id,
base::TimeDelta min_time,
base::TimeDelta max_time) override;
void OnSetVolume(RenderFrameHost* render_frame_host,
int player_id,
double volume);
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ void OnSystemVolumeChanged(int player_id, double volume, bool init);
+#endif
+
void OnSetRate(
RenderFrameHost* render_frame_host, int player_id, double rate);
void OnInitialize(RenderFrameHost* render_frame_host,
void OnActivate(RenderFrameHost* render_frame_host, int player_id);
void OnDeactivate(RenderFrameHost* render_frame_host, int player_id);
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
void OnLaunchSystemVolumeController(RenderFrameHost* render_frame_host,
int player_id);
#endif
#if defined(TIZEN_VIDEO_HOLE)
- gfx::Rect GetViewportRect() const override;
+ virtual gfx::Rect GetViewportRect(int player_id) const;
void OnSetGeometry(int player_id, const gfx::RectF& rect);
void OnWebViewMoved();
#endif
-
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void OnCheckHLS(const std::string& url, bool* support);
+#endif
#if defined(OS_TIZEN_TV_PRODUCT)
void OnInbandEventTextTrack(int player_id, const std::string& info) override;
void OnInbandEventTextCue(int player_id,
// Notify the playing video dimension for floating Video feature
void NotifyPlayingVideoRect(int player_id, const gfx::RectF& rect);
+ void OnRegisterTimeline(int player_id,
+ const std::string& timeline_selector,
+ bool* ret);
+ void OnUnRegisterTimeline(int player_id,
+ const std::string& timeline_selector,
+ bool* ret);
+ void OnGetTimelinePositions(int player_id,
+ const std::string& timeline_selector,
+ uint32_t* units_per_tick,
+ uint32_t* units_per_second,
+ int64_t* content_time,
+ bool* paused);
+ void OnGetSpeed(int player_id, double* speed);
+ void OnGetMrsUrl(int player_id, std::string* url);
+ void OnGetContentId(int player_id, std::string* id);
+ void OnSyncTimeline(int player_id,
+ const std::string& timeline_selector,
+ int64_t timeline_pos,
+ int64_t wallclock_pos,
+ int tolerance,
+ bool* ret);
+ void OnSetWallClock(int player_id,
+ const std::string& wallclock_url,
+ bool* ret);
+ void OnRegisterTimelineCbInfo(
+ int player_id,
+ const blink::WebMediaPlayer::register_timeline_cb_info_s& info) override;
+ void OnSyncTimelineCbInfo(int player_id,
+ const std::string& timeline_selector,
+ int sync) override;
+ void OnMrsUrlChange(int player_id, const std::string& url) override;
+ void OnContentIdChange(int player_id, const std::string& id) override;
+ void OnElementRemove(int player_id);
#endif
void CleanUpBelongToRenderFrameHost(RenderFrameHost* render_frame_host);
void OnPlayerSuspendRequest(int player_id) override;
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void OnPlayerResourceConflict(int player_id) override;
+#endif
+
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
void OnSystemVolumeChange(int player_id, int volume) override;
#endif
double getAmplifiedVolume(double volume);
#endif
#if defined(TIZEN_EXTERNAL_MEDIA_EVENT)
- Ecore_Wl_Window* GetEvasObject(RenderFrameHost* render_frame_host);
+ Elm_Win* GetElmWindow(RenderFrameHost* render_frame_host);
#endif
// An array of managed players.
media::MediaCapabilityManager<media::LongestConflictStrategy>
media_capability_manager_;
+#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
+ int media_packet_mode_;
+#endif
+
#if defined(TIZEN_EXTERNAL_MEDIA_EVENT)
base::ExternalInputDeviceController* external_event_controller_ = nullptr;
#endif
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CONTENT_BROWSER_MEDIA_TIZEN_BROWSER_MEDIA_CAPTURE_HANDLER_H_
-#define CONTENT_BROWSER_MEDIA_TIZEN_BROWSER_MEDIA_CAPTURE_HANDLER_H_
+#ifndef CONTENT_BROWSER_MEDIA_TIZEN_BROWSER_MEDIA_RECORDER_HANDLER_H_
+#define CONTENT_BROWSER_MEDIA_TIZEN_BROWSER_MEDIA_RECORDER_HANDLER_H_
#include "base/containers/scoped_ptr_hash_map.h"
#include "base/memory/singleton.h"
namespace content {
-class CONTENT_EXPORT BrowserMediaCaptureHandler {
+class CONTENT_EXPORT BrowserMediaRecorderHandler {
public:
- static BrowserMediaCaptureHandler* Create(RenderFrameHost* rfh);
- BrowserMediaCaptureHandler(RenderFrameHost* render_frame_host);
- ~BrowserMediaCaptureHandler();
+ static BrowserMediaRecorderHandler* Create(RenderFrameHost* rfh);
+ BrowserMediaRecorderHandler(RenderFrameHost* render_frame_host);
+ ~BrowserMediaRecorderHandler();
- bool StartCaptureThread(const tracked_objects::Location& location);
+ bool StartRecorderThread(const tracked_objects::Location& location);
void StartRecording(int handler_id, std::string recording_format);
void PauseRecording(int handler_id);
int GetRoutingID();
private:
- friend struct base::DefaultSingletonTraits<BrowserMediaCaptureHandler>;
-
- void OnTakePicture(int handler_id,
- gfx::Size image_size,
- std::string image_format,
- std::string image_name);
+ friend struct base::DefaultSingletonTraits<BrowserMediaRecorderHandler>;
void OnStartRecording(int handler_id, std::string recording_format);
-
void OnPauseRecording(int handler_id);
void OnResumeRecording(int handler_id);
void OnStopRecording(int handler_id);
- base::Thread capture_thread_;
+ base::Thread recorder_thread_;
RenderFrameHost* render_frame_host_;
std::map<int, std::unique_ptr<media::MediaRecorderTizen>> camera_handle_;
- base::WeakPtrFactory<BrowserMediaCaptureHandler> weak_factory_;
+ base::WeakPtrFactory<BrowserMediaRecorderHandler> weak_factory_;
- DISALLOW_COPY_AND_ASSIGN(BrowserMediaCaptureHandler);
+ DISALLOW_COPY_AND_ASSIGN(BrowserMediaRecorderHandler);
};
} // namespace content
-#endif // CONTENT_BROWSER_MEDIA_TIZEN_BROWSER_MEDIA_CAPTURE_HANDLER_H_
+#endif // CONTENT_BROWSER_MEDIA_TIZEN_BROWSER_MEDIA_RECORDER_HANDLER_H_
class BrowserMediaPlayerManagerEfl;
#if defined(ENABLE_TIZEN_MEDIA_RECORDER)
-class BrowserMediaCaptureHandler;
+class BrowserMediaRecorderHandler;
typedef base::ScopedPtrHashMap<uintptr_t,
- std::unique_ptr<BrowserMediaCaptureHandler> >
- MediaCaptureManagerMap;
+ std::unique_ptr<BrowserMediaRecorderHandler> >
+ MediaRecorderManagerMap;
#endif
// This class manages all RenderFrame based media related managers at the
#if defined(ENABLE_TIZEN_MEDIA_RECORDER)
private:
- BrowserMediaCaptureHandler* GetMediaCaptureManager(
+ BrowserMediaRecorderHandler* GetMediaRecorderManager(
RenderFrameHost* render_frame_host);
// Map from RenderFrameHost* to BrowserMediaCaptureHandler.
- MediaCaptureManagerMap media_capture_managers_;
+ MediaRecorderManagerMap media_recorder_managers_;
#endif
DISALLOW_COPY_AND_ASSIGN(MediaWebContentsObserver);
#include "base/time/time.h"
#include "content/common/content_export.h"
+#include "ui/gfx/geometry/rect.h"
namespace content {
void ShowObject();
void HideObject();
- void UpdatePosition(int top_height, int bottom_height);
+ void UpdateRect(int top_control_height, int bottom_control_height);
private:
const std::string GetSourceString(const Direction direction);
- void UpdatePosition();
+ void UpdateRectImmediately();
bool IsVisible();
Evas_Object* parent_view_;
bool enabled_;
bool visible_[DIRECTION_SIZE] = { false };
- int position_y_;
- int height_;
+ gfx::Rect rect_;
base::Time hide_timestamp_;
-
};
} // namespace content
#define EVENT_RESAMPLER
#include <Ecore.h>
+#include <Evas.h>
#include <queue>
#include "ui/gfx/geometry/point_f.h"
explicit EventResampler(EventResamplerClient* client);
~EventResampler();
- bool HandleTouchMoveEvent(ui::TouchEvent event);
+ bool HandleTouchEvent(ui::TouchEvent event);
bool HandleGestureEvent(blink::WebGestureEvent& event);
bool HasActiveAnimator();
+#if defined(OS_TIZEN)
+ void HandleTouchForValidScrollCheck(Evas_Touch_Point_State state);
+ void CountValidScroll(const blink::WebGestureEvent& event);
+#endif
private:
static Eina_Bool VsyncAnimatorCallback(void* data);
EventResamplerClient* client_;
Ecore_Animator* vsync_animator_;
- bool has_pending_touch_move_event_[MAX_TOUCH_COUNT];
+ bool has_pending_touch_move_event_[MAX_TOUCH_COUNT] = { false };
bool has_pending_scroll_event_;
bool has_pending_pinch_event_;
// To process without delay if event isn't processed in last callback.
+ bool is_touchmove_processed_in_last_callback_;
bool is_scroll_processed_in_last_callback_;
bool is_pinch_processed_in_last_callback_;
+ bool is_update_started_;
+
std::queue<ui::TouchEvent> touch_move_event_queue_[MAX_TOUCH_COUNT];
blink::WebGestureEvent last_scroll_update_event_;
blink::WebGestureEvent last_pinch_update_event_;
gfx::PointF pending_scroll_delta_;
+ gfx::Point last_scroll_delta_;
float pending_pinch_scale_;
+
+#if defined(OS_TIZEN)
+ unsigned valid_scroll_x_count_;
+ unsigned valid_scroll_y_count_;
+ bool prevent_scroll_x_;
+ bool prevent_scroll_y_;
+#endif
};
} // namespace
Ecore_IMF_Context* context,
void* eventInfo);
#endif
+ void SetComposition(const char* buffer);
// callback handlers
void OnCommit(void* event_info);
void OnPreeditChanged(void* data,
// Whether or not is in form tag.
bool is_in_form_tag_;
+ // IME panel is showing or not.
+ bool is_showing_;
+
// The current soft keyboard mode and layout
ui::TextInputMode current_mode_;
ui::TextInputType current_type_;
#define CONTENT_BROWSER_RENDERER_HOST_PEPPER_MEDIA_PLAYER_PEPPER_ELEMENTARY_STREAM_HOST_H_
#include <vector>
+
+#include "base/memory/shared_memory.h"
#include "base/memory/weak_ptr.h"
#include "content/browser/renderer_host/pepper/media_player/elementary_stream_listener_private.h"
+#include "ppapi/c/samsung/pp_media_player_samsung.h"
#include "ppapi/host/resource_host.h"
-#include "ppapi/shared_impl/media_player/serialized_es_packet.h"
namespace content {
class PepperElementaryStreamHost
: public ppapi::host::ResourceHost,
- public ElementaryStreamListenerPrivate,
- public base::SupportsWeakPtr<PepperElementaryStreamHost> {
+ public ElementaryStreamListenerPrivate {
public:
PepperElementaryStreamHost(BrowserPpapiHost*, PP_Instance, PP_Resource);
virtual ~PepperElementaryStreamHost();
void OnEnoughData() override;
void OnSeekData(PP_TimeTicks new_position) override;
+ void OnSHMCreated(ppapi::host::ReplyMessageContext reply_context,
+ uint32_t shm_id,
+ uint32_t shm_size,
+ std::unique_ptr<base::SharedMemory> shm);
+
protected:
int32_t OnResourceMessageReceived(const IPC::Message&,
ppapi::host::HostMessageContext*) override;
+ base::WeakPtr<ElementaryStreamListenerPrivate> ListenerAsWeakPtr();
+
virtual PepperElementaryStreamPrivate* ElementaryStreamPrivate() = 0;
private:
- int32_t OnAppendPacket(ppapi::host::HostMessageContext*,
- const ppapi::SerializedESPacket&);
+ int32_t ValidateShmBuffer(uint32_t shm_id, uint32_t shm_size);
+ int32_t OnGetShm(ppapi::host::HostMessageContext* context,
+ uint32_t shm_id,
+ uint32_t shm_size);
+ int32_t OnAppendPacket(ppapi::host::HostMessageContext*, const PP_ESPacket&);
+ int32_t OnAppendPacketSHM(ppapi::host::HostMessageContext*,
+ const PP_ESPacket&,
+ uint32_t shm_id,
+ uint32_t size);
int32_t OnAppendEncryptedPacket(ppapi::host::HostMessageContext*,
- const ppapi::SerializedEncryptedESPacket&);
+ const PP_ESPacket&,
+ const PP_ESPacketEncryptionInfo&);
+ int32_t OnAppendEncryptedPacketSHM(ppapi::host::HostMessageContext*,
+ const PP_ESPacket&,
+ const PP_ESPacketEncryptionInfo&,
+ uint32_t shm_id,
+ uint32_t size);
int32_t OnAppendTrustZonePacket(ppapi::host::HostMessageContext* context,
- const ppapi::SerializedESPacket& packet,
+ const PP_ESPacket& packet,
const PP_TrustZoneReference& handle);
int32_t OnFlush(ppapi::host::HostMessageContext*);
int32_t OnSetDRMInitData(ppapi::host::HostMessageContext*,
const std::vector<uint8_t>& type,
const std::vector<uint8_t>& init_data);
+ void OnPacketAppended(ppapi::host::ReplyMessageContext context,
+ uint32_t shm_id,
+ int32_t result);
+
+ void OnEncryptedPacketAppended(ppapi::host::ReplyMessageContext context,
+ uint32_t shm_id,
+ int32_t result);
+
+ base::WeakPtrFactory<PepperElementaryStreamHost> weak_ptr_factory_;
+
+ // A vector holding our shm buffers, in sync with a similar vector in the
+ // resource. We use a buffer's index in these vectors as its id on both sides
+ // of the proxy. Only add buffers or update them in place so as not to
+ // invalidate these ids.
+ std::vector<std::unique_ptr<base::SharedMemory>> shm_buffers_;
+ // A vector of true/false indicating if a shm buffer is in use by the decoder.
+ // This is parallel to |shm_buffers_|.
+ std::vector<uint8_t> shm_buffer_busy_;
+
+ // Non-owning pointer
+ BrowserPpapiHost* host_;
+
DISALLOW_COPY_AND_ASSIGN(PepperElementaryStreamHost);
};
#include <memory>
#include "base/memory/ref_counted.h"
+#include "base/memory/weak_ptr.h"
#include "base/callback.h"
#include "ppapi/shared_impl/media_player/es_packet.h"
virtual void SetDRMInitData(const std::vector<uint8_t>& type,
const std::vector<uint8_t>& initData,
const base::Callback<void(int32_t)>&) = 0;
- virtual void SetListener(ElementaryStreamListenerPrivate* listener) = 0;
+ virtual void SetListener(
+ base::WeakPtr<ElementaryStreamListenerPrivate> listener) = 0;
virtual void RemoveListener(ElementaryStreamListenerPrivate* listener) = 0;
protected:
const std::string& encoding);
int32_t OnSetSubtitlesDelay(ppapi::host::HostMessageContext*, PP_TimeDelta);
int32_t OnSetDisplayRect(ppapi::host::HostMessageContext*, const PP_Rect&);
+ int32_t OnSetDisplayMode(ppapi::host::HostMessageContext*,
+ PP_MediaPlayerDisplayMode);
+ int32_t OnSetVr360Mode(ppapi::host::HostMessageContext*,
+ PP_MediaPlayerVr360Mode);
+ int32_t OnSetVr360Rotation(ppapi::host::HostMessageContext*, float, float);
+ int32_t OnSetVr360ZoomLevel(ppapi::host::HostMessageContext*, uint32_t);
int32_t OnSetDRMSpecificData(ppapi::host::HostMessageContext*,
PP_MediaPlayerDRMType,
PP_MediaPlayerDRMOperation,
const PP_Rect& display_rect,
const PP_FloatRect& crop_ratio_rect,
const base::Callback<void(int32_t)>& callback) = 0;
-
+ virtual void SetDisplayMode(
+ PP_MediaPlayerDisplayMode display_mode,
+ const base::Callback<void(int32_t)>& callback) = 0;
+ virtual void SetVr360Mode(PP_MediaPlayerVr360Mode vr360_mode,
+ const base::Callback<void(int32_t)>& callback) = 0;
+ virtual void SetVr360Rotation(
+ float,
+ float,
+ const base::Callback<void(int32_t)>& callback) = 0;
+ virtual void SetVr360ZoomLevel(
+ uint32_t,
+ const base::Callback<void(int32_t)>& callback) = 0;
virtual void SetDRMSpecificData(
PP_MediaPlayerDRMType,
PP_MediaPlayerDRMOperation,
#include "base/single_thread_task_runner.h"
#include "base/synchronization/lock.h"
#include "content/browser/renderer_host/pepper/media_player/elementary_stream_listener_private.h"
+#include "content/public/browser/browser_thread.h"
#include "ppapi/c/pp_time.h"
namespace tracked_objects {
public:
ElementaryStreamListenerPrivateWrapper();
- void SetListener(ElementaryStreamListenerPrivate* listener);
+ void SetListener(base::WeakPtr<ElementaryStreamListenerPrivate> listener);
void RemoveListener(ElementaryStreamListenerPrivate* listener);
// Called on player deletion and clean-up
// Below 3 functions are called on player thread
// and deals with values passed by Platform Player API
+ // NOLINTNEXTLINE(runtime/int)
void OnNeedData(unsigned bytes_max);
void OnEnoughData();
void OnSeekData(PP_TimeTicks offset);
const Method& method,
const Args&... args);
- // NOLINTNEXTLINE(runtime/int)
- void NeedData(unsigned bytes_max);
-
- void EnoughData();
-
- void SeekData(PP_TimeTicks offset);
-
- ElementaryStreamListenerPrivate* listener_;
- base::WeakPtrFactory<ElementaryStreamListenerPrivateWrapper>
- weak_ptr_factory_;
- base::WeakPtr<ElementaryStreamListenerPrivateWrapper> weak_ptr_;
- base::Lock weak_ptr_lock_;
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
+ base::WeakPtr<ElementaryStreamListenerPrivate> listener_;
+ base::Lock listener_lock_;
DISALLOW_COPY_AND_ASSIGN(ElementaryStreamListenerPrivateWrapper);
};
const tracked_objects::Location& from_here,
const Method& method,
const Args&... args) {
- base::AutoLock guard(weak_ptr_lock_);
- io_task_runner_->PostTask(from_here, base::Bind(method, weak_ptr_, args...));
+ base::AutoLock guard(listener_lock_);
+ BrowserThread::PostTask(BrowserThread::IO, from_here,
+ base::Bind(method, listener_, args...));
}
} // namespace content
// Called on player thread
int32_t SourceAttached(PepperPlayerAdapterInterface* player);
- // Called on main thread
+ // Called on IO thread
void SourceDetached(PepperPlayerAdapterInterface* player);
// Called on player thread
int32_t SetEndOfStream();
int32_t InitializeDoneOnPlayerThread(PepperPlayerAdapterInterface* player);
- void SetListener(ElementaryStreamListenerPrivate* listener) override;
+ void SetListener(
+ base::WeakPtr<ElementaryStreamListenerPrivate> listener) override;
void RemoveListener(ElementaryStreamListenerPrivate* listener) override;
// non-owning pointer
PepperESDataSourcePrivate* owner_;
- // non-owning pointer
- ElementaryStreamListenerPrivate* listener_;
+ base::WeakPtr<ElementaryStreamListenerPrivate> listener_;
// Configuration cache, used to store configuration before an attach.
CodecConfig codec_config_;
template <typename ElementaryStreamT, typename StreamTraits>
int32_t PepperElementaryStreamPrivateTizen<ElementaryStreamT, StreamTraits>::
SourceAttached(PepperPlayerAdapterInterface* player) {
- DCHECK(dispatcher() != nullptr && dispatcher()->player() != nullptr);
+ DCHECK(player != nullptr);
int32_t pp_error = InitializeDoneOnPlayerThread(player);
if (pp_error != PP_OK)
return pp_error;
if (listener_)
- dispatcher()->player()->SetListener(StreamTraits::Type, listener_);
+ player->SetListener(StreamTraits::Type, listener_);
return PP_OK;
}
template <typename ElementaryStreamT, typename StreamTraits>
void PepperElementaryStreamPrivateTizen<ElementaryStreamT, StreamTraits>::
SourceDetached(PepperPlayerAdapterInterface* player) {
- DCHECK(dispatcher() != nullptr && dispatcher()->player() != nullptr);
+ DCHECK(player != nullptr);
if (listener_)
- dispatcher()->player()->RemoveListener(StreamTraits::Type, listener_);
+ player->RemoveListener(StreamTraits::Type, listener_.get());
}
template <typename ElementaryStreamT, typename StreamTraits>
template <typename ElementaryStreamT, typename StreamTraits>
void PepperElementaryStreamPrivateTizen<ElementaryStreamT, StreamTraits>::
- SetListener(ElementaryStreamListenerPrivate* listener) {
+ SetListener(base::WeakPtr<ElementaryStreamListenerPrivate> listener) {
if (dispatcher() && dispatcher()->player())
dispatcher()->player()->SetListener(StreamTraits::Type, listener);
int32_t SetDurationOnPlayerThread(PP_TimeDelta duration,
PepperPlayerAdapterInterface* player);
int32_t SetEndOfStreamOnPlayerThread(PepperPlayerAdapterInterface* player);
+ int32_t ConfigureDrmSessions();
+ void ClearDrmSessions();
void DetachListeners();
PlatformContext platform_context_;
void SetDisplayRect(const PP_Rect& display_rect,
const PP_FloatRect& crop_ratio_rect,
const base::Callback<void(int32_t)>& callback) override;
+ void SetDisplayMode(PP_MediaPlayerDisplayMode display_mode,
+ const base::Callback<void(int32_t)>& callback) override;
+ void SetVr360Mode(PP_MediaPlayerVr360Mode vr360_mode,
+ const base::Callback<void(int32_t)>& callback) override;
+ void SetVr360Rotation(float horizontal_angle,
+ float vertical_angle,
+ const base::Callback<void(int32_t)>& callback) override;
+ void SetVr360ZoomLevel(
+ uint32_t,
+ const base::Callback<void(int32_t)>& callback) override;
void SetDRMSpecificData(
PP_MediaPlayerDRMType,
PepperPlayerAdapterInterface*,
PP_TextTrackInfo*);
- void SetSubtitleEncodingOnPlayerThread(PepperPlayerAdapterInterface* player);
-
void OnTimeNeedsUpdate();
void OnStoppedReply(int32_t result);
PP_Rect display_rect_;
PP_FloatRect crop_ratio_rect_;
+ PP_MediaPlayerDisplayMode display_mode_;
PP_TimeTicks current_time_;
- std::string player_subtitle_encoding_;
-
base::WeakPtrFactory<PepperMediaPlayerPrivateTizen> weak_ptr_factory_;
PepperTizenDRMManager drm_manager_;
#ifndef CONTENT_BROWSER_RENDERER_HOST_PEPPER_MEDIA_PLAYER_TIZEN_PEPPER_MMPLAYER_ADAPTER_H_
#define CONTENT_BROWSER_RENDERER_HOST_PEPPER_MEDIA_PLAYER_TIZEN_PEPPER_MMPLAYER_ADAPTER_H_
+#include <string>
#include <player.h>
#include <player_internal.h>
#include <player_product.h>
+#include <atomic>
#include <memory>
#include <queue>
#include <string>
class BufferedPacket;
+class MMPlayerMediaFormat
+ : public base::RefCountedThreadSafe<MMPlayerMediaFormat> {
+ public:
+ virtual media_format_h GetMediaFormat() = 0;
+
+ protected:
+ friend class base::RefCountedThreadSafe<MMPlayerMediaFormat>;
+ MMPlayerMediaFormat() = default;
+ virtual ~MMPlayerMediaFormat() = default;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MMPlayerMediaFormat);
+};
+
+class MMPlayerAudioFormat : public MMPlayerMediaFormat {
+ public:
+ static scoped_refptr<MMPlayerAudioFormat> Create(
+ const PepperAudioStreamInfo& stream_info);
+
+ media_format_h GetMediaFormat() override;
+ private:
+ friend class base::RefCountedThreadSafe<MMPlayerAudioFormat>;
+ MMPlayerAudioFormat(media_format_h handle,
+ const PepperAudioStreamInfo& stream_info);
+ ~MMPlayerAudioFormat() override;
+
+ std::vector<uint8_t> codec_extradata_;
+ player_media_stream_audio_extra_info_s extra_info_;
+ media::ScopedMediaFormat format_;
+};
+
+class MMPlayerVideoFormat : public MMPlayerMediaFormat {
+ public:
+ static scoped_refptr<MMPlayerVideoFormat> Create(
+ const PepperVideoStreamInfo& stream_info);
+
+ media_format_h GetMediaFormat() override;
+ private:
+ friend class base::RefCountedThreadSafe<MMPlayerVideoFormat>;
+ MMPlayerVideoFormat(media_format_h handle,
+ const PepperVideoStreamInfo& stream_info);
+ ~MMPlayerVideoFormat() override;
+
+ std::vector<uint8_t> codec_extradata_;
+ player_media_stream_video_extra_info_s extra_info_;
+ media::ScopedMediaFormat format_;
+};
+
class PepperMMPlayerAdapter : public PepperPlayerAdapterBase {
public:
PepperMMPlayerAdapter();
int32_t SetDisplay(void* display, bool is_windowless) override;
int32_t SetDisplayRect(const PP_Rect& display_rect,
const PP_FloatRect& crop_ratio_rect) override;
+ int32_t SetDisplayMode(PP_MediaPlayerDisplayMode display_mode) override;
+ int32_t SetVr360Mode(PP_MediaPlayerVr360Mode vr360_mode) override;
+ int32_t SetVr360Rotation(float horizontal_angle,
+ float vertical_angle) override;
+ int32_t SetVr360ZoomLevel(uint32_t zoom_level) override;
int32_t SetDuration(PP_TimeDelta duration) override;
- int32_t SetExternalSubtitlesPath(const std::string& file_path) override;
+ int32_t SetExternalSubtitlesPath(const std::string& file_path,
+ const std::string& encoding) override;
int32_t SetStreamingProperty(PP_StreamingProperty property,
const std::string& data) override;
- int32_t ValidateSubtitleEncoding(const std::string& encoding) override;
- int32_t SetSubtitlesEncoding(const std::string& encoding) override;
int32_t SetSubtitlesDelay(PP_TimeDelta delay) override;
int32_t SetVideoStreamInfo(const PepperVideoStreamInfo& stream_info) override;
int32_t GetVideoTracksList(
std::vector<PP_VideoTrackInfo>* track_list) override;
+ bool IsDisplayModeSupported(PP_MediaPlayerDisplayMode display_mode) override;
+
// Callback registering
int32_t SetErrorCallback(
const base::Callback<void(PP_MediaPlayerError)>& callback) override;
private:
void RegisterMediaCallbacks(PP_ElementaryStream_Type_Samsung type) override;
+ void ClearMediaCallbacks();
void RegisterToBufferingEvents(bool should_register) override;
void RegisterToMediaEvents(bool should_register) override;
unsigned long long bytes); // NOLINT(runtime/int)
void OnBufferOverflow(PP_ElementaryStream_Type_Samsung stream);
+ void SeekCompleted();
+
+ int32_t UnpreparePlayer();
+ void StopPlayer();
+
static void OnStreamBufferStatus(
PP_ElementaryStream_Type_Samsung stream,
player_media_stream_buffer_status_e status,
unsigned long long bytes, // NOLINT(runtime/int)
void* user_data);
+ int32_t ValidateSubtitleEncoding(const std::string& encoding);
+ int32_t SetSubtitlesEncoding(const std::string& encoding);
+
// NOLINTNEXTLINE(runtime/int)
static void OnAudioSeekData(unsigned long long offset, void* user_data);
static void OnInitializeDone(void* user_data);
static void OnBufferingEvent(int percent, void* user_data);
- media_format_h GetMediaFormat(PP_ElementaryStream_Type_Samsung stream_type);
+ scoped_refptr<MMPlayerMediaFormat> GetMediaFormat(
+ PP_ElementaryStream_Type_Samsung stream_type);
std::queue<std::unique_ptr<BufferedPacket>>* GetPacketsBuffer(
PP_ElementaryStream_Type_Samsung stream_type);
int32_t PushMediaStream(PP_ElementaryStream_Type_Samsung stream_type,
std::unique_ptr<BufferedPacket> pkt);
void AppendBufferedPackets(PP_ElementaryStream_Type_Samsung stream_type,
int64_t bytes);
+ void FlushPacketsOnAppendThread();
+
+ void FlushPacketsAndUpdateConfigs();
player_h player_;
- media::ScopedMediaFormat audio_format_;
- media::ScopedMediaFormat video_format_;
- std::vector<uint8_t> audio_codec_extradata_;
- std::vector<uint8_t> video_codec_extradata_;
+ scoped_refptr<MMPlayerAudioFormat> audio_format_;
+ scoped_refptr<MMPlayerVideoFormat> video_format_;
std::queue<std::unique_ptr<BufferedPacket>> audio_packets_;
std::queue<std::unique_ptr<BufferedPacket>> video_packets_;
// MM Player is not able to unprepare itself if it did not completed
// prepare operation. In pull mode complete operation is completed only after
// sending some packets. So when data source is detached before sending
- // packets we destroy and recreate player instead of unpreparing it.
+ // packets we destroy and recreate player instead of unpreparing it.
//
// Don't change this value explictly; use Set/UnsetPlayerPreparing instead.
- bool player_preparing_;
+ enum class PlayerPreparingState { kNone, kPreparing, kPrepared };
+ PlayerPreparingState player_preparing_;
base::Callback<void(int32_t)> stop_callback_;
// buffering started event. This flag helps make sure buffering started will
// always be sent.
bool buffering_started_;
+
+ bool audio_media_callback_set_;
+ bool video_media_callback_set_;
+
+ std::atomic<bool> packets_flush_requested_;
+ player_state_e target_state_after_seek_;
+ bool es_mode;
+ bool waiting_for_key_frame_;
+
+ std::string player_subtitle_encoding_;
};
} // namespace content
int32_t Reset() override;
void SetListener(PP_ElementaryStream_Type_Samsung type,
- ElementaryStreamListenerPrivate* listener) override;
+ base::WeakPtr<ElementaryStreamListenerPrivate> listener) override;
void RemoveListener(PP_ElementaryStream_Type_Samsung type,
ElementaryStreamListenerPrivate* listener) override;
void SetMediaEventsListener(MediaEventsListenerPrivate* listener) override;
int32_t SetDisplayRectUpdateCallback(
const base::Callback<void()>& callback) override;
+ /* Supported only in MMPlayer */
+ int32_t SetVr360Mode(PP_MediaPlayerVr360Mode);
+ int32_t SetVr360Rotation(float, float);
+ int32_t SetVr360ZoomLevel(uint32_t);
+
protected:
enum class PepperPlayerCallbackType {
DisplayRectUpdateCallback,
virtual int32_t SetDisplay(void* display, bool is_windowless) = 0;
virtual int32_t SetDisplayRect(const PP_Rect& display_rect,
const PP_FloatRect& crop_ratio_rect) = 0;
+ virtual int32_t SetDisplayMode(PP_MediaPlayerDisplayMode display_mode) = 0;
+ virtual int32_t SetVr360Mode(PP_MediaPlayerVr360Mode vr360_mode) = 0;
+ virtual int32_t SetVr360Rotation(float horizontal_angle,
+ float vertical_angle) = 0;
+ virtual int32_t SetVr360ZoomLevel(uint32_t zoom_level) = 0;
// Set duration of a current ES media.
//
// Please note this might be called before PrepareES. If underlying player
// needs to set duration after PrepareES, duration must be cached and applied
// during PrepareES by the adapter.
virtual int32_t SetDuration(PP_TimeDelta duration) = 0;
- virtual int32_t SetExternalSubtitlesPath(const std::string& file_path) = 0;
+ virtual int32_t SetExternalSubtitlesPath(const std::string& file_path,
+ const std::string& encoding) = 0;
virtual int32_t SetStreamingProperty(PP_StreamingProperty property,
const std::string& data) = 0;
- virtual int32_t ValidateSubtitleEncoding(const std::string& encoding) = 0;
- virtual int32_t SetSubtitlesEncoding(const std::string& encoding) = 0;
virtual int32_t SetSubtitlesDelay(PP_TimeDelta delay) = 0;
virtual int32_t SetVideoStreamInfo(
const PepperVideoStreamInfo& stream_info) = 0;
virtual int32_t GetVideoTracksList(
std::vector<PP_VideoTrackInfo>* track_list) = 0;
+ virtual bool IsDisplayModeSupported(
+ PP_MediaPlayerDisplayMode display_mode) = 0;
+
// Callback registering
virtual int32_t SetErrorCallback(
const base::Callback<void(PP_MediaPlayerError)>& callback) = 0;
// Listeners registering
virtual void SetListener(PP_ElementaryStream_Type_Samsung type,
- ElementaryStreamListenerPrivate* listener) = 0;
+ base::WeakPtr<ElementaryStreamListenerPrivate> listener) = 0;
virtual void RemoveListener(PP_ElementaryStream_Type_Samsung type,
ElementaryStreamListenerPrivate* listener) = 0;
virtual void SetMediaEventsListener(MediaEventsListenerPrivate* listener) = 0;
#include "content/browser/renderer_host/pepper/media_player/tizen/pepper_player_adapter_base.h"
+#include "base/single_thread_task_runner.h"
#include "base/synchronization/condition_variable.h"
#include "base/synchronization/lock.h"
int32_t SetDisplay(void* display, bool is_windowless) override;
int32_t SetDisplayRect(const PP_Rect& display_rect,
const PP_FloatRect& crop_ratio_rect) override;
+ int32_t SetDisplayMode(PP_MediaPlayerDisplayMode display_mode) override;
int32_t SetDuration(PP_TimeDelta duration) override;
- int32_t SetExternalSubtitlesPath(const std::string& file_path) override;
+ int32_t SetExternalSubtitlesPath(const std::string& file_path,
+ const std::string& encoding) override;
int32_t SetStreamingProperty(PP_StreamingProperty property,
const std::string& data) override;
- int32_t ValidateSubtitleEncoding(const std::string& encoding) override;
- int32_t SetSubtitlesEncoding(const std::string& encoding) override;
int32_t SetSubtitlesDelay(PP_TimeDelta delay) override;
int32_t SetVideoStreamInfo(const PepperVideoStreamInfo& stream_info) override;
int32_t GetVideoTracksList(
std::vector<PP_VideoTrackInfo>* track_list) override;
+ bool IsDisplayModeSupported(PP_MediaPlayerDisplayMode display_mode) override;
+
// Callback registering
int32_t SetErrorCallback(
const base::Callback<void(PP_MediaPlayerError)>& callback) override;
void RegisterToMediaEvents(bool should_register) override;
void RegisterToSubtitleEvents(bool should_register) override;
+ int32_t ValidateSubtitleEncoding(const std::string& encoding);
+ int32_t SetSubtitlesEncoding(const std::string& encoding);
+
void OnError(PP_MediaPlayerError error, const char* msg);
void OnInitComplete();
void OnInitFailed();
// NOLINTNEXTLINE(runtime/int)
static bool OnVideoSeekData(unsigned long long offset, void* user_data);
+ void SendBufferingEvents();
+
using ISmPlayerPtr = std::unique_ptr<ISmPlayer, SmPlayerDeleter>;
ISmPlayerPtr player_;
bool is_playing_;
bool external_subs_attached_;
+ PP_MediaPlayerState state_;
+ scoped_refptr<base::SingleThreadTaskRunner> initialization_cb_runner_;
+ base::WeakPtrFactory<PepperSMPlayerAdapter> weak_ptr_factory_;
};
} // namespace content
bool InstallLicense(const std::string& response);
- bool is_valid() const { return !session_id_.empty(); }
+ bool is_valid() const { return ieme_ && !session_id_.empty(); }
std::string session_id() const { return session_id_; }
explicit PepperVideoElementaryStreamPrivateTizen(
PepperESDataSourcePrivate* es_data_source);
+ void SubmitCodecExtraData(const ppapi::ESPacket* packet);
void ExtractCodecExtraData(const ppapi::VideoCodecConfig& config);
void ExtractH264ExtraData(const ppapi::VideoCodecConfig& config);
void ExtractH265ExtraData(const ppapi::VideoCodecConfig& config);
void FocusedNodeChanged(bool is_editable_node,
const gfx::Rect& node_bounds_in_screen
#if defined(OS_TIZEN_TV_PRODUCT)
- ,
- bool is_radio_or_checkbox
+ , bool is_radio_or_checkbox
+#endif
+#if defined(USE_WAYLAND)
+ , bool is_content_editable
#endif
) override;
void ClearCompositorFrame () override;
+ bool IsFirstVisuallyNonEmptyPaint() const override;
+
// ui::GestureEventHelper implementation.
bool CanDispatchToConsumer(ui::GestureConsumer* consumer) override;
void DispatchSyntheticTouchEvent(ui::TouchEvent* event) override;
void HandleGesture(blink::WebGestureEvent&);
void HandleTouchEvent(ui::TouchEvent*);
+ bool GetHorizontalPanningHold() const { return horizontal_panning_hold_; }
+ void SetHorizontalPanningHold(bool hold) { horizontal_panning_hold_ = hold; }
+ bool GetVerticalPanningHold() const { return vertical_panning_hold_; }
+ void SetVerticalPanningHold(bool hold) { vertical_panning_hold_ = hold; }
+
size_t visible_top_controls_height() const {
return visible_top_controls_height_;
}
}
void SetClearTilesOnHide(bool enable);
+ bool SetCompositingBordersVisiblity(bool enable);
// |snapshot_area| is relative coordinate system based on Webview.
// (0,0) is top left corner.
Evas_Object* GetSnapshot(const gfx::Rect& snapshot_area,
void SetFocusInOutCallbacks(const base::Callback<void(void)>& on_focus_in,
const base::Callback<void(void)>& on_focus_out);
+ void SetPageVisibility(bool visible);
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void DrawLabel(Evas_Object* image, Eina_Rectangle rect);
+ void ClearLabels();
+#endif
+
void RequestSelectionRect() const;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void RequestCanvasFullscreen() const;
+#endif
void OnSelectionRectReceived(const gfx::Rect& selection_rect) const;
bool IsFocusedNodeEditable() const { return is_focused_node_editable_; }
+#if defined(USE_WAYLAND)
+ bool IsFocusedNodeContentEditable() const { return is_content_editable_; }
+#endif
void UpdateSpatialNavigationStatus(bool enable);
void UpdateHwKeyboardStatus(bool status) {
is_hw_keyboard_connected_ = status;
const gfx::Vector2dF& last_scroll_offset() const {
return last_scroll_offset_;
}
+#if defined(OS_TIZEN)
+ void UpdatePhysicalBackingSize();
+#endif
protected:
friend class RenderWidgetHostView;
Evas_Object* content_image_elm_host_;
bool evas_gl_initialized_;
float device_scale_factor_;
-
+#if defined(OS_TIZEN_TV_PRODUCT)
+ std::vector<Evas_Object*> voice_manager_labels_;
+#endif
bool magnifier_;
// Whether we are currently loading.
bool is_loading_;
+ // Whether a page is visible
+ bool is_visible_;
+
// If set, it's usually smaller than the view size not to allow top Elm widgets
// (select picker) to overlap web content.
gfx::Size custom_viewport_size_;
+#if defined(OS_TIZEN)
+ gfx::Size physical_backing_size_;
+#endif
scoped_refptr<EvasEventHandler> evas_event_handler_;
bool touchstart_consumed_;
bool touchend_consumed_;
+ bool horizontal_panning_hold_;
+ bool vertical_panning_hold_;
bool is_scrolling_needed_;
FrameStatusMask frame_status_;
base::Closure process_snapshot_request_callback_;
bool is_focused_node_editable_;
+#if defined(USE_WAYLAND)
+ bool is_content_editable_;
+#endif
bool is_hw_keyboard_connected_;
base::WeakPtrFactory<RenderWidgetHostViewEfl> weak_factory_;
-// Copyright 2013 Samsung Electronics. All rights reserved.
+// Copyright 2013-2016 Samsung Electronics. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
bool IsSelectionValid(const gfx::Rect& left_rect,
const gfx::Rect& right_rect);
- void QuerySelectionStyle();
-
void ShowContextMenu();
void CancelContextMenu(int request_id);
#include "base/location.h"
#include "base/strings/string16.h"
+#include "base/threading/thread.h"
#include "content/browser/speech/speech_recognizer.h"
#include "content/public/common/speech_recognition_result.h"
void* user_data);
static void OnError(stt_h stt, stt_error_e reason, void* user_data);
+ void HandleRecognitionResult(stt_h stt,
+ stt_result_event_e event,
+ const char** data,
+ int data_count,
+ const char* msg);
+ void HandleStateChange(stt_h stt, stt_state_e previous, stt_state_e current);
+
stt_h handle_;
std::string language_;
bool is_lang_supported_;
bool continuous_;
std::string recognition_type_;
bool is_aborted_;
+ const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+ base::WeakPtrFactory<SpeechRecognizerImplTizen> weak_factory_;
};
} // content
// Get voices one by one from tts engine, append them into a voice list
void AddVoice(std::string language, tts_voice_type_e name);
bool IsTtsInitialized() const { return tts_initialized_; }
+ void ChangeTtsDefaultVoice(const std::string, const int);
private:
// Create and Set tts and tts callback. If any of these failes, tts will not work at all.
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Copyright 2014 Samsung Electronics. All rights reserved.
+// Copyright 2014-2016 Samsung Electronics. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
int GetOrientation() const { return orientation_; }
void SetTouchEventsEnabled(bool);
void SetPageScaleFactor(float);
- void QuerySelectionStyle();
void HandleZoomGesture(blink::WebGestureEvent& event);
class WebDragDestEfl {
public:
- WebDragDestEfl(WebContents* web_contents);
+ explicit WebDragDestEfl(WebContents* web_contents);
~WebDragDestEfl();
blink::WebDragOperationsMask GetAction() { return drag_action_; }
// The tab we're manging the drag for.
WebContentsImpl* web_contents_;
- // The drop data for the current drag (for drags that originate in the render
- // view). Non-NULL iff there is a current drag.
- std::unique_ptr<DropData> drop_data_;
-
// The image used for depicting the drag, and the offset between the cursor
// and the top left pixel.
SkBitmap image_;
#include "content/common/gpu/media/tizen_tv_resource_manager.h"
#include "media/video/picture.h"
#include "media/video/video_decode_accelerator.h"
+#include "ui/gfx/color_space.h"
#include "ui/gfx/geometry/size_f.h"
#include "ui/gl/egl_util.h"
#include "ui/gl/gl_bindings.h"
// Decoder API
bool Initialize(const Config& config, Client* client) override;
void Decode(const media::BitstreamBuffer& bitstream_buffer) override;
- void AssignPictureBuffers(const std::vector<media::PictureBuffer>& buffers);
+ void AssignPictureBuffers(
+ const std::vector<media::PictureBuffer>& buffers) override;
void ReusePictureBuffer(int32_t picture_buffer_id) override;
void Flush() override;
void Reset() override;
void Destroy() override;
bool TryToSetupDecodeOnSeparateThread(
const base::WeakPtr<Client>& decode_client,
- const scoped_refptr<base::SingleThreadTaskRunner>&
- decode_task_runner) override;
+ const scoped_refptr<base::SingleThreadTaskRunner>& decode_task_runner)
+ override;
// Below functions are called from private OMX's threads
void OnOmxEvent(OMX_HANDLETYPE hComponent,
// Record for decoded pictures that can be sent to PictureReady.
struct PictureRecord;
- // Record for output buffers.
- struct OutputRecord {
- OutputRecord();
- ~OutputRecord();
- OMX_BUFFERHEADERTYPE* buf_hdr;
- bool at_device; // held by device.
- bool at_client; // held by client.
- bool is_mapped; // have omx buf assigned to it
- tbm_surface_h tbm_surf;
- EGLImageKHR egl_image; // EGLImageKHR for the output buffer.
- EGLSyncKHR egl_sync; // sync the compositor's use of the EGLImage.
- int32_t picture_id; // picture buffer id as returned to PictureReady().
- int32_t texture_id;
- bool cleared; // Whether the texture is cleared and safe to render
- // from. See TextureManager for details.
- };
-
// Describes decoded frame
struct DecodedVideoFrame {
// Video frame info
int32_t timestamp;
gfx::Size res;
gfx::Size effective_res;
+ gfx::Size next_res;
OMX_U32 framerate;
bool is_eos;
bool show_frame;
DecodedVideoFrame();
DecodedVideoFrame(const DecodedVideoFrame&);
explicit DecodedVideoFrame(const OMX_BUFFERHEADERTYPE*);
- bool IsDifferentResolution(const DecodedVideoFrame& other);
+ bool IsChangingResolution(void);
bool IsValid();
private:
bool is_valid;
};
+ struct PictureBufferDesc {
+ explicit PictureBufferDesc(DecodedVideoFrame* frame);
+ PictureBufferDesc(void);
+ bool IsValid(void) { return is_valid; }
+ std::string ToString();
+ bool operator!=(const PictureBufferDesc& other);
+ bool operator==(const PictureBufferDesc& other);
+ gfx::Size size;
+ unsigned y_linesize;
+ unsigned u_linesize;
+ unsigned v_linesize;
+
+ private:
+ bool is_valid;
+ };
+
+ // Record for output buffers.
+ struct OutputRecord {
+ OutputRecord();
+ ~OutputRecord();
+ bool at_client; // held by client.
+ bool is_mapped; // have texture assigned
+ tbm_surface_h tbm_surf;
+ EGLImageKHR egl_image; // EGLImageKHR for the output buffer.
+ EGLSyncKHR egl_sync; // sync the compositor's use of the EGLImage.
+ int32_t picture_id; // picture buffer id as returned to PictureReady().
+ int32_t texture_id;
+ PictureBufferDesc buffer_desc;
+ bool should_destroy;
+ };
+
// Input buffer
struct InputFrameBuffer {
InputFrameBuffer()
kPortEnable,
};
+ // Internal state of the decoder.
+ enum State {
+ kUninitialized, // Initialize() not yet called.
+ kInitializing, // Initialize() did all synchronous init steps.
+ // OMX component is initializing asynchronously.
+ kInitialized, // Initialize() returned true; ready to start decoding.
+ kDecoding, // DecodeBufferInitial() successful; decoding frames.
+ kResetting, // Presently resetting.
+ kAfterReset, // After Reset(), ready to start decoding again.
+ kChangingResolution, // Performing resolution change, all remaining
+ // pre-change frames decoded and processed.
+ kDestroying,
+ kError, // Error in kDecoding state.
+ };
+
struct InputContext {
InputContext() : last_pts(0), input_port_state(kPortDisabled) {
is_error.store(false);
struct OutputContext {
OutputContext()
- : decoder_is_flushing(false),
- decoder_is_resetting(false),
+ : decoder_state(kUninitialized),
+ decoder_is_flushing(false),
no_decoded_frames(0),
- decoded_video_info_present(false),
output_buffers_requested_count(0),
output_port_state(kPortDisabled) {
is_error.store(false);
}
- std::queue<int> output_records_free;
+ std::list<int> output_records_free;
OmxOutputBuffer output_buffer;
DecodedVideoFrame last_frame;
+ State decoder_state;
bool decoder_is_flushing;
- bool decoder_is_resetting;
int no_decoded_frames;
- bool decoded_video_info_present;
+ // nonzero value means GrowOutputRecordsTask() was started
int output_buffers_requested_count;
+ PictureBufferDesc output_buffers_requested_desc;
OmxPortState output_port_state;
+ gfx::ColorSpace color_space;
// can be changed without output_ctx_lock_ held
std::atomic<bool> is_error;
};
- // Internal state of the decoder.
- enum State {
- kUninitialized, // Initialize() not yet called.
- kInitialized, // Initialize() returned true; ready to start decoding.
- kDecoding, // DecodeBufferInitial() successful; decoding frames.
- kResetting, // Presently resetting.
- kAfterReset, // After Reset(), ready to start decoding again.
- kChangingResolution, // Performing resolution change, all remaining
- // pre-change frames decoded and processed.
- kDestroying,
- kError, // Error in kDecoding state.
+ enum InitResult {
+ kInitPending,
+ kInitOk,
+ kInitError,
};
// Input related functions
void DecodeBufferTask();
void DecodeTask(const media::BitstreamBuffer& bitstream_buffer);
void ScheduleDecodeBufferTaskIfNeeded();
- bool AdvanceFrameFragment(const uint8_t* data, size_t size, size_t* endpos);
- bool AppendToInputFrame(const void* data, size_t size);
+ bool AppendAndFlushInputFrame(const void* data, size_t size);
bool AppendToInputFrameBuffer(const void* data, size_t size);
// Must be called with input_ctx_lock_ held */
bool DoEmptyThisBuffer(int idx);
std::unique_ptr<EGLSyncKHRRef> egl_sync_ref);
void DoFillThisBuffer();
void ProcessLastFrame();
- bool GrowOutputRecords(DecodedVideoFrame* frame_info, int grow_by);
+ bool GrowOutputRecords();
void GrowOutputRecordsTask();
- bool InitTbmSurface(OutputRecord* rec, const DecodedVideoFrame& frame_info);
+ bool ScheduleGrowRecords(const PictureBufferDesc& desc);
+ void MarkRecordsForDeletion(PictureBufferDesc* with_desc);
+ bool InitTbmSurface(OutputRecord* rec, const PictureBufferDesc& desc);
bool CopyOmxBufToTbm(const DecodedVideoFrame& frame_info,
const OutputRecord& rec);
bool CreateEGLImage(EGLDisplay egl_display,
// OMX related functions
bool InitializeOmxComponent();
bool InitializeOmxComponentBasic();
+ InitResult InitializeOmxComponentAsync();
bool DestroyOmxComponent();
bool SetOmxDecoderInputType();
- bool SwitchComponentStateWait(OMX_STATETYPE new_state);
bool SwitchComponentState(OMX_STATETYPE new_state);
bool SwitchPortState(PortEnableChange change, OMX_U32 port_index);
// Event handlers
bool CreateOutputBuffer();
bool DestroyOutputBuffer();
bool DestroyInputBuffers();
- bool DestroyOutputRecords();
+ void DestroyOutputRecords();
+ bool DestroyOutputRecord(int idx);
+ void PruneOutputRecordsTask();
// Other functions
void NotifyError(Error error);
void ResetDoneTask();
void DestroyTaskFinish();
void DestroyTask();
+ void InitTask();
+ InitResult DoInit();
+ void ContinueInitIfNeeded();
+ void SetDecoderState(State new_state);
// Decoder variables
base::Thread decoder_output_thread_;
std::unique_ptr<base::WeakPtrFactory<Client> > client_ptr_factory_;
base::WeakPtr<Client> client_;
+ base::WaitableEvent init_done_;
+ bool init_success_;
State decoder_state_;
bool decoder_flushing_;
// Those can be accessed from other threads without
// any locking.
media::VideoCodecProfile video_profile_;
- std::unique_ptr<media::H264Parser> decoder_h264_parser_;
tbm_bufmgr tbm_bufmgr_;
base::Callback<bool(void)> make_context_current_;
EGLDisplay egl_display_;
std::queue<linked_ptr<BitstreamBufferRef> > decoder_input_queue_;
std::vector<InputFrameBuffer> input_frames_;
int decoder_current_input_buffer_;
- bool decoder_partial_frame_pending_;
int decoder_decode_buffer_tasks_scheduled_;
// Output related variables
OMX_STATETYPE component_state_;
// state we currently changing to; OMX_StateMax means no info
OMX_STATETYPE component_req_state_;
- // Used to wait on child thread for initialization of omx component
- base::WaitableEvent component_state_changed_;
int component_flush_requested_;
bool omx_core_init_done_;
--- /dev/null
+// Copyright 2017 Samsung Electronics Inc. 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_COMMON_MEDIA_MEDIA_PARAM_TRAITS_EFL_H_
+#define CONTENT_COMMON_MEDIA_MEDIA_PARAM_TRAITS_EFL_H_
+
+#include "base/pickle.h"
+#include "content/common/content_export.h"
+#include "ipc/ipc_param_traits.h"
+#include "media/base/ranges.h"
+
+namespace IPC {
+
+template <>
+struct CONTENT_EXPORT ParamTraits<media::Ranges<base::TimeDelta>> {
+ typedef media::Ranges<base::TimeDelta> param_type;
+ static void Write(base::Pickle* m, const param_type& p);
+ static bool Read(const base::Pickle* m,
+ base::PickleIterator* iter,
+ param_type* r);
+ static void Log(const param_type& p, std::string* l);
+};
+
+} // namespace IPC
+
+#endif // CONTENT_COMMON_MEDIA_MEDIA_PARAM_TRAITS_EFL_H_
#include "third_party/WebKit/public/platform/WebMediaPlayer.h"
#include "ui/gfx/geometry/rect_f.h"
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "content/common/media/media_param_traits_efl.h"
+#include "media/base/ranges.h"
+#endif
+
#undef IPC_MESSAGE_EXPORT
#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
#define IPC_MESSAGE_START MediaPlayerMsgStart
IPC_STRUCT_TRAITS_END()
#endif
+#if defined(OS_TIZEN_TV_PRODUCT)
+IPC_STRUCT_TRAITS_BEGIN(blink::WebMediaPlayer::register_timeline_cb_info_s)
+IPC_STRUCT_TRAITS_MEMBER(timeline_selector)
+IPC_STRUCT_TRAITS_MEMBER(units_per_tick)
+IPC_STRUCT_TRAITS_MEMBER(units_per_second)
+IPC_STRUCT_TRAITS_MEMBER(content_time)
+IPC_STRUCT_TRAITS_MEMBER(timeline_state)
+IPC_STRUCT_TRAITS_END()
+#endif
+
// Initialize Efl player.
IPC_MESSAGE_ROUTED5(MediaPlayerEflHostMsg_Init,
int /* player_id */,
std::string /* label */,
std::string /* language */,
std::string /* id */)
+// Set Active Text Track
+IPC_MESSAGE_ROUTED3(MediaPlayerEflHostMsg_SetActiveTextTrack,
+ int /* player_id */,
+ int /* id */,
+ bool /*is_in_band*/)
+// notify subtitle play track
+IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_NotifyPlayTrack,
+ int /* player_id */,
+ int /* id */)
+// notify subtitle play
+IPC_MESSAGE_ROUTED4(MediaPlayerEflHostMsg_NotifySubtitlePlay,
+ int /* player_id */,
+ int /* id */,
+ std::string /* url */,
+ std::string /* lang */)
// Playback seekable time change.
IPC_MESSAGE_ROUTED3(MediaPlayerEflMsg_SeekableTimeChanged,
int /* player_id */,
// Notify video texturing mode.
IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_NotifyVideoTexturing,
int /* player_id */)
+IPC_MESSAGE_ROUTED2(MediaPlayerEflHostMsg_ControlMediaPacket,
+ int /* player_id */,
+ int /* control mode */)
#endif
// Text Track
unsigned int /*id*/,
long long int /*startTimeMs*/,
long long int /*endTimeMs*/)
+// regist timeline
+IPC_SYNC_MESSAGE_ROUTED2_1(MediaPlayerEflHostMsg_RegisterTimeline,
+ int /* player_id */,
+ std::string /* timeline_selector */,
+ bool /*ret*/)
+
+// unregister timeline
+IPC_SYNC_MESSAGE_ROUTED2_1(MediaPlayerEflHostMsg_UnRegisterTimeline,
+ int /* player_id */,
+ std::string /* timeline_selector */,
+ bool /*ret*/)
+
+// get timeline positions
+IPC_SYNC_MESSAGE_ROUTED2_4(MediaPlayerEflHostMsg_GetTimelinePositions,
+ int /* player_id */,
+ std::string /* timeline_selector */,
+ uint32_t /*units_per_tick*/,
+ uint32_t /*units_per_second*/,
+ int64_t /*content_time*/,
+ bool /* paused*/)
+
+// get speed
+IPC_SYNC_MESSAGE_ROUTED1_1(MediaPlayerEflHostMsg_GetSpeed,
+ int /* player_id */,
+ double /* speed */)
+
+// get mrs url
+IPC_SYNC_MESSAGE_ROUTED1_1(MediaPlayerEflHostMsg_GetMrsUrl,
+ int /* player_id */,
+ std::string /* url*/)
+
+// get content id
+IPC_SYNC_MESSAGE_ROUTED1_1(MediaPlayerEflHostMsg_GetContentId,
+ int /* player_id */,
+ std::string /* content id*/)
+
+// sync timeline
+IPC_SYNC_MESSAGE_ROUTED5_1(MediaPlayerEflHostMsg_SyncTimeline,
+ int /* player_id */,
+ std::string /* timeline_selector */,
+ int64_t /* timeline_pos*/,
+ int64_t /*wallclock_pos*/,
+ int /*tolerance*/,
+ bool /*ret*/)
+
+// set wallclock
+IPC_SYNC_MESSAGE_ROUTED2_1(MediaPlayerEflHostMsg_SetWallClock,
+ int /* player_id */,
+ std::string /*wallclock_url */,
+ bool /*ret*/)
+
+// callback info of sync timeline
+IPC_MESSAGE_ROUTED3(MediaPlayerEflMsg_SyncTimelineCb,
+ int /* player_id */,
+ std::string /* timeline_selector */,
+ int /*sync*/)
+
+// callback info of register timeline
+IPC_MESSAGE_ROUTED2(
+ MediaPlayerEflMsg_RegisterTimelineCb,
+ int /* player_id */,
+ blink::WebMediaPlayer::register_timeline_cb_info_s /* cb info */)
+
+IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_MrsUrlChange,
+ int /* player_id */,
+ std::string /*url */)
+
+IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_ContentIdChange,
+ int /* player_id */,
+ std::string /*id */)
+IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_NotifyElementRemove,
+ int /* player_id */)
#endif
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
// Launch native system volume controller.
IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_LaunchSystemVolumeController,
int /* player_id */)
int /* player_id */,
base::TimeDelta /* time */)
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+// Sytem Value Changed.
+IPC_MESSAGE_ROUTED3(MediaPlayerEflMsg_SystemVolumeChanged,
+ int /* player_id */,
+ double /* volume */,
+ bool /*first call or not */)
+#endif
+
// Pause state.
IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_PauseStateChanged,
int /* player_id */,
base::TimeDelta /* time stamp */)
#if defined(TIZEN_TBM_SUPPORT)
+#if defined(OS_TIZEN_TV_PRODUCT)
+IPC_MESSAGE_ROUTED4(MediaPlayerEflMsg_NewTbmBufferAvailable,
+ int /* player_id */,
+ gfx::TbmBufferHandle /* Handle */,
+ int /* physical index */,
+ base::TimeDelta /* time stamp */)
+#else
IPC_MESSAGE_ROUTED3(MediaPlayerEflMsg_NewTbmBufferAvailable,
int /* player_id */,
gfx::TbmBufferHandle /* Handle */,
base::TimeDelta /* time stamp */)
+#endif
// Requests to release tbm buffer.
IPC_MESSAGE_CONTROL1(MediaPlayerEflHostMsg_ReleaseTbmBuffer,
IPC_MESSAGE_CONTROL2(MediaPlayerEflHostMsg_DemuxerStateChanged,
int /* demuxer_client_id */,
media::DemuxerConfigs /* configs */)
+// Inform the media source player about buffered data.
+IPC_MESSAGE_CONTROL2(MediaPlayerEflHostMsg_DemuxerBufferedChanged,
+ int /* demuxer_client_id */,
+ media::Ranges<base::TimeDelta> /* buffered */)
+IPC_SYNC_MESSAGE_ROUTED1_1(FrameHostMsg_CheckHLSSupport,
+ std::string /* url */,
+ bool /* support */)
#endif
// Sent when the data was read from the ChunkDemuxer.
#undef IPC_MESSAGE_EXPORT
#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
-#define IPC_MESSAGE_START MediaCaptureMsgStart
+#define IPC_MESSAGE_START MediaRecorderMsgStart
// Media record start.
-IPC_MESSAGE_ROUTED2(MediaCaptureHostMsg_StartRecording,
+IPC_MESSAGE_ROUTED2(MediaRecorderHostMsg_StartRecording,
int /* handler id */,
std::string /* format*/)
// Media record pause.
-IPC_MESSAGE_ROUTED1(MediaCaptureHostMsg_PauseRecording, int /* handler id */)
+IPC_MESSAGE_ROUTED1(MediaRecorderHostMsg_PauseRecording, int /* handler id */)
// Media record resume.
-IPC_MESSAGE_ROUTED1(MediaCaptureHostMsg_ResumeRecording, int /* handler id */)
+IPC_MESSAGE_ROUTED1(MediaRecorderHostMsg_ResumeRecording, int /* handler id */)
// Media record stop.
-IPC_MESSAGE_ROUTED1(MediaCaptureHostMsg_StopRecording, int /* handler id */)
+IPC_MESSAGE_ROUTED1(MediaRecorderHostMsg_StopRecording, int /* handler id */)
-IPC_MESSAGE_ROUTED3(MediaCaptureMsg_MediaCaptureMuxedStream,
+IPC_MESSAGE_ROUTED3(MediaRecorderMsg_MediaRecordMuxedStream,
int /* handler id */,
base::SharedMemoryHandle /*foreign_memory_handle*/,
int /*size*/)
#endif
#if defined(ENABLE_TIZEN_MEDIA_RECORDER)
-#include "content/common/media/media_capture_messages_efl.h"
+#include "content/common/media/media_recorder_messages_efl.h"
#endif
#if defined(TIZEN_MULTIMEDIA_SUPPORT)
-// Copyright 2015 Samsung Electronics. All rights reserved.
+// Copyright 2015-2016 Samsung Electronics. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
virtual void CancelContextMenu(int request_id) = 0;
- virtual void QuerySelectionStyle() = 0;
virtual void HandleZoomGesture(blink::WebGestureEvent& event) = 0;
virtual bool UseKeyPadWithoutUserAction() = 0;
bool is_seeking_pending_seek);
// Callback for ChunkDemuxer::Seek().
- void OnDemuxerSeekDone(media::PipelineStatus status);
+ void OnDemuxerSeekDone(base::TimeDelta demuxer_seek_time,
+ media::PipelineStatus status);
#if defined(OS_TIZEN_TV_PRODUCT)
base::TimeDelta KeyframeBeforeTimestamp(const base::TimeDelta timestamp);
bool is_audio_read_fired_;
bool is_video_read_fired_;
#if defined(OS_TIZEN_TV_PRODUCT)
- bool is_framerate_set_;
- bool is_framerate_changed_;
media::StreamFramerate::Framerate framerate_ = {0, 0};
#endif
#include "ipc/message_filter.h"
#include "media/base/tizen/demuxer_stream_player_params_efl.h"
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "media/base/ranges.h"
+#endif
+
namespace base {
class SingleThreadTaskRunner;
}
#if defined(OS_TIZEN_TV_PRODUCT)
void DemuxerStateChanged(int demuxer_client_id,
const media::DemuxerConfigs& configs);
+ void DemuxerBufferedChanged(int demuxer_client_id,
+ const media::Ranges<base::TimeDelta>& ranges);
#endif
bool ReadFromDemuxerAck(int demuxer_client_id,
const std::string& label,
const std::string& language,
const std::string& id);
+ void SetActiveTextTrack(int player_id, int id, bool is_in_band);
+ void NotifySubtitlePlay(int player_id,
+ int id,
+ const std::string& url,
+ const std::string& lang);
+ void OnNotifyPlayTrack(int player_id, int id);
void OnSeekableTimeChange(int player_id,
base::TimeDelta min_time,
base::TimeDelta max_time);
void OnDrmError(int player_id);
+ bool RegisterTimeline(int player_id, const std::string& timeline_selector);
+ bool UnRegisterTimeline(int player_id, const std::string& timeline_selector);
+ void GetTimelinePositions(int player_id,
+ const std::string& timeline_selector,
+ uint32_t* units_per_tick,
+ uint32_t* units_per_second,
+ int64_t* content_time,
+ bool* paused);
+ double GetSpeed(int player_id_);
+ std::string GetMrsUrl(int player_id);
+ std::string GetContentId(int player_id);
+ bool SyncTimeline(int player_id,
+ const std::string& timeline_selector,
+ int64_t timeline_pos,
+ int64_t wallclock_pos,
+ int tolerance);
+ bool SetWallClock(int player_id, const std::string& wallclock_url);
+ void NotifyElementRemove(int player_id);
#if defined(TIZEN_TBM_SUPPORT)
void NotifyVideoTexturing(int player_id);
+ void ControlMediaPacket(int player_id, int mode);
#endif
#endif
#if defined(TIZEN_VIDEO_HOLE)
void SetMediaGeometry(int player_id, const gfx::RectF& rect);
#endif
-
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void checkHLSSupport(const blink::WebString& url, bool& support);
+#endif
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
void LaunchSystemVolumeController(int player_id);
#endif
#if defined(TIZEN_TBM_SUPPORT)
void OnNewTbmBufferAvailable(int player_id,
gfx::TbmBufferHandle tbm_handle,
+#if defined(OS_TIZEN_TV_PRODUCT)
+ int scaler_physical_id,
+#endif
base::TimeDelta timestamp);
#endif
unsigned int id,
long long int start_time,
long long int end_time);
+ void OnSyncTimeline(int player_id,
+ const std::string& timeline_selector,
+ int sync);
+ void OnRegisterTimeline(
+ int player_id,
+ const blink::WebMediaPlayer::register_timeline_cb_info_s& info);
+ void OnMrsUrlChange(int player_id, const std::string& url);
+ void OnContentIdChange(int player_id, const std::string& id);
#endif
void OnBufferUpdate(int player_id, int percentage);
blink::WebMediaPlayer::ReadyState state);
void OnNetworkStateChange(int player_id,
blink::WebMediaPlayer::NetworkState state);
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
void OnSystemVolumeChange(int player_id, int volume);
#endif
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ void OnSystemVolumeChanged(int player_id, double volume, bool init);
+#endif
+
private:
std::map<int, blink::WebMediaPlayer*> media_players_;
#if defined(TIZEN_VIDEO_HOLE)
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CONTENT_RENDERER_MEDIA_TIZEN_RENDERER_MEDIA_CAPTURE_HANDLER_H_
-#define CONTENT_RENDERER_MEDIA_TIZEN_RENDERER_MEDIA_CAPTURE_HANDLER_H_
+#ifndef CONTENT_RENDERER_MEDIA_TIZEN_RENDERER_MEDIA_RECORDER_HANDLER_H_
+#define CONTENT_RENDERER_MEDIA_TIZEN_RENDERER_MEDIA_RECORDER_HANDLER_H_
#include <map>
namespace content {
-class RendererCaptureManager : public RenderFrameObserver {
+class RendererRecorderManager : public RenderFrameObserver {
public:
- RendererCaptureManager(RenderFrame* render_frame);
- ~RendererCaptureManager();
+ RendererRecorderManager(RenderFrame* render_frame);
+ ~RendererRecorderManager();
// RenderFrameObserver overrides.
void OnDestruct() override;
std::map<int, blink::WebMediaRecorderHandler*> recorder_handler_map_;
};
-class CONTENT_EXPORT RenderMediaCaptureHandler final
+class CONTENT_EXPORT RenderMediaRecorderHandler final
: public NON_EXPORTED_BASE(blink::WebMediaRecorderHandler) {
public:
- RenderMediaCaptureHandler(RenderFrameObserver* render_frame_observer);
- ~RenderMediaCaptureHandler() override;
+ RenderMediaRecorderHandler(RenderFrameObserver* render_frame_observer);
+ ~RenderMediaRecorderHandler() override;
bool canSupportMimeType(const blink::WebString& web_type,
const blink::WebString& web_codecs) override;
int handler_id_;
bool recording_;
- RendererCaptureManager* manager_;
+ RendererRecorderManager* manager_;
blink::WebMediaRecorderHandlerClient* media_recorder_handler_client_;
scoped_refptr<base::TaskRunner> task_runner_;
- base::WeakPtrFactory<RenderMediaCaptureHandler> weak_factory_;
+ base::WeakPtrFactory<RenderMediaRecorderHandler> weak_factory_;
- DISALLOW_COPY_AND_ASSIGN(RenderMediaCaptureHandler);
+ DISALLOW_COPY_AND_ASSIGN(RenderMediaRecorderHandler);
};
} // namespace content
-#endif // CONTENT_RENDERER_MEDIA_TIZEN_RENDERER_MEDIA_CAPTURE_HANDLER_H_
+#endif // CONTENT_RENDERER_MEDIA_TIZEN_RENDERER_MEDIA_RECORDER_HANDLER_H_
#include "third_party/WebKit/public/platform/WebMediaPlayerEncryptedMediaClient.h"
#if defined(OS_TIZEN_TV_PRODUCT)
+#include "media/base/tizen/video_playback_mem_opt.h"
+
#define USE_NO_WAIT_SIGNAL_MEDIA_PACKET_THREAD 1
#endif
void seek(double seconds) override;
void setRate(double) override;
void setVolume(double) override;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ void setBrightness(int) override;
+ int getBrightness() override;
+#endif
blink::WebTimeRanges buffered() const override;
blink::WebTimeRanges seekable() const override;
void setSinkId(const blink::WebString& sink_id,
bool flip_y) override;
#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
- unsigned zeroCopyVideoTbmToPlatformTexture(
- gpu::gles2::GLES2Interface*, unsigned) override;
+ static void lockScalerDuringNextFrame(media::VideoFrame* video_frame);
+ static base::Timer& DeferredChangeVideoResolutionTimer(void);
+ static void DeferredChangeVideoResolution(WebMediaPlayerEfl* web_player);
+ bool RenderRingBuffer(gpu::gles2::GLES2Interface* gl,
+ unsigned& image_id);
+ bool zeroCopyVideoTbmToPlatformTexture(
+ gpu::gles2::GLES2Interface*, unsigned, unsigned&) override;
void deleteVideoFrame(unsigned) override;
#endif
void resume() override;
double getStartDate() const override;
void activate() override;
-
+ void deactivate() override;
#if defined(OS_TIZEN_TV_PRODUCT)
void setTranslatedURL(const blink::WebString& url) { translated_url_ = url; }
#endif
blink::WebContentDecryptionModule* cdm,
blink::WebContentDecryptionModuleResult result) override;
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
void launchSystemVolumeController() override;
#endif
#if defined(TIZEN_TBM_SUPPORT)
void OnNewTbmBufferAvailable(const gfx::TbmBufferHandle& tbm_handle,
+#if defined(OS_TIZEN_TV_PRODUCT)
+ int scaler_physical_id,
+#endif
base::TimeDelta timestamp,
const base::Closure& cb);
#endif
#if defined(TIZEN_VIDEO_HOLE)
- void OnDrawableContentRectChanged(gfx::Rect rect);
+ void OnDrawableContentRectChanged(gfx::Rect rect, bool is_video);
#endif
void OnMediaDataChange(int width, int height, int media);
void OnAddTextTrack(const std::string& label,
const std::string& language,
const std::string& id);
+ void setActiveTextTrack(int id, bool is_in_band);
+ void notifyPlayTrack(int id);
void OnSeekableTimeChange(base::TimeDelta min_time, base::TimeDelta max_time);
void OnDrmError();
+ void notifyElementRemove() override;
#endif
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
void OnSystemVolumeChange(int volume);
#endif
#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
void NotifyVideoTexturing();
+ void ControlMediaPacket(int mode);
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+ void setCanvasHoleEnabled(bool);
+ void notifyCanvasRectChanged(const blink::WebRect&) override;
#endif
#if defined(USE_NO_WAIT_SIGNAL_MEDIA_PACKET_THREAD)
unsigned int id,
long long int start_time,
long long int end_time);
+ bool registerTimeline(const std::string& timeline_selector) override;
+ bool unRegisterTimeline(const std::string& timeline_selector) override;
+ void getTimelinePositions(const std::string& timeline_selector,
+ uint32_t* units_per_tick,
+ uint32_t* units_per_second,
+ int64_t* content_time,
+ bool* paused) override;
+ double getSpeed() override;
+ std::string getMrsUrl() override;
+ std::string getContentId() override;
+ bool syncTimeline(const std::string& timeline_selector,
+ int64_t timeline_pos,
+ int64_t wallclock_pos,
+ int tolerance) override;
+ bool setWallClock(const std::string& wallclock_url) override;
+
+ void OnSyncTimeline(const std::string& timeline_selector, int sync);
+ void OnRegisterTimeline(
+ const blink::WebMediaPlayer::register_timeline_cb_info_s& info);
+ void OnMrsUrlChange(const std::string& url);
+ void OnContentIdChange(const std::string& id);
+#endif
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ void OnSystemVolumeChanged(double volume, bool init);
#endif
private:
media::VideoFrameCompositor* compositor_;
media::SkCanvasVideoRenderer skcanvas_video_renderer_;
- base::WeakPtrFactory<WebMediaPlayerEfl> weak_factory_;
std::unique_ptr<content::MediaSourceDelegateEfl> media_source_delegate_;
MediaPlayerHostMsg_Initialize_Type player_type_;
blink::WebString content_mime_type_;
// Whether the video is known to be opaque or not.
bool opaque_;
bool is_fullscreen_;
-#if defined(TIZEN_VIDEO_HOLE)
- bool is_draw_ready_;
- bool pending_play_;
#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
bool is_video_texturing_;
+ bool timeout_lock_flag_;
+ base::TimeDelta previous_media_packet_timestamp_;
+#ifdef SCALER_DEBUG
+ base::TimeDelta frame_rate_control_timestamp_;
+ base::Time previous_frame_time_;
+#endif
+ int previous_index_;
+ int scaler_lock_mode_;
+ uint32_t scaler_buffer_max_;
+ unsigned duplicated_frame_count_;
#endif
+#if defined(TIZEN_VIDEO_HOLE)
+ bool is_draw_ready_;
+ bool pending_play_;
bool is_video_hole_;
// A rectangle represents the geometry of video frame, when computed last
gfx::RectF last_computed_rect_;
base::RepeatingTimer layer_bound_update_timer_;
#endif
+#if defined(TIZEN_CANVAS_HOLE)
+ bool canvas_hole_enabled_;
+ bool canvas_rect_changed_;
+#endif
gfx::Size natural_size_;
blink::WebTimeRanges buffered_;
mutable bool did_loading_progress_;
// for a transient sound. Playout volume is derived by volume * multiplier.
double volume_;
double volume_multiplier_;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ int system_brightness_;
+#endif
#if defined(OS_TIZEN_TV_PRODUCT)
bool force_update_playback_position_;
+ std::unique_ptr<media::VideoPlaybackMemOpt> video_playback_mem_opt_;
#endif
// Non-owned pointer to the CdmContext. Updated in the constructor
base::Lock current_frame_lock_;
#endif
+ base::WeakPtrFactory<WebMediaPlayerEfl> weak_factory_;
+
DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerEfl);
};
const PP_Rect& clip_rect);
// Compositor CBs:
- void OnDrawableContentRectChanged(gfx::Rect rect);
+ void OnDrawableContentRectChanged(gfx::Rect rect, bool);
RendererPpapiHost* renderer_ppapi_host_;
PepperPluginInstanceImpl* bound_instance_;
scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
media::VideoFrameCompositor* compositor_;
+ bool needs_paint_;
+
DISALLOW_COPY_AND_ASSIGN(PepperMediaPlayerRendererHost);
};
std::set<GLuint> textures_;
GLint GetBoundUniformLocation(GLint location);
- ProgramData& GetProgramData(GLint program = -1);
+ ProgramData& GetProgramData(GLint program);
};
} // namespace gles2
--- /dev/null
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SCOPED_RESTORE_NON_OWNED_EVASGL_CONTEXT_H_
+#define SCOPED_RESTORE_NON_OWNED_EVASGL_CONTEXT_H_
+
+#include <Evas_GL.h>
+
+class ScopedRestoreNonOwnedEvasGLContext {
+ public:
+ ScopedRestoreNonOwnedEvasGLContext();
+ ~ScopedRestoreNonOwnedEvasGLContext();
+
+ private:
+ Evas_GL* evas_gl_;
+ Evas_GL_Context* evas_gl_context_;
+ Evas_GL_Surface* evas_gl_surface_;
+};
+
+#endif // SCOPED_RESTORE_NON_OWNED_EVASGL_CONTEXT_H_
\ No newline at end of file
#include "base/memory/shared_memory_handle.h"
#include "base/memory/weak_ptr.h"
+#include "gpu/ipc/in_process_command_buffer.h"
#include "ipc/ipc_sender.h"
#include "ui/events/latency_info.h"
struct Capabilities;
class DirectCanvasGpuChannel;
class GpuChannel;
-class InProcessCommandBuffer;
struct Mailbox;
struct SyncToken;
class DirectCanvasCommandBufferStub
- : public IPC::Sender,
+ : public InProcessCommandBuffer,
+ public IPC::Sender,
public base::SupportsWeakPtr<DirectCanvasCommandBufferStub>,
public base::RefCountedThreadSafe<DirectCanvasCommandBufferStub> {
public:
DirectCanvasCommandBufferStub(
DirectCanvasGpuChannel* channel,
- int32_t route_id,
- std::unique_ptr<InProcessCommandBuffer> command_buffer,
- std::unique_ptr<base::SharedMemory> shared_state_shm,
- gpu::Capabilities* capabilities);
+ int32_t route_id);
// IPC::Sender implementation:
bool Send(IPC::Message* msg) override;
void FenceSyncRelease(uint64_t release);
- bool SwapBuffersOnGpuThread();
+ bool SwapBuffers();
int32_t route_id() const { return route_id_; }
+ void SetSharedStateBuffer(std::unique_ptr<base::SharedMemory> shared_state_shm,
+ gpu::Capabilities* capabilities);
+
private:
friend class base::RefCountedThreadSafe<DirectCanvasCommandBufferStub>;
~DirectCanvasCommandBufferStub() override;
bool* succeeded);
DirectCanvasGpuChannel* const channel_;
- std::unique_ptr<InProcessCommandBuffer> command_buffer_;
int32_t route_id_;
};
#include "base/memory/shared_memory_handle.h"
#include "base/memory/weak_ptr.h"
-#include "base/unguessable_token.h"
#include "ipc/ipc_listener.h"
#include "ipc/ipc_sender.h"
struct Capabilities;
class DirectCanvasCommandBufferStub;
+class DirectCanvasGpuChannelFilter;
class GpuChannel;
class DirectCanvasGpuChannel : public IPC::Listener, public IPC::Sender {
public:
- DirectCanvasGpuChannel(gpu::GpuChannel* channel,
- const base::UnguessableToken& channel_token);
+ DirectCanvasGpuChannel(gpu::GpuChannel* channel);
~DirectCanvasGpuChannel() override;
// IPC::Sender implementation:
DirectCanvasCommandBufferStub* LookupCommandBuffer(int32_t route_id);
gpu::GpuChannel* const channel_;
- base::UnguessableToken channel_token_;
+ scoped_refptr<DirectCanvasGpuChannelFilter> filter_;
scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner_;
std::unordered_map<int32_t, scoped_refptr<DirectCanvasCommandBufferStub>> stubs_;
+ base::Lock stubs_lock_;
base::WeakPtrFactory<DirectCanvasGpuChannel> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(DirectCanvasGpuChannel);
const std::string& device_id,
const LogCallback& log_callback) override;
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+ AudioOutputStream* MakeLowLatencyOutputStreamPPAPI(
+ const AudioParameters& params,
+ const std::string& device_id,
+ const LogCallback& log_callback) override;
+#endif
+
protected:
AudioParameters GetPreferredOutputStreamParameters(
const std::string& output_device_id,
int native_input_sample_rate_;
+ bool DisableSessionBackwardCompatibility();
+ bool session_backward_compatibility_disabled_;
+
DISALLOW_COPY_AND_ASSIGN(AudioManagerCapi);
};
size_t nbytes,
void* user_data);
void ReadAudioData();
+ void CloseInternal(bool success);
AudioManagerCapi* audio_manager_;
AudioInputCallback* callback_;
base::Thread audio_worker_;
audio_in_h device_;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ sound_device_list_h device_list_;
+ sound_device_h sound_device_;
+ sound_stream_info_h stream_info_;
+ bool device_added_for_stream_routing_;
+#endif
+
// Holds the data from the OS.
AudioBlockFifo fifo_;
--- /dev/null
+// Copyright 2017 Samsung Electronics. 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_AUDIO_TIZEN_MM_PLAYER_AUDIO_OUTPUT_H_
+#define MEDIA_AUDIO_TIZEN_MM_PLAYER_AUDIO_OUTPUT_H_
+
+#include <player.h>
+#include <player_internal.h>
+#include <player_product.h>
+
+#include <atomic>
+
+#include "base/threading/thread.h"
+#include "media/audio/audio_io.h"
+#include "media/base/audio_parameters.h"
+
+namespace media {
+
+class AudioManagerBase;
+
+class MMPlayerAudioOutputStream : public AudioOutputStream {
+ public:
+ MMPlayerAudioOutputStream(const AudioParameters& params,
+ AudioManagerBase* manager);
+
+ ~MMPlayerAudioOutputStream() override;
+
+ bool Open() override;
+ void Close() override;
+ void Start(AudioSourceCallback* callback) override;
+ void Stop() override;
+ void SetVolume(double volume) override;
+ void GetVolume(double* volume) override;
+ void HandleError();
+
+ private:
+ static void OnBufferStatusCB(
+ player_media_stream_buffer_status_e status,
+ unsigned long long nbytes, // NOLINT(runtime/int)
+ void* user_data);
+ void OnBufferStatus(player_media_stream_buffer_status_e status,
+ unsigned long long nbytes); // NOLINT(runtime/int)
+
+ void PushPacketsRoutine();
+
+ enum State { kInError = 0, kIsOpened, kIsStarted, kIsStopped, kIsClosed };
+
+ const AudioParameters params_;
+ AudioManagerBase* manager_;
+ player_h player_handle_;
+ std::atomic<double> volume_;
+ std::vector<uint8_t> buffer_;
+ State state_;
+ AudioSourceCallback* source_callback_;
+ std::unique_ptr<AudioBus> audio_bus_;
+ base::Thread push_packets_thread_;
+ std::atomic<bool> push_packets_;
+
+ DISALLOW_COPY_AND_ASSIGN(MMPlayerAudioOutputStream);
+};
+
+} // namespace media
+
+#endif // MEDIA_AUDIO_TIZEN_MM_PLAYER_AUDIO_OUTPUT_H_
#include "base/memory/shared_memory_handle.h"
#include "media/base/tizen/demuxer_stream_player_params_efl.h"
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "media/base/ranges.h"
+#endif
+
namespace media {
// Defines the client callback interface.
#if defined(OS_TIZEN_TV_PRODUCT)
// Called when the demuxer state changed.
virtual void OnDemuxerStateChanged(const DemuxerConfigs& params) = 0;
+
+ // Called whenever data buffered by the demuxer has changed.
+ virtual void OnDemuxerBufferedChanged(
+ const media::Ranges<base::TimeDelta>& ranges) = 0;
#endif
// Called in response to RequestDemuxerData().
s -= m;
m -= h;
- char buffer[100];
- sprintf(buffer, "%d:%02d:%02d.%06d", (int)h.count(), (int)m.count(),
- (int)s.count(), (int)us.count());
+ const int BUF_SIZE = 100;
+ char buffer[BUF_SIZE];
+ snprintf(buffer, BUF_SIZE, "%d:%02d:%02d.%06d", (int)h.count(),
+ (int)m.count(), (int)s.count(), (int)us.count());
o << "\n " << info.player << ' ' << buffer;
}
return o;
};
}
-#endif // MEDIA_BASE_TIZEN_LONGEST_CONFLICT_STRATEGY_H_
\ No newline at end of file
+#endif // MEDIA_BASE_TIZEN_LONGEST_CONFLICT_STRATEGY_H_
// slots for a given media type
template <typename T>
class RangeView {
- const T* ptr{nullptr};
- size_t size{0};
+ const T* ptr_{nullptr};
+ size_t size_{0};
public:
RangeView() = default;
- RangeView(const T* ptr, size_t size) : ptr{ptr}, size{size} {}
+ RangeView(const T* ptr, size_t size) : ptr_{ptr}, size_{size} {}
- const T* begin() const { return ptr; }
- const T* end() const { return ptr + size; }
+ const T* begin() const { return ptr_; }
+ const T* end() const { return ptr_ + size_; }
+ size_t size() const { return size_; }
+ bool empty() const { return size_ == 0; }
};
} // detail
// then the tag is true_type, with false_type otherwise
template <class CapabilityType>
struct MediaTypeTag {
+ template <class T> using no_cvr = typename std::decay<T>::type;
+
+ // This compares the decayed type of CapabilityType::kMediaType
+ // ('const MediaType' turned into to 'MediaType') to the
+ // enum type of MediaType
+ using types_match = std::is_same<
+ no_cvr<decltype(CapabilityType::kMediaType)>,
+ MediaType
+ >;
+
using type = typename std::conditional<
- std::is_same<decltype(CapabilityType::kMediaType),
- MediaType>::value &&
- CapabilityType::kMediaType == media_type,
+ types_match::value &&
+ (CapabilityType::kMediaType == media_type),
+
std::true_type,
- std::false_type>::type;
+ std::false_type
+ >::type;
};
// false_type-tagged version of GetActiveSlots - does nothing
#include "ui/gfx/geometry/rect_f.h"
#endif
+#if defined(OS_TIZEN_TV_PRODUCT)
+// For compile: this macro will be removed when mmplayer remove the macro
+#define WAIT_HBBTV_REMOVE
+#include <player_product.h>
+#include "base/memory/ref_counted.h"
+#include "content/public/browser/render_view_host.h"
+#include "content/public/browser/web_contents_delegate.h"
+#include "content/public/common/web_preferences.h"
+#endif
+
namespace media {
class VideoPlaneManagerTizen;
void Seek(base::TimeDelta time) override;
void SetVolume(double volume) override;
base::TimeDelta GetCurrentTime() override;
-
+#if defined(OS_TIZEN_TV_PRODUCT)
+ static void CheckHLSSupport(const std::string& url, bool* support);
+#endif
void EnteredFullscreen() override;
void ExitedFullscreen() override;
#if defined(OS_TIZEN_TV_PRODUCT)
+ void UpdateActiveTextTrack(int) override;
+ void SetActiveTextTrack(int, bool) override;
+ void SubtitleDataCB(unsigned long long, unsigned, const uint8_t*, unsigned);
+ void NotifySubtitleData(int track_id,
+ double time_stamp,
+ const uint8_t* data,
+ unsigned size);
+ void NotifySubtitleState(int state, double time_stamp = 0.0);
+ void NotifySubtitlePlay(int id,
+ const std::string& url,
+ const std::string& lang) override;
+ void NotifyStopTrack();
+ void NotifyPlayTrack();
+
void OnPlayerPreloading();
+ bool RegisterTimeline(const std::string& timeline_selector) override;
+ void OnRegisterTimeline(const char* timeline_selector,
+ uint32_t units_per_tick,
+ uint32_t units_per_second,
+ int64_t content_time,
+ ETimelineState timeline_state);
+ bool UnRegisterTimeline(const std::string& timeline_selector) override;
+ void GetTimelinePositions(const std::string& timeline_selector,
+ uint32_t* units_per_tick,
+ uint32_t* units_per_second,
+ int64_t* content_time,
+ bool* paused) override;
+ double GetSpeed() override;
+ std::string GetMrsUrl() override;
+ std::string GetContentId() override;
+ bool SyncTimeline(const std::string& timeline_selector,
+ int64_t timeline_pos,
+ int64_t wallclock_pos,
+ int tolerance) override;
+ void OnSyncTimeline(const char* timeline_selector, int sync);
+ bool SetWallClock(const std::string& wallclock_url) override;
+ void ElementRemove() override;
#endif
double GetStartDate() override;
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
- void OnInbandEvent(int event_type, void* event_data);
+ void OnOtherEvent(int event_type, void* event_data);
#endif
void ExecuteDelayedPlayerState();
void OnResumeComplete(bool success);
void OnInitComplete(bool success);
void OnMediaPacketUpdated(media_packet_h packet);
+#if !defined(OS_TIZEN_TV_PRODUCT)
void OnInterrupted(player_interrupted_code_e code);
-
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
- void LaunchSystemVolumeController() override;
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
#if defined(OS_TIZEN_TV_PRODUCT)
bool CheckLiveStreaming() const;
bool GetLiveStreamingDuration(int64_t* min, int64_t* max) const;
- bool GetDashLiveDuration(int64_t* duration) const;
+ bool GetDashLiveDuration(int64_t* duration);
void StartSeekableTimeUpdateTimer();
void StopSeekableTimeUpdateTimer();
void OnSeekableTimeUpdateTimerFired();
std::string MapMediaTrackKind(const std::string& role, const int size);
bool GetUserPreferAudioLanguage(std::string& prefer_audio_lang);
void UpdatePreferAudio();
-
+ void appendUrlHighBitRate(const std::string& url);
void HandleTextTrack(const std::string& info);
void HandleTextCue(const std::string& info,
unsigned int id,
long long int start_time,
long long int end_time);
+ void HandleRegisterTimeline(const char* timeline_selector,
+ uint32_t units_per_tick,
+ uint32_t units_per_second,
+ int64_t content_time,
+ ETimelineState timeline_state);
+ void HandleSyncTimeline(const char* timeline_selector, int sync);
+
+ void HandleMrsUrlChange(const std::string& mrsUrl);
+ void HandlePeriodIdChange(const std::string& contentId);
+ std::string ParseDashKeyword(const std::string& keyword);
+ void ParseDashInfo();
+ void ReadyStateChange(bool is_player_started);
#endif
void PlaybackCompleteUpdate();
void PushDelayedPlayerState(int new_state);
#if defined(OS_TIZEN_TV_PRODUCT)
+ void HandleBufferingStatusOnTV(int percent);
bool SetMediaDRMInfo(const std::string&, int, const std::string&, int);
bool SetDrmInfo(std::string& drmInfo);
static void OnResourceConflict(void* user_data);
bool IsMuted(void);
#endif
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
- int GetSystemMediaVolume();
- void UpdateSystemMediaVolume();
-#endif
-
const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
GURL url_;
bool is_seeking_;
bool is_resuming_;
bool is_initialized_;
- bool is_fullscreen_;
bool error_occured_;
base::TimeDelta duration_;
base::TimeDelta seek_duration_;
base::TimeDelta pending_seek_duration_;
base::TimeDelta stored_seek_time_during_resume_;
- double playback_rate_;
- double pending_playback_rate_;
bool is_getting_cookies_;
bool pending_prepare_;
std::string cookies_;
std::deque<int> delayed_player_state_queue_;
#if defined(OS_TIZEN_TV_PRODUCT)
+ int subtitle_state_;
+ int active_text_track_id_;
+ bool is_inband_text_track_;
bool is_live_stream_;
StreamType stream_type_;
base::RepeatingTimer seekable_time_update_timer_;
base::TimeDelta min_seekable_time_;
base::TimeDelta max_seekable_time_;
bool is_player_prepared_;
+ bool is_player_started_;
+ bool need_report_buffering_state_;
+ bool is_buffering_compeleted_;
+ int player_ready_state_;
bool is_player_seek_available_;
std::string prefer_audio_lang_;
int prefer_audio_adaptionset_idx_;
int last_prefer_audio_adaptionset_idx_;
+ std::string hbbtv_url_;
+ int marlin_handle_;
+ std::string compound_url_;
+ std::string mrsUrl_;
+ std::string contentId_;
#endif
int current_progress_;
// NOTE: Weak pointers must be invalidated before all other member variables.
base::WeakPtrFactory<MediaPlayerBridgeCapi> weak_factory_;
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
- int system_media_volume_;
-#endif
-
DISALLOW_COPY_AND_ASSIGN(MediaPlayerBridgeCapi);
};
#include "media/base/tizen/video_plane_controller_capi.h"
#if defined(OS_TIZEN_TV_PRODUCT)
+#include "base/synchronization/waitable_event.h"
#include "content/public/browser/web_contents_delegate.h"
#define USE_DIRECT_CALL_MEDIA_PACKET_THREAD 1
#endif
const int MIXER_SCREEN_WIDTH = 1920;
#endif
+const double kInvalidPlayRate = -12345.0;
+const double kPrecisionUnit = 0.00001;
+#define DOUBLE_EQUAL(a, b) \
+ (((a) - (b) > -kPrecisionUnit) && ((a) - (b) < kPrecisionUnit))
+
class MEDIA_EXPORT MediaPlayerEfl : public MediaPlayerInterfaceEfl {
public:
static MediaPlayerEfl* CreatePlayer(int player_id,
virtual void Initialize() {}
+ virtual void EnteredFullscreen();
+ virtual void ExitedFullscreen();
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ void OnSystemVolumeChanged(int player_id, double volume, bool init);
+ bool SetSystemVolume(double volume);
+#endif
+
#if defined(TIZEN_SOUND_FOCUS)
// APIs for Sound Focus Manager
void SetResumePlayingBySFM(bool resume_playing) override {
void OnFocusReleased(bool resume_playing) override;
#endif
+#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual void SetActiveTextTrack(int, bool) {}
+ virtual void UpdateActiveTextTrack(int) {}
+ virtual void NotifySubtitlePlay(int id,
+ const std::string& url,
+ const std::string& lang) {}
+ bool CheckMarlinEnable();
+ bool CheckHighBitRate();
+ virtual bool RegisterTimeline(const std::string& timeline_selector) {
+ return false;
+ }
+ virtual bool UnRegisterTimeline(const std::string& timeline_selector) {
+ return false;
+ }
+ virtual void GetTimelinePositions(const std::string& timeline_selector,
+ uint32_t* units_per_tick,
+ uint32_t* units_per_second,
+ int64_t* content_time,
+ bool* paused) {}
+ virtual double GetSpeed() { return 0.0; }
+ virtual std::string GetMrsUrl() { return ""; }
+ virtual std::string GetContentId() { return ""; }
+ virtual bool SyncTimeline(const std::string& timeline_selector,
+ int64_t timeline_pos,
+ int64_t wallclock_pos,
+ int tolerance) {
+ return false;
+ }
+ virtual bool SetWallClock(const std::string& wallclock_url) { return false; }
+ virtual void ElementRemove() {}
+#endif
+
double GetStartDate() override {
return std::numeric_limits<double>::quiet_NaN();
}
void OnPlayerSuspendRequest() const;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void OnPlayerResourceConflict() const;
+#endif
+
bool ShouldSeekAfterResume() const override {
return should_seek_after_resume_;
}
MediaPlayerEfl* media_player) const;
#if defined(OS_TIZEN_TV_PRODUCT)
- bool PlaybackNotificationEnabled() { return playback_notification_enabled_; }
+ bool SubtitleNotificationEnabled();
+ bool PlaybackNotificationEnabled();
+ void UpdateCurrentTime(base::TimeDelta current_time);
content::WebContentsDelegate* GetWebContentsDelegate();
void NotifyPlaybackState(int state,
const std::string& url = "",
std::string* drmInfo = NULL);
#endif
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
+ int GetSystemMediaVolume();
+ void UpdateSystemMediaVolume();
+ void LaunchSystemVolumeController() override;
+#endif
+
player_h player_;
int width_;
int height_;
bool is_paused_;
bool should_seek_after_resume_;
+ bool is_fullscreen_;
+
+ double playback_rate_;
+ double pending_playback_rate_;
#if defined(TIZEN_SOUND_FOCUS)
bool should_be_resumed_by_sound_focus_manager_;
#endif
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
+ int system_media_volume_;
+#endif
+
private:
// Player ID assigned to this player.
int player_id_;
MediaTypeFlags media_type_;
-#if defined(OS_TIZEN_TV_PRODUCT)
- bool playback_notification_enabled_;
-#endif
#if TIZEN_MM_DEBUG_VIDEO_DUMP_DECODED_FRAME == 1
std::unique_ptr<FrameDumper> frameDumper;
// Return whether the player should call seek after resume
virtual bool ShouldSeekAfterResume() const = 0;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual void SetActiveTextTrack(int, bool) = 0;
+ virtual void NotifySubtitlePlay(int id,
+ const std::string& url,
+ const std::string& lang) = 0;
+ virtual bool RegisterTimeline(const std::string& timeline_selector) = 0;
+ virtual bool UnRegisterTimeline(const std::string& timeline_selector) = 0;
+ virtual void GetTimelinePositions(const std::string& timeline_selector,
+ uint32_t* units_per_tick,
+ uint32_t* units_per_second,
+ int64_t* content_time,
+ bool* paused) = 0;
+ virtual double GetSpeed() = 0;
+ virtual std::string GetMrsUrl() = 0;
+ virtual std::string GetContentId() = 0;
+ virtual bool SyncTimeline(const std::string& timeline_selector,
+ int64_t timeline_pos,
+ int64_t wallclock_pos,
+ int tolerance) = 0;
+ virtual bool SetWallClock(const std::string& wallclock_url) = 0;
+ virtual void ElementRemove() = 0;
+#endif
+
#if defined(TIZEN_VIDEO_HOLE)
virtual void SetGeometry(const gfx::RectF&) = 0;
virtual void OnWebViewMoved() = 0;
virtual bool HasConfigs() const = 0;
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
// Launch native system volume controller.
virtual void LaunchSystemVolumeController() = 0;
#endif
virtual void ReleaseKeyGrab(int player_id){};
#endif
#if defined(TIZEN_VIDEO_HOLE)
- virtual gfx::Rect GetViewportRect() const = 0;
+ virtual gfx::Rect GetViewportRect(int player_id) const = 0;
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
const std::string& label,
const std::string& language,
const std::string& id) = 0;
+ virtual void NotifyPlayTrack(int player_id, int id) = 0;
virtual void OnSeekableTimeChange(int player_id,
base::TimeDelta min_time,
base::TimeDelta max_time) = 0;
long long int start_time,
long long int end_time) = 0;
virtual void OnDrmError(int player_id) = 0;
+ virtual void OnRegisterTimelineCbInfo(
+ int player_id,
+ const blink::WebMediaPlayer::register_timeline_cb_info_s& info) = 0;
+ virtual void OnSyncTimelineCbInfo(int player_id,
+ const std::string& timeline_selector,
+ int sync) = 0;
+ virtual void OnMrsUrlChange(int player_id, const std::string& url) = 0;
+ virtual void OnContentIdChange(int player_id, const std::string& id) = 0;
#endif
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
virtual void OnSystemVolumeChange(int player_id, int volume) = 0;
#endif
virtual content::WebContents* GetWebContents(int player_id) = 0;
virtual void OnPlayerSuspendRequest(int player_id) = 0;
+
+#if defined(OS_TIZEN_TV_PRODUCT)
+ virtual void OnPlayerResourceConflict(int player_id) = 0;
+#endif
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ virtual void OnSystemVolumeChanged(int player_id,
+ double volume,
+ bool init) = 0;
+#endif
};
} // namespace media
#if defined(OS_TIZEN_TV_PRODUCT)
+#include "base/static_map.h"
#include <player_product.h>
#endif
media_packet_h Get() const;
virtual std::string ToString() const;
+ base::TimeDelta GetTimeStamp() const { return timestamp_; }
+ base::TimeDelta GetTimeDuration() const { return time_duration_; }
+ media::DemuxerStream::Type GetType() const { return type_; }
+
protected:
virtual bool Prepare(ScopedMediaPacket& packet);
void SetMediaPacket(ScopedMediaPacket packet);
bool HasConfigs() const override;
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
- void LaunchSystemVolumeController() override;
-#endif
-
protected:
void Release() override;
void OnMediaError(MediaError error_type) override;
player_state_e GetPlayerState();
void HandlePrepareComplete();
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void PlayInternal();
+#endif
// For internal seeks.
void SeekInternal();
static void OnMediaPacketUpdated(media_packet_h packet, void* user_data);
static void OnPlaybackComplete(void* user_data);
static void OnPlayerError(int error_code, void* user_data);
+#if defined(OS_TIZEN_TV_PRODUCT)
+ static void OnResourceConflict(void* user_data);
+ static void OnGetPositionBeforeConflict(ulong position, void* user_data);
+#endif
static void OnInterrupted(player_interrupted_code_e code, void* user_data);
#if defined(OS_TIZEN_TV_PRODUCT)
void UpdateResolution(int width, int height, int media_type);
-#endif
+ void SavePositionBeforeConflict(ulong pos) {
+ position_before_conflict_ = pos;
+ }
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
- int GetSystemMediaVolume();
- void UpdateSystemMediaVolume();
+ void StartWaitingForData();
+ void FinishWaitingForData();
+ void OnDemuxerBufferedChanged(
+ const media::Ranges<base::TimeDelta>& ranges) override;
+ std::pair<base::TimeDelta, base::TimeDelta> FindBufferedRange(
+ base::TimeDelta start,
+ base::TimeDelta end) const;
+ void UncheckedUpdateReadyState();
+ void UpdateReadyState();
+ base::TimeDelta CalculateLastFrameDuration() const;
#endif
// CAPI player state handling APIs.
const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
base::TimeDelta duration_;
- double playback_rate_;
bool player_prepared_;
bool paused_by_buffering_logic_;
base::TimeDelta seek_offset_;
MediaSeekState seek_state_;
- bool is_fullscreen_;
bool is_video_hole_;
double volume_;
#if defined(TIZEN_VIDEO_HOLE)
std::string hdr_info_;
bool is_demuxer_state_reported_;
base::TimeDelta cached_current_time_;
+ ulong position_before_conflict_;
+
+ media::Ranges<base::TimeDelta> demuxer_buffered_ranges_;
+ base::TimeDelta official_playback_position_;
+ blink::WebMediaPlayer::ReadyState reported_ready_state_;
+
+ // first -> pts, second -> duration
+ base::StaticMap<DemuxerStream::Type,
+ std::pair<base::TimeDelta, base::TimeDelta>,
+ base::StaticKeys<DemuxerStream::Type,
+ DemuxerStream::AUDIO,
+ DemuxerStream::VIDEO>>
+ last_frames_;
#endif
std::array<ChannelData, kCapiPlayerChannelCount> channel_data_;
base::RepeatingTimer current_time_update_timer_;
base::WeakPtrFactory<MediaSourcePlayerCapi> weak_factory_;
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
- int system_media_volume_;
-#endif
-
DISALLOW_COPY_AND_ASSIGN(MediaSourcePlayerCapi);
};
void OnDemuxerDurationChanged(base::TimeDelta duration) override;
#if defined(OS_TIZEN_TV_PRODUCT)
void OnDemuxerStateChanged(const DemuxerConfigs& params) override;
+ void OnDemuxerBufferedChanged(
+ const media::Ranges<base::TimeDelta>& ranges) override;
#endif
// DemuxerEfl interface
base::TimeDelta GetCurrentTime() override;
void EnteredFullscreen() override;
void ExitedFullscreen() override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool RegisterTimeline(const std::string& timeline_selector) override;
+ bool UnRegisterTimeline(const std::string& timeline_selector) override;
+ void GetTimelinePositions(const std::string& timeline_selector,
+ uint32_t* units_per_tick,
+ uint32_t* units_per_second,
+ int64_t* content_time,
+ bool* paused) override;
+ double GetSpeed() override;
+ std::string GetMrsUrl() override;
+ std::string GetContentId() override;
+ bool SyncTimeline(const std::string& timeline_selector,
+ int64_t timeline_pos,
+ int64_t wallclock_pos,
+ int tolerance) override;
+ bool SetWallClock(const std::string& wallclock_url) override;
+ void ElementRemove();
+#endif
#if defined(TIZEN_SOUND_FOCUS)
// SoundFocusClient interface
void OnWebViewMoved() override;
#endif
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
void LaunchSystemVolumeController() override;
#endif
void OnResumeComplete(int player_id) override;
void OnSuspendComplete(int player_id) override;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ void OnSystemVolumeChanged(int player_id, double volume, bool init);
+#endif
+
#if defined(TIZEN_VIDEO_HOLE)
- gfx::Rect GetViewportRect() const override;
+ gfx::Rect GetViewportRect(int player_id) const override;
#endif
#if defined(TIZEN_TBM_SUPPORT)
const std::string& language,
const std::string& id) override;
+ void NotifyPlayTrack(int player_id, int id) override;
+ void SetActiveTextTrack(int id, bool is_in_band) override;
+ void NotifySubtitlePlay(int id,
+ const std::string& url,
+ const std::string& lang) override;
void OnSeekableTimeChange(int player_id,
base::TimeDelta min_time,
base::TimeDelta max_time) override;
long long int end_time) override;
void OnDrmError(int player_id) override;
+
+ void OnRegisterTimelineCbInfo(
+ int player_id,
+ const blink::WebMediaPlayer::register_timeline_cb_info_s& info) override;
+ void OnSyncTimelineCbInfo(int player_id,
+ const std::string& timeline_selector,
+ int sync) override;
+ void OnMrsUrlChange(int player_id, const std::string& mrsurl) override;
+ void OnContentIdChange(int player_id, const std::string& contentId) override;
#endif
void StorePosition(const base::TimeDelta& position);
void OnPlayerSuspendRequest(int player_id) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void OnPlayerResourceConflict(int player_id) override;
+#endif
+
bool ShouldSeekAfterResume() const override {
return player_->ShouldSeekAfterResume();
}
bool HasConfigs() const override { return player_->HasConfigs(); }
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
void OnSystemVolumeChange(int player_id, int volume) override;
#endif
--- /dev/null
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef VIDEO_PLAYBACK_MEM_OPT_H_
+#define VIDEO_PLAYBACK_MEM_OPT_H_
+
+#include "base/time/time.h"
+#include "base/timer/timer.h"
+
+namespace media {
+
+class VideoPlaybackMemOpt {
+ public:
+ VideoPlaybackMemOpt(
+ base::TimeDelta gc_interval_sec =
+ base::TimeDelta::FromSeconds(2),
+ base::TimeDelta malloc_trim_interval_sec =
+ base::TimeDelta::FromSeconds(30));
+
+ ~VideoPlaybackMemOpt() = default;
+
+ void Start();
+ void Stop();
+
+ private:
+ void StartMallocTrim();
+ void StopMallocTrim();
+ void StartJsGcIfNeeded();
+ void StopJsGcIfNeeded();
+
+ static void JsGcIfNeededTimerFired();
+ static void MallocTrimTimerFired();
+ static void DoJsGcIfNeeded();
+ static void DoMallocTrim();
+
+ const base::TimeDelta gc_interval_sec_;
+ const base::TimeDelta malloc_trim_interval_sec_;
+ base::RepeatingTimer js_gc_timer_;
+ base::RepeatingTimer malloc_trim_timer_;
+};
+
+} // namespace media
+
+#endif // VIDEO_PLAYBACK_MEM_OPT_H_
#include "media/mojo/interfaces/image_capture.mojom.h"
#include "ui/gfx/gpu_memory_buffer.h"
+#if defined(ENABLE_TIZEN_MEDIA_RECORDER)
+#include <recorder.h>
+#endif
+
namespace media {
struct VideoCaptureFormat;
public:
static CameraHandle* GetInstance();
- camera_h GetCameraHandle() { return camera_handle_; };
camera_device_e GetDeviceName() { return device_name_; };
bool IsValid();
std::unique_ptr<PhotoCapabilities> capabilities_;
+#if defined(ENABLE_TIZEN_MEDIA_RECORDER)
+ // Recorder API
+ int CreateVideoRecorder(recorder_h* recorder_handle) {
+ return recorder_create_videorecorder(camera_handle_, recorder_handle);
+ };
+#endif
+
+ int CameraStartCapture(camera_capturing_cb capturingCB,
+ camera_capture_completed_cb completedCB,
+ void* data);
+ int CameraSetCaptureFormat(camera_pixel_format_e format);
+ int CameraSetCaptureResolution(int width, int height);
+
+ // camera apis
+ int CameraStartPreview();
+ int CameraStopPreview();
+ int CameraSetStreamFlip(camera_flip_e flip);
+
+ // getter
+ camera_attr_fps_e CameraGetPreviewFps();
+
+ // setter
+ int CameraSetDisplay(camera_display_type_e type, camera_display_h display);
+ int CameraSetPreviewResolution(int width, int height);
+ int CameraSetPreviewFormat(camera_pixel_format_e format);
+ int CameraSetPreviewFps(camera_attr_fps_e fps);
+
+ // callbacks
+ int CameraSetPreviewCb(camera_preview_cb callback, void* data);
+ int CameraUnsetPreviewCb();
+ int CameraSetMediapacketPreviewCb(camera_media_packet_preview_cb callback,
+ void* data);
+ int CameraUnsetMediapacketPreviewCb();
+
private:
CameraHandle();
~CameraHandle();
void SetErrorState(const char* reason, const tracked_objects::Location& location);
- camera_h camera_;
+ CameraHandle* camera_instance_;
std::unique_ptr<VideoCaptureDevice::Client> client_;
std::unique_ptr<VideoCaptureDevice::Client::Buffer> buffer_;
base::Lock capturing_state_lock_;
base::Thread worker_; // Thread used for reading data from the device.
bool is_capturing_;
- bool use_media_packet_;
+ bool using_media_packet_;
InternalState state_;
base::TimeTicks first_ref_time_;
void Stop();
// Callback called from within FFmpeg to allocate a buffer based on
- // the dimensions of |codec_context|. See AVCodecContext.get_buffer
+ // the dimensions of |codec_context|. See AVCodecContext.get_buffer2
// documentation inside FFmpeg.
- int GetVideoBuffer(AVCodecContext* codec_context, AVFrame* frame);
+ int GetVideoBuffer(struct AVCodecContext* codec_context,
+ AVFrame* frame,
+ int flags);
private:
enum DecoderState { kUninitialized, kNormal, kDecodeFinished, kError };
enum class ClipboardDataTypeEfl;
class EWebView;
-class SkBitmap;
class UI_BASE_EXPORT ClipboardHelperEfl {
public:
using ExecCommandCallback = base::Callback<void(const char*, const char*)>;
static ClipboardHelperEfl* GetInstance();
- static Eina_Bool SelectionGetCb(void* data,
- Evas_Object* obj,
- Elm_Selection_Data* ev);
-
void SetData(const std::string& data, ClipboardDataTypeEfl type);
void Clear();
bool CanPasteFromClipboardApp() const;
bool CanPasteFromSystemClipboard() const {
- // FIXME(g.ludwikowsk): this function should work differently for richtext
- // and normal inputs
- return !clipboard_contents_.empty() ||
- !clipboard_image_contents_path_.empty();
+ // FIXME(g.ludwikowsk): for now it is the same as CanPasteFromClipboardApp,
+ // but we should also take into account that if there are only images in
+ // clipboard and we are in a text input then we can't paste, but can show
+ // clipboard window (like in tizen 2.4)
+ return CanPasteFromClipboardApp();
}
bool IsFormatAvailable(const ui::Clipboard::FormatType& format) const;
void RefreshClipboard();
bool RetrieveClipboardItem(std::string* data,
ClipboardDataTypeEfl format) const;
- bool RetrieveImage(SkBitmap* bitmap) const;
- // SetWebviewEditCallback needs a callback to EWebView's ExecuteEditCommand
+ // OnWebviewFocusIn needs a callback to EWebView's ExecuteEditCommand
// function, because we can't include eweb_view.h header in chromium_impl
// directory to call ExecuteEditCommand directly.
// We also keep a pointer to EWebView instance associated with the callback,
// to know if we should reset exec_commnad_callback_ when that EWebView is
// destroyed.
- void SetWebviewEditCallback(ExecCommandCallback edit_command_callback,
- EWebView* webview);
- void MaybeInvalidateEditCallback(EWebView* webview);
+ void OnWebviewFocusIn(EWebView* webview,
+ Evas_Object* source,
+ bool is_content_editable,
+ ExecCommandCallback exec_command_callback);
+ void MaybeInvalidateActiveWebview(EWebView* webview);
void OpenClipboardWindow(EWebView* webview, bool richly_editable);
void CloseClipboardWindow();
bool IsClipboardWindowOpened() const {
// ::CbhmOnNameOwnerChanged
return clipboard_window_opened_;
}
-
- void SetSource(Evas_Object* obj) { source_widget_ = obj; }
- void SetAppVisibleState(bool visible) {
- accept_clipboard_app_events_ = visible;
+ void SetContentEditable(bool is_content_editable) {
+ is_content_editable_ = is_content_editable;
}
private:
friend struct base::DefaultSingletonTraits<ClipboardHelperEfl>;
+ static Eina_Bool SelectionGetCbHTML(void* data,
+ Evas_Object* obj,
+ Elm_Selection_Data* ev);
+ static Eina_Bool SelectionGetCbText(void* data,
+ Evas_Object* obj,
+ Elm_Selection_Data* ev);
+ static Eina_Bool SelectionGetCbAppHTML(void* data,
+ Evas_Object* obj,
+ Elm_Selection_Data* ev);
+ static Eina_Bool SelectionGetCbAppText(void* data,
+ Evas_Object* obj,
+ Elm_Selection_Data* ev);
+
static bool Base64ImageTagFromImagePath(const std::string& path,
std::string* image_html);
- static bool ImagePathFromEflMarkup(const std::string& markup,
- std::string* image_path);
+ static bool ConvertImgTagToBase64(const std::string& tag,
+ std::string* out_tag);
static void CbhmOnNameOwnerChanged(void* data,
const char* bus,
const char* new_id);
static void OnClipboardItemClicked(void* data,
const Eldbus_Message* msg);
+ static void GetClipboardTextPost(ClipboardHelperEfl* self);
ClipboardHelperEfl();
~ClipboardHelperEfl();
- bool ProcessClipboardAppEvent(const std::string& data, Elm_Sel_Format format);
- bool ProcessRefreshEvent(const std::string& data, Elm_Sel_Format format);
+ void RefreshClipboardForApp();
+ void ProcessClipboardAppEvent(Elm_Selection_Data* ev, Elm_Sel_Format format);
+
+ const std::string& clipboard_html() const {
+ return paste_from_clipboard_app_
+ ? clipboard_contents_html_from_clipboard_app_
+ : clipboard_contents_html_;
+ }
+ const std::string& clipboard_text() const {
+ return paste_from_clipboard_app_ ? clipboard_contents_from_clipboard_app_
+ : clipboard_contents_;
+ }
void CbhmEldbusInit();
void CbhmEldbusDeinit();
// (multiple webviews)?
Evas_Object* source_widget_;
- // These are clipboard contents for various formats.
+ std::string clipboard_contents_html_;
+ std::string clipboard_contents_html_from_clipboard_app_;
std::string clipboard_contents_;
- std::string clipboard_image_contents_path_;
+ std::string clipboard_contents_from_clipboard_app_;
// Clipboard app integration:
Eldbus_Proxy* eldbus_proxy_;
Eldbus_Connection* cbhm_conn_;
ExecCommandCallback exec_command_callback_;
bool clipboard_window_opened_;
- bool paste_on_next_clipboard_event_;
+ bool paste_from_clipboard_app_;
bool accept_clipboard_app_events_;
+ bool is_content_editable_;
EWebView* last_webview_;
DISALLOW_COPY_AND_ASSIGN(ClipboardHelperEfl);
public:
static PersonalDataManagerFactory* GetInstance();
- void PersonalDataManagerAdd(content::BrowserContext* ctx);
void PersonalDataManagerRemove(content::BrowserContext* ctx);
PersonalDataManager* PersonalDataManagerForContext(
content::BrowserContext* ctx);
class BrowserContext;
class DOMStorageContext;
struct LocalStorageUsageInfo;
+struct SessionStorageUsageInfo;
class StoragePartition;
}
namespace disk_cache {
public:
// Mask used for Remove.
enum RemoveDataMask {
- REMOVE_LOCAL_STORAGE = 1 << 0,
- REMOVE_INDEXEDDB = 1 << 1,
- REMOVE_WEBSQL = 1 << 2,
- REMOVE_FILE_SYSTEMS = 1 << 3,
- REMOVE_APPCACHE = 1 << 4,
+ REMOVE_LOCAL_STORAGE = 1 << 0,
+ REMOVE_INDEXEDDB = 1 << 1,
+ REMOVE_WEBSQL = 1 << 2,
+ REMOVE_FILE_SYSTEMS = 1 << 3,
+ REMOVE_APPCACHE = 1 << 4,
+ REMOVE_SESSION_STORAGE = 1 << 5,
};
static BrowsingDataRemoverEfl* CreateForUnboundedRange(content::BrowserContext*);
// Callback to deal with the list gathered in ClearLocalStorageOnUIThread.
void OnGotLocalStorageUsageInfo(const std::vector<content::LocalStorageUsageInfo>&);
+ // Invoked on the UI thread to delete session storage.
+ void ClearSessionStorageOnUIThread();
+
+ // Callback to deal with the list gathered in ClearSessionStorageOnUIThread.
+ void OnGotSessionStorageUsageInfo(const std::vector<content::SessionStorageUsageInfo>&);
+
// Invoked on the IO thread to delete all storage types managed by the quota
// system: AppCache, Databases, FileSystems.
void ClearQuotaManagedDataOnIOThread();
bool waiting_for_clear_cache_;
bool waiting_for_clear_local_storage_;
+ bool waiting_for_clear_session_storage_;
bool waiting_for_clear_quota_managed_data_;
// Tracking how many origins need to be deleted, and whether we're finished
#include "base/memory/weak_ptr.h"
#include "content/public/browser/browser_thread.h"
#include "favicon_database.h"
-#include "private/ewk_main_private.h"
class Command;
--- /dev/null
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef TIZEN_SRC_EWK_EFL_INTEGRATION_BROWSER_GAMEPAD_GAMEPAD_PLATFORM_DATA_FETCHER_TIZEN_TV_H_
+#define TIZEN_SRC_EWK_EFL_INTEGRATION_BROWSER_GAMEPAD_GAMEPAD_PLATFORM_DATA_FETCHER_TIZEN_TV_H_
+
+#include <accessory/GamepadEntry.h>
+#include <accessory/IGamepad.h>
+#include <accessory/OCICommon.h>
+#include <accessory/GamepadCallback.h>
+#include <memory>
+#include <string>
+#include "tizen_src/ewk/efl_integration/browser/gamepad/oci_gamepad_item.h"
+#include "device/gamepad/gamepad_data_fetcher.h"
+#include "device/gamepad/gamepad_standard_mappings.h"
+#include "third_party/WebKit/public/platform/WebGamepads.h"
+
+namespace device {
+
+class GamepadPlatformDataFetcherTizenTV
+ : public device::GamepadDataFetcher,
+ public gamepad::CGamepadManagerCallback {
+ public:
+ typedef device::GamepadDataFetcherFactoryImpl<GamepadPlatformDataFetcherTizenTV,
+ device::GAMEPAD_SOURCE_TIZEN_TV>
+ Factory;
+ GamepadPlatformDataFetcherTizenTV();
+ ~GamepadPlatformDataFetcherTizenTV() override;
+
+ // GamepadDataFetcher implementation.
+ void GetGamepadData(bool devices_changed_hint) override;
+ GamepadSource source() override;
+
+ protected:
+ virtual void t_OnCallback(int type,
+ void* pparam1,
+ void* pparam2,
+ void* pparam3);
+
+ private:
+
+ void ReadTizenDeviceData(size_t index);
+ void EnumerateTizenDevices();
+
+ void InitTizenDevice();
+ void Initialize();
+ void InitMapping(size_t index);
+
+ // Notice: [in] uid, [out] pid, [out] vid
+ void GetPidVid(const char* uid, std::string* pid, std::string* vid);
+ void UTF8toUTF16(blink::WebUChar utf_16_str[],
+ size_t utf_16_str_size,
+ std::string str,
+ size_t str_length);
+
+ // Functions to map from device data to standard layout.
+ static void MapperTizenStyleGamepad(const blink::WebGamepad& input,
+ blink::WebGamepad* mapped);
+
+ // Data that's returned to the consumer.
+ blink::WebGamepads data_;
+
+ gamepad::IGamepadManager* gamepad_manager_;
+ std::array<std::unique_ptr<OCIGamepadItem>,
+ blink::WebGamepads::itemsLengthCap> gamepad_items_;
+
+ DISALLOW_COPY_AND_ASSIGN(GamepadPlatformDataFetcherTizenTV);
+};
+
+} // namespace content
+
+#endif // TIZEN_SRC_EWK_EFL_INTEGRATION_BROWSER_GAMEPAD_GAMEPAD_PLATFORM_DATA_FETCHER_TIZEN_TV_H_
--- /dev/null
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef TIZEN_SRC_EWK_EFL_INTEGRATION_BROWSER_GAMEPAD_OCI_GAMEPAD_ITEM_H_
+#define TIZEN_SRC_EWK_EFL_INTEGRATION_BROWSER_GAMEPAD_OCI_GAMEPAD_ITEM_H_
+
+#include <accessory/GamepadEntry.h>
+#include <accessory/IGamepad.h>
+#include <accessory/OCICommon.h>
+#include <memory>
+#include "base/macros.h"
+#include "third_party/WebKit/public/platform/WebGamepads.h"
+
+namespace device {
+
+class OCIGamepadItem : public gamepad::CGamepadCallback {
+ public:
+ ~OCIGamepadItem() override;
+
+ // OCIGamepadItem implementation.
+ const char* GetUID();
+ const char* GetGamepadName();
+ size_t GetItemIndex();
+
+ // change the device data.
+ void RefreshOCIGamepadData();
+
+ // static function for create OCIGamepadItem, used by
+ // GamepadPlatformDataFetcherTizenTV
+ static std::unique_ptr<OCIGamepadItem> Create(IGamepadManager* manager,
+ OCIDevInfo* dev_info,
+ blink::WebGamepad* pad,
+ int index);
+
+ protected:
+ // Cannot follow google naming style, because it's override from
+ // CGamepadCallback
+ void t_OnCallback(int type,
+ void* pparam1,
+ void* pparam2,
+ void* pparam3) override;
+
+ private:
+ float range_tizen_axis_value_abs_z_;
+ float range_tizen_axis_value_abs_rz_;
+
+ float range_tizen_axis_value_abs_x_;
+ float range_tizen_axis_value_abs_y_;
+ float range_tizen_axis_value_abs_rx_;
+ float range_tizen_axis_value_abs_ry_;
+
+ static const size_t kOCIGamepadItemsLength = 16;
+ OCIControllerEvent events_[kOCIGamepadItemsLength];
+
+ explicit OCIGamepadItem(IGamepadManager* manager,
+ OCIDevInfo* info,
+ blink::WebGamepad* pad);
+ bool CreateDevice();
+ void DestroyDevice();
+ void SetOCIGamepadItemIndex(size_t index);
+
+ void InitAxisRangeTizen();
+ void InitAxisRangeTizen(int code, float* range);
+ void RefreshOCIGamepadDataEachEvent(const OCIControllerEvent& event,
+ const int index);
+ static size_t s_oci_gamepaditem_num_;
+ static const float kRangeTizenAxisValueAbsZRz;
+ static const float kRangeTizenAxisValueAbsXYRxRy;
+
+ IGamepadManager* manager_;
+ OCIDevInfo info_;
+ IGamepad* gamepad_;
+ blink::WebGamepad* pad_;
+ size_t index_;
+
+ DISALLOW_COPY_AND_ASSIGN(OCIGamepadItem);
+};
+
+} // namespace content
+
+#endif // TIZEN_SRC_EWK_EFL_INTEGRATION_BROWSER_GAMEPAD_OCI_GAMEPAD_ITEM_H_
void CancelDialogs(content::WebContents* web_contents,
bool suppress_callbacks,
bool reset_state) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void OnDialogClosed(content::WebContents* web_contents) override;
+#endif
void SetPopupSize(int width, int height);
bool IsShowing();
const std::string& name,
int32_t holder);
void AddName() { ++names_count_; }
- void RemoveName() { --names_count_; }
+ void RemoveName() { --names_count_; } // LCOV_EXCL_LINE
Evas_Object* GetView() const { return obj_; }
Ewk_View_Script_Message_Cb CallBack() const { return callback_; }
const char* Name() const { return name_.c_str(); }
class PredictorEfl {
public:
explicit PredictorEfl();
- ~PredictorEfl();
+ virtual ~PredictorEfl();
virtual void InitNetworkPredictor(
content::BrowserContextEfl* browser_context_efl);
} // namespace browser_net
-#endif // TIZEN_SRC_EWK_EFL_INTEGRATION_PREDICTOR_EFL_H_
\ No newline at end of file
+#endif // TIZEN_SRC_EWK_EFL_INTEGRATION_PREDICTOR_EFL_H_
class EWebView;
class SkBitmap;
+namespace leveldb {
+class DB;
+}
+
namespace content {
class WebContents;
~PersistentNotificationData();
};
-class NotificationControllerEfl: public PlatformNotificationService {
+class NotificationControllerEfl : public PlatformNotificationService {
public:
NotificationControllerEfl();
~NotificationControllerEfl() override;
// Adds a new notification received from engine to a list
- void NotificationAdd(uint64_t notification_id, const GURL& origin,
- const base::string16& replace_id,
- std::unique_ptr<DesktopNotificationDelegate> delegate);
+ void NotificationAdd(uint64_t notification_id,
+ const GURL& origin,
+ const base::string16& replace_id,
+ std::unique_ptr<DesktopNotificationDelegate> delegate);
bool NotificationClosed(uint64_t notification_id, bool by_user);
// Notification engine that notification was displayed
bool NotificationDisplayed(uint64_t notification_id);
+ bool PersistentNotificationClicked(BrowserContext* browser_context,
+ const char* id,
+ const char* origin);
+
// sets the permission for a particular pending notification
void SetPermissionForNotification(
Ewk_Notification_Permission_Request* notification,
bool allowed);
// Adds permission to map
- void AddPermission(const GURL origin, bool allowed);
+ void PutPermission(const GURL& origin, bool allowed);
// Removes all stored permissions
void ClearPermissions();
// Checks if the notification is already present.
// If present returns the notification id of the notification else false
bool IsNotificationPresent(const GURL& origin,
- const base::string16& replaceid, uint64_t& notification_id);
+ const base::string16& replace_id,
+ uint64_t& notification_id);
- void RequestPermission(WebContents* web_contents,
- const GURL& requesting_frame,
- const base::Callback<void(
- blink::mojom::PermissionStatus)>& result_callback);
+ void RequestPermission(
+ WebContents* web_contents,
+ const GURL& requesting_frame,
+ const base::Callback<void(blink::mojom::PermissionStatus)>&
+ result_callback);
void SetNotificationCallbacks(Ewk_Notification_Show_Callback show_callback,
- Ewk_Notification_Cancel_Callback close_callback, void* user_data);
+ Ewk_Notification_Cancel_Callback close_callback,
+ void* user_data);
/* PlatformNotificationService */
blink::mojom::PermissionStatus CheckPermissionOnUIThread(
- BrowserContext* browser_context, const GURL& origin,
+ BrowserContext* browser_context,
+ const GURL& origin,
int render_process_id) override;
// Checks if |origin| has permission to display Web Notifications. This method
// Closes the persistent notification identified by
// |persistent_notification_id|. This method must be called on the UI thread.
- void ClosePersistentNotification(
- BrowserContext* browser_context,
- const std::string& notification_id) override;
+ void ClosePersistentNotification(BrowserContext* browser_context,
+ const std::string& notification_id) override;
// Writes the ids of all currently displaying persistent notifications for the
// given |browser_context| to |displayed_notifications|. Returns whether the
#endif
private:
- blink::mojom::PermissionStatus CheckPermissionForOrigin(
- const GURL &origin) const;
+ bool InitializePermissionDatabase(bool clear = false);
+ blink::mojom::PermissionStatus CheckPermissionForOrigin(const GURL& origin);
bool DefaultShowCallback(uint64_t tag,
+ const std::string& notification_id,
+ const GURL& origin,
const char* title,
const char* body,
const SkBitmap& icon,
- const SkBitmap& badge);
+ const SkBitmap& badge,
+ bool is_persistent);
bool DefaultCancelCallback(uint64_t tag);
- IDMap<NotificationData, IDMapOwnPointer> notifications_map_; // This stores the notifications displayed to the user
+ // This stores the notifications displayed to the user.
+ IDMap<NotificationData, IDMapOwnPointer> notifications_map_;
IDMap<PersistentNotificationData, IDMapOwnPointer>
persistent_notification_map_;
Ewk_Notification_Cancel_Callback notification_cancel_callback_;
void* notification_callback_user_data_;
- std::map<uint64_t, int> keymapper_;
+ std::unique_ptr<leveldb::DB> permissions_db_;
+
+ std::map<uint64_t, int> key_mapper_;
EWebView* web_view_;
base::WeakPtrFactory<NotificationControllerEfl> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(NotificationControllerEfl);
};
-} //namespace
+} // namespace content
-#endif // NOTIFICATION_CONTROLLER_EFL_H
+#endif // NOTIFICATION_CONTROLLER_EFL_H
--- /dev/null
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef EWK_EFL_INTEGRATION_BROWSER_PASSWORD_MANAGER_PASSWORD_HELPER_EFL_H_
+#define EWK_EFL_INTEGRATION_BROWSER_PASSWORD_MANAGER_PASSWORD_HELPER_EFL_H_
+
+#if defined(TIZEN_AUTOFILL_SUPPORT)
+
+#include <vector>
+
+#include "base/callback.h"
+#include "base/memory/ref_counted.h"
+
+class GURL;
+
+namespace autofill {
+struct PasswordForm;
+} // namespace autofill
+
+namespace password_manager {
+class PasswordStore;
+} // namespace password_manager
+
+namespace password_helper {
+
+typedef base::Callback<void(
+ const std::vector<std::unique_ptr<autofill::PasswordForm>>& results)>
+ GetLoginsCallback;
+
+// Get all password forms from the password store.
+void GetLogins(const scoped_refptr<password_manager::PasswordStore>& store,
+ const GetLoginsCallback& callback);
+
+// Removes password form which is matched with |origin] from the password store.
+void RemoveLogin(const scoped_refptr<password_manager::PasswordStore>& store,
+ const GURL& origin);
+
+// Removes all password forms from the password store.
+void RemoveLogins(const scoped_refptr<password_manager::PasswordStore>& store);
+
+} // namespace password_helper
+
+#endif // TIZEN_AUTOFILL_SUPPORT
+#endif // EWK_EFL_INTEGRATION_BROWSER_PASSWORD_MANAGER_PASSWORD_HELPER_EFL_H_
--- /dev/null
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PAYMENT_DATA_H_
+#define PAYMENT_DATA_H_
+
+#include "browser/payments/payment_request_dialog_efl.h"
+#include "components/payments/payment_request.h"
+
+namespace payments {
+
+class PaymentData {
+ public:
+ PaymentData(PaymentRequestDialogEfl* dialog) {
+ dialog_ = dialog;
+ ResetFlags();
+ }
+
+ void ResetFlags() {
+ shipping_profile_selected_ = payer_phone_selected_ = payer_email_selected_ =
+ credit_card_selected_ = false;
+ }
+
+ bool IsPaymentDataReady() {
+ bool ready = credit_card_selected_;
+ if (dialog_->request_->spec()->request_shipping())
+ ready = ready && shipping_profile_selected_;
+ if (dialog_->request_->spec()->request_payer_phone())
+ ready = ready && payer_phone_selected_;
+ if (dialog_->request_->spec()->request_payer_email())
+ ready = ready && payer_email_selected_;
+ return ready;
+ }
+
+ void SetSelectedPhone(autofill::AutofillProfile* profile) {
+ dialog_->request_->state()->SetSelectedContactProfile(profile);
+ payer_phone_selected_ = true;
+ CheckAndEnablePayButton();
+ }
+
+ void SetSelectedEmail(autofill::AutofillProfile* profile) {
+ dialog_->request_->state()->SetSelectedContactProfile(profile);
+ payer_email_selected_ = true;
+ CheckAndEnablePayButton();
+ }
+
+ void SetSelectedShippingAddress(autofill::AutofillProfile* profile) {
+ dialog_->request_->state()->SetSelectedShippingProfile(profile);
+ shipping_profile_selected_ = true;
+ CheckAndEnablePayButton();
+ }
+
+ void SetSelectedCreditCard(autofill::CreditCard* card) {
+ dialog_->request_->state()->SetSelectedCreditCard(card);
+ credit_card_selected_ = true;
+ CheckAndEnablePayButton();
+ }
+
+ void SetSelectedShippingOption(const std::string& id) {
+ dialog_->request_->state()->SetSelectedShippingOption(id);
+ }
+
+ void CheckAndEnablePayButton() {
+ if (dialog_->pay_button_ && IsPaymentDataReady())
+ elm_object_disabled_set(dialog_->pay_button_, false);
+ }
+
+ private:
+ // Flags that are enabled when respective profiles are selected.
+ bool shipping_profile_selected_;
+ bool payer_phone_selected_;
+ bool payer_email_selected_;
+ bool credit_card_selected_;
+
+ PaymentRequestDialogEfl* dialog_;
+};
+
+} // namespace payments
+
+#endif // PAYMENT_DATA_H_
class PaymentRequestDelegateEfl : public PaymentRequestDelegate {
public:
explicit PaymentRequestDelegateEfl(content::WebContents* web_contents);
- ~PaymentRequestDelegateEfl() override {}
+ ~PaymentRequestDelegateEfl() override;
void ShowDialog(PaymentRequest* request) override;
void CloseDialog() override;
autofill::PersonalDataManager* GetPersonalDataManager() override;
+ const std::string& GetApplicationLocale() const override;
+
protected:
// Reference to the dialog so that we can satisfy calls to CloseDialog(). This
// reference is invalid once CloseDialog() has been called on it, because the
private:
// Not owned but outlives the PaymentRequest object that owns this.
content::WebContents* web_contents_;
+ const std::string app_locale_;
DISALLOW_COPY_AND_ASSIGN(PaymentRequestDelegateEfl);
};
#include <Elementary.h>
#include <Evas.h>
+#include <ecore-1/Ecore.h>
#include <string>
+#include "base/guid.h"
#include "base/macros.h"
+#include "browser/autofill/personal_data_manager_factory.h"
+#include "components/autofill/core/browser/autofill_country.h"
+#include "components/autofill/core/browser/autofill_experiments.h"
+#include "components/autofill/core/browser/autofill_metrics.h"
+#include "components/autofill/core/browser/autofill_profile.h"
+#include "components/autofill/core/browser/autofill_test_utils.h"
+#include "components/autofill/core/browser/field_types.h"
+#include "components/autofill/core/browser/form_structure.h"
+#include "components/autofill/core/browser/personal_data_manager_observer.h"
+#include "components/autofill/core/browser/webdata/autofill_table.h"
+#include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
+#include "components/autofill/core/common/autofill_clock.h"
+#include "components/autofill/core/common/autofill_constants.h"
+#include "components/autofill/core/common/autofill_pref_names.h"
+#include "components/autofill/core/common/autofill_switches.h"
+#include "components/autofill/core/common/form_data.h"
#include "components/payments/payment_request_dialog.h"
class EWebView;
namespace payments {
class PaymentRequest;
+class PaymentRequestDialogEfl;
+struct LayoutIdData;
+class PaymentData;
+
+enum ContextPopupItemType { TYPE_NONE = 0, MONTH, YEAR, BILLING_ADDR };
+
+struct CtxpopupItemData {
+ PaymentRequestDialogEfl* dialog;
+ Evas_Object* btn;
+ Evas_Object* ctxpopup;
+ std::string data;
+ ContextPopupItemType type;
+ std::string guid; // set only for type BILLING_ADDR
+};
+
+struct OrderSummaryItemData {
+ PaymentRequestDialogEfl* dialog;
+ std::string label;
+ std::string currency;
+ std::string value;
+ bool is_shipping_type;
+ int id;
+};
+
+struct AutofillGenlistItemData {
+ PaymentRequestDialogEfl* dialog;
+ Evas_Object* radio;
+ std::string data;
+ std::string guid;
+ int id;
+};
+
+struct ShippingOptionItemData {
+ PaymentRequestDialogEfl* dialog;
+ Evas_Object* radio;
+ std::string shipping_type;
+ std::string currency;
+ std::string value;
+ std::string option_id;
+ int id;
+ bool selected;
+};
+
+enum CreditCardType {
+ CARD_UNKNOWN = 0, // sad
+ CARD_VISA = 1, // if (number[0] == '4')
+ CARD_AMEX = 2, // first_two_digits == 34 || first_two_digits == 37
+ CARD_MASTERCARD = 3 // first_two_digits >= 51 && first_two_digits <= 55
+};
+
+enum LayoutId {
+ LAYOUT_NONE = 0,
+ LAYOUT_ORDER_SUMMARY = 1,
+ LAYOUT_SHIPPING_ADDR = 2,
+ LAYOUT_SHIPPING_OPTION = 3,
+ LAYOUT_PAYMENT_METHOD = 4,
+ LAYOUT_PHONE_NUMBER = 5,
+ LAYOUT_EMAIL_ADDR = 6
+};
+
+enum ShippingAddressFieldType {
+ COUNTRY = 1,
+ NAME = 2,
+ ORGANISATION = 3,
+ STREETADDRESS = 4,
+ POSTALTOWN = 5,
+ COUNTY = 6,
+ POSTCODE = 7,
+ PHONENUMBER = 8,
+ NONE = 9
+};
+
+struct ItemData {
+ PaymentRequestDialogEfl* dialog;
+ ShippingAddressFieldType type;
+ Evas_Object* dropdown;
+ Evas_Object* entry;
+};
class PaymentRequestDialogEfl : public PaymentRequestDialog {
public:
void ShowDialog() override;
void CloseDialog() override;
+
+ void InitializeOrResetData();
+
+ // Deletes popup and conformant
void Close();
+ // Layout parts of main layout
+ Evas_Object* AddHeaderLayout();
+ Evas_Object* AddOrderSummaryLayout();
+ Evas_Object* AddShippingAddressLayout();
+ Evas_Object* AddShippingOptionLayout();
+ Evas_Object* AddPaymentMethodLayout();
+ Evas_Object* AddPhoneNumberLayout();
+ Evas_Object* AddEmailAddressLayout();
+
+ // Child layouts of main layouts
+ void AddCardInputLayout();
+ void ShippingAddressInputLayout();
+ void ContactPhoneNumberInputLayout();
+ void ContactEmailAddressInputLayout();
+ void EnablePayButton();
+ void ShowCvcInputLayout();
+ void ShowPaymentProcessingPopup();
+
+ void GetCardNumberFromSelectedItem(const std::string& number,
+ std::string& phone_number_to_display);
+ void AppendItemToContextPopup(PaymentRequestDialogEfl* dialog,
+ Evas_Object* btn,
+ Evas_Object* ctxpopup,
+ std::string data,
+ ContextPopupItemType type = TYPE_NONE,
+ std::string guid = std::string());
+ void ShippingAppendItemToContextPopup(PaymentRequestDialogEfl* dialog,
+ Evas_Object* btn,
+ Evas_Object* ctxpopup,
+ std::string data);
+ void ClearCtxpopupDataList();
+ void ClearAllDataLists();
+ CreditCardType CheckCreditCardType(const char* number);
+ CreditCardType CheckCreditCardTypeFromDisplayStr(const char* display_str);
+ Evas_Object* GetLayoutObjForLayoutId(LayoutId id);
+ void ShrinkLayoutForLayoutId(LayoutId id);
+ void ExpandLayoutForLayoutId(LayoutId id);
+ void AddExpandAndShrinkButtons(Evas_Object* layout,
+ LayoutIdData* layout_data);
+ void UpdateOrderTotalValueForShippingOption(void* data);
+ void SetCountries();
+
Evas_Object* AddButton(Evas_Object* layout,
const std::string& text,
const std::string& part,
Evas_Smart_Cb callback);
+ Evas_Object* AddCustomButton(Evas_Object* layout,
+ const std::string& text,
+ const std::string& part,
+ Evas_Smart_Cb callback);
+ void AddOverlayButton(const std::string& part, LayoutIdData* data);
+ Evas_Object* AddDropDownButton(const std::string& text,
+ const std::string& part);
Evas_Object* AddCloseButton(Evas_Object* layout,
const std::string& part,
Evas_Smart_Cb callback);
- static void CancelButtonCallback(void* data,
- Evas_Object* obj,
- void* event_info);
- static void CloseButtonCallback(void* data,
+ autofill::PersonalDataManager* GetPersonalDataManager() const {
+ return personal_data_manager_;
+ }
+
+ // Callbacks
+ static Eina_Bool HideProgressCb(void* data);
+ static Eina_Bool ProgressCompleteCb(void* data);
+ static void CancelShippingAddressButtonCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void FinishedShippingAddressButtonCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void CancelButtonCb(void* data, Evas_Object* obj, void* event_info);
+ static void CancelCreditCardButtonCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void DetailsButtonCb(void* data, Evas_Object* obj, void* event_info);
+ static void AddCardCb(void* data, Evas_Object* obj, void* event_info);
+ static void LayoutExpandButtonClickedCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void LayoutShrinkButtonClickedCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void OverlayButtonClickedCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void PayButtonCb(void* data, Evas_Object* obj, void* event_info);
+ static void OkButtonCb(void* data, Evas_Object* obj, void* event_info);
+ static void CreditCardDoneButtonCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void ShowCtxPopupMonthCb(void* data,
Evas_Object* obj,
void* event_info);
- static void AddCardCallback(void* data, Evas_Object* obj, void* event_info);
- static void PayButtonCallback(void* data, Evas_Object* obj, void* event_info);
- static void OkButtonCallback(void* data, Evas_Object* obj, void* event_info);
+ static void ShowCtxPopupYearCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void ShowCtxPopupBillCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void ShowCtxPopupCountryRegionCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void ValidateCardNumberCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void ShippingNameCb(void* data, Evas_Object* obj, void* event_info);
+ static void ShippingAddressFieldValueChangedCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void ValidateCardNameCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void AddCardNameCb(void* data, Evas_Object* obj, void* event_info);
+ static void AddCardNumberCb(void* data, Evas_Object* obj, void* event_info);
+ static void CtxpopupItemCb(void* data, Evas_Object* obj, void* event_info);
+ static void ShippingCtxpopupItemCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static char* ShippingAddressInputTextGetCb(void* data,
+ Evas_Object* obj,
+ const char* part);
+ static Evas_Object* ShippingAddressInputContentGetCb(void* data,
+ Evas_Object* obj,
+ const char* part);
+ static void ItemSelectedCb(void* data, Evas_Object* obj, void* event_info);
+ static void DismissedCb(void* data, Evas_Object* obj, void* event_info);
+ static void AddPhoneNumberCb(void* data, Evas_Object* obj, void* event_info);
+ static void AddEmailAddressCb(void* data, Evas_Object* obj, void* event_info);
+ static void AddContactInfoCb(void* data, Evas_Object* obj, void* event_info);
+ static void AddShippingAddressInfoCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void CancelAddPhoneNumberButtonCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void FinishedAddPhoneNumberButtonCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void CancelAddEmailAddressButtonCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void FinishedAddEmailAddressButtonCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+
+ static void CvcEntryChangedCb(void* data, Evas_Object* obj, void* event_info);
+ static void CancelCvcButtonCb(void* data, Evas_Object* obj, void* event_info);
+ static void ConfirmCvcButtonCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+
+ static void CreditCardGenlistItemClickCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void PhoneGenlistItemClickCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void EmailGenlistItemClickCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static Evas_Object* ContactsContentGetCb(void* data,
+ Evas_Object* obj,
+ const char* part);
+ static Evas_Object* ShippingContentGetCb(void* data,
+ Evas_Object* obj,
+ const char* part);
+ static Eina_Bool ContactsDbSyncCb(void* data);
+ static Eina_Bool ShippingDbSyncCb(void* data);
+ static Evas_Object* CreditCardContentGetCb(void* data,
+ Evas_Object* obj,
+ const char* part);
+ static Eina_Bool CreditCardDbSyncCb(void* data);
+ static char* OrderSummaryTextGetCb(void* data,
+ Evas_Object* obj,
+ const char* part);
+ static void OrderSummaryGenlistItemClickCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static char* ShippingOptionTextGetCb(void* data,
+ Evas_Object* obj,
+ const char* part);
+ static void ShippingOptionGenlistItemClickCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static void ShippingAddressItemClickCb(void* data,
+ Evas_Object* obj,
+ void* event_info);
+ static Evas_Object* ShippingOptionContentGetCb(void* data,
+ Evas_Object* obj,
+ const char* part);
private:
PaymentRequest* request_;
EWebView* web_view_;
- Evas_Object* native_view_;
+ Evas_Object* conformant_;
Evas_Object* popup_;
+ friend class PaymentData;
+
+ typedef struct CardDetailsAdded {
+ CardDetailsAdded() { ResetValues(); }
+ void ResetValues() {
+ card_name_added_ = card_number_added_ = card_month_added_ =
+ card_year_added_ = card_billaddr_added_ = false;
+ }
+ bool IsAllValuesAdded() {
+ return card_name_added_ && card_number_added_ && card_month_added_ &&
+ card_year_added_ && card_billaddr_added_;
+ }
+ bool card_name_added_;
+ bool card_number_added_;
+ bool card_month_added_;
+ bool card_year_added_;
+ bool card_billaddr_added_;
+ };
+
+ typedef struct ContactInfoDetails {
+ std::string contact_phone_number_;
+ std::string contact_email_address_;
+ std::string contact_name_;
+ };
+
+ struct ShippingAddressData {
+ std::string shippingCountry;
+ std::string shippingName;
+ std::string shippingOrganisation;
+ std::string shippingStreetAddress;
+ std::string shippingPostalTown;
+ std::string shippingCounty;
+ std::string shippingPostcode;
+ std::string shippingPhonenumber;
+ };
+
+ CreditCardType card_type_;
+ CardDetailsAdded card_details_added_;
+ autofill::CreditCard credit_card_;
+ std::unique_ptr<PaymentData> payment_data_;
+ std::unique_ptr<ContactInfoDetails> contact_info_details_;
+ std::unique_ptr<ShippingAddressData> shipping_address_data_;
+ std::unique_ptr<autofill::AutofillProfile> contact_info_profile_;
+ std::unique_ptr<autofill::AutofillProfile> shipping_info_profile_;
+
+ using CountryVector = std::vector<std::unique_ptr<autofill::AutofillCountry>>;
+ CountryVector countries_;
+
+ // Data lists
+ std::vector<AutofillGenlistItemData*> credit_card_number_data_list_;
+ std::vector<AutofillGenlistItemData*> phone_number_data_list_;
+ std::vector<AutofillGenlistItemData*> shipping_address_data_list_;
+ std::vector<AutofillGenlistItemData*> email_address_data_list_;
+ std::vector<ShippingOptionItemData*> shipping_option_data_list_;
+ std::vector<OrderSummaryItemData*> order_summary_data_list_;
+ std::vector<CtxpopupItemData*> ctxpopup_data_list_;
+ std::vector<ItemData*> item_data_list_;
+ std::vector<LayoutIdData*> layout_id_data_list_;
+
+ // Autofill Profiles and Credit Card list
+ std::vector<autofill::CreditCard*> credit_card_list_;
+ std::vector<autofill::AutofillProfile*> web_contact_info_profiles_list_;
+ std::vector<autofill::AutofillProfile*> contact_info_profiles_list_;
+ std::vector<autofill::AutofillProfile*> web_shipping_data_profile_list_;
+ std::vector<autofill::AutofillProfile*> shipping_data_profile_list_;
+
+ // Layouts
+ Evas_Object* main_layout_;
+ Evas_Object* header_layout_;
+ Evas_Object* container_layout_;
+ Evas_Object* order_summary_layout_;
+ Evas_Object* shipping_address_layout_;
+ Evas_Object* shipping_address_input_layout_;
+ Evas_Object* shipping_option_layout_;
+ Evas_Object* payment_method_layout_;
+ Evas_Object* contact_phone_number_input_layout_;
+ Evas_Object* contact_email_address_input_layout_;
+ Evas_Object* contact_phone_number_layout_;
+ Evas_Object* contact_email_address_layout_;
+ Evas_Object* card_input_layout_;
+ Evas_Object* cvc_layout_;
+ Evas_Object* progress_layout_;
+
+ // Entries
+ Evas_Object* card_name_entry_;
+ Evas_Object* card_number_entry_;
+ Evas_Object* contact_phone_number_entry_;
+ Evas_Object* contact_email_address_entry_;
+ Evas_Object* shipping_name_entry_;
+ Evas_Object* shipping_street_entry_;
+ Evas_Object* shipping_postaltown_entry_;
+ Evas_Object* shipping_postcode_entry_;
+ Evas_Object* shipping_phone_entry_;
+ Evas_Object* cvc_entry_;
+
+ // Genlists
+ Evas_Object* credit_card_genlist_;
+ Evas_Object* order_summary_genlist_;
+ Evas_Object* contact_genlist_;
+ Evas_Object* shipping_genlist_;
+ Evas_Object* shipping_input_genlist_;
+
+ // Radio group
+ Evas_Object* credit_card_radio_group_;
+ Evas_Object* contact_radio_group_;
+ Evas_Object* shipping_radio_group_;
+ Evas_Object* shipping_options_radio_group_;
+ Evas_Object* order_summary_radio_group_;
+
+ // Buttons
+ Evas_Object* details_button_;
+ Evas_Object* pay_button_;
+
+ LayoutId curr_expanded_layout_id_;
+ autofill::PersonalDataManager* personal_data_manager_;
+ int card_number_length_;
+ bool main_layout_expanded_;
+
+ // edj paths
+ base::FilePath payment_edj_path_;
+ base::FilePath add_email_address_path_;
+ base::FilePath add_phone_number_path_;
+ base::FilePath cvc_edj_path_;
+
+ // Ecore timers
+ Ecore_Timer* db_sync_timer_;
+ Ecore_Timer* progress_timer_;
+ Ecore_Timer* payment_complete_timer_;
+
DISALLOW_COPY_AND_ASSIGN(PaymentRequestDialogEfl);
};
controller()->Resume();
}
+ /* LCOV_EXCL_START */
void Ignore() {
controller()->CancelAndIgnore();
}
+ /* LCOV_EXCL_STOP */
private:
net::URLRequest& request_;
Evas_Object* obj,
const char* emission,
const char* source);
- static Eina_Bool EcoreEventFilterCallback(void* data,
- void* loop_data,
- int type,
- void* event);
-
- Ecore_Event_Filter* ecore_events_filter_;
struct FormNavigatorInfo {
int count;
int index;
private:
static Evas_Object* IconGetCallback(void*, Evas_Object*, const char*);
+ static void ShowPickerDoneCallback(void* data,
+ Evas_Object*,
+ const char*,
+ const char*);
void DestroyRadioList();
#if defined(TIZEN_ATK_SUPPORT)
void AddAtkObject();
Elm_Access_Action_Info* action_info);
#endif
+ static Eina_Bool EcoreEventFilterCallback(void* data,
+ void* loop_data,
+ int type,
+ void* event);
+
+ Ecore_Event_Filter* ecore_events_filter_;
+
Evas_Object* radio_main_;
#if defined(TIZEN_ATK_SUPPORT)
Evas_Object* prev_button_;
protected:
explicit SelectPickerBase(EWebView* web_view,
int selected_index,
- bool is_multiple_selection);
+ bool is_multiple_selection,
+ Elm_Genlist_Item_Scrollto_Type scrollto_type);
virtual const char* GetItemStyle() const;
virtual void Init(const std::vector<content::MenuItem>& items,
const gfx::Rect& bounds) = 0;
int selected_index_;
bool is_multiple_selection_;
Elm_Genlist_Item_Class* item_class_;
+ Elm_Genlist_Item_Scrollto_Type scrollto_type_;
#if defined(TIZEN_ATK_SUPPORT)
Elm_Object_Item* first_item_;
Elm_Object_Item* selected_item_;
#endif
-
private:
static void ItemSelectedCallback(void*, Evas_Object*, void*);
static void MenuItemActivatedCallback(void*, Evas_Object*, void*);
static void MenuItemDeactivatedCallback(void*, Evas_Object*, void*);
+ static void Resize(void* data, Evas* e, Evas_Object* obj, void* event_info);
void InitializeItemClass();
void InitializeGroupClass();
void DestroyPopupList();
+ void ScrollSelectedItemTo();
Elm_Genlist_Item_Class* group_class_;
std::vector<GenlistCallbackData*> select_picker_data_;
#define EWK_EFL_INTEGRATION_BROWSER_SELECT_PICKER_SELECT_PICKER_TV_H_
#include "browser/select_picker/form_navigable_picker.h"
+#include "ui/gfx/geometry/point.h"
class SelectPickerEflTv : public FormNavigablePicker {
public:
const gfx::Rect& bounds) override;
void CreateAndPopulatePopupList(
const std::vector<content::MenuItem>& items) override;
+
+ private:
+ void CoordinatePopupPosition(const gfx::Point& origin);
};
#endif // EWK_EFL_INTEGRATION_BROWSER_SELECT_PICKER_SELECT_PICKER_TV_H_
~GenlistCallbackData();
void SetSelection(bool selected);
- void ScrollToTop();
+ void ScrollTo(Elm_Genlist_Item_Scrollto_Type type);
int GetIndex() const;
const base::string16& GetLabel() const;
#if defined(TIZEN_ATK_SUPPORT)
protected:
void Init(const std::vector<content::MenuItem>& items,
const gfx::Rect& bounds) override;
+ void ItemSelected(GenlistCallbackData* data, void* event_info) override;
void CreateAndPopulatePopupList(
const std::vector<content::MenuItem>& items) override;
+
+ private:
+#if defined(OS_TIZEN)
+ static void HWBackKeyCallback(void* data, Evas_Object* obj, void* event_info);
+#endif
};
#endif // EWK_EFL_INTEGRATION_BROWSER_SELECT_PICKER_SELECT_PICKER_WEARABLE_H_
--- /dev/null
+// Copyright (c) 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BROWSER_WEBUI_VERSION_UI_EFL_H_
+#define BROWSER_WEBUI_VERSION_UI_EFL_H_
+
+#include "base/macros.h"
+#include "content/public/browser/web_ui_controller.h"
+
+// The WebUI handler for chrome://version.
+class VersionUIEfl : public content::WebUIController {
+ public:
+ explicit VersionUIEfl(content::WebUI* web_ui);
+ ~VersionUIEfl() override;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VersionUIEfl);
+};
+
+#endif // BROWSER_WEBUI_VERSION_UI_EFL_H_
--- /dev/null
+// Copyright (c) 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BROWSER_WEBUI_WEB_UI_CONTROLLER_FACTORY_EFL_H_
+#define BROWSER_WEBUI_WEB_UI_CONTROLLER_FACTORY_EFL_H_
+
+#include "base/memory/singleton.h"
+#include "content/public/browser/web_ui.h"
+#include "content/public/browser/web_ui_controller_factory.h"
+
+class WebUIControllerFactoryEfl : public content::WebUIControllerFactory {
+ public:
+ content::WebUI::TypeID GetWebUIType(content::BrowserContext* browser_context,
+ const GURL& url) const override;
+ bool UseWebUIForURL(content::BrowserContext* browser_context,
+ const GURL& url) const override;
+ bool UseWebUIBindingsForURL(content::BrowserContext* browser_context,
+ const GURL& url) const override;
+ content::WebUIController* CreateWebUIControllerForURL(
+ content::WebUI* web_ui,
+ const GURL& url) const override;
+
+ static WebUIControllerFactoryEfl* GetInstance();
+
+ protected:
+ WebUIControllerFactoryEfl();
+ ~WebUIControllerFactoryEfl() override;
+
+ private:
+ friend struct base::DefaultSingletonTraits<WebUIControllerFactoryEfl>;
+
+ DISALLOW_COPY_AND_ASSIGN(WebUIControllerFactoryEfl);
+};
+
+#endif // BROWSER_WEBUI_WEB_UI_CONTROLLER_FACTORY_EFL_H_
std::unique_ptr<ZoomLevelDelegate> CreateZoomLevelDelegate(
const base::FilePath& partition_path);
bool IsOffTheRecord() const override;
+#if defined(OS_TIZEN)
+ void SetOffTheRecord(bool incognito) { incognito_ = incognito; }
+#endif
URLRequestContextGetterEfl* GetRequestContextEfl() {
return request_context_getter_.get();
}
static void ReadCertificateAndAdd(const std::string* certificate_path);
#if defined(OS_TIZEN_TV_PRODUCT)
- static void SetEMPCertificatePathOnFileThread(
+ static void SetEMPCertificatePathOnIOThread(
const std::string* emp_ca_path,
const std::string* default_ca_path);
static bool ReadEMPCertificateAndAdd(const std::string* certificate_path);
base::ScopedTempDir temp_dir_;
bool temp_dir_creation_attempted_;
std::unique_ptr<PrefService> user_pref_service_;
- const bool incognito_;
+ bool incognito_;
std::unique_ptr<net::NetworkDelegate> network_delegate_for_getter_;
std::unique_ptr<SSLHostStateDelegateEfl> ssl_host_state_delegate_;
std::unique_ptr<PermissionManager> permission_manager_;
-// Copyright 2014 Samsung Electronics. All rights reserved.
+// Copyright 2016 Samsung Electronics. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
public:
static void Init(int argc, char *argv[]);
- static void Shutdown() {};
+ static void Shutdown();
// Get default set of arguments for Tizen port of chromium.
static content::MainFunctionParams GetDefaultPortParams();
// chromium process type (browser, renderer, zygote, etc).
static void AppendProcessSpecificArgs(base::CommandLine& command_line);
- static void AppendSwitch(std::string);
-
static void AppendMemoryOptimizationSwitches(base::CommandLine* command_line);
- // Chromium content API expects const char**, but EWK API provides
- // us only with char*
- static const char** GetArgv() { return (const char **)argv_; };
+ // Do not call them apart from ContentMainRunner::Initialize() since they
+ // will become invalid after that.
+ static const char** GetArgv() { return const_cast<const char**>(argv_); };
static int GetArgc() { return argc_; };
-private:
+ private:
static void AppendUserArgs(base::CommandLine& command_line);
- // Original process argument array provided thorugh EWK API, unfortunately
- // chromium has a nasty habit of messig them up. Please do not rely on those
+ // Original process argument array provided through EWK API, unfortunately
+ // chromium has a nasty habit of messing them up. Please do not rely on those
// values, use original_arguments_ instead.
static int argc_;
static char** argv_;
// Original arguments passed by the user from command line. Added to all
// chromium processes. They should remain unchanged until engine shutdown.
- typedef std::vector<std::string> ArgumentVector;
+ typedef std::vector<char*> ArgumentVector;
static ArgumentVector original_arguments_;
static bool is_initialized_;
base::StringPiece GetDataResource(
int resource_id,
ui::ScaleFactor scale_factor) const override;
+ base::RefCountedMemory* GetDataResourceBytes(int resource_id) const override;
bool CanSendWhileSwappedOut(const IPC::Message* message) override;
void AddPepperPlugins(
std::vector<content::PepperPluginInfo>* plugins) override;
// Allow Trusted Pepper Plugins to be loaded in WebBrowser/ubrowser,
// which is used for development purposes.
CONTENT_EXPORT extern const char kEnableTrustedPepperPlugins[];
+
+// Additional Trusted Pepper Plugins search paths.
+// Useful for development purposes. Multiple files can be used by separating
+// them with a semicolon (;).
+CONTENT_EXPORT extern const char kTrustedPepperPluginsSearchPaths[];
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
-// Copyright 2015 Samsung Electronics. All rights reserved.
+// Copyright 2015-2016 Samsung Electronics. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ipc/ipc_channel_handle.h"
#include "ipc_message_start_ewk.h"
#include "private/ewk_hit_test_private.h"
-#include "private/ewk_text_style_private.h"
#include "private/ewk_wrt_private.h"
#include "public/ewk_hit_test_internal.h"
#include "public/ewk_view_internal.h"
IPC_STRUCT_TRAITS_MEMBER(shrinks_viewport_content_to_fit)
IPC_STRUCT_TRAITS_MEMBER(javascript_can_open_windows_automatically_ewk)
IPC_STRUCT_TRAITS_MEMBER(hw_keyboard_connected)
+ IPC_STRUCT_TRAITS_MEMBER(link_effect_enabled)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(Hit_Test_Params::Node_Data)
IPC_STRUCT_TRAITS_MEMBER(cache_max_dead_capacity)
IPC_STRUCT_TRAITS_END()
-IPC_STRUCT_TRAITS_BEGIN(SelectionStylePrams)
- IPC_STRUCT_TRAITS_MEMBER(underline_state)
- IPC_STRUCT_TRAITS_MEMBER(italic_state)
- IPC_STRUCT_TRAITS_MEMBER(bold_state)
- IPC_STRUCT_TRAITS_MEMBER(bg_color)
- IPC_STRUCT_TRAITS_MEMBER(color)
- IPC_STRUCT_TRAITS_MEMBER(font_size)
- IPC_STRUCT_TRAITS_MEMBER(order_list_state)
- IPC_STRUCT_TRAITS_MEMBER(un_order_list_state)
- IPC_STRUCT_TRAITS_MEMBER(text_align_center_state)
- IPC_STRUCT_TRAITS_MEMBER(text_align_left_state)
- IPC_STRUCT_TRAITS_MEMBER(text_align_right_state)
- IPC_STRUCT_TRAITS_MEMBER(text_align_full_state)
- IPC_STRUCT_TRAITS_MEMBER(has_composition)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(SelectionColor)
- IPC_STRUCT_TRAITS_MEMBER(r)
- IPC_STRUCT_TRAITS_MEMBER(g)
- IPC_STRUCT_TRAITS_MEMBER(b)
- IPC_STRUCT_TRAITS_MEMBER(a)
-IPC_STRUCT_TRAITS_END()
-
IPC_ENUM_TRAITS(blink::WebNavigationPolicy)
IPC_ENUM_TRAITS(blink::WebNavigationType)
int /* callback id */)
IPC_MESSAGE_ROUTED3(EwkViewMsg_DoHitTest,
- int, /* horizontal position */
- int, /* vertical position */
- Ewk_Hit_Test_Mode /* mode */)
+ int, /* horizontal position */
+ int, /* vertical position */
+ Ewk_Hit_Test_Mode /* mode */)
IPC_MESSAGE_ROUTED4(EwkViewMsg_DoHitTestAsync,
int, /* horizontal position */
IPC_MESSAGE_ROUTED0(EwkViewMsg_SuspendScheduledTask)
IPC_MESSAGE_ROUTED0(EwkViewMsg_ResumeScheduledTasks)
-IPC_MESSAGE_ROUTED0(EwkViewMsg_GetSelectionStyle)
-
IPC_MESSAGE_ROUTED1(EwkViewMsg_SetMainFrameScrollbarVisible, bool /* visible */)
IPC_MESSAGE_ROUTED1(EwkViewMsg_GetMainFrameScrollbarVisible,
gfx::Point, /* offset */
bool /* handled */)
+IPC_MESSAGE_ROUTED0(EwkViewMsg_SuspendNetworkLoading)
+IPC_MESSAGE_ROUTED0(EwkViewMsg_ResumeNetworkLoading)
+
IPC_ENUM_TRAITS(blink::WebScrollbar::Orientation)
IPC_MESSAGE_ROUTED2(EwkViewHostMsg_ScrollbarThumbPartFocusChanged,
blink::WebScrollbar::Orientation, /* orientation */
IPC_MESSAGE_ROUTED0(EwkHostMsg_RunArrowScroll);
-IPC_MESSAGE_ROUTED2(EwkViewMsg_RequestHitTestForMouseLongPress,
+IPC_MESSAGE_ROUTED3(EwkViewMsg_RequestHitTestForMouseLongPress,
+ int, /* render_id */
int, /* view x */
int /* view y */)
IPC_MESSAGE_ROUTED1(EwkViewMsg_SetFloatVideoWindowState, bool /* Enable */)
-IPC_MESSAGE_CONTROL4(EwkViewHostMsg_RequestHitTestForMouseLongPressACK,
+IPC_MESSAGE_CONTROL5(EwkViewHostMsg_RequestHitTestForMouseLongPressACK,
int, /* render view id */
GURL, /* hit url */
+ int, /* render id */
int, /* view x */
int /* view y */)
IPC_MESSAGE_ROUTED1(EwkViewMsg_PlainTextGet,
int /* callback id */)
-IPC_MESSAGE_ROUTED1(EwkViewMsg_SelectionTextStyleState,
- SelectionStylePrams /* params */)
-
IPC_MESSAGE_ROUTED1(EwkSettingsMsg_UpdateWebKitPreferencesEfl, WebPreferencesEfl)
-IPC_MESSAGE_ROUTED2(EwkHostMsg_HandleTapGestureWithContext,
- bool /* is_link */,
+IPC_MESSAGE_ROUTED1(EwkHostMsg_HandleTapGestureWithContext,
bool /* is_editable_content */)
+IPC_MESSAGE_ROUTED0(EwkHostMsg_PlayLinkEffect)
+
IPC_MESSAGE_ROUTED2(EwkHostMsg_PlainTextGetContents,
std::string, /* contentText */
int /* callback id */)
int, /* blue */
int /* alpha */)
+IPC_MESSAGE_ROUTED1(EwkViewMsg_GetBackgroundColor, int /* callback id */)
+
+IPC_MESSAGE_ROUTED5(EwkHostMsg_GetBackgroundColor,
+ int, /* red */
+ int, /* green */
+ int, /* blue */
+ int, /* alpha */
+ int /* callback id */)
+
// Notifies the browser to form submit
IPC_MESSAGE_ROUTED1(EwkHostMsg_FormSubmit, GURL)
IPC_MESSAGE_ROUTED1(EwkViewMsg_SetVideoHole, bool /* Enable */)
#endif
+#if defined(TIZEN_CANVAS_HOLE)
+IPC_MESSAGE_ROUTED1(EwkViewMsg_SetCanvasHole,
+ std::string /* url */)
+#endif
+
IPC_SYNC_MESSAGE_CONTROL1_1(EwkHostMsg_DecideNavigationPolicy,
NavigationPolicyParams,
bool /*handled*/)
IPC_MESSAGE_ROUTED0(EwkHostMsg_DidNotAllowScript)
+IPC_MESSAGE_ROUTED1(EwkViewMsg_IsVideoPlaying, int /* calback id */)
+
+IPC_MESSAGE_ROUTED2(EwkHostMsg_IsVideoPlaying,
+ bool, /* isplaying */
+ int /* calback id */)
+
IPC_MESSAGE_ROUTED0(EwkViewMsg_QueryNumberFieldAttributes)
IPC_MESSAGE_ROUTED2(EwkHostMsg_DidChangeNumberFieldAttributes,
bool /* is_minimum_negative*/,
IPC_MESSAGE_ROUTED0(EwkViewMsg_QueryInputType)
IPC_MESSAGE_ROUTED1(EwkHostMsg_DidChangeInputType, bool /* is_password_input */)
+
+#if defined(OS_TIZEN_TV_PRODUCT)
+IPC_MESSAGE_ROUTED0(EwkViewMsg_Play360Video)
+IPC_MESSAGE_ROUTED0(EwkViewMsg_Pause360Video)
+IPC_MESSAGE_ROUTED1(EwkViewMsg_360VideoDuration, int /* calback id */)
+IPC_MESSAGE_ROUTED1(EwkViewMsg_360VideoCurrentTime, int /* calback id */)
+IPC_MESSAGE_ROUTED1(EwkViewMsg_Set360VideoCurrentTime,
+ double /* current time */)
+IPC_MESSAGE_ROUTED2(EwkHostMsg_360VideoDuration,
+ double, /* duration */
+ int /* calback id */)
+IPC_MESSAGE_ROUTED2(EwkHostMsg_360VideoCurrentTime,
+ double, /* current time */
+ int /* calback id */)
+IPC_MESSAGE_ROUTED1(EwkViewMsg_SetPreferTextLang, std::string /*prefer lang*/)
+#endif
#include "base/macros.h"
#include "base/files/file_path.h"
#include "content/public/common/pepper_plugin_info.h"
+#include "url/gurl.h"
namespace base {
template <typename T> struct DefaultSingletonTraits;
void GetPlugins(std::vector<content::PepperPluginInfo>* plugins) const;
// Searches cached pepper plugins whether there is plugin which supports
- // given |mime_type|.
+ // given |mime_type| or |url|. If |mime_type| is empty, method tries to find
+ // plugin basing on |url| extension.
//
// If plugin was found function returns true and sets |found_plugin|
// information for plugin found. Otherwise function returns false and
- // doesn't touch |found_plugin| agrument
+ // doesn't touch |found_plugin| argument.
//
// |found_plugin| must be *non-null* pointer
- bool FindPlugin(const std::string& mime_type,
+ bool FindPlugin(std::string mime_type,
+ const GURL& url,
content::PepperPluginInfo* found_plugin) const;
private:
// Default user agent
std::string DefaultUserAgent() const;
+ // Get chromium version number
+ std::string GetVersionNumber() const { return CHROMIUM_VERSION; }
// E.g. "Chrome/a.b.c.d"
std::string VersionForUserAgent() const;
// OS type. E.g. "Windows", "Linux", "FreeBSD", ...
IsMobileProfile() || IsWearableProfile() ? true : false;
bool javascript_can_open_windows_automatically_ewk = true;
bool hw_keyboard_connected = false;
+ bool link_effect_enabled = true;
};
#endif // WEB_PREFERENCES_EFL_H
#include "net/cookies/cookie_options.h"
#include "net/cookies/cookie_util.h"
#include "public/ewk_cookie_manager.h"
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(TIZEN_DESKTOP_SUPPORT)
+#include "public/ewk_cookie_manager_product.h"
+#endif
#include "url/gurl.h"
namespace content {
bool IsFileSchemeCookiesAllowed();
void SetAcceptFileSchemeCookies(bool accept);
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(TIZEN_DESKTOP_SUPPORT)
+ void SetCookiesChangedCallback(Ewk_Cookie_Manager_Changes_Watch_Cb callback,
+ void* data);
+#endif
+
private:
friend class base::RefCountedThreadSafe<CookieManager>;
struct EwkGetHostCallback;
void DeleteCookiesOnIOThread(const std::string& url,
const std::string& cookie_name);
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(TIZEN_DESKTOP_SUPPORT)
+ void SetCookiesChangedCallbackOnIOThread(
+ Ewk_Cookie_Manager_Changes_Watch_Cb callback,
+ void* data);
+#endif
+
bool AllowCookies(const GURL& url,
const GURL& first_party_url,
bool setting_cookie);
--- /dev/null
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMIUM_IMPL_NET_URL_REQUEST_DVB_PROTOCOL_HANDLER_H_
+#define CHROMIUM_IMPL_NET_URL_REQUEST_DVB_PROTOCOL_HANDLER_H_
+
+#include "base/macros.h"
+#include "net/url_request/url_request_job_factory.h"
+
+namespace net {
+
+class URLRequestJob;
+
+// Implements a ProtocolHandler for Dvb jobs.
+class DvbProtocolHandler: public URLRequestJobFactory::ProtocolHandler {
+ public:
+ DvbProtocolHandler() = default;
+ URLRequestJob* MaybeCreateJob(
+ URLRequest* request,
+ NetworkDelegate* network_delegate) const override;
+ bool IsSafeRedirectTarget(const GURL& location) const override;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DvbProtocolHandler);
+};
+} // namespace net
+
+#endif // CHROMIUM_IMPL_NET_URL_REQUEST_DVB_PROTOCOL_HANDLER_H_
#include "base/memory/singleton.h"
+class EWebView;
+
// This singleton class initializes atk-bridge and
// registers an implementation of AtkUtil class.
// Global class that every accessible application
class EWebAccessibilityUtil {
public:
static EWebAccessibilityUtil* GetInstance();
- void ToggleBrowserAccessibility(bool mode);
+ void ToggleBrowserAccessibility(bool mode, EWebView* ewebview);
#if defined(TIZEN_ATK_FEATURE_VD)
bool IsDeactivatedByApp() const { return deactivated_by_app_; }
- void Deactivate(bool deactivated) { deactivated_by_app_ = deactivated; }
+ void Deactivate(bool deactivated);
#endif
private:
namespace content {
class BrowserContextEfl;
+struct LocalStorageUsageInfo;
}
class EWebContextNotificationCallback {
bool HasShowCallback() const { return show_cb_ != nullptr; }
bool HasCancelCallback() const { return cancel_cb_ != nullptr; }
+ /* LCOV_EXCL_START */
bool RunShowCallback(Ewk_Notification* request) {
if (context_ && HasShowCallback()) {
show_cb_(context_, request, user_data_);
}
return false;
}
+ /* LCOV_EXCL_STOP */
private:
Ewk_Context* context_;
void* user_data_;
};
-#if defined(OS_TIZEN_TV_PRODUCT)
-class EwkCheckAccessiblePathCallback {
- public:
- EwkCheckAccessiblePathCallback(
- Ewk_Context_Check_Accessible_Path_Callback callback,
- void* user_data)
- : callback_(callback), user_data_(user_data) {}
- bool TriggerCallback(const std::string& url_spec,
- const std::string& tizen_app_id) const;
-
- private:
- Ewk_Context_Check_Accessible_Path_Callback callback_;
- void* user_data_;
-};
-#endif
-
class EWebContext {
public:
content::BrowserContextEfl* browser_context() const { return browser_context_.get(); }
const GURL& url,
Ewk_Web_Application_Cache_Usage_For_Origin_Get_Callback callback,
void* user_data);
+ void GetLocalStorageUsageForOrigin(
+ const GURL& origin,
+ Ewk_Web_Storage_Usage_Get_Callback callback,
+ void* user_data);
void GetAllOriginsWithWebDB(Ewk_Web_Database_Origins_Get_Callback callback, void* user_data);
void WebDBDelete(const GURL& host);
+ void GetWebDBUsageForOrigin(const GURL& origin,
+ Ewk_Web_Database_Usage_Get_Callback callback,
+ void* user_data);
void IndexedDBDelete();
void WebStorageDelete();
void WebStorageDeleteForOrigin(const GURL& origin);
void ClearCandidateData();
void ClearPasswordData();
+ void ClearPasswordDataForUrl(const char* url);
+ void GetPasswordDataList(
+ Ewk_Context_Form_Password_Data_List_Get_Callback callback,
+ void* user_data);
+
EwkFaviconDatabase* GetFaviconDatabase() const {
return ewk_favicon_database_.get();
}
bool NotificationCancelCallback(uint64_t notification_id);
const std::string& GetInjectedBundlePath() const { return injected_bundle_path_; }
+ /* LCOV_EXCL_START */
const std::string& GetTizenAppId() const { return tizen_app_id_; }
const std::string& GetWidgetTheme() const { return widget_theme_; }
const std::string& GetWidgetEncodedBundle() const { return widget_encoded_bundle_; }
double GetWidgetScale() const { return widget_scale_; }
+ /* LCOV_EXCL_STOP */
bool SetExtensibleAPI(const std::string& api_name, bool enable);
bool GetExtensibleAPI(const std::string& api_name);
#if defined(OS_TIZEN_TV_PRODUCT)
- bool ShouldAllowRequest(const net::URLRequest& request);
void SetCheckAccessiblePathCallback(
Ewk_Context_Check_Accessible_Path_Callback callback,
void* user_data);
void* user_data);
#if defined(OS_TIZEN_TV_PRODUCT)
+ void SetInterceptRequestCancelCallback(
+ Ewk_Context* ewk_context,
+ Ewk_Context_Intercept_Request_Callback callback,
+ void* user_data);
+#endif
+
+#if defined(OS_TIZEN_TV_PRODUCT)
void SetMaxURLChars(size_t max_chars);
#endif
void SetMaxRefreshRate(int max_refresh_rate);
private:
- EWebContext(bool incognito);
- EWebContext(const std::string& injectedBundlePath);
EWebContext(bool incognito, const std::string& injectedBundlePath);
~EWebContext();
- void SetNetworkCacheEnableOnIOThread(bool enable);
+ void SetNetworkCacheEnableOnIOThread(
+ bool enable,
+ net::URLRequestContextGetter* url_context);
+ static void LocalStorageUsageForOrigin(
+ const GURL& origin,
+ Ewk_Web_Storage_Usage_Get_Callback callback,
+ void* user_data,
+ const std::vector<content::LocalStorageUsageInfo>& local_storage);
#if defined(OS_TIZEN_TV_PRODUCT)
// For process which are preloaded and with unknown app id
std::unique_ptr<EwkMimeOverrideCallback> mime_override_callback_;
int m_pixmap;
#if defined(OS_TIZEN_TV_PRODUCT)
- std::unique_ptr<EwkCheckAccessiblePathCallback> check_accessible_path_callback_;
Ewk_Application_Type application_type_;
#endif
#if defined(OS_TIZEN_TV_PRODUCT)
#include "public/ewk_value_product.h"
#endif
+namespace base {
+class FilePath;
+}
+
namespace content {
class RenderFrameHost;
class RenderViewHost;
return false;
}
+ /* LCOV_EXCL_START */
void Run(Evas_Object* webview, CallbackParameter param) {
if (IsCallbackSet())
callback_(webview, param, user_data_);
}
+ /* LCOV_EXCL_STOP */
private:
CallbackPtr callback_;
void* user_data_;
};
+class BackgroundColorGetCallback {
+ public:
+ BackgroundColorGetCallback(Ewk_View_Background_Color_Get_Callback func,
+ void* user_data)
+ : func_(func), user_data_(user_data) {}
+
+ void Run(Evas_Object* webview, int r, int g, int b, int a) {
+ if (func_)
+ func_(webview, r, g, b, a, user_data_);
+ }
+
+ private:
+ Ewk_View_Background_Color_Get_Callback func_;
+ void* user_data_;
+};
+
class WebApplicationIconUrlGetCallback {
public:
WebApplicationIconUrlGetCallback(Ewk_Web_App_Icon_URL_Get_Callback func, void *user_data)
: func_(func), user_data_(user_data)
{}
+ /* LCOV_EXCL_START */
void Run(const std::string &url) {
if (func_) {
(func_)(url.c_str(), user_data_);
}
}
+ /* LCOV_EXCL_STOP */
private:
Ewk_Web_App_Icon_URL_Get_Callback func_;
WebApplicationIconUrlsGetCallback(Ewk_Web_App_Icon_URLs_Get_Callback func, void *user_data)
: func_(func), user_data_(user_data)
{}
+ /* LCOV_EXCL_START */
void Run(const std::map<std::string, std::string> &urls) {
if (func_) {
Eina_List *list = NULL;
(func_)(list, user_data_);
}
}
+ /* LCOV_EXCL_STOP */
private:
Ewk_Web_App_Icon_URLs_Get_Callback func_;
WebApplicationCapableGetCallback(Ewk_Web_App_Capable_Get_Callback func, void *user_data)
: func_(func), user_data_(user_data)
{}
+ /* LCOV_EXCL_START */
void Run(bool capable) {
if (func_) {
(func_)(capable ? EINA_TRUE : EINA_FALSE, user_data_);
}
}
+ /* LCOV_EXCL_STOP */
private:
Ewk_Web_App_Capable_Get_Callback func_;
void *user_data_;
};
+class IsVideoPlayingCallback {
+ public:
+ IsVideoPlayingCallback(Ewk_Is_Video_Playing_Callback func, void* user_data)
+ : func_(func), user_data_(user_data) {}
+ /* LCOV_EXCL_START */
+ void Run(Evas_Object* obj, bool isplaying) {
+ if (func_) {
+ (func_)(obj, isplaying ? EINA_TRUE : EINA_FALSE, user_data_);
+ }
+ }
+ /* LCOV_EXCL_STOP */
+
+ private:
+ Ewk_Is_Video_Playing_Callback func_;
+ void* user_data_;
+};
+
+class DidChangeThemeColorCallback {
+ public:
+ DidChangeThemeColorCallback() : callback_(nullptr), user_data_(nullptr) {}
+
+ void Set(Ewk_View_Did_Change_Theme_Color_Callback callback, void* user_data) {
+ callback_ = callback;
+ user_data_ = user_data;
+ }
+ void Run(Evas_Object* o, const SkColor& color) {
+ if (callback_)
+ callback_(o, SkColorGetR(color), SkColorGetG(color), SkColorGetB(color),
+ SkColorGetA(color), user_data_);
+ }
+
+ private:
+ Ewk_View_Did_Change_Theme_Color_Callback callback_;
+ void* user_data_;
+};
+
+class Video360DurationCallback {
+ public:
+ Video360DurationCallback(Ewk_360_Video_Duration_Callback func,
+ void* user_data)
+ : func_(func), user_data_(user_data) {}
+ void Run(Evas_Object* obj, double duration) {
+ if (func_) {
+ (func_)(obj, duration, user_data_);
+ }
+ }
+
+ private:
+ Ewk_360_Video_Duration_Callback func_;
+ void* user_data_;
+};
+
+class Video360CurrentTimeCallback {
+ public:
+ Video360CurrentTimeCallback(Ewk_360_Video_CurrentTime_Callback func,
+ void* user_data)
+ : func_(func), user_data_(user_data) {}
+ void Run(Evas_Object* obj, double current_time) {
+ if (func_) {
+ (func_)(obj, current_time, user_data_);
+ }
+ }
+
+ private:
+ Ewk_360_Video_CurrentTime_Callback func_;
+ void* user_data_;
+};
+
class GetBitmapFromCachedResourceCallback {
public:
GetBitmapFromCachedResourceCallback(
canvas_(canvas),
user_data_(user_data) {}
+ /* LCOV_EXCL_START */
void Run(Evas_Object* view, Evas_Object* image) {
if (callback_)
callback_(view, image_url_.c_str(), image, user_data_);
}
+ /* LCOV_EXCL_STOP */
Evas* GetCanvas() { return canvas_; }
const GURL& GetURL() const;
const GURL& GetOriginalURL() const;
void SetClearTilesOnHide(bool enable);
+ bool SetCompositingBordersVisiblity(bool enable);
void Reload();
void ReloadBypassingCache();
Eina_Bool CanGoBack();
void Suspend();
void Resume();
void Stop();
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void SuspendNetworkLoading();
+ void ResumeNetworkLoading();
+#endif
double GetTextZoomFactor() const;
void SetTextZoomFactor(double text_zoom_factor);
double GetPageZoomFactor() const;
#endif
bool SetUserAgent(const char* userAgent);
bool SetUserAgentAppName(const char* application_name);
+#if defined(OS_TIZEN)
bool SetPrivateBrowsing(bool incognito);
bool GetPrivateBrowsing() const;
+#endif
const char* GetUserAgent() const;
const char* GetUserAgentAppName() const;
const char* CacheSelectedText();
const char* unreachable_uri = NULL,
bool should_replace_current_entry = false);
- void InvokeLoadError(const GURL& url,
- int error_code,
- bool is_cancellation,
- const std::string& error_description);
+ void InvokeLoadError(const GURL& url, int error_code, bool is_cancellation);
void SetViewAuthCallback(Ewk_View_Authentication_Callback callback,
void* user_data);
void InvokeAuthCallback(LoginDelegateEfl* login_delegate, const GURL& url, const std::string& realm);
void ShowContextMenu(const content::ContextMenuParams&);
void CancelContextMenu(int request_id);
void SetScale(double scale_factor);
+ void SetScaleChangedCallback(Ewk_View_Scale_Changed_Callback callback,
+ void* user_data);
+
bool GetScrollPosition(int* x, int* y) const;
void SetScroll(int x, int y);
void SetSmoothScroll(int x, int y, const long& duration);
Ewk_Top_Control_State current,
bool animate);
void MoveCaret(const gfx::Point& point);
- void QuerySelectionStyle();
- void OnQuerySelectionStyleReply(const SelectionStylePrams& params);
void SelectFocusedLink();
bool GetSelectionRange(Eina_Rectangle* left_rect, Eina_Rectangle* right_rect);
Eina_Bool ClearSelection();
bool GetMHTMLData(Ewk_View_MHTML_Data_Get_Callback callback, void* user_data);
void OnMHTMLContentGet(const std::string& mhtml_content, int callback_id);
+ bool SavePageAsMHTML(const std::string& path,
+ Ewk_View_Save_Page_Callback callback,
+ void* user_data);
+
+ void SetReaderMode(Eina_Bool enable);
bool IsFullscreen();
void ExitFullscreen();
double GetScale();
void GetPageScaleRange(double *min_scale, double *max_scale);
void SetDrawsTransparentBackground(bool enabled);
bool SetBackgroundColor(int red, int green, int blue, int alpha);
+ bool GetBackgroundColor(Ewk_View_Background_Color_Get_Callback callback,
+ void* user_data);
+ void OnGetBackgroundColor(int r, int g, int b, int a, int callback_id);
void GetSessionData(const char **data, unsigned *length) const;
bool RestoreFromSessionData(const char *data, unsigned length);
void ShowFileChooser(content::RenderFrameHost* render_frame_host,
const content::FileChooserParams&);
void SetBrowserFont();
bool IsDragging() const;
+ bool IsVideoPlaying(Ewk_Is_Video_Playing_Callback callback, void* user_data);
+ void InvokeIsVideoPlayingCallback(bool is_playing, int callback_id);
bool SetMainFrameScrollbarVisible(bool visible);
bool GetMainFrameScrollbarVisible(
bool GetLinkMagnifierEnabled() const;
void SetLinkMagnifierEnabled(bool enabled);
+ bool GetHorizontalPanningHold() const;
+ void SetHorizontalPanningHold(bool hold);
+ bool GetVerticalPanningHold() const;
+ void SetVerticalPanningHold(bool hold);
+
#if defined(OS_TIZEN_TV_PRODUCT)
void SetCursorByClient(bool enable);
bool SetMixedContents(bool allow);
#if defined(TIZEN_VIDEO_HOLE)
void SetVideoHoleSupport(bool enable);
#endif
+#if defined(TIZEN_CANVAS_HOLE)
+ void SetCanvasHoleSupport(const char* url);
+#endif
#if defined(TIZEN_MULTIMEDIA_SUPPORT)
void OpenMediaPlayer(const std::string& url, const std::string& cookie);
#endif
void* user_data);
void ReplyBeforeUnloadConfirmPanel(Eina_Bool result);
bool SetVisibility(bool enable);
+ bool SetPageVisibility(Ewk_Page_Visibility_State page_visibility_state);
#if defined(OS_TIZEN_TV_PRODUCT)
+ void NotifySubtitleState(int state, double time_stamp);
+ void NotifySubtitlePlay(int active_track_id,
+ const char* url,
+ const char* lang);
+ void NotifySubtitleData(int track_id,
+ double time_stamp,
+ const uint8_t* data,
+ unsigned int size);
+ void UpdateCurrentTime(double current_time);
+ double GetCurrentTime() { return current_time_; }
+ void SetMarlinEnable(Eina_Bool is_enable);
+ bool GetMarlinEnable();
+ void SetSubtitleLang(const char* lang_list);
+ void SetHighBitRate(Eina_Bool is_high_bitrate);
+ bool IsHighBitRate();
void AddDynamicCertificatePath(std::string host, std::string cert_path);
std::vector<std::string> NotifyPlaybackState(int state,
const char* url,
void OnMouseMove();
void ShowContextMenuWithLongPressed(const GURL& url, int x, int y);
void ClearAllTilesResources();
+ void RequestCanvasFullscreen();
+ void DrawLabel(Evas_Object* image, Eina_Rectangle rect);
+ void ClearLabels();
+ void Play360Video();
+ void Pause360Video();
+ void Video360Duration(Ewk_360_Video_Duration_Callback callback,
+ void* user_data);
+ void Video360CurrentTime(Ewk_360_Video_Duration_Callback callback,
+ void* user_data);
+ void Set360VideoCurrentTime(double current_time);
+ void Invoke360VideoDurationCallback(double duration, int callback_id);
+ void Invoke360VideoCurrentTimeCallback(double current_time, int callback_id);
#endif
#if defined(TIZEN_ATK_FEATURE_VD)
void OnSelectionRectReceived(const gfx::Rect& selection_rect) const;
void HwKeyboardStatusChanged(const std::string& device_name,
Eina_Bool enable);
+
+ void SetDidChangeThemeColorCallback(
+ Ewk_View_Did_Change_Theme_Color_Callback callback,
+ void* user_data);
+ void DidChangeThemeColor(const SkColor& color);
+
#if defined(TIZEN_ATK_SUPPORT)
void UpdateSpatialNavigationStatus(Eina_Bool enable);
bool CheckLazyInitializeAtk() {
void UpdateSwipeToRefreshController(bool enabled);
void SyncAcceptLanguages(const std::string& accept_languages);
+ // Changes viewport without resizing Evas_Object representing webview
+ // and its corresponding RWHV to let Blink renders custom viewport
+ // while showing picker.
+ void AdjustViewPortHeightToPopupMenu(bool is_popup_menu_visible);
+
+ void ScrollFocusedNodeIntoView();
+
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool UseEarlyRWI() { return use_early_rwi_; }
+ bool RWIInfoShowed() { return rwi_info_showed_; }
+ GURL RWIURL() { return rwi_gurl_; }
+ void OnDialogClosed();
+#endif
+
private:
static void NativeViewResize(void* data,
Evas* e,
JavaScriptDialogManagerEfl* GetJavaScriptDialogManagerEfl();
- // Changes viewport without resizing Evas_Object representing webview
- // and its corresponding RWHV to let Blink renders custom viewport
- // while showing picker.
- void AdjustViewPortHeightToPopupMenu(bool is_popup_menu_visible);
-
void ShowContextMenuInternal(const content::ContextMenuParams&);
void UpdateWebkitPreferencesEfl(content::RenderViewHost*);
Evas_Object* object,
void* event_info);
- void ScrollFocusedNodeIntoView();
-
void UpdateContextMenuWithParams(const content::ContextMenuParams& params);
static void OnViewFocusIn(void* data, Evas*, Evas_Object*, void*);
static void OnViewFocusOut(void* data, Evas*, Evas_Object*, void*);
void ChangeScroll(int& x, int& y);
+ void GenerateMHTML(Ewk_View_Save_Page_Callback callback,
+ void* user_data,
+ const base::FilePath& file_path);
+ void MHTMLGenerated(Ewk_View_Save_Page_Callback callback,
+ void* user_data,
+ const base::FilePath& file_path,
+ int64_t file_size);
+ static base::FilePath GenerateMHTMLFilePath(const GURL& url,
+ const std::string& title,
+ const std::string& base_path);
+
#if defined(OS_TIZEN_TV_PRODUCT)
void GetMousePosition(gfx::Point&);
#endif
scoped_refptr<WebViewEvasEventHandler> evas_event_handler_;
scoped_refptr<Ewk_Context> context_;
- scoped_refptr<Ewk_Context> old_context_;
std::unique_ptr<content::WebContents> web_contents_;
std::unique_ptr<content::WebContentsDelegateEfl> web_contents_delegate_;
std::string pending_url_request_;
IDMap<MainFrameScrollbarVisibleGetCallback, IDMapOwnPointer>
main_frame_scrollbar_visible_callback_map_;
+ IDMap<BackgroundColorGetCallback, IDMapOwnPointer>
+ background_color_get_callback_map_;
+
gfx::Size contents_size_;
double progress_;
mutable std::string title_;
Hit_Test_Params hit_test_params_;
base::WaitableEvent hit_test_completion_;
double page_scale_factor_;
+ double x_delta_;
+ double y_delta_;
bool is_suspended_;
WebViewCallback<Ewk_View_Geolocation_Permission_Callback,
Ewk_Notification_Permission_Request*> notification_permission_callback_;
WebViewCallback<Ewk_Quota_Permission_Request_Callback,
const _Ewk_Quota_Permission_Request*> quota_request_callback_;
+ WebViewCallback<Ewk_View_Scale_Changed_Callback, double> scale_changed_cb_;
WebViewCallback<Ewk_View_Authentication_Callback, _Ewk_Auth_Challenge*>
authentication_cb_;
+ DidChangeThemeColorCallback did_change_theme_color_callback_;
+
#if defined(PWE_SUPPORT)
AppInstallationRequestCallback app_installation_request_cb_;
#endif
std::unique_ptr<ScrollDetector> scroll_detector_;
// Manages injecting native objects.
- std::unique_ptr<content::GinNativeBridgeDispatcherHost>
+ scoped_refptr<content::GinNativeBridgeDispatcherHost>
gin_native_bridge_dispatcher_host_;
std::map<const _Ewk_Quota_Permission_Request*, content::QuotaPermissionContext::PermissionCallback> quota_permission_request_map_;
#if defined(OS_TIZEN_TV_PRODUCT)
bool is_processing_edge_scroll_;
bool context_menu_show_;
+ double current_time_;
+ bool is_marlin_enable_;
+ bool is_high_bitrate_;
base::OneShotTimer mouse_long_press_timer_;
#endif
bool is_initialized_;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool use_early_rwi_;
+ bool rwi_info_showed_;
+ GURL rwi_gurl_;
+#endif
+
std::unique_ptr<_Ewk_Back_Forward_List> back_forward_list_;
static content::WebContentsEflDelegate::WebContentsCreateCallback
std::map<int64_t, WebViewAsyncRequestHitTestDataCallback*> hit_test_callback_;
- bool custom_viewport_needs_update_;
-
std::unique_ptr<SelectPickerBase> select_picker_;
+ IDMap<IsVideoPlayingCallback, IDMapOwnPointer> is_video_playing_callback_map_;
+ IDMap<Video360DurationCallback, IDMapOwnPointer>
+ video360_duration_callback_map_;
+ IDMap<Video360CurrentTimeCallback, IDMapOwnPointer>
+ video360_currenttime_callback_map_;
+
IDMap<GetBitmapFromCachedResourceCallback, IDMapOwnPointer>
get_bitmap_from_cached_resource_callback_map_;
Ecore_Event_Handler* add_device_handler_;
/*
- * Copyright (C) 2014 Samsung Electronics. All rights reserved.
+ * Copyright (C) 2014-2016 Samsung Electronics. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
#include "private/ewk_console_message_private.h"
#include "private/ewk_error_private.h"
#include "private/ewk_context_menu_private.h"
-#include "private/ewk_custom_handlers_private.h"
-#include "private/ewk_text_style_private.h"
#include "private/ewk_geolocation_private.h"
#include "private/ewk_certificate_info_private.h"
#include "private/ewk_certificate_private.h"
LoadStarted,
LoadFinished,
LoadProgress,
- LoadProgressStarted,
- LoadProgressFinished,
MenuBarVisible,
PopupBlocked,
ProvisionalLoadFailed,
MediaControlRotateExit,
#endif
UserMediaPermission,
- RegisterProtocolHandler,
- UnregisterProtocolHandler,
IMEInputPanelShow,
IMEInputPanelHide,
IMECandidatePanelShow,
#if defined(OS_TIZEN_TV_PRODUCT)
ContextMenuShow,
ContextMenuHide,
+ PopupMenuShow,
+ PopupMenuHide,
#endif
LoadNonEmptyLayoutFinished,
+ VideoPlayingURL,
PopupReplyWaitStart,
PopupReplyWaitFinish,
FrameRendered,
#if defined(TIZEN_ATK_FEATURE_VD)
AtkKeyEventNotHandled,
#endif
- TextStyleState,
TextSelectionMode,
SaveSessionData,
UndoSize,
HoverOverLink,
HoverOutLink,
VideoResized,
+ SubtitlePlay,
+ SubtitlePause,
+ SubtitleStop,
+ SubtitleResume,
+ SubtitleSeekStart,
+ SubtitleSeekComplete,
+ SubtitleNotifyData,
#endif
#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
VideoTexturing,
DidNotAllowScript,
FocusIn,
FocusOut,
+ ReaderMode,
RendererStatusChanged,
FormRepostWarningShow,
BeforeFormRepostWarningShow,
DECLARE_EWK_VIEW_CALLBACK(DownloadJobRequested, "download,request", Ewk_Download_Job*);
DECLARE_EWK_VIEW_CALLBACK(NewFormSubmissionRequest, "form,submission,request", Ewk_Form_Submission_Request*);
DECLARE_EWK_VIEW_CALLBACK(FaviconChanged, "favicon,changed", void);
-DECLARE_EWK_VIEW_CALLBACK(LoadError, "load,error", Ewk_Error*);
DECLARE_EWK_VIEW_CALLBACK(ProvisionalLoadFailed, "load,provisional,failed", Ewk_Error*);
DECLARE_EWK_VIEW_CALLBACK(NavigationPolicyDecision, "policy,decision,navigation", Ewk_Navigation_Policy_Decision*);
-DECLARE_EWK_VIEW_CALLBACK(TextFound, "text,found", unsigned*);
-DECLARE_EWK_VIEW_CALLBACK(TooltipTextUnset, "tooltip,text,unset", void);
DECLARE_EWK_VIEW_CALLBACK(Vibrate, "vibrate", uint32_t*);
*/
DECLARE_EWK_VIEW_CALLBACK(URLChanged, "url,changed", const char*);
DECLARE_EWK_VIEW_CALLBACK(URIChanged, "uri,changed", const char*);
DECLARE_EWK_VIEW_CALLBACK(LoadProgress, "load,progress", double*);
-DECLARE_EWK_VIEW_CALLBACK(LoadProgressStarted, "load,progress,started", void);
-DECLARE_EWK_VIEW_CALLBACK(LoadProgressFinished, "load,progress,finished", void);
+DECLARE_EWK_VIEW_CALLBACK(TooltipTextUnset, "tooltip,text,unset", void);
DECLARE_EWK_VIEW_CALLBACK(TooltipTextSet, "tooltip,text,set", const char*);
DECLARE_EWK_VIEW_CALLBACK(EnterFullscreen, "fullscreen,enterfullscreen", void);
DECLARE_EWK_VIEW_CALLBACK(ExitFullscreen, "fullscreen,exitfullscreen", void);
DECLARE_EWK_VIEW_CALLBACK(MediaControlRotateExit, "mediacontrol,rotate,exit", void);
#endif
DECLARE_EWK_VIEW_CALLBACK(UserMediaPermission, "usermedia,permission,request", _Ewk_User_Media_Permission_Request*);
-DECLARE_EWK_VIEW_CALLBACK(RegisterProtocolHandler, "protocolhandler,registration,requested", Ewk_Custom_Handlers_Data*);
-DECLARE_EWK_VIEW_CALLBACK(UnregisterProtocolHandler, "protocolhandler,unregistration,requested", Ewk_Custom_Handlers_Data*);
DECLARE_EWK_VIEW_CALLBACK(IMEInputPanelShow, "editorclient,ime,opened", void);
DECLARE_EWK_VIEW_CALLBACK(IMEInputPanelHide, "editorclient,ime,closed", void);
DECLARE_EWK_VIEW_CALLBACK(IMECandidatePanelShow, "editorclient,candidate,opened", void);
#if defined(OS_TIZEN_TV_PRODUCT)
DECLARE_EWK_VIEW_CALLBACK(ContextMenuShow, "contextmenu,show", _Ewk_Context_Menu*);
DECLARE_EWK_VIEW_CALLBACK(ContextMenuHide, "contextmenu,hide", _Ewk_Context_Menu*);
+DECLARE_EWK_VIEW_CALLBACK(PopupMenuShow, "popup,menu,show", void);
+DECLARE_EWK_VIEW_CALLBACK(PopupMenuHide, "popup,menu,hide", void);
#endif
DECLARE_EWK_VIEW_CALLBACK(NavigationPolicyDecision, "policy,navigation,decide", _Ewk_Policy_Decision*);
DECLARE_EWK_VIEW_CALLBACK(TextFound, "text,found", unsigned int*);
DECLARE_EWK_VIEW_CALLBACK(NewWindowPolicyDecision, "policy,newwindow,decide", _Ewk_Policy_Decision*);
DECLARE_EWK_VIEW_CALLBACK(LoadNonEmptyLayoutFinished, "load,nonemptylayout,finished", void);
DECLARE_EWK_VIEW_CALLBACK(PopupBlocked, "popup,blocked", Eina_Stringshare*);
+DECLARE_EWK_VIEW_CALLBACK(VideoPlayingURL, "video,playing,url", const char*);
DECLARE_EWK_VIEW_CALLBACK(PopupReplyWaitStart, "popup,reply,wait,start", void*);
DECLARE_EWK_VIEW_CALLBACK(PopupReplyWaitFinish, "popup,reply,wait,finish", void*);
DECLARE_EWK_VIEW_CALLBACK(FrameRendered, "frame,rendered", void*);
"atk,keyevent,nothandled",
int*);
#endif
-DECLARE_EWK_VIEW_CALLBACK(TextStyleState, "text,style,state", _Ewk_Text_Style*);
DECLARE_EWK_VIEW_CALLBACK(SaveSessionData, "save,session,data", void);
DECLARE_EWK_VIEW_CALLBACK(UndoSize, "undo,size", size_t*);
DECLARE_EWK_VIEW_CALLBACK(RedoSize, "redo,size", size_t*);
DECLARE_EWK_VIEW_CALLBACK(HoverOverLink, "hover,over,link", const char*);
DECLARE_EWK_VIEW_CALLBACK(HoverOutLink, "hover,out,link", const char*);
DECLARE_EWK_VIEW_CALLBACK(VideoResized, "notify,video,resized", void*);
+DECLARE_EWK_VIEW_CALLBACK(SubtitlePlay, "notify,subtitle,play", void*);
+DECLARE_EWK_VIEW_CALLBACK(SubtitlePause, "notify,subtitle,pause", void);
+DECLARE_EWK_VIEW_CALLBACK(SubtitleStop, "notify,subtitle,stop", void);
+DECLARE_EWK_VIEW_CALLBACK(SubtitleResume, "notify,subtitle,resume", void);
+DECLARE_EWK_VIEW_CALLBACK(SubtitleSeekStart,
+ "notify,subtitle,seek,start",
+ double*);
+DECLARE_EWK_VIEW_CALLBACK(SubtitleSeekComplete,
+ "notify,subtitle,seek,completed",
+ void);
+DECLARE_EWK_VIEW_CALLBACK(SubtitleNotifyData, "on,subtitle,data", void*);
#endif
#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
DECLARE_EWK_VIEW_CALLBACK(VideoTexturing, "notify,video,texturing", void);
DECLARE_EWK_VIEW_CALLBACK(DidNotAllowScript, "did,not,allow,script", void);
DECLARE_EWK_VIEW_CALLBACK(FocusOut, "webview,focus,out", void);
DECLARE_EWK_VIEW_CALLBACK(FocusIn, "webview,focus,in", void);
+DECLARE_EWK_VIEW_CALLBACK(ReaderMode, "reader,mode", bool*);
DECLARE_EWK_VIEW_CALLBACK(RendererStatusChanged, "renderer,status,changed", bool*);
DECLARE_EWK_VIEW_CALLBACK(FormRepostWarningShow, "form,repost,warning,show", _Ewk_Form_Repost_Decision_Request*);
DECLARE_EWK_VIEW_CALLBACK(BeforeFormRepostWarningShow, "before,repost,warning,show", _Ewk_Form_Repost_Decision_Request*);
virtual ~PermissionPopup() { }
+ /* LCOV_EXCL_START */
std::string GetMessage() const { return popup_message_; }
std::string GetOrigin() const {
return origin_->GetURL().spec();
}
+ /* LCOV_EXCL_STOP */
virtual void SendDecidedPermission(Evas_Object*, bool decide) = 0;
private:
--- /dev/null
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef EWK_AUTOFILL_CREDIT_CARD_PRIVATE_H_
+#define EWK_AUTOFILL_CREDIT_CARD_PRIVATE_H_
+
+#include <map>
+#include <string>
+
+#include "base/strings/utf_string_conversions.h"
+
+enum DataType {
+ CREDIT_CARD_ID = 0,
+ CREDIT_CARD_NAME_FULL,
+ CREDIT_CARD_NUMBER,
+ CREDIT_CARD_EXP_MONTH,
+ CREDIT_CARD_EXP_4_DIGIT_YEAR,
+ MAX_AUTOFILL
+};
+
+struct _Ewk_Autofill_CreditCard {
+ public:
+ _Ewk_Autofill_CreditCard();
+ ~_Ewk_Autofill_CreditCard();
+
+ typedef std::map<DataType, std::string> AutofillDataMap;
+
+ unsigned getCreditCardID() const;
+ void setCreditCardID(unsigned id);
+ std::string getData(DataType name) const;
+ base::string16 get16Data(DataType name) const;
+
+ void setData(DataType name, const std::string& value);
+
+ private:
+ unsigned m_creditCardID_;
+ AutofillDataMap m_data;
+};
+
+#endif /*EWK_AUTOFILL_CREDIT_CARD_PRIVATE_H_*/
--- /dev/null
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ewk_context_form_autofill_credit_card_private_h
+#define ewk_context_form_autofill_credit_card_private_h
+
+#if defined(TIZEN_AUTOFILL_SUPPORT)
+
+#include <Evas.h>
+#include <tizen.h>
+
+struct Ewk_Context;
+
+typedef struct _Ewk_Autofill_CreditCard Ewk_Autofill_CreditCard;
+typedef void (*Ewk_Context_Form_Autofill_CreditCard_Changed_Callback)(
+ void* data);
+
+class EwkContextFormAutofillCreditCardManager {
+ public:
+ /**
+ * Gets a list of all existing credit_cards
+ *
+ * The obtained credit_card must be deleted by
+ * ewk_autofill_credit_card_delete.
+ * @param context context object
+ *
+ * @return @c Eina_List of Ewk_Autofill_CreditCard @c NULL otherwise
+ * @see ewk_autofill_credit_card_delete
+ */
+ static Eina_List* priv_form_autofill_credit_card_get_all(
+ Ewk_Context* context);
+
+ /**
+ * Gets the existing credit_card for given index
+ *
+ * The obtained credit_card must be deleted by
+ * ewk_autofill_credit_card_delete.
+ *
+ * @param context context object
+ * @param id credit_card id
+ *
+ * @return @c Ewk_Autofill_CreditCard if credit_card exists, @c NULL otherwise
+ * @see ewk_autofill_credit_card_delete
+ */
+ static Ewk_Autofill_CreditCard* priv_form_autofill_credit_card_get(
+ Ewk_Context* context,
+ unsigned id);
+
+ /**
+ * Sets the given credit_card for the given id
+ *
+ * Data can be added to the created credit_card by
+ * ewk_autofill_credit_card_data_set.
+ *
+ * @param context context object
+ * @param credit_card id
+ * @param credit_card Ewk_Autofill_CreditCard
+ *
+ * @return @c EINA_TRUE if the credit_card data is set successfully, @c
+ * EINA_FALSE otherwise
+ * @see ewk_autofill_credit_card_new
+ * @see ewk_context_form_autofill_credit_card_add
+ */
+ static Eina_Bool priv_form_autofill_credit_card_set(
+ Ewk_Context* context,
+ unsigned id,
+ Ewk_Autofill_CreditCard* credit_card);
+
+ /**
+ * Saves the created credit_card into permenant storage
+ *
+ * The credit_card used to save must be created by
+ * ewk_autofill_credit_card_new.
+ * Data can be added to the created credit_card by
+ * ewk_autofill_credit_card_data_set.
+ *
+ * @param context context object
+ * @param credit_card Ewk_Autofill_CreditCard
+ *
+ * @return @c EINA_TRUE if the credit_card data is saved successfully, @c
+ * EINA_FALSE otherwise
+ * @see ewk_autofill_credit_card_new
+ */
+ static Eina_Bool priv_form_autofill_credit_card_add(
+ Ewk_Context* context,
+ Ewk_Autofill_CreditCard* credit_card);
+
+ /**
+ * Removes Autofill Form credit_card completely
+ *
+ * @param context context object
+ * @param id credit_card id
+ *
+ * @return @c EINA_TRUE if the credit_card data is removed successfully, @c
+ * EINA_FALSE otherwise
+ * @see ewk_context_form_autofill_credit_card_get_all
+ */
+ static Eina_Bool
+ priv_form_autofill_credit_card_remove(Ewk_Context* context, unsigned id);
+
+ /**
+ * Sets callback function on credit_cards changed
+ *
+ * @param callback pointer to callback function
+ * @param user_data user data returned on callback
+ *
+ * @see ewk_context_form_autofill_credit_card_changed_callback_set
+ */
+ static void priv_form_autofill_credit_card_changed_callback_set(
+ Ewk_Context_Form_Autofill_CreditCard_Changed_Callback callback,
+ void* user_data);
+};
+
+#endif // TIZEN_AUTOFILL_SUPPORT
+
+#endif // ewk_context_form_autofill_credit_card_private_h
static Ewk_Context* IncognitoContext();
static void DefaultContextRelease();
static Ewk_Context* Create(bool incognito = false);
- static Ewk_Context* Create(const std::string& injectedBundlePath);
+ static Ewk_Context* Create(bool incognito,
+ const std::string& injectedBundlePath);
static void Delete(Ewk_Context*);
// Get related class
// Application Cache
void GetAllOriginsWithApplicationCache(
Ewk_Web_Application_Cache_Origins_Get_Callback callback, void* user_data);
- void GetApplicationCacheUsage(const GURL& url,
+ void GetApplicationCacheUsage(
+ const GURL& url,
Ewk_Web_Application_Cache_Usage_For_Origin_Get_Callback callback,
void* user_data);
+ void GetLocalStorageUsageForOrigin(
+ const GURL& origin,
+ Ewk_Web_Storage_Usage_Get_Callback callback,
+ void* user_data);
void DeleteAllApplicationCache();
void DeleteApplicationCacheForSite(const GURL& url);
void GetAllOriginsWithWebDB(Ewk_Web_Database_Origins_Get_Callback callback,
void* user_data);
void WebDBDelete(const GURL& host);
+ void GetWebDBUsageForOrigin(const GURL& origin,
+ Ewk_Web_Database_Usage_Get_Callback callback,
+ void* userData);
// Indexed DB
void IndexedDBDelete();
// Password
void ClearPasswordData();
+ void ClearPasswordDataForUrl(const char* url);
+ void GetPasswordDataList(
+ Ewk_Context_Form_Password_Data_List_Get_Callback callback,
+ void* user_data);
// Extensible
bool SetExtensibleAPI(const std::string& api_name, bool enable);
void* user_data);
#if defined(OS_TIZEN_TV_PRODUCT)
+ void SetContextInterceptRequestCancelCallback(
+ Ewk_Context_Intercept_Request_Callback callback,
+ void* user_data);
+#endif
+
+#if defined(OS_TIZEN_TV_PRODUCT)
void SetMaxURLChars(size_t max_chars);
#endif
EWebContext* impl;
Ewk_Context(bool incognito);
- Ewk_Context(const std::string& injectedBundlePath);
+ Ewk_Context(bool incognito, const std::string& injectedBundlePath);
~Ewk_Context();
friend class base::RefCounted<Ewk_Context>;
public:
Ewk_Custom_Handlers_Data();
Ewk_Custom_Handlers_Data(const char* protocol, const char* baseUrl,
- const char* full_url, const char* handler_title = NULL);
+ const char* full_url);
~Ewk_Custom_Handlers_Data();
Eina_Stringshare* getTarget() const;
Eina_Stringshare* getBaseUrl() const;
Eina_Stringshare* getUrl() const;
- Eina_Stringshare* getTitle() const;
Ewk_Custom_Handlers_State getResult() const;
void setResult(Ewk_Custom_Handlers_State result_);
Eina_Stringshare* target;
Eina_Stringshare* base_url;
Eina_Stringshare* url;
- Eina_Stringshare* title;
Ewk_Custom_Handlers_State result;
};
#define ewk_error_private_h
#include <Eina.h>
+#include "net/base/net_errors.h"
+
+int ConvertErrorCode(int error_code);
+const char* GetDescriptionFromErrorCode(int error_code);
struct _Ewk_Error {
int error_code;
Eina_Stringshare* description;
Eina_Stringshare* domain;
- _Ewk_Error(int error_code_in,
- bool is_cancellation_in,
- const char* url_in,
- const char* description_in)
- : error_code(error_code_in),
+ _Ewk_Error(int error_code_in, bool is_cancellation_in, const char* url_in)
+ : error_code(ConvertErrorCode(error_code_in)),
is_cancellation(is_cancellation_in),
url(eina_stringshare_add(url_in)),
- description(eina_stringshare_add(description_in)),
+ description(
+ eina_stringshare_add(GetDescriptionFromErrorCode(error_code_in))),
// Chromium always reports "net" as error domain anyways,
// so we just hardcode it.
domain(eina_stringshare_add("net")) {}
explicit EwkFaviconDatabase(EWebContext* eweb_context)
: eweb_context_(eweb_context) {}
+ /* LCOV_EXCL_START */
Evas_Object* GetIcon(const char* page_url, Evas* evas) const {
return eweb_context_->AddFaviconObject(page_url, evas);
}
+ /* LCOV_EXCL_STOP */
private:
EWebContext* eweb_context_;
+++ /dev/null
-// Copyright 2013 Samsung Electronics. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ewk_main_private_h
-#define ewk_main_private_h
-
-#include <string>
-#include <tizen.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Returns home directory.
- *
- * If home directory is not previously set by ewk_home_directory_set() then
- * the content of $HOME variable is returned.
- * If $HOME is not set then "/tmp" is returned.
- *
- * @return home directory
- */
-EXPORT_API const char* ewk_home_directory_get();
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // ewk_main_private_h
-
#include "base/callback.h"
#include "base/macros.h"
+#include "ewk_suspendable_object.h"
#include "private/ewk_security_origin_private.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"
};
-struct Ewk_Notification_Permission_Request {
+struct Ewk_Notification_Permission_Request : public Ewk_Suspendable_Object {
public:
Ewk_Notification_Permission_Request(
- Evas_Object* webview,
const base::Callback<void(blink::mojom::PermissionStatus)>& callback,
const GURL& source_origin);
~Ewk_Notification_Permission_Request();
- Evas_Object* GetWebviewEvasObject() const;
const _Ewk_Security_Origin* GetSecurityOrigin() const;
- bool IsDecided() const;
- bool IsSuspended() const;
- bool SetSuspend(bool suspend) const;
- bool Reply(bool allow);
private:
- Evas_Object* webview_;
std::unique_ptr<_Ewk_Security_Origin> origin_;
base::Callback<void(blink::mojom::PermissionStatus)> callback_;
- bool decided_;
- mutable bool suspended_;
+
+ void runCallback(bool allowed) override;
DISALLOW_COPY_AND_ASSIGN(Ewk_Notification_Permission_Request);
};
bool autofillProfileForm() const { return m_autofillProfileForm; }
void setAutofillProfileForm(bool enable) { m_autofillProfileForm = enable; }
bool textSelectionEnabled() const { return m_textSelectionEnabled; }
- void setTextSelectionEnabled(bool enable) { m_textSelectionEnabled = enable; }
+ void setTextSelectionEnabled(bool enable) {
+ m_textSelectionEnabled = enable;
+ } // LCOV_EXCL_LINE
bool autoClearTextSelection() const { return m_autoClearTextSelection; }
- void setAutoClearTextSelection(bool enable) { m_autoClearTextSelection = enable; }
+ void setAutoClearTextSelection(bool enable) {
+ m_autoClearTextSelection = enable;
+ } // LCOV_EXCL_LINE
bool autoSelectWord() const { return m_autoSelectWord; }
- void setAutoSelectWord(bool enable) { m_autoSelectWord = enable; }
+ void setAutoSelectWord(bool enable) {
+ m_autoSelectWord = enable;
+ } // LCOV_EXCL_LINE
bool edgeEffectEnabled() const { return m_edgeEffectEnabled; }
void setEdgeEffectEnabled(bool enable);
void setTextZoomEnabled(bool enable);
bool textZoomEnabled() const { return m_preferences.text_zoom_enabled; }
- void setLoadRemoteImages(bool loadRemoteImages) { m_loadRemoteImages = loadRemoteImages; }
+ void setLoadRemoteImages(bool loadRemoteImages) {
+ m_loadRemoteImages = loadRemoteImages;
+ } // LCOV_EXCL_LINE
bool loadRemoteImages() const { return m_loadRemoteImages; }
void setCurrentLegacyFontSizeMode(Ewk_Legacy_Font_Size_Mode mode);
Ewk_Legacy_Font_Size_Mode currentLegacyFontSizeMode() const { return m_currentLegacyFontSizeMode; }
- void setPasteImageUriEnabled(bool enable) { m_pasteImageUriEnabled = enable; }
+ void setPasteImageUriEnabled(bool enable) {
+ m_pasteImageUriEnabled = enable;
+ } // LCOV_EXCL_LINE
bool pasteImageUriEnabled() const {return m_pasteImageUriEnabled;}
bool defaultKeypadEnabled() const { return m_defaultKeypadEnabled; }
- void setEnableDefaultKeypad(bool flag) { m_defaultKeypadEnabled = flag; }
+ void setEnableDefaultKeypad(bool flag) {
+ m_defaultKeypadEnabled = flag;
+ } // LCOV_EXCL_LINE
bool useKeyPadWithoutUserAction() const { return m_useKeyPadWithoutUserAction; }
- void setUseKeyPadWithoutUserAction(bool enable) { m_useKeyPadWithoutUserAction = enable; }
+ void setUseKeyPadWithoutUserAction(bool enable) {
+ m_useKeyPadWithoutUserAction = enable;
+ } // LCOV_EXCL_LINE
bool textStyleStateState() const { return m_textStyleState; }
- void setTextStyleStateState(bool enable) { m_textStyleState = enable; }
- void setSpdyEnabled(bool flag);
+ void setTextStyleStateState(bool enable) {
+ m_textStyleState = enable;
+ } // LCOV_EXCL_LINE
void setDetectContentsAutomatically(bool enable) { m_detectContentsAutomatically = enable; }
bool detectContentsAutomatically() const { return m_detectContentsAutomatically; }
WebPreferencesEfl& getPreferencesEfl() { return m_preferences_efl; }
const WebPreferencesEfl& getPreferencesEfl() const { return m_preferences_efl; }
- void setCacheBuilderEnabled(bool enable) { m_cacheBuilderEnabled = enable; }
-
/* ewk_extra_features related */
void setLongPressEnabled(bool enable) { m_longPressEnabled = enable; }
bool getLongPressEnabled() const { return m_longPressEnabled; }
bool getAllowRestrictedURLEnabled() const { return m_allowRestrictedURL; }
void setURLBarHideEnabled(bool enable) { m_URLBarHide = enable; }
bool getURLBarHideEnabled() const { return m_URLBarHide; }
- void setLinkEffectEnabled(bool enable) { m_linkEffectEnabled = enable; }
- bool getLinkEffectEnabled() const { return m_linkEffectEnabled; }
+ /* LCOV_EXCL_START */
void setSwipeToRefreshEnabled(bool enable) {
m_swipeToRefreshEnabled = enable;
}
+ /* LCOV_EXCL_STOP */
bool getSwipeToRefreshEnabled() const { return m_swipeToRefreshEnabled; }
+ void setTouchFocusEnabled(bool enable) {
+ m_touchFocusEnabled = enable;
+ } // LCOV_EXCL_LINE
+ bool touchFocusEnabled() const { return m_touchFocusEnabled; }
private:
content::WebPreferences m_preferences;
bool m_detectContentsAutomatically;
Evas_Object* m_evas_object;
- bool m_cacheBuilderEnabled;
/* ewk_extra_features related */
bool m_longPressEnabled;
bool m_openPanelEnabled;
bool m_allowRestrictedURL;
bool m_URLBarHide;
- bool m_linkEffectEnabled;
bool m_swipeToRefreshEnabled;
+ bool m_touchFocusEnabled;
};
#endif // ewk_settings_private_h
+++ /dev/null
-// Copyright 2013 Samsung Electronics. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ewk_text_style_private_h
-#define ewk_text_style_private_h
-
-#include <string>
-#include <vector>
-
-#include <Eina.h>
-#include <Evas.h>
-
-#include <ui/gfx/geometry/point.h>
-
-struct SelectionColor {
- int r;
- int g;
- int b;
- int a;
-};
-
-struct SelectionStylePrams {
- int underline_state;
- int italic_state;
- int bold_state;
- SelectionColor bg_color;
- SelectionColor color;
- std::string font_size;
- int order_list_state;
- int un_order_list_state;
- int text_align_center_state;
- int text_align_left_state;
- int text_align_right_state;
- int text_align_full_state;
- int has_composition;
-};
-
-struct _Ewk_Text_Style {
- _Ewk_Text_Style(const SelectionStylePrams& params, const gfx::Point& start_point, const gfx::Point& end_point) {
- selectionParams = params;
-
- position.startPoint.x = start_point.x();
- position.startPoint.y = start_point.y();
- position.endPoint.x = end_point.x();
- position.endPoint.y = end_point.y();
-
- bgColor = params.bg_color;
- color = params.color;
- fontSize = eina_stringshare_add(params.font_size.c_str());
- hasComposition = params.has_composition;
- }
-
- ~_Ewk_Text_Style() {
- eina_stringshare_del(fontSize);
- }
-
- SelectionStylePrams selectionParams;
- Eina_Stringshare* fontSize;
- Eina_Bool hasComposition;
-
- struct {
- Evas_Point startPoint;
- Evas_Point endPoint;
- } position;
-
- SelectionColor bgColor;
- SelectionColor color;
-};
-
-#endif
--- /dev/null
+/*
+ * Copyright (C) 2017 Samsung Electronics.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * @file ewk_autofill_credit_card_internal.h
+ * @brief This file describes the Ewk Autofill CreditCard API.
+ */
+
+#ifndef ewk_autofill_credit_card_internal_h
+#define ewk_autofill_credit_card_internal_h
+
+#include <Eina.h>
+#include <tizen.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @addtogroup WEBVIEW
+ * @{
+ */
+
+/**
+ * @if MOBILE
+ * \enum _Ewk_Autofill_Credit_Card_Data_Type
+ * @brief Enumeration that provides an option to autofill credit_card data types.
+ *
+ * @since_tizen 4.0
+ * @endif
+ */
+
+enum _Ewk_Autofill_Credit_Card_Data_Type {
+ EWK_CREDIT_CARD_ID = 0,
+ EWK_CREDIT_CARD_NAME_FULL,
+ EWK_CREDIT_CARD_NUMBER,
+ EWK_CREDIT_CARD_EXP_MONTH,
+ EWK_CREDIT_CARD_EXP_4_DIGIT_YEAR,
+ EWK_MAX_CREDIT_CARD
+};
+
+/**
+ * @if MOBILE
+ * @brief Enumeration that creates a type name for the Ewk_Autofill_Credit_Card_Data_Type.
+ *
+ * @since_tizen 4.0
+ * @endif
+ */
+typedef enum _Ewk_Autofill_Credit_Card_Data_Type Ewk_Autofill_Credit_Card_Data_Type;
+
+/**
+ * @if MOBILE
+ * @brief The structure type that creates a type name for #Ewk_Autofill_CreditCard.
+ *
+ * @since_tizen 4.0
+ * @endif
+ */
+typedef struct _Ewk_Autofill_CreditCard Ewk_Autofill_CreditCard;
+
+/**
+ * @if MOBILE
+ * @brief Creates a new credit_card
+ *
+ * The created credit_card must be deleted by ewk_autofill_credit_card_delete
+ *
+ * @since_tizen 4.0
+ *
+ * @return @c Ewk_Autofill_CreditCard if new credit_card is successfully created,
+ @c NULL otherwise
+ *
+ * @see ewk_autofill_credit_card_data_set
+ * @see ewk_autofill_credit_card_delete
+ * @endif
+ */
+EXPORT_API Ewk_Autofill_CreditCard* ewk_autofill_credit_card_new(void);
+
+/**
+ * @if MOBILE
+ * @brief Deletes a given credit_card
+ *
+ * The API will delete the a particular credit_card only from the memory.
+ * To remove the credit_card permenantly use
+ * ewk_context_form_autofill_credit_card_remove
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] credit_card name
+ *
+ * @see ewk_autofill_credit_card_new
+ * @see ewk_context_form_autofill_credit_card_get
+ * @see ewk_context_form_autofill_credit_card_remove
+ * @endif
+ */
+EXPORT_API void ewk_autofill_credit_card_delete(Ewk_Autofill_CreditCard* card);
+
+/**
+ * @if MOBILE
+ * @brief Sets the data in the credit_card created by ewk_autofill_credit_card_new
+ *
+ * The data set by this function is set locally. To save it to database use
+ * ewk_context_form_autofill_credit_card_add
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] credit_card contains the credit_card data
+ * @param[in] type type of attribute to be set
+ * @param[in] value value of the attribute
+ *
+ * @see ewk_autofill_credit_card_data_get
+ * @see Ewk_Autofill_Credit_Card_Data_Type
+ * @see ewk_context_form_autofill_credit_card_add
+ * @endif
+ */
+EXPORT_API void ewk_autofill_credit_card_data_set(Ewk_Autofill_CreditCard* card, Ewk_Autofill_Credit_Card_Data_Type type, const char* value);
+
+/**
+ * @if MOBILE
+ * @brief Gets the id attribute value from a given credit_card
+ *
+ * The credit_card obtained from ewk_context_form_autofill_credit_card_get will be used
+ * to get the credit_cardid
+ *
+ * @param[in] credit_card name of credit_card
+ *
+ * @since_tizen 4.0
+ *
+ * @return @c Value of attribute (unsigned), @c 0 otherwise
+ *
+ * @see ewk_autofill_credit_card_new
+ * @see ewk_context_form_autofill_credit_card_get
+ * @see ewk_context_form_autofill_credit_card_get_all
+ * @endif
+ */
+EXPORT_API unsigned ewk_autofill_credit_card_id_get(Ewk_Autofill_CreditCard* card);
+
+/**
+ * @if MOBILE
+ * @brief Gets the attribute value from a given credit_card
+ *
+ * The credit_card obtained from ewk_context_form_autofill_credit_card_get will be used
+ * to get the data
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] credit_card name of credit_card
+ * @param[in] type name of attribute
+ *
+ * @return @c Value of attribute (Eina_Stringshare*), @c NULL otherwise
+ * The string should be released with eina_stringshare_del()
+ *
+ * @see ewk_autofill_credit_card_new
+ * @see ewk_context_form_autofill_credit_card_get
+ * @see ewk_context_form_autofill_credit_card_get_all
+ * @endif
+ */
+EXPORT_API Eina_Stringshare* ewk_autofill_credit_card_data_get(Ewk_Autofill_CreditCard* credit_card, Ewk_Autofill_Credit_Card_Data_Type type);
+
+/**
+* @}
+*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // ewk_autofill_credit_card_internal_h
+
EXPORT_API void ewk_context_intercept_request_callback_set(Ewk_Context* ewk_context, Ewk_Context_Intercept_Request_Callback callback, void* user_data);
/**
+ * @brief Sets Ewk_Context_Intercept_Request_Cancel_Callback
+ *
+ * @details Sets Ewk_Context_Intercept_Request_Cancel_Callback to give a chance to
+ * notify intercept resource request to client when url request is cancelled.
+ *
+ * @remarks Pass NULL pointer as @a callback to reset current callback.
+ *
+ *
+ * @param[in] ewk_context Ewk_Context object to intercept requests
+ * @param[in] callback New callback, NULL resets current callback
+ * @param[in] user_data User data passed to @a callback
+ *
+ * @see Ewk_Context_Intercept_Request_Callback
+ */
+
+typedef Ewk_Context_Intercept_Request_Callback Ewk_Context_Intercept_Request_Cancel_Callback;
+
+EXPORT_API void ewk_context_intercept_request_cancel_callback_set(Ewk_Context* ewk_context, Ewk_Context_Intercept_Request_Cancel_Callback callback, void* user_data);
+
+/**
+ * @brief Gets the enabled state of background music.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ *
+ * @return @c EINA_TRUE if background music is enabled, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_background_music_get(Ewk_Context* context);
+
+/**
+ * @brief Sets the enabled state of background music.
+ *
+ * @details This function allows the application to continue playing instead of pausing when it moves to the background.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ * @param[in] enable Enable or disable background music
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_background_music_set(Ewk_Context* context, Eina_Bool enable);
+
+/**
+ * @brief Gets the enabled state of blocking multimedia on call.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ *
+ * @return @c EINA_TRUE if blocking multimedia on call is enabled, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_block_multimedia_on_call_get(Ewk_Context* context);
+
+/**
+ * @brief Sets the enabled state of blocking multimedia on call.
+ *
+ * @details The application can set the flag to allow or disallow media playback during active call.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ * @param[in] enable Enable or disable blocking multimedia on call
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_block_multimedia_on_call_set(Ewk_Context* context, Eina_Bool enable);
+
+/**
+ * @brief Gets the enabled state of rotation lock.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ *
+ * @return @c EINA_TRUE if rotation lock is enabled, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_rotation_lock_get(Ewk_Context* context);
+
+/**
+ * @brief Sets the enabled state of rotation lock.
+ *
+ * @details The application can use this function to lock the auto screen rotation feature.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ * @param[in] enable Enable or disable rotation lock
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_rotation_lock_set(Ewk_Context* context, Eina_Bool enable);
+
+/**
+ * @brief Gets the enabled state of sound overlap.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ *
+ * @return @c EINA_TRUE if sound overlap is enabled, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_sound_overlap_get(Ewk_Context* context);
+
+/**
+ * @brief Sets the enabled state of sound overlap.
+ *
+ * @details The application can set the flag to allow or disallow the sound overlap with other apps.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ * @param[in] enable Enable or disable sound overlap
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_sound_overlap_set(Ewk_Context* context, Eina_Bool enable);
+
+/**
* @}
*/
#define ewk_context_internal_h
#include "ewk_application_cache_manager_internal.h"
+#include "ewk_autofill_credit_card_internal.h"
#include "ewk_context.h"
#include "ewk_favicon_database_internal.h"
#include "ewk_notification_internal.h"
//typedef void (*Ewk_Web_Database_Path_Get_Callback)(const char* path, void* user_data);
/**
- * Callback for ewk_context_web_storage_origins_get.
- *
- * @param origins web storage origins
- * @param user_data user_data will be passsed when ewk_context_web_storage_origins_get is called
- */
-typedef void (*Ewk_Web_Storage_Origins_Get_Callback)(Eina_List* origins, void* user_data);
-
-/**
* Callback for didStartDownload
*
* @param download_url url to download
/*
* Callback for changed profiles.
*
- * @param user_data user_data will be passsed when download is started
+ * @param data user data will be passed when autofill profile is changed
*/
typedef void (*Ewk_Context_Form_Autofill_Profile_Changed_Callback)(void *data);
+/*
+ * Callback for changed credit_cards.
+ *
+ * @param data user data will be passed when credit card is changed
+ */
+typedef void (*Ewk_Context_Form_Autofill_CreditCard_Changed_Callback)(void *data);
+
/**
* Requests for freeing origins.
*
* The obtained profile must be deleted by ewk_autofill_profile_delete.
*
* @param context context object
- * @param profile id
+ * @param id profile id
*
* @return @c Ewk_Autofill_Profile if profile exists, @c NULL otherwise
* @see ewk_autofill_profile_delete
EXPORT_API Ewk_Autofill_Profile* ewk_context_form_autofill_profile_get(Ewk_Context* context, unsigned id);
/**
+ * Sets callback for credit_cards change notification.
+ *
+ * @param callback pointer to callback function
+ * @param user_data user data returned on callback
+ *
+ */
+EXPORT_API void ewk_context_form_autofill_credit_card_changed_callback_set(
+ Ewk_Context_Form_Autofill_CreditCard_Changed_Callback callback,
+ void* user_data);
+
+/**
+ * @if MOBILE
+ * @brief Saves the created credit_card into permenant storage
+ *
+ * The credit_card used to save must be created by ewk_autofill_credit_card_new.
+ * Data can be added to the created credit_card by ewk_autofill_credit_card_data_set.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context Context object
+ * @param[in] credit_card Ewk_Autofill_CreditCard
+ *
+ * @return @c EINA_TRUE if the credit_card data is saved successfully, otherwise
+ * @c EINA_FALSE
+ *
+ * @see ewk_autofill_credit_card_new
+ * @endif
+ */
+EXPORT_API Eina_Bool ewk_context_form_autofill_credit_card_add(Ewk_Context* context, Ewk_Autofill_CreditCard* credit_card);
+
+/**
+ * @if MOBILE
+ * @brief Gets the existing credit_card for given index
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context Context object
+ * @param[in] id CreditCard
+ *
+ * @return @c Ewk_Autofill_CreditCard if credit_card exists, otherwise @c NULL
+ *
+ * @see ewk_autofill_credit_card_delete
+ * @endif
+ */
+EXPORT_API Ewk_Autofill_CreditCard* ewk_context_form_autofill_credit_card_get(Ewk_Context* context, unsigned id);
+
+/**
+ * @if MOBILE
+ * @brief Gets a list of all existing credit_cards
+ *
+ * The obtained credit_card must be deleted by ewk_autofill_credit_card_delete.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context Context object
+ *
+ * @return @c Eina_List of Ewk_Autofill_CreditCard, otherwise @c NULL
+ *
+ * @see ewk_autofill_credit_card_delete
+ * @endif
+ */
+EXPORT_API Eina_List* ewk_context_form_autofill_credit_card_get_all(Ewk_Context* context);
+
+/**
+ * @if MOBILE
+ * @brief Sets the given credit_card for the given id
+ *
+ * Data can be added to the created credit_card by ewk_autofill_credit_card_data_set.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context Context object
+ * @param[in] id CreditCard
+ * @param[in] credit_card Ewk_Autofill_CreditCard
+ *
+ * @return @c EINA_TRUE if the credit_card data is set successfully, otherwise
+ * @c EINA_FALSE
+ *
+ * @see ewk_autofill_credit_card_new
+ * @see ewk_context_form_autofill_credit_card_add
+ * @endif
+ */
+EXPORT_API Eina_Bool ewk_context_form_autofill_credit_card_set(Ewk_Context* context, unsigned id, Ewk_Autofill_CreditCard* credit_card);
+
+/**
+ * @if MOBILE
+ * @brief Removes Autofill Form credit_card completely
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context Context object
+ * @param[in] id CreditCard
+ *
+ * @return @c EINA_TRUE if the credit_card data is removed successfully, otherwise
+ @c EINA_FALSE
+ *
+ * @see ewk_context_form_autofill_credit_card_get_all
+ * @endif
+ */
+EXPORT_API Eina_Bool ewk_context_form_autofill_credit_card_remove(Ewk_Context* context, unsigned id);
+
+/**
* Get tizen extensible api enable state
*
* @param context context object
*/
EXPORT_API Eina_Bool ewk_context_web_database_delete_all(Ewk_Context* context);
+/**
+ * Sets app_control.
+ *
+ * @param context context object
+ * @param app_control app_control handle.
+ *
+ * @return @c EINA_TRUE if successful, @c EINA_FALSE otherwise
+ *
+ */
+EXPORT_API Eina_Bool ewk_context_app_control_set(const Ewk_Context* context, void* app_control);
+
EXPORT_API Eina_Bool ewk_context_notification_callbacks_set(Ewk_Context* context,
Ewk_Context_Notification_Show_Callback show_callback,
Ewk_Context_Notification_Cancel_Callback cancel_callback, void* user_data);
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
*/
enum _Ewk_Context_Menu_Item_Tag{
- EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION = 0, /**< No action */
+ EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION = 0,
EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK_IN_NEW_WINDOW, /**< Open link in new window */
EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_LINK_TO_DISK, /**< Download link to disk */
EWK_CONTEXT_MENU_ITEM_TAG_COPY_LINK_TO_CLIPBOARD, /**< Copy link to clipboard */
EWK_CONTEXT_MENU_ITEM_TAG_OPEN_IMAGE_IN_CURRENT_WINDOW, /**< Open image in current window */
EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_IMAGE_TO_DISK, /**< Download image to disk */
EWK_CONTEXT_MENU_ITEM_TAG_COPY_IMAGE_TO_CLIPBOARD, /**< Copy image to clipboard */
- EWK_CONTEXT_MENU_ITEM_TAG_OPEN_FRAME_IN_NEW_WINDOW, /**< Open frame in new window */
+ EWK_CONTEXT_MENU_ITEM_TAG_OPEN_FRAME_IN_NEW_WINDOW,
EWK_CONTEXT_MENU_ITEM_TAG_COPY, /**< Copy */
- EWK_CONTEXT_MENU_ITEM_TAG_GO_BACK, /**< Go back */
- EWK_CONTEXT_MENU_ITEM_TAG_GO_FORWARD, /**< Go forward */
- EWK_CONTEXT_MENU_ITEM_TAG_STOP, /**< Stop */
- EWK_CONTEXT_MENU_ITEM_TAG_SHARE, /**< Share */
- EWK_CONTEXT_MENU_ITEM_TAG_RELOAD, /**< Reload */
+ EWK_CONTEXT_MENU_ITEM_TAG_GO_BACK,
+ EWK_CONTEXT_MENU_ITEM_TAG_GO_FORWARD,
+ EWK_CONTEXT_MENU_ITEM_TAG_STOP,
+ EWK_CONTEXT_MENU_ITEM_TAG_SHARE,
+ EWK_CONTEXT_MENU_ITEM_TAG_RELOAD,
EWK_CONTEXT_MENU_ITEM_TAG_CUT, /**< Cut */
EWK_CONTEXT_MENU_ITEM_TAG_PASTE, /**< Paste */
- EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_GUESS, /**< Spelling guess */
- EWK_CONTEXT_MENU_ITEM_TAG_NO_GUESSES_FOUND, /**< Guess found */
- EWK_CONTEXT_MENU_ITEM_TAG_IGNORE_SPELLING, /**< Ignore spelling */
- EWK_CONTEXT_MENU_ITEM_TAG_LEARN_SPELLING, /**< Learn spelling */
- EWK_CONTEXT_MENU_ITEM_TAG_OTHER, /**< Other */
- EWK_CONTEXT_MENU_ITEM_TAG_SEARCH_IN_SPOTLIGHT, /**< Search in spotlight */
+ EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_GUESS,
+ EWK_CONTEXT_MENU_ITEM_TAG_NO_GUESSES_FOUND,
+ EWK_CONTEXT_MENU_ITEM_TAG_IGNORE_SPELLING,
+ EWK_CONTEXT_MENU_ITEM_TAG_LEARN_SPELLING,
+ EWK_CONTEXT_MENU_ITEM_TAG_OTHER,
+ EWK_CONTEXT_MENU_ITEM_TAG_SEARCH_IN_SPOTLIGHT,
EWK_CONTEXT_MENU_ITEM_TAG_SEARCH_WEB, /**< Search web */
- EWK_CONTEXT_MENU_ITEM_TAG_LOOK_UP_IN_DICTIONARY, /**< Look up in dictionary */
- EWK_CONTEXT_MENU_ITEM_TAG_OPEN_WITH_DEFAULT_APPLICATION, /**< Open with default application */
- EWK_CONTEXT_MENU_ITEM_TAG_PDF_ACTUAL_SIZE, /**< PDF actual size */
- EWK_CONTEXT_MENU_ITEM_TAG_PDF_ZOOM_IN, /**< PDF zoom in */
- EWK_CONTEXT_MENU_ITEM_TAG_PDF_ZOOM_OUT, /**< PDF zoom out */
- EWK_CONTEXT_MENU_ITEM_TAG_PDF_AUTO_SIZE, /**< PDF auto size */
- EWK_CONTEXT_MENU_ITEM_TAG_PDF_SINGLE_PAGE, /**< PDF single page */
- EWK_CONTEXT_MENU_ITEM_TAG_PDF_FACTING_PAGES, /**< PDF facting page */
- EWK_CONTEXT_MENU_ITEM_TAG_PDF_CONTINUOUS, /**< PDF continuous */
- EWK_CONTEXT_MENU_ITEM_TAG_PDF_NEXT_PAGE, /**< PDF next page */
- EWK_CONTEXT_MENU_ITEM_TAG_PDF_PREVIOUS_PAGE, /**< PDF previous page */
+ EWK_CONTEXT_MENU_ITEM_TAG_LOOK_UP_IN_DICTIONARY,
+ EWK_CONTEXT_MENU_ITEM_TAG_OPEN_WITH_DEFAULT_APPLICATION,
+ EWK_CONTEXT_MENU_ITEM_TAG_PDF_ACTUAL_SIZE,
+ EWK_CONTEXT_MENU_ITEM_TAG_PDF_ZOOM_IN,
+ EWK_CONTEXT_MENU_ITEM_TAG_PDF_ZOOM_OUT,
+ EWK_CONTEXT_MENU_ITEM_TAG_PDF_AUTO_SIZE,
+ EWK_CONTEXT_MENU_ITEM_TAG_PDF_SINGLE_PAGE,
+ EWK_CONTEXT_MENU_ITEM_TAG_PDF_FACTING_PAGES,
+ EWK_CONTEXT_MENU_ITEM_TAG_PDF_CONTINUOUS,
+ EWK_CONTEXT_MENU_ITEM_TAG_PDF_NEXT_PAGE,
+ EWK_CONTEXT_MENU_ITEM_TAG_PDF_PREVIOUS_PAGE,
EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK, /**< Open link */
- EWK_CONTEXT_MENU_ITEM_TAG_IGNORE_GRAMMAR, /**< Ignore grammar */
- EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_MENU, /**< Spelling menu */
- EWK_CONTEXT_MENU_ITEM_TAG_SHOW_SPELLING_PANEL, /**< Show spelling panel */
- EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING, /**< Check spelling */
- EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING_WHILE_TYPING, /**< Check spelling white typing */
- EWK_CONTEXT_MENU_ITEM_TAG_CHECK_GRAMMAR_WITH_SPELLING, /**< Check grammar with spelling */
- EWK_CONTEXT_MENU_ITEM_TAG_FONT_MENU, /**< Font menu */
- EWK_CONTEXT_MENU_ITEM_TAG_SHOW_FONTS, /**< Show fonts */
- EWK_CONTEXT_MENU_ITEM_TAG_BOLD, /**< Bold */
- EWK_CONTEXT_MENU_ITEM_TAG_ITALIC, /**< Italic */
- EWK_CONTEXT_MENU_ITEM_TAG_UNDERLINE, /**< Underline */
- EWK_CONTEXT_MENU_ITEM_TAG_OUTLINE, /**< Outline */
- EWK_CONTEXT_MENU_ITEM_TAG_STYLES, /**< Style */
- EWK_CONTEXT_MENU_ITEM_TAG_SHOW_COLORS, /**< Show colors */
- EWK_CONTEXT_MENU_ITEM_TAG_SPEECH_MENU, /**< Speech menu */
- EWK_CONTEXT_MENU_ITEM_TAG_START_SPEAKING, /**< Start speaking */
- EWK_CONTEXT_MENU_ITEM_TAG_STOP_SPEAKING, /**< Stop speaking */
- EWK_CONTEXT_MENU_ITEM_TAG_WRITING_DIRECTION_MENU, /**< Writing direction menu */
- EWK_CONTEXT_MENU_ITEM_TAG_DEFAULT_DIRECTION, /**< Default direction */
- EWK_CONTEXT_MENU_ITEM_TAG_LEFT_TO_RIGHT, /**< Left to right */
- EWK_CONTEXT_MENU_ITEM_TAG_RIGHT_TO_LEFT, /**< Right to left */
- EWK_CONTEXT_MENU_ITEM_TAG_PDF_SINGLE_PAGE_SCROLLING, /**< PDF single page scrolling */
- EWK_CONTEXT_MENU_ITEM_TAG_PDF_FACING_PAGES_SCROLLING, /**< PDF facing page scrolling */
+ EWK_CONTEXT_MENU_ITEM_TAG_IGNORE_GRAMMAR,
+ EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_MENU,
+ EWK_CONTEXT_MENU_ITEM_TAG_SHOW_SPELLING_PANEL,
+ EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING,
+ EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING_WHILE_TYPING,
+ EWK_CONTEXT_MENU_ITEM_TAG_CHECK_GRAMMAR_WITH_SPELLING,
+ EWK_CONTEXT_MENU_ITEM_TAG_FONT_MENU,
+ EWK_CONTEXT_MENU_ITEM_TAG_SHOW_FONTS,
+ EWK_CONTEXT_MENU_ITEM_TAG_BOLD,
+ EWK_CONTEXT_MENU_ITEM_TAG_ITALIC,
+ EWK_CONTEXT_MENU_ITEM_TAG_UNDERLINE,
+ EWK_CONTEXT_MENU_ITEM_TAG_OUTLINE,
+ EWK_CONTEXT_MENU_ITEM_TAG_STYLES,
+ EWK_CONTEXT_MENU_ITEM_TAG_SHOW_COLORS,
+ EWK_CONTEXT_MENU_ITEM_TAG_SPEECH_MENU,
+ EWK_CONTEXT_MENU_ITEM_TAG_START_SPEAKING,
+ EWK_CONTEXT_MENU_ITEM_TAG_STOP_SPEAKING,
+ EWK_CONTEXT_MENU_ITEM_TAG_WRITING_DIRECTION_MENU,
+ EWK_CONTEXT_MENU_ITEM_TAG_DEFAULT_DIRECTION,
+ EWK_CONTEXT_MENU_ITEM_TAG_LEFT_TO_RIGHT,
+ EWK_CONTEXT_MENU_ITEM_TAG_RIGHT_TO_LEFT,
+ EWK_CONTEXT_MENU_ITEM_TAG_PDF_SINGLE_PAGE_SCROLLING,
+ EWK_CONTEXT_MENU_ITEM_TAG_PDF_FACING_PAGES_SCROLLING,
EWK_CONTEXT_MENU_ITEM_TAG_INSPECT_ELEMENT, /**< Inspect element */
- EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_MENU, /**< Text direction menu */
- EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_DEFAULT, /**< Text direction default */
- EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_LEFT_TO_RIGHT, /**< Text direction left to right */
- EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_RIGHT_TO_LEFT, /**< Text direction right to left */
- EWK_CONTEXT_MENU_ITEM_TAG_CORRECT_SPELLING_AUTOMATICALLY, /**< Correct spelling automatically */
- EWK_CONTEXT_MENU_ITEM_TAG_SUBSTITUTIONS_MENU, /**< Substitutions menu */
- EWK_CONTEXT_MENU_ITEM_TAG_SHOW_SUBSTITUTIONS, /**< Show substitutions */
- EWK_CONTEXT_MENU_ITEM_TAG_SMART_COPY_PASTE, /**< Smart copy paste */
- EWK_CONTEXT_MENU_ITEM_TAG_SMART_QUOTES, /**< Smart quotes */
- EWK_CONTEXT_MENU_ITEM_TAG_SMART_DASHES, /**< Smart dashes */
- EWK_CONTEXT_MENU_ITEM_TAG_SMART_LINKS, /**< Smart links */
- EWK_CONTEXT_MENU_ITEM_TAG_TEXT_REPLACEMENT, /**< Text replacement */
- EWK_CONTEXT_MENU_ITEM_TAG_TRANSFORMATIONS_MENU, /**< Transformation menu */
- EWK_CONTEXT_MENU_ITEM_TAG_MAKE_UPPER_CASE, /**< Make upper case */
- EWK_CONTEXT_MENU_ITEM_TAG_MAKE_LOWER_CASE, /**< Make lower case */
- EWK_CONTEXT_MENU_ITEM_TAG_CAPITALIZE, /**< Capitalize */
- EWK_CONTEXT_MENU_ITEM_TAG_CHANGE_BACK, /**< Change back */
- EWK_CONTEXT_MENU_ITEM_TAG_OPEN_MEDIA_IN_NEW_WINDOW, /**< Open media in new window */
- EWK_CONTEXT_MENU_ITEM_TAG_COPY_MEDIA_LINK_TO_CLIPBOARD, /**< Copy media link to clipboard */
- EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_CONTROLS, /**< Toggle media controls */
- EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_LOOP, /**< Toggle media loop */
- EWK_CONTEXT_MENU_ITEM_TAG_ENTER_VIDEO_FULLSCREEN, /**< Enter video fullscreen */
- EWK_CONTEXT_MENU_ITEM_TAG_MEDIA_PLAY_PAUSE, /**< Media play pause */
- EWK_CONTEXT_MENU_ITEM_TAG_MEDIA_MUTE, /**< Media mute */
- EWK_CONTEXT_MENU_ITEM_TAG_DICTATION_ALTERNATIVE, /**< Dictation alternative */
+ EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_MENU,
+ EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_DEFAULT,
+ EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_LEFT_TO_RIGHT,
+ EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_RIGHT_TO_LEFT,
+ EWK_CONTEXT_MENU_ITEM_TAG_CORRECT_SPELLING_AUTOMATICALLY,
+ EWK_CONTEXT_MENU_ITEM_TAG_SUBSTITUTIONS_MENU,
+ EWK_CONTEXT_MENU_ITEM_TAG_SHOW_SUBSTITUTIONS,
+ EWK_CONTEXT_MENU_ITEM_TAG_SMART_COPY_PASTE,
+ EWK_CONTEXT_MENU_ITEM_TAG_SMART_QUOTES,
+ EWK_CONTEXT_MENU_ITEM_TAG_SMART_DASHES,
+ EWK_CONTEXT_MENU_ITEM_TAG_SMART_LINKS,
+ EWK_CONTEXT_MENU_ITEM_TAG_TEXT_REPLACEMENT,
+ EWK_CONTEXT_MENU_ITEM_TAG_TRANSFORMATIONS_MENU,
+ EWK_CONTEXT_MENU_ITEM_TAG_MAKE_UPPER_CASE,
+ EWK_CONTEXT_MENU_ITEM_TAG_MAKE_LOWER_CASE,
+ EWK_CONTEXT_MENU_ITEM_TAG_CAPITALIZE,
+ EWK_CONTEXT_MENU_ITEM_TAG_CHANGE_BACK,
+ EWK_CONTEXT_MENU_ITEM_TAG_OPEN_MEDIA_IN_NEW_WINDOW,
+ EWK_CONTEXT_MENU_ITEM_TAG_COPY_MEDIA_LINK_TO_CLIPBOARD,
+ EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_CONTROLS,
+ EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_LOOP,
+ EWK_CONTEXT_MENU_ITEM_TAG_ENTER_VIDEO_FULLSCREEN,
+ EWK_CONTEXT_MENU_ITEM_TAG_MEDIA_PLAY_PAUSE,
+ EWK_CONTEXT_MENU_ITEM_TAG_MEDIA_MUTE,
+ EWK_CONTEXT_MENU_ITEM_TAG_DICTATION_ALTERNATIVE,
EWK_CONTEXT_MENU_ITEM_TAG_SELECT_ALL, /**< Select all */
EWK_CONTEXT_MENU_ITEM_TAG_SELECT_WORD, /**< Select word */
EWK_CONTEXT_MENU_ITEM_TAG_TEXT_SELECTION_MODE, /**< Text selection mode */
- EWK_CONTEXT_MENU_ITEM_TAG_CLIPBOARD, /**< Clipboard */
- EWK_CONTEXT_MENU_ITEM_TAG_DRAG, /**< Drag */
+ EWK_CONTEXT_MENU_ITEM_TAG_CLIPBOARD,
+ EWK_CONTEXT_MENU_ITEM_TAG_DRAG,
EWK_CONTEXT_MENU_ITEM_TAG_TRANSLATE, /**< Translate */
EWK_CONTEXT_MENU_ITEM_TAG_COPY_LINK_DATA, /**< Copy lnk data */
EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG = 10000 /**< If app want to add customized item, use enum value after #EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG */
EXPORT_API void ewk_set_arguments(int argc, char** argv);
/**
+* Deprecated.
* Set home directory.
*
* If new path is NULL or empty string, home directory is considered as not set.
*
*/
-EXPORT_API void ewk_home_directory_set(const char* path);
+EINA_DEPRECATED EXPORT_API void ewk_home_directory_set(const char* path);
#ifdef __cplusplus
}
*/
EXPORT_API const void* ewk_media_subtitle_data_get(Ewk_Media_Subtitle_Data *data);
+#if defined(OS_TIZEN_TV_PRODUCT)
+Ewk_Media_Subtitle_Info* ewkMediaSubtitleInfoCreate(int id, const char* url,
+const char* lang, const char* label);
+
+void ewkMediaSubtitleInfoDelete(Ewk_Media_Subtitle_Info* data);
+
+Ewk_Media_Subtitle_Data* ewkMediaSubtitleDataCreate(int id, double timestamp,
+const void* data, unsigned size);
+
+void ewkMediaSubtitleDataDelete(Ewk_Media_Subtitle_Data* data);
+#endif
+
#ifdef __cplusplus
}
#endif
/**
* Requests to enable/disable spdy.
*
+ * @deprecated Deprecated since Tizen 4.0.
+ *
* @param settings param not needed, only present for API compatibility
*
* @param spdy_enabled @c EINA_TRUE to enable the spdy @c EINA_FALSE to disable
*
* @return always @c EINA_TRUE, only present for API compatibility
*/
-EXPORT_API Eina_Bool ewk_settings_spdy_enabled_set(Ewk_Settings *settings, Eina_Bool spdy_enabled);
+EINA_DEPRECATED EXPORT_API Eina_Bool ewk_settings_spdy_enabled_set(Ewk_Settings *settings, Eina_Bool spdy_enabled);
/**
* Get spdy enabled/disabled state.
*
+ * @deprecated Deprecated since Tizen 4.0.
+ *
* @param settings param not needed, only present for API compatibility
*
* @return @c EINA_TRUE if enabled or @c EINA_FALSE if disabled
*/
-EXPORT_API Eina_Bool ewk_settings_spdy_enabled_get(Ewk_Settings *settings);
+EINA_DEPRECATED EXPORT_API Eina_Bool ewk_settings_spdy_enabled_get(Ewk_Settings *settings);
/**
* Requests to set the performance features of soup enable/disable.
typedef struct _Ewk_User_Media_Permission_Request Ewk_User_Media_Permission_Request;
/**
+ * enum _Ewk_User_Media_Device_Type
+ * @brief Contains device type option for media permission request
+ *
+ */
+enum _Ewk_User_Media_Device_Type {
+ EWK_USER_MEDIA_DEVICE_TYPE_NONE = 0,
+ EWK_USER_MEDIA_DEVICE_TYPE_MICROPHONE = 1, /* MicroPhone type */
+ EWK_USER_MEDIA_DEVICE_TYPE_CAMERA = 2, /* Camera type */
+ EWK_USER_MEDIA_DEVICE_TYPE_MICROPHONE_AND_CAMERA = 3 /* Both MicroPhone and Camera. */
+};
+
+/**
+ * @brief The enum type that creates a type name for _Ewk_User_Media_Device_Type.
+ */
+typedef enum _Ewk_User_Media_Device_Type Ewk_User_Media_Device_Type;
+
+/**
* Requests for getting origin of local media permission request.
*
* @param request Ewk_User_Media_Permission_Request object to get origin for
*/
EXPORT_API void ewk_user_media_permission_reply(Ewk_User_Media_Permission_Request* request, Eina_Bool allow);
+/**
+ * Requests for getting message of local media permission request.
+ *
+ * @param request Ewk_User_Media_Permission_Request object to get message for
+ * userMedia permission request
+ *
+ * @return message of userMedia permission request
+ */
+EXPORT_API const char* ewk_user_media_permission_request_message_get(const Ewk_User_Media_Permission_Request* request);
+
+/**
+ * Get the type of device type for media permission request message.
+ *
+ * @param request Ewk_User_Media_Permission_Request object to get message for
+ * userMedia permission request
+ *
+ * @return The type of device type, MicroPhone, Camera, or both of them.
+ */
+EXPORT_API Ewk_User_Media_Device_Type ewk_user_media_permission_request_device_type_get(const Ewk_User_Media_Permission_Request* request);
+
#ifdef __cplusplus
}
#endif
*
* @since_tizen 3.0
*
- * @remarks Certainly, specify privileges of using native API to users,
+ * @remarks Note that injected objects will not appear in JavaScript
+ * until the page is next (re)loaded.
+ *
+ * Certainly, specify privileges of using native API to users,
* if using native API affects system settings, stability or security.
* Privilege display name & description which will be noticed to user.
*
EXPORT_API void ewk_view_horizontal_panning_hold_set(Evas_Object* o, Eina_Bool hold);
/**
+ * @brief Gets whether horizontal panning is holding.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] o view object to get whether horizontal panning is holding
+ *
+ * @return @c EINA_TRUE if horizontal panning is holding
+ * @c EINA_FALSE if not or on failure
+ */
+EXPORT_API Eina_Bool ewk_view_horizontal_panning_hold_get(Evas_Object* o);
+
+/**
+ * @brief Sets to hold horizontal panning.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] o view object to set to hold horizontal panning
+ * @param[in] hold @c EINA_TRUE to hold horizontal panning
+ * @c EINA_FALSE not to hold
+ */
+EXPORT_API void ewk_view_horizontal_panning_hold_set(Evas_Object* o, Eina_Bool hold);
+
+/**
* @brief Gets whether vertical panning is holding.
*
* @since_tizen 2.3
/**
* Sets zoom factor of the current page.
*
+ * @note ewk_view_page_zoom_set internally might use older page than current
+ * one, if you called it immediately after ewk_view_url_set. To be safe
+ * from such race, use it from inside 'url,changed' callback, which can
+ * be registered on ewk_view.
+ *
* @param o view object to set the zoom level
* @param zoom_factor a new level to set
*
* @param item view object to resume new url loading
*
*/
-EXPORT_API void ewk_view_resume_network_loading(Evas_Object* item);
+EXPORT_API void ewk_view_resume_network_loading(Evas_Object* ewkView);
EXPORT_API void ewk_view_poweroff_suspend(Evas_Object *item);
* @param item view object to suspend url loading
*
*/
-EXPORT_API void ewk_view_suspend_network_loading(Evas_Object* item);
+EXPORT_API void ewk_view_suspend_network_loading(Evas_Object* ewkView);
/**
* This function should be use for browser edge scroll.
*/
EXPORT_API Eina_Bool ewk_view_set_support_video_hole(Evas_Object* ewkView, Evas_Object* window, Eina_Bool enable, Eina_Bool isVideoWindow);
+/**
+ * @brief Sets the support of canvas hole, Use H/W overlay for video quality of WebGL 360 degree.
+ * Also, The WebBrowser provisionally want to show plane 360 video through canvas hole.
+ *
+ * @since_tizen 3.0
+ *
+ * @note Should be used after ewk_view_url_set().
+ *
+ * @param[in] o the view object
+ * @param[in] url string (ex. "youtube.com")
+ *
+ * @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ */
+EXPORT_API Eina_Bool ewk_view_set_support_canvas_hole(Evas_Object* ewkView, const char* url);
+
#if defined(TIZEN_PEPPER_EXTENSIONS)
/**
EXPORT_API Eina_Bool ewk_view_set_custom_device_pixel_ratio(Evas_Object* ewkView, Eina_Bool enabled);
/**
+ * @brief Gets whether horizontal panning is holding.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] o view object to get whether horizontal panning is holding
+ *
+ * @return @c EINA_TRUE if horizontal panning is holding
+ * @c EINA_FALSE if not or on failure
+ */
+EXPORT_API Eina_Bool ewk_view_horizontal_panning_hold_get(Evas_Object* o);
+
+/**
+ * @brief Sets to hold horizontal panning.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] o view object to set to hold horizontal panning
+ * @param[in] hold @c EINA_TRUE to hold horizontal panning
+ * @c EINA_FALSE not to hold
+ */
+EXPORT_API void ewk_view_horizontal_panning_hold_set(Evas_Object* o, Eina_Bool hold);
+
+/**
* @brief Gets whether vertical panning is holding.
*
* @since_tizen 2.3
*/
EXPORT_API void ewk_view_widget_pepper_extension_info_set(Evas_Object* ewk_view, Ewk_Value widget_pepper_ext_info);
-#if defined(OS_TIZEN_TV_PRODUCT)
/**
* Set the translated url to media player.
*
*/
EXPORT_API Eina_Bool ewk_view_app_preload_set(Evas_Object* ewkView, Eina_Bool is_preload);
-#endif
+
+/**
+* Set app enable marlin or not.
+*
+* @param ewkView view object
+* @param is_enable if app enable marlin drm
+*
+* @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+*/
+EXPORT_API Eina_Bool ewk_view_marlin_enable_set(Evas_Object* ewkView, Eina_Bool is_enable);
+
+/**
+* Set the selected text track language to media player.
+*
+* @param ewkView view object
+* @param lang_list comma separated three_digit_language code. (For example "eng,deu")
+*
+*/
+EXPORT_API void ewk_media_set_subtitle_lang(Evas_Object* ewkView, const char* lang_list);
+
+/**
+* Set the if use high bit rate to media player.
+*
+* @param ewkView view object
+* @param is_high if app use high bit rate
+*
+*/
+EXPORT_API void ewk_media_start_with_high_bit_rate(Evas_Object* ewkView, Eina_Bool is_high_bitrate);
+
/**
* @brief Sends key event.
*/
EXPORT_API void ewk_view_atk_deactivation_by_app(Evas_Object* view, Eina_Bool enable);
+/**
+ * remove custom header
+ *
+ * @param o view object to remove custom header
+ *
+ * @param name custom header name to remove the custom header
+ *
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ */
+EXPORT_API Eina_Bool ewk_view_custom_header_remove(const Evas_Object* o, const char* name);
+
+/**
+ * Returns application name string.
+ *
+ * @param o view object to get the application name
+ *
+ * @return @c application name. The returned string @b should be freed by
+ * eina_stringshare_del() after use.
+ */
+EXPORT_API const char* ewk_view_application_name_for_user_agent_get(const Evas_Object* o);
+
/*
* Get cookies associated with an URL.
*
EXPORT_API void ewk_view_force_layout(const Evas_Object* o);
/**
+* Gets the video's timestamp.
+*
+* @param o view object to get the video's timestamp
+*
+* @return timestamp value
+*/
+EXPORT_API double ewk_view_media_current_time_get(const Evas_Object *o);
+
+/**
* Creates a type name for the callback function used to get video current time.
*
* @param o view object
*/
EXPORT_API void ewk_media_current_time_get(const Evas_Object* o, Ewk_View_Video_Current_Time_Get_Callback callback, void *user_data);
+
/**
* @brief Enforces web page to close
*
*
* @param ewkView view object
*/
-
EXPORT_API void ewk_view_clear_all_tiles_resources(Evas_Object* ewkView);
/**
+* Request canvas to be shown in full-screen.
+*
+* @param ewkView view object
+*/
+EXPORT_API void ewk_view_request_canvas_fullscreen(Evas_Object* ewkView);
+
+/**
+* play 360 video in the view
+*
+* @param ewkView view object
+*/
+EXPORT_API void ewk_view_360video_play(Evas_Object* ewkView);
+
+/**
+* pause 360 video in the view
+*
+* @param ewkView view object
+*/
+EXPORT_API void ewk_view_360video_pause(Evas_Object* ewkView);
+
+/**
+ * Callback for ewk_view_360video_duration
+ *
+ * @param o view object
+ * @param duration 360 video's duration
+ * @param user_data user_data will be passsed when ewk_view_360video_duration is called
+ */
+typedef void (*Ewk_360_Video_Duration_Callback)(Evas_Object* o, double duration, void* user_data);
+
+/**
+* get duration of the 360 video in the view
+*
+* @param ewkView view object
+*
+* @return duration of the video
+*/
+EXPORT_API void ewk_view_360video_duration(Evas_Object* ewkView, Ewk_360_Video_Duration_Callback callback, void* user_data);
+
+/**
+ * Callback for ewk_view_360video_current_time
+ *
+ * @param o view object
+ * @param current_time 360 video's current time
+ * @param user_data user_data will be passsed when ewk_view_360video_current_time is called
+ */
+typedef void (*Ewk_360_Video_CurrentTime_Callback)(Evas_Object* o, double current_time, void* user_data);
+
+/**
+* get current time of the 360 video in the view
+*
+* @param ewkView view object
+*
+* @return current time of the video
+*/
+EXPORT_API void ewk_view_360video_current_time(Evas_Object* ewkView, Ewk_360_Video_CurrentTime_Callback callback, void* user_data);
+
+/**
+* set current time of the 360 video in the view
+*
+* @param ewkView view object
+*
+* @param current_time set current time
+*/
+EXPORT_API void ewk_view_360video_set_current_time(Evas_Object* ewkView, double current_time);
+
+/**
* Requests execution of the given script in the main frame and subframes of the page.
*
* The result value for the execution can be retrieved from the asynchronous callback.
EXPORT_API void ewk_view_floating_window_state_changed(const Evas_Object *o, Eina_Bool status);
/**
+ * @brief Draw the evas image object for the VoiceManager
+ *
+ * @since_tizen 3.0
+ *
+ * @param[in] view the view object
+ * @param[in] image evas image obejct for drawing
+ * @param[in] rect rectangle of image object for drawing
+ */
+EXPORT_API void ewk_view_voicemanager_label_draw(Evas_Object* view, Evas_Object* image, Eina_Rectangle rect);
+
+/**
+ * @brief Hide and remove all labels for the VoiceManager
+ *
+ * @details All labels are cleared on mouse down.
+ *
+ * @since_tizen 3.0
+ *
+ * @param[in] view the view object
+ */
+EXPORT_API void ewk_view_voicemanager_labels_clear(Evas_Object* view);
+
+/**
* @}
*/
class PrescientNetworkingDispatcher;
}
+#if defined(OS_TIZEN_TV_PRODUCT)
+class RenderViewObserverEfl;
+#endif
+
struct Ewk_Wrt_Message_Data;
class WrtUrlParseImpl;
blink::WebNavigationPolicy default_policy,
bool is_redirect) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
bool WillSendRequest(blink::WebFrame* frame,
ui::PageTransition transition_type,
const blink::WebURL& url,
GURL* new_url,
bool& is_decrypted_file) override;
-#if defined(OS_TIZEN_TV_PRODUCT)
bool GetFileDecryptedDataBuffer(const GURL& url,
std::vector<char>* data) override;
floating_video_window_on_ = enable;
}
bool FloatingVideoWindowOn() override { return floating_video_window_on_; }
+ void RenderViewDestroyed() override;
#endif
void DidCreateScriptContext(
override;
bool shutting_down() const { return shutting_down_; }
- void set_shutting_down(bool shutting_down) { shutting_down_ = shutting_down; }
+ void set_shutting_down(bool shutting_down) {
+ shutting_down_ = shutting_down;
+ } // LCOV_EXCL_LINE
#if defined(TIZEN_PEPPER_EXTENSIONS)
bool IsPluginAllowedToUseCompositorAPI(const GURL& url) override;
bool javascript_can_open_windows_;
#if defined(OS_TIZEN_TV_PRODUCT)
bool floating_video_window_on_;
+ // Deletes itself when render_view is destroyed.
+ RenderViewObserverEfl* render_view_observer_;
#endif
bool shutting_down_;
};
#if defined(OS_TIZEN_TV_PRODUCT)
bool allowInsecureContent(bool allowed_per_settings);
void OnSetAllowInsecureContent(bool allow);
+ ContentSettingsClientEfl* getParentClient(RenderFrame* render_frame);
+ bool getAllowInsecureContent(const ContentSettingsClientEfl* client);
+ void setMixedContentState(ContentSettingsClientEfl* client, bool state);
+ bool getMixedContentState(const ContentSettingsClientEfl* client);
// Insecure content may be permitted for the duration of this render view.
+ ContentSettingsClientEfl* parent_client_;
bool mixed_content_state_;
bool allow_insecure_content_;
#endif
// WebViewPlugin::Delegate method.
v8::Local<v8::Value> GetV8Handle(v8::Isolate*) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool PluginIsAvplayer() { return true; }
+#endif
void OnUnobscuredRectUpdate(const gfx::Rect& unobscured_rect) override;
void NotifyTransparentChanged();
v8::Local<v8::Value> GetV8Handle(v8::Isolate*) override;
v8::Local<v8::Object> GetV8ScriptableObject(
v8::Isolate* isolate) const override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ bool PluginIsAvplayer() { return false; }
+#endif
void OnUnobscuredRectUpdate(const gfx::Rect& unobscured_rect) override;
// From v8 to c++.
-// Copyright 2014 Samsung Electronics. All rights reserved.
+// Copyright 2014-2016 Samsung Electronics. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
bool OnMessageReceived(const IPC::Message& message) override;
void OnDestruct() override;
void DidCreateDocumentElement(blink::WebLocalFrame* frame) override;
+#if defined(OS_TIZEN)
+ void PlayLinkEffect() override;
+#endif
//Changes in PageScaleFactorLimits are applied when layoutUpdated is called
//So using this notification to update minimum and maximum page scale factor values
void OnSetSmoothScroll(const int& x, const int& y, const long& duration);
#if defined(OS_TIZEN_TV_PRODUCT)
void OnEdgeScrollBy(gfx::Point offset, gfx::Point mouse_position);
- void OnRequestHitTestForMouseLongPress(int view_x, int view_y);
+ void OnRequestHitTestForMouseLongPress(int render_id, int view_x, int view_y);
#endif
#if defined(TIZEN_ATK_FEATURE_VD)
void MoveFocusToBrowser(int direction) override;
#endif
void OnUseSettingsFont();
void OnPlainTextGet(int plain_text_get_callback_id);
- void OnGetSelectionStyle();
- void OnDoHitTest(int x, int y, Ewk_Hit_Test_Mode mode);
+ void OnDoHitTest(int x,
+ int y,
+ Ewk_Hit_Test_Mode mode);
void OnDoHitTestAsync(int view_x, int view_y, Ewk_Hit_Test_Mode mode, int64_t request_id);
bool DoHitTest(int view_x, int view_y, Ewk_Hit_Test_Mode mode, Hit_Test_Params* params);
void OnPrintToPdf(int width, int height, const base::FilePath& filename);
void OnGetMHTMLData(int callback_id);
+ void OnGetBackgroundColor(int callback_id);
void OnSetDrawsTransparentBackground(bool enabled);
void OnSetBackgroundColor(int red, int green, int blue, int alpha);
void OnWebAppIconUrlGet(int callback_id);
void CheckContentsSize();
void OnSuspendScheduledTasks();
void OnResumeScheduledTasks();
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void OnSuspendNetworkLoading();
+ void OnResumeNetworkLoading();
+#endif
void OnSetMainFrameScrollbarVisible(bool visible);
void OnGetMainFrameScrollbarVisible(int callback_id);
void OnUpdateWebKitPreferencesEfl(const WebPreferencesEfl&);
+ void OnIsVideoPlaying(int callback_id);
void OnUpdateFocusedNodeBounds();
void OnQueryInputType();
#if defined(TIZEN_VIDEO_HOLE)
void OnSetVideoHole(bool enable);
#endif
-
+#if defined(TIZEN_CANVAS_HOLE)
+ void OnSetCanvasHole(const std::string url);
+#endif
#if defined(OS_TIZEN_TV_PRODUCT)
void OnSetTranslatedUrl(const std::string url, bool* result);
void OnSetFloatVideoWindowState(bool enable);
+ void OnPlay360Video();
+ void OnPause360Video();
+ void On360VideoDuration(int callback_id);
+ void On360VideoCurrentTime(int callback_id);
+ void OnSet360VideoCurrentTime(double current_time);
+ void OnSetPreferTextLang(const std::string& lang);
#endif
blink::WebElement GetFocusedElement();
void OnSetTextZoomFactor(float zoom_factor);
#include "url_request_interceptor_efl.h"
namespace net {
+class CertVerifier;
class HostResolver;
class NetLog;
}
void* user_data);
#if defined(OS_TIZEN_TV_PRODUCT)
+ void SetInterceptRequestCancelCallback(
+ Ewk_Context* ewk_context,
+ Ewk_Context_Intercept_Request_Callback callback,
+ void* user_data);
+#endif
+
+#if defined(USE_NSS_CERTS) && defined(OS_TIZEN_TV_PRODUCT)
+ void SetMessageLoopForNSSHttpIO();
+#endif
+
+ void NotifyContextShuttingDown();
+
+#if defined(OS_TIZEN_TV_PRODUCT)
void UpdateWebAppDiskCachePath(const std::string& app_id);
#endif
bool persist_session_cookies);
bool ignore_certificate_errors_;
+ bool shut_down_;
base::FilePath base_path_;
#if defined(OS_TIZEN_TV_PRODUCT)
int cache_max_bytes_;
std::unique_ptr<net::NetworkDelegate> network_delegate_;
std::unique_ptr<net::URLRequestContextStorage> storage_;
std::unique_ptr<net::URLRequestContext> url_request_context_;
+ std::unique_ptr<net::CertVerifier> cert_verifier_;
ProtocolHandlerMap protocol_handlers_;
URLRequestInterceptorScopedVector request_interceptors_;
URLRequestInterceptorEFL* request_interceptor_efl_;
URLRequestInterceptorEFL::InterceptRequestCallbackWithData
intercept_request_callback_with_data_;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ URLRequestInterceptorEFL::InterceptRequestCallbackWithData
+ intercept_request_cancel_callback_with_data_;
+#endif
base::WeakPtrFactory<URLRequestContextGetterEfl> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(URLRequestContextGetterEfl);
};
URLRequestInterceptorEFL(
- InterceptRequestCallbackWithData intercept_request_callback_with_data);
+ InterceptRequestCallbackWithData intercept_request_callback_with_data
+#if defined(OS_TIZEN_TV_PRODUCT)
+ ,
+ InterceptRequestCallbackWithData
+ intercept_request_cancel_callback_with_data
+#endif
+ );
+
~URLRequestInterceptorEFL() override;
net::URLRequestJob* MaybeInterceptRequest(
void SetInterceptRequestCallback(
InterceptRequestCallbackWithData intercept_request_callback_with_data);
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void SetInterceptRequestCancelCallback(
+ InterceptRequestCallbackWithData
+ intercept_request_cancel_callback_with_data);
+ void NotifyInterceptRequestDestroy(
+ _Ewk_Intercept_Request* intercept_request) const;
+#endif
private:
InterceptRequestCallbackWithData intercept_request_callback_with_data_;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ InterceptRequestCallbackWithData intercept_request_cancel_callback_with_data_;
+#endif
DISALLOW_COPY_AND_ASSIGN(URLRequestInterceptorEFL);
};
#include "net/url_request/url_request_job.h"
#include "private/ewk_intercept_request_private.h"
+#include "url_request_interceptor_efl.h"
namespace net {
class URLRequest;
public:
URLRequestJobEFL(net::URLRequest* request,
net::NetworkDelegate* network_delegate,
+#if defined(OS_TIZEN_TV_PRODUCT)
+ const content::URLRequestInterceptorEFL* interceptor,
+#endif
_Ewk_Intercept_Request* intercept_request);
// URLRequestJob:
size_t ReadData(net::IOBuffer* buf, int buf_size);
size_t ReadChunkedData(net::IOBuffer* buf, int buf_size);
+#if defined(OS_TIZEN_TV_PRODUCT)
+ const content::URLRequestInterceptorEFL* interceptor_;
+#endif
std::unique_ptr<_Ewk_Intercept_Request> intercept_request_;
net::HttpResponseInfo response_info_;
WebContentsDelegateEfl(EWebView*);
~WebContentsDelegateEfl();
+ void AddNewContents(WebContents* source,
+ WebContents* new_contents,
+ WindowOpenDisposition disposition,
+ const gfx::Rect& initial_rect,
+ bool user_gesture,
+ bool* was_blocked) override;
+
WebContents* OpenURLFromTab(WebContents* source,
const content::OpenURLParams& params) override;
void NavigationStateChanged(WebContents* source,
InvalidateTypes changed_flags) override;
void LoadProgressChanged(WebContents* source, double progress) override;
- void LoadingStateChanged(WebContents* source,
- bool to_different_document) override;
bool ShouldCreateWebContents(
WebContents*,
WebContents* source,
const WebContentsUnresponsiveState& unresponsive_state) override;
void RendererResponsive(WebContents* source) override;
-
+ void NotifyUrlForPlayingVideo(const GURL& url) override;
void CloseContents(WebContents* source) override;
void EnterFullscreenModeForTab(content::WebContents* web_contents,
void RequestMediaAccessDeny(const MediaStreamRequest& request,
const MediaResponseCallback& callback);
#endif
-
- void RegisterProtocolHandler(WebContents* web_contents,
- const std::string& protocol,
- const GURL& url,
- bool user_gesture) override;
-
- void UnregisterProtocolHandler(WebContents* web_contents,
- const std::string& protocol,
- const GURL& url,
- bool user_gesture) override;
-
void FindReply(WebContents* web_contents,
int request_id,
int number_of_matches,
void QueryNumberFieldAttributes() override;
void WillImePanelShow() override;
+ void SetTooltipText(const base::string16& text) override;
+
void RequestCertificateConfirm(WebContents* web_contents, int cert_error,
const net::SSLInfo& ssl_info, const GURL& url, ResourceType resource_type,
bool overridable,
void VisibleSecurityStateChanged(WebContents* source) override;
+ void ActivateContents(WebContents* contents) override;
+
EWebView* web_view() const { return web_view_; }
WebContents& web_contents() const { return web_contents_; }
bool PreHandleGestureEvent(WebContents* source,
const blink::WebGestureEvent& event) override;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+ // Allows delegates to handle keyboard events before sending to the renderer.
+ // Returns true if the |event| was handled. Otherwise, if the |event| would be
+ // handled in HandleKeyboardEvent() method as a normal keyboard shortcut,
+ // |*is_keyboard_shortcut| should be set to true.
+ bool PreHandleKeyboardEvent(WebContents* source,
+ const NativeWebKeyboardEvent& event,
+ bool* is_keyboard_shortcut) override;
+#endif
+
void TitleWasSet(content::NavigationEntry* entry,
bool explicit_set) override;
#if defined(OS_TIZEN_TV_PRODUCT)
+ void UpdateCurrentTime(double current_time) override;
+ void NotifySubtitleState(int state, double time_stamp) override;
+ void NotifySubtitlePlay(int active_track_id,
+ const std::string& url,
+ const std::string& lang) override;
+ void NotifySubtitleData(int track_id,
+ double time_stamp,
+ const uint8_t* data,
+ unsigned int size) override;
void UpdateTargetURL(WebContents* source, const GURL& url) override;
void NotifyPlaybackState(int state,
const std::string& url,
std::string* translatedURL,
std::string* drmInfo) override;
void NotifyPlayingVideoRect(const gfx::RectF& rect);
+ bool GetMarlinEnable() override;
+ bool IsHighBitRate() override;
#endif
#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
const base::string16& error_description,
bool was_ignored_by_handler) override;
+ void DidChangeThemeColor(SkColor color) override;
+
+ void SetReaderMode(Eina_Bool enable);
+ void OnRecognizeArticleResult(bool is_article,
+ const base::string16& page_url) override;
void DidFailLoad(RenderFrameHost* render_frame_host,
const GURL& validated_url,
int error_code,
#endif
private:
+ void NotifyFrameRendered();
void ShowRepostFormWarningDialog(content::WebContents* source) override;
void OnGetContentSecurityPolicy(IPC::Message* reply_msg);
void OnWrtPluginMessage(const Ewk_Wrt_Message_Data& data);
void OnWrtPluginSyncMessage(const Ewk_Wrt_Message_Data& data,
IPC::Message* reply);
+ void OnHandleTapGestureWithContext(bool is_content_editable);
void OnDidChangeNumberFieldAttributes(bool is_minimum_negative,
bool is_step_integer);
+ void OnIsVideoPlayingGet(bool is_playing, int callback_id);
void OnDidGetManifest(Ewk_View_Request_Manifest_Callback callback,
void* user_data,
const GURL& manifest_url,
#if defined(OS_TIZEN_TV_PRODUCT)
// If RWI server is started, show port info after finish load.
void ShowInspectorPortInfo();
+ void On360VideoDuration(double duration, int callback_id);
+ void On360VideoCurrentTime(double current_time, int callback_id);
#endif
EWebView* web_view_;
int frame_data_output_rect_width_;
std::unique_ptr<FaviconDownloader> favicon_downloader_;
std::unique_ptr<_Ewk_Certificate_Policy_Decision> certificate_policy_decision_;
+ bool reader_mode_;
base::WeakPtrFactory<WebContentsDelegateEfl> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(WebContentsDelegateEfl);
-// Copyright 2015 Samsung Electronics. All rights reserved.
+// Copyright 2015-2016 Samsung Electronics. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
void CancelContextMenu(int request_id) override;
- void QuerySelectionStyle() override;
-
void HandleZoomGesture(blink::WebGestureEvent& event) override;
bool UseKeyPadWithoutUserAction() override;
#ifndef WRT_FILE_PROTOCOL_HANDLER
#define WRT_FILE_PROTOCOL_HANDLER
+#include "base/memory/ref_counted.h"
#include "net/url_request/url_request_job_factory.h"
-net::URLRequestJobFactory::ProtocolHandler* GetWrtFileProtocolHandler();
+class GURL;
+
+namespace base {
+class TaskRunner;
+}
+
+namespace net {
+
+class NetworkDelegate;
+class URLRequestJob;
+
+class WrtFileProtocolHandler
+ : public URLRequestJobFactory::ProtocolHandler {
+ public:
+ explicit WrtFileProtocolHandler(
+ const scoped_refptr<base::TaskRunner>& file_task_runner)
+ : file_task_runner_(file_task_runner) {}
+ ~WrtFileProtocolHandler() override {}
+ URLRequestJob* MaybeCreateJob(
+ URLRequest* request,
+ NetworkDelegate* network_delegate) const override;
+ /* LCOV_EXCL_START */
+ bool IsSafeRedirectTarget(const GURL& location) const override {
+ return false;
+ }
+ /* LCOV_EXCL_STOP */
+
+ private:
+ bool GetWrtParsedUrl(const GURL& url, GURL& parsed_url) const;
+ const scoped_refptr<base::TaskRunner> file_task_runner_;
+ DISALLOW_COPY_AND_ASSIGN(WrtFileProtocolHandler);
+};
+
+} // namespace net
#endif // WRT_FILE_PROTOCOL_HANDLER
#include "base/callback.h"
#include "content/public/browser/browser_message_filter.h"
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "public/ewk_context_product.h"
+#endif
+
namespace net {
class URLRequest;
}
class WrtWidgetHostMessageFilter;
+#if defined(OS_TIZEN_TV_PRODUCT)
+class EwkCheckAccessiablePathCallback {
+ public:
+ EwkCheckAccessiablePathCallback(
+ Ewk_Context_Check_Accessible_Path_Callback callback,
+ void* user_data)
+ : callback_(callback), user_data_(user_data) {}
+ bool TriggerCallback(const std::string& url_spec,
+ const std::string& tizen_app_id) const;
+
+ private:
+ Ewk_Context_Check_Accessible_Path_Callback callback_;
+ void* user_data_;
+};
+#endif
+
class WrtWidgetHost {
public:
static WrtWidgetHost* Get();
std::string TizenAppId() const;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ void SetTizenAppId(const std::string& tizen_app_id);
+ bool ShouldAllowRequest(const net::URLRequest& request);
+
+ void SetCheckAccessiablePathCallback(
+ Ewk_Context_Check_Accessible_Path_Callback callback,
+ void* user_data);
+#endif
+
private:
friend class WrtWidgetHostMessageFilter;
base::AtomicSequenceNumber callback_id_generator_;
callbacks_type callbacks_;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ std::string tizen_app_id_;
+ std::unique_ptr<EwkCheckAccessiablePathCallback> check_accessiable_path_callback_;
+#endif
+
DISALLOW_COPY_AND_ASSIGN(WrtWidgetHost);
};
#include <device/haptic.h>
#endif
+#if defined(OS_TIZEN) && !defined(OS_TIZEN_TV_PRODUCT)
+#include <privacy-privilege-manager/privacy_privilege_manager.h>
+#endif
+
class Browser {
public:
enum GUILevel {
Evas_Object* CreateControlButtons(Evas_Object*);
void DidStartInspectorServer(unsigned port);
+#if defined(OS_TIZEN) && !defined(OS_TIZEN_TV_PRODUCT)
+ void CheckApplicationPermission(const char* privilege);
+ static void OnPermissionCheckResult(ppm_call_cause_e cause,
+ ppm_request_result_e result,
+ const char* privilege,
+ void* user_data);
+#endif
+
static void OnToolboxWindowDelRequest(void* data, Evas_Object*, void*);
static void OnWindowElementClicked(void* data, Evas_Object*, void*);
static void OnWindowClose(void* data, Evas_Object*, void*);
#if defined(OS_TIZEN_TV_PRODUCT)
static void On_Notify_Subtitle_Play(void*, Evas_Object*, void*);
static void On_Notify_Subtitle_Stop(void*, Evas_Object*, void*);
- static void On_Notify_Video_Pause(void*, Evas_Object*, void*);
- static void On_Notify_Video_Resume(void*, Evas_Object*, void*);
- static void On_Notify_Video_Seek_Start(void*, Evas_Object*, void*);
- static void On_Notify_Video_Seek_Completed(void*, Evas_Object*, void*);
+ static void On_Notify_Subtitle_Pause(void*, Evas_Object*, void*);
+ static void On_Notify_Subtitle_Resume(void*, Evas_Object*, void*);
+ static void On_Notify_Subtitle_Seek_Start(void*, Evas_Object*, void*);
+ static void On_Notify_Subtitle_Seek_Completed(void*, Evas_Object*, void*);
static void On_Subtitle_Data(void*, Evas_Object*, void*);
- static void current_time_call(Evas_Object*, double, void*);
static void On_Video_Playback_Load(void*, Evas_Object*, void*);
static void On_Video_Playback_Ready(void*, Evas_Object*, void*);
static void On_Video_Playback_Start(void*, Evas_Object*, void*);
static void OnInspectorShow(void* data, Evas_Object*, void*);
static void OnInspectorServerStart(void* data, Evas_Object* obj, void*);
static void OnUseGoogleDataProxy(void* data, Evas_Object* obj, void*);
+#if !defined(OS_TIZEN)
static void OnRotate(void* data, Evas_Object*, void*);
+#endif
static void OnSelectMouseInput(void* data, Evas_Object*, void*);
static void OnSelectTouchInput(void* data, Evas_Object*, void*);
static void OnStartTracing(void* data, Evas_Object*, void*);
--- /dev/null
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UTC_BLINK_API_RESULT_LOCKED_H_
+#define UTC_BLINK_API_RESULT_LOCKED_H_
+
+#include <mutex>
+
+template <typename T>
+class ApiResultLocked {
+ public:
+ ApiResultLocked() : is_set_(false) {}
+
+ void operator=(const T& t) { Set(t); }
+ void Set(const T& t) {
+ lock_.lock();
+ result_ = t;
+ is_set_ = true;
+ lock_.unlock();
+ }
+ T Get() {
+ lock_.lock();
+ auto t = result_;
+ lock_.unlock();
+ return t;
+ }
+ bool IsSet() {
+ lock_.lock();
+ auto is_set = is_set_;
+ lock_.unlock();
+ return is_set;
+ }
+
+ private:
+ bool is_set_;
+ T result_;
+ std::mutex lock_;
+};
+
+#endif // UTC_BLINK_API_RESULT_LOCKED_H_
-// Copyright 2014 Samsung Electronics. All rights reserved.
+// Copyright 2014-2016 Samsung Electronics. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
};
utc_blink_ewk_base();
- virtual ~utc_blink_ewk_base();
+ ~utc_blink_ewk_base() override;
void SetLogJavascript(bool enabled) { log_javascript = enabled; }
*/
bool CompareEvasImageWithResource(Evas_Object* image_object, const char* resource, int pixel_fuzziness) const;
+ // Adds allow-file-access-from-files param to Chromium.
+ // Must be called within PreSetUp to be taken into account.
+ void AllowFileAccessFromFiles();
+
/**
* Generates proper path for resource file
*
* @retval true if timeout was handled by method, false otherwise.
* If method returns false then main application event loop will be stopped with error.
*/
- virtual bool TimeOut() { return false; }
+ virtual bool TimeOut();
/**
* Override this method if you need to handle "load,finished" ewk callback.
* @retval true if "load,error" was handled by method, false otherwise.
* If method returns false then main application event loop will be stopped with error.
*/
- virtual bool LoadError(Evas_Object* webview, Ewk_Error *error) { EventLoopStop(LoadFailure); return false; }
+ virtual bool LoadError(Evas_Object* webview, Ewk_Error* error);
/**
* Override this method if you need to handle "load,progress" ewk callback.
virtual void LoadProgress(Evas_Object* webview, double progress) {}
/**
- * Override this method if you need to handle "load,progress,started" ewk callback.
- */
- virtual void LoadProgressStarted(Evas_Object* webview) {}
-
- /**
- * Override this method if you need to handle "load,progress,finished" ewk callback.
- */
- virtual void LoadProgressFinished(Evas_Object* webview) {}
-
- /**
* Override this method if you need to handle "console,message" ewk callback.
*/
virtual void ConsoleMessage(Evas_Object* webview, const Ewk_Console_Message*);
/**
* Sets a (test) job that should be performed during main loop.
+ * @param [in] job_function name of function (static void method of test
+ * class)
+ * that will be called from main loop
+ *
+ * @note If exit from main loop depends on code included in body of callback
+ * that could be called before program enters main loop
+ * there could be a race codition.
+ * Example: exit from main loop is a result of call to
+ * ewk_view_text_selection_clear.
+ *
+ * in TEST_F body:
+ * > ASSERT_EQ(EINA_TRUE,
+ * ewk_view_text_selection_clear(GetEwkWebView()));
+ * > ASSERT_EQ(Success, EventLoopStart());
+ *
+ * It would be better to:
+ * 1. define a additional callback, and move there testing code
+ * 2. set additional callback with SetTestJob to be called from main
+ * loop
+ * 3. result of code called in callback store in auxiliary field of
+ * class
+ * and test later
+ * Example:
+ *
+ * in class definition:
+ * > static void job_selection_clear(utc_blink_ewk_base *data)
+ * > {
+ * > utc_blink_cb_textselection_mode *owner =
+ * > static_cast<utc_blink_cb_textselection_mode *>(data);
+ * > owner->result_text_selection_clear =
+ * ewk_view_text_selection_clear(owner->GetEwkWebView());
+ * > }
+ *
+ * in TEST_F body:
+ * >
+ * > SetTestJob(utc_blink_cb_textselection_mode::job_selection_clear);
+ * > ASSERT_EQ(Success, EventLoopStart());
+ * > ASSERT_EQ(EINA_TRUE, result_text_selection_clear);
*/
void SetTestJob(utc_blink_ewk_job_cb_t job_function)
{
static void load_progress_cb(void* data, Evas_Object* webview, void* event_info);
/**
- * Default "load,progress,started" event callback, will call LoadProgressStarted method
- *
- * @see LoadProgressStarted
- */
- static void load_progress_started_cb(void* data, Evas_Object* webview, void* event_info);
- /**
- * Default load,progress,finished" event callback, will call LoadProgressFinished method
- *
- * @see LoadProgressFinished
- */
- static void load_progress_finished_cb(void* data, Evas_Object* webview, void* event_info);
-
- /**
* Default "console,message" event callback, will call ConsoleMessage method
*/
static void console_message_cb(utc_blink_ewk_base*, Evas_Object*, Ewk_Console_Message*);
Ecore_Job* test_job;
utc_blink_ewk_job_cb_t test_job_function;
+
+ std::vector<char*> argv;
};
#endif // UTC_BLINK_EWK_BASE_HUTC_BLINK_EWK_BASE_H
--- /dev/null
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UTC_BLINK_EWK_CONTEXT_FORM_AUTOFILL_CREDIT_CARD_UTILS_H
+#define UTC_BLINK_EWK_CONTEXT_FORM_AUTOFILL_CREDIT_CARD_UTILS_H
+
+#include "utc_blink_ewk_base.h"
+
+const unsigned TEST_AUTOFILL_CREDIT_CARD_ID = 12345;
+const char* const TEST_AUTOFILL_CREDIT_CARD_NAME_FULL = "Mr. Smith";
+const char* const TEST_AUTOFILL_CREDIT_CARD_NUMBER = "411111111111111";
+const char* const TEST_AUTOFILL_CREDIT_CARD_EXP_4_DIGIT_YEAR = "2018";
+const char* const TEST_AUTOFILL_CREDIT_CARD_EXP_MONTH = "01";
+
+Ewk_Autofill_CreditCard* getTestEwkAutofillCreditCard();
+
+bool checkOne(Ewk_Autofill_CreditCard* cardToCheck, const char* reference,
+ Ewk_Autofill_CreditCard_Data_Type kind, const char* errMessage);
+bool checkIfCreditCardContainsTestData(Ewk_Autofill_CreditCard* cardToCheck);
+
+class utc_blink_ewk_context_form_autofill_credit_card_base
+ : public utc_blink_ewk_base {
+ protected:
+ void PostSetUp() override;
+
+ void PreTearDown() override;
+
+ private:
+ void RemoveTestCreditCard() {
+ Ewk_Autofill_CreditCard* card =
+ ewk_context_form_autofill_credit_card_get(ewk_context_default_get(),
+ TEST_AUTOFILL_CREDIT_CARD_ID);
+ if (card) {
+ ewk_context_form_autofill_credit_card_remove(ewk_context_default_get(),
+ TEST_AUTOFILL_CREDIT_CARD_ID);
+ ewk_autofill_credit_card_delete(card);
+ EventLoopWait(3.0);
+ card =
+ ewk_context_form_autofill_credit_card_get(ewk_context_default_get(),
+ TEST_AUTOFILL_CREDIT_CARD_ID);
+ ASSERT_TRUE(card);
+ }
+ }
+};
+
+#endif //UTC_BLINK_EWK_CONTEXT_FORM_AUTOFILL_CREDIT_CARD_UTILS_H
class utc_blink_ewk_context_form_autofill_profile_base
: public utc_blink_ewk_base {
protected:
- void PostSetUp() override {
- EventLoopWait(3.0);
- RemoveTestProfile();
- }
+ void PostSetUp() override;
- void PreTearDown() override {
- RemoveTestProfile();
- }
+ void PreTearDown() override;
private:
void RemoveTestProfile() {
class utc_blink_ewk_hit_test_request_base : public utc_blink_ewk_base {
protected:
- void LoadFinished(Evas_Object* webview)
- {
- EventLoopStop(utc_blink_ewk_base::Success);
- }
-
- virtual void CheckHitTest(Ewk_Hit_Test* hit_test) {}
-
- static void hit_test_result(Evas_Object* o, int x, int y, int mode, Ewk_Hit_Test* hit_test, void* user_data)
- {
- utc_blink_ewk_hit_test_request_base* owner = static_cast<utc_blink_ewk_hit_test_request_base*>(user_data);
- ASSERT_TRUE(owner);
-
- owner->EventLoopStop(Success);
- owner->CheckHitTest(hit_test);
+ void LoadFinished(Evas_Object* webview) override
+
+ virtual void CheckHitTest(Ewk_Hit_Test* hit_test) {}
+
+ static void hit_test_result(Evas_Object* o,
+ int x,
+ int y,
+ int mode,
+ Ewk_Hit_Test* hit_test,
+ void* user_data) {
+ utc_blink_ewk_hit_test_request_base* owner =
+ static_cast<utc_blink_ewk_hit_test_request_base*>(user_data);
+ ASSERT_TRUE(owner);
+
+ owner->EventLoopStop(Success);
+ owner->CheckHitTest(hit_test);
}
};
--- /dev/null
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef EWK_UNITTEST_UTC_BLINK_EWK_INTERCEPT_REQUEST_GET_BASE_H_
+#define EWK_UNITTEST_UTC_BLINK_EWK_INTERCEPT_REQUEST_GET_BASE_H_
+
+#include "utc_blink_ewk_base.h"
+
+#include <atomic>
+
+class utc_blink_ewk_intercept_request_get_base : public utc_blink_ewk_base {
+ protected:
+ static const std::string kInterceptURL;
+
+ utc_blink_ewk_intercept_request_get_base();
+ ~utc_blink_ewk_intercept_request_get_base() override;
+
+ void LoadFinished(Evas_Object* webview) override;
+ void pos_test();
+ void neg_test();
+ virtual void test_func(Ewk_Intercept_Request* intercept_request) = 0;
+
+ private:
+ static void callback_positive(Ewk_Context* /*ctx*/,
+ Ewk_Intercept_Request* intercept_request,
+ void* user_data);
+ static void callback_negative(Ewk_Context* /*ctx*/,
+ Ewk_Intercept_Request* /*intercept_request*/,
+ void* user_data);
+
+ std::atomic<bool> api_executed_;
+};
+
+#endif // EWK_UNITTEST_UTC_BLINK_EWK_INTERCEPT_REQUEST_GET_BASE_H_
--- /dev/null
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can b
+// found in the LICENSE file.
+
+#ifndef EWK_UNITTEST_UTC_BLINK_EWK_INTERCEPT_REQUEST_RESPONSE_BASE_H_
+#define EWK_UNITTEST_UTC_BLINK_EWK_INTERCEPT_REQUEST_RESPONSE_BASE_H_
+
+#include "utc_blink_ewk_base.h"
+
+#include <string>
+
+#include "utc_blink_api_result_locked.h"
+
+class utc_blink_ewk_intercept_request_response_base
+ : public utc_blink_ewk_base {
+ protected:
+ utc_blink_ewk_intercept_request_response_base();
+ ~utc_blink_ewk_intercept_request_response_base() override;
+
+ virtual void pos_func(Ewk_Intercept_Request* intercept_request) = 0;
+ virtual bool neg_func(Ewk_Intercept_Request* intercept_request) = 0;
+ virtual std::string get_js_title_test() = 0;
+
+ void PostSetUp() override;
+ void PreTearDown() override;
+ void LoadFinished(Evas_Object* webview) override;
+
+ void pos_test();
+ void neg_test();
+
+ const char* body_ajax_response_;
+ const char* custom_response_status_text_;
+ bool intercept_request_null_;
+
+ private:
+ struct ewk_callback_results {
+ bool status_set_;
+ bool header_add_content_type_;
+ bool header_add_content_length_;
+ bool header_add_access_control_;
+ bool body_set_;
+ };
+
+ static const char* kInterceptURL;
+ static const char* kInterceptAjaxURL;
+ static const char* kBodyAjaxPart1;
+ static const char* kBodyAjaxPart2;
+ static const char* kBodyAjaxPart3;
+
+ void check_results(ApiResultLocked<ewk_callback_results>& results);
+ void construct_page();
+
+ static void title_changed(void* data, Evas_Object* webview, void* event_info);
+
+ static void intercept_request_callback_response_header_add(
+ Ewk_Context* /*ctx*/,
+ Ewk_Intercept_Request* intercept_request,
+ void* user_data);
+
+ static void intercept_request_callback_response_header_add_null(
+ Ewk_Context* /*ctx*/,
+ Ewk_Intercept_Request* intercept_request,
+ void* user_data);
+
+ ApiResultLocked<ewk_callback_results> page_ewk_results_;
+ ApiResultLocked<ewk_callback_results> ajax_ewk_results_;
+ ApiResultLocked<Eina_Bool> neg_api_result_;
+ std::string first_title_;
+ std::string body_ajax_;
+};
+
+#endif // EWK_UNITTEST_UTC_BLINK_EWK_INTERCEPT_REQUEST_RESPONSE_BASE_H_
{}
/* Common setup */
- void PostSetUp() override
- {
- ewk_view_notification_permission_callback_set(GetEwkWebView(),
- reinterpret_cast<Ewk_View_Notification_Permission_Callback>(
- notification_permission_request_callback),
- this);
- ewk_notification_callbacks_set(
- reinterpret_cast<Ewk_Notification_Show_Callback>(notification_show_callback),
- reinterpret_cast<Ewk_Notification_Cancel_Callback>(notification_cancel_callback),
- this);
- }
+ void PostSetUp() override;
+ void PreTearDown() override;
- void PreTearDown() override
- {
- ewk_view_notification_permission_callback_set(GetEwkWebView(), NULL, NULL);
- ewk_notification_callbacks_reset();
+ void NotificationShow(Ewk_Notification* notification) override {}
- if (security_origins) {
- // if it fails, than other TCs can produce false negatives/positives
- EXPECT_EQ(EINA_TRUE, ewk_notification_policies_removed(security_origins));
+ void NotificationCancel(uint64_t notificationId) override {}
- void* data = NULL;
-
- EINA_LIST_FREE(security_origins, data) {
- Ewk_Security_Origin* origin = static_cast<Ewk_Security_Origin*>(data);
- ewk_security_origin_free(origin);
- }
- }
- }
-
- virtual void NotificationShow(Ewk_Notification* notification)
- {
- }
-
- virtual void NotificationCancel(uint64_t notificationId)
- {
- }
-
- virtual Eina_Bool NotificationPermissionRequest(Evas_Object* webview, Ewk_Notification_Permission_Request* request)
- {
- //allow the notification by default
- EXPECT_EQ(EINA_TRUE, ewk_notification_permission_reply(request, EINA_TRUE));
- return EINA_TRUE;
- }
+ Eina_Bool NotificationPermissionRequest(
+ Evas_Object* webview,
+ Ewk_Notification_Permission_Request* request) override;
static Eina_Bool notification_permission_request_callback(Evas_Object* webview, Ewk_Notification_Permission_Request* request, utc_blink_ewk_notification_test_base* owner)
{
utc_message("[notification_permission_request_callback] :: ");
if (!owner) {
- EINA_FALSE;
+ return EINA_FALSE;
}
if (!request) {
// clipboard to contain a bitmap, HTML markup representing the image, a URL to
// the image, and the image's alt text. Having the types follow this order
// maximizes the amount of data that can be extracted by various programs.
+#if defined(OS_TIZEN)
+ // On Tizen, it is required that HTML content should be written to clipboard
+ // after type TEXT. So that when Copy-Paste operation is performed on markup
+ // content, it should be rendered as-is.
+ enum ObjectType {
+ CBF_TEXT,
+ CBF_HTML,
+ CBF_RTF,
+ CBF_BOOKMARK,
+ CBF_WEBKIT,
+ CBF_SMBITMAP, // Bitmap from shared memory.
+ CBF_DATA, // Arbitrary block of bytes.
+ };
+#else
enum ObjectType {
CBF_SMBITMAP, // Bitmap from shared memory.
CBF_HTML,
CBF_WEBKIT,
CBF_DATA, // Arbitrary block of bytes.
};
+#endif
// ObjectMap is a map from ObjectType to associated data.
// The data is organized differently for each ObjectType. The following
DOM_KEY_MAP("XF86SimpleMenu", XF86SimpleMenu, 0x2797),
DOM_KEY_MAP("XF86More", XF86More, 0x27A4),
DOM_KEY_MAP("XF86FactoryMode", XF86FactoryMode, 0x27A5),
- DOM_KEY_MAP("XF86Sleep", XF86Sleep, 0x005F),
+ DOM_KEY_MAP("XF86Sleep", XF86Sleep, 0x27A6),
DOM_KEY_MAP("XF86TV", XF86TV, 0x27A9),
DOM_KEY_MAP("XF86DTV", XF86DTV, 0x27AA),
DOM_KEY_MAP("XF86STBPower", XF86STBPower, 0x27AB),
DOM_KEY_MAP("XF86PlayBack", XF86PlayBack, 0x280C),
DOM_KEY_MAP("XF86ExtraApp", XF86ExtraApp, 0x280D),
DOM_KEY_MAP("XF86Color", XF86Color, 0x2891),
+ DOM_KEY_MAP("XF86Alarm", XF86Alarm, 0x28B2),
+ DOM_KEY_MAP("XF86HotelMovies", XF86HotelMovies, 0x28FE),
+ DOM_KEY_MAP("XF86HotelLanguage", XF86HotelLanguage, 0x28FF),
+ DOM_KEY_MAP("XF86HotelTVGuide", XF86HotelTVGuide, 0x2900),
+ DOM_KEY_MAP("XF86HotelAppsGuest", XF86HotelAppsGuest, 0x2901),
+ DOM_KEY_MAP("XF86NoiseReduction", XF86NoiseReduction, 0x2917),
+ DOM_KEY_MAP("XF86Help", XF86Help, 0x2918),
+ DOM_KEY_MAP("XF86NR", XF86NR, 0x2919),
+ DOM_KEY_MAP("XF86HotelRoomControl", XF86HotelRoomControl, 0x291A),
DOM_KEY_MAP("Select", Select, 0x000D),
DOM_KEY_MAP("Clear", Clear, 0x002E),
#endif
namespace ui {
+#if defined(OS_TIZEN_TV_PRODUCT)
+enum NativeKeyCode {
+ // TV RC device OK key
+ RC_DIVCE_KEYCODE_OK = 0x24,
+};
+#endif
+
enum KeyboardCode {
VKEY_CANCEL = 0x03,
VKEY_BACK = 0x08,
VKEY_SNAPSHOT = 0x2C,
VKEY_INSERT = 0x2D,
VKEY_DELETE = 0x2E,
+#if !defined(OS_TIZEN_TV_PRODUCT)
VKEY_HELP = 0x2F,
+#endif
VKEY_0 = 0x30,
VKEY_1 = 0x31,
VKEY_2 = 0x32,
VKEY_PLAY_BACK = 0x280C,
VKEY_EXTRA = 0x280D,
VKEY_COLOR = 0x2891,
+
+ VKEY_ALARM = 0x28B2,
+ VKEY_HOTEL_MOVIES = 0x28FE,
+ VKEY_HOTEL_LANGUAGE = 0x28FF,
+ VKEY_HOTEL_TV_GUIDE = 0x2900,
+ VKEY_HOTEL_APPS_GUEST = 0x2901,
+ VKEY_NOISE_REDUCTION = 0x2917,
+ VKEY_HELP = 0x2918,
+ VKEY_NR = 0x2919,
+ VKEY_HOTEL_ROOM_CONTROL = 0x291A,
+
// TV IME "Select" key, no X Server keycode, 0xFF60 ISF code.
VKEY_IME_DONE = 0xFF60,
// TV IME "Cancel" key, no X Server keycode, 0xFF69 ISF code.
GPU_MEMORY_BUFFER_TYPE_LAST = OZONE_NATIVE_PIXMAP
};
+#if defined(TIZEN_TBM_SUPPORT)
+enum MediaPacketMode {
+ MEDIA_PACKET_NORMAL_MODE,
+ MEDIA_PACKET_RING_BUFFER_MODE
+ /* Reserved */
+};
+#endif
+
using GpuMemoryBufferId = GenericSharedMemoryId;
struct GFX_EXPORT GpuMemoryBufferHandle {
// 'views' and with our Chrome UI code where the elements are also called
// 'views'.
-#if defined(USE_AURA) || defined(USE_EFL)
+#if defined(USE_AURA) || defined(USE_EFL) || defined(USE_ELECTRON)
class SkRegion;
namespace aura {
class Window;
typedef ui::ViewAndroid* NativeView;
typedef ui::WindowAndroid* NativeWindow;
typedef jobject NativeEvent;
-#elif defined(USE_EFL)
+#elif defined(USE_EFL) || defined(USE_ELECTRON)
typedef ui::Cursor NativeCursor;
typedef void* NativeView;
typedef void* NativeWindow;
#endif
// A constant value to indicate that gfx::NativeCursor refers to no cursor.
-#if defined(USE_AURA) || defined(USE_EFL)
+#if defined(USE_AURA) || defined(USE_EFL) || defined(USE_ELECTRON)
const int kNullCursor = 0;
#else
const gfx::NativeCursor kNullCursor = static_cast<gfx::NativeCursor>(NULL);
namespace ui {
+#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
+enum TzGPUmode {
+ NONSECURE_MODE,
+ SECURE_MODE
+};
+#endif
+
GL_EXPORT const char* GetEGLErrorString(uint32_t error);
// Returns the last EGL error as a string.
GL_EXPORT const char* GetLastEGLErrorString();
+#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
+// Setup secure mode of the trust zone.
+GL_EXPORT void SetSecureModeGPU(TzGPUmode gpu_mode);
+#endif
} // namespace ui
#endif // UI_GL_EGL_UTIL_H_
int length,
CanonOutput* output);
+URL_EXPORT bool CompareSchemeComponent(const char* spec,
+ const Component& component,
+ const char* compare_to);
+
+URL_EXPORT bool CompareSchemeComponent(const base::char16* spec,
+ const Component& component,
+ const char* compare_to);
+
} // namespace url
#endif // URL_URL_UTIL_H_
*/
static void DateTimeConfigurationChangeNotification(Isolate* isolate);
+#if defined(OS_TIZEN_TV_PRODUCT)
/**
* Sets time offset for Date object
*/
static void SetTimeOffset(double time_offset);
+#endif
private:
static void CheckCast(v8::Value* obj);
Isolate& operator=(const Isolate&) = delete;
void* operator new(size_t size) = delete;
void operator delete(void*, size_t) = delete;
+#if defined(OS_TIZEN_TV_PRODUCT)
+ uint64_t GetExternalMemorySize();
+ void GCExternalAllocationMemory();
+#endif
private:
template <class K, class V, class Traits>
}
inline void NoBarrier_Store(volatile Atomic8* ptr, Atomic8 value) {
+#if defined(ADDRESS_SANITIZER)
+ *ptr = value;
+#else
__atomic_store_n(ptr, value, __ATOMIC_RELAXED);
+#endif
}
inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
+#if defined(ADDRESS_SANITIZER)
+ *ptr = value;
+#else
__atomic_store_n(ptr, value, __ATOMIC_RELAXED);
+#endif
}
inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
+#if defined(ADDRESS_SANITIZER)
+ *ptr = value;
+#else
__atomic_store_n(ptr, value, __ATOMIC_RELEASE);
+#endif
}
inline Atomic8 NoBarrier_Load(volatile const Atomic8* ptr) {
+#if defined(ADDRESS_SANITIZER)
+ Atomic8 value = *ptr;
+ return value;
+#else
return __atomic_load_n(ptr, __ATOMIC_RELAXED);
+#endif
}
inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
+#if defined(ADDRESS_SANITIZER)
+ Atomic32 value = *ptr;
+ return value;
+#else
return __atomic_load_n(ptr, __ATOMIC_RELAXED);
+#endif
}
inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
+#if defined(ADDRESS_SANITIZER)
+ Atomic32 value = *ptr;
+ return value;
+#else
return __atomic_load_n(ptr, __ATOMIC_ACQUIRE);
+#endif
}
#if defined(V8_HOST_ARCH_64_BIT)
}
inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) {
+#if defined(ADDRESS_SANITIZER)
+ *ptr = value;
+#else
__atomic_store_n(ptr, value, __ATOMIC_RELAXED);
+#endif
}
inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
+#if defined(ADDRESS_SANITIZER)
+ *ptr = value;
+#else
__atomic_store_n(ptr, value, __ATOMIC_RELEASE);
+#endif
}
inline Atomic64 NoBarrier_Load(volatile const Atomic64* ptr) {
+#if defined(ADDRESS_SANITIZER)
+ Atomic64 value = *ptr;
+ return value;
+#else
return __atomic_load_n(ptr, __ATOMIC_RELAXED);
+#endif
}
inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
+#if defined(ADDRESS_SANITIZER)
+ Atomic64 value = *ptr;
+ return value;
+#else
return __atomic_load_n(ptr, __ATOMIC_ACQUIRE);
+#endif
}
#endif // defined(V8_HOST_ARCH_64_BIT)
// Contains the NULL time. Use Time::Now() to get the current time.
Time() : TimeBase(0) {}
- // Sets time offset
- static void SetTimeOffset(double time_offset);
-
// Returns the current time. Watch out, the system might adjust its clock
// in which case time will actually go backwards. We don't guarantee that
// times are increasing, or that two calls to Now() won't be the same.
DECLARE_CAST(JSDate)
+#if defined(OS_TIZEN_TV_PRODUCT)
+ // Sets time offset
+ static void SetTimeOffset(double time_offset);
+#endif
+
// Returns the time value (UTC) identifying the current time.
static double CurrentTimeValue(Isolate* isolate);
name); \
}
+#if !defined(ENABLE_TRACE_EVENT)
+// Remove the macro function to add a trace event.
+#undef INTERNAL_TRACE_EVENT_ADD
+#define INTERNAL_TRACE_EVENT_ADD(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP(...)
+#undef INTERNAL_TRACE_EVENT_CALL_STATS_SCOPED
+#define INTERNAL_TRACE_EVENT_CALL_STATS_SCOPED(...)
+#endif
+
namespace v8 {
namespace internal {
end_(end),
error_pc_(nullptr),
error_pt_(nullptr) {}
+ Decoder(const byte* start, const byte* pc, const byte* end)
+ : start_(start),
+ pc_(pc),
+ end_(end),
+ error_pc_(nullptr),
+ error_pt_(nullptr) {}
virtual ~Decoder() {}
// Consume {size} bytes and send them to the bit bucket, advancing {pc_}.
void consume_bytes(uint32_t size, const char* name = "skip") {
- TRACE(" +%d %-20s: %d bytes\n", static_cast<int>(pc_ - start_), name,
- size);
+#if DEBUG
+ if (name) {
+ // Only trace if the name is not null.
+ TRACE(" +%d %-20s: %d bytes\n", static_cast<int>(pc_ - start_), name,
+ size);
+ }
+#endif
if (checkAvailable(size)) {
pc_ += size;
} else {